@sema-agent/core
Version:
Stateless, task-oriented AI agent core
1,108 lines (1,107 loc) • 27.4 kB
JSON
{
"repo": "core",
"version": "7.42.0",
"from": "b8c8666207a044498ac37fb36d14304a66ea5a92",
"to": "bb9acc0d77da51b9c1430a05e630c0265da9a513",
"added": [
{
"name": "ALLOW_ENTRY_INERT_REASONS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:36",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ALLOW_RULE_MEMBERS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/allow-rule-shadow.ts:9",
"src/index.ts:1472"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowEntryGateSeats",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:280",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowEntryHit",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:266",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowEntryInertReason",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:37",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowEntryLane",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:271",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowRuleMember",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/allow-rule-shadow.ts:10",
"src/index.ts:1472"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowRuleShadow",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/allow-rule-shadow.ts:14",
"src/index.ts:1472"
],
"criteriaCovered": true,
"breaking": false
},
{
"name": "CompiledAllowEntry",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:41",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "compileAllowEntry",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:61",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "compileAllowList",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:107",
"src/index.ts:1471"
],
"criteriaCovered": false,
"breaking": false
}
],
"removed": [
{
"name": "SKILL_ENTRY_INERT_REASONS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/skill-grant.ts:65",
"src/index.ts:1470"
],
"breaking": true
},
{
"name": "SkillEntryInertReason",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/skill-grant.ts:66",
"src/index.ts:1469"
],
"breaking": true
}
],
"changed": [],
"narrowed": [],
"closedSetMembers": [
{
"set": "ADMITTED_IMAGE_MIME_TYPES",
"at": [
"src/tools/fs/image-admission.ts:25"
],
"newSet": true,
"added": [
"image/gif",
"image/jpeg",
"image/png",
"image/webp"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ALLOW_ENTRY_INERT_REASONS",
"at": [
"src/core/allow-entry.ts:36"
],
"newSet": true,
"added": [
"content_unsupported",
"domain",
"grammar",
"namespace_wildcard",
"path_pattern",
"wildcard_all"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ALLOW_RULE_MEMBERS",
"at": [
"src/core/allow-rule-shadow.ts:9"
],
"newSet": true,
"added": [
"deployment",
"hook",
"persisted",
"request",
"skill"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "AUTO_STRIPPED_PROGRAMS",
"at": [
"src/core/allow-entry.ts:126"
],
"newSet": true,
"added": [
"bash",
"bun run",
"bunx",
"deno",
"env",
"eval",
"exec",
"fish",
"lua",
"node",
"npm run",
"npx",
"perl",
"php",
"pnpm run",
"python",
"python2",
"python3",
"ruby",
"sh",
"ssh",
"sudo",
"tsx",
"xargs",
"yarn run",
"zsh"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "AllowEntryInertReason",
"at": [
"src/core/allow-entry.ts:37",
"src/index.ts:1471"
],
"newSet": true,
"added": [
"content_unsupported",
"domain",
"grammar",
"namespace_wildcard",
"path_pattern",
"wildcard_all"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "AllowEntrySource",
"at": [
"src/core/allow-entry.ts:263"
],
"newSet": true,
"added": [
"deployment",
"request"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "AllowRuleMember",
"at": [
"src/core/allow-rule-shadow.ts:10",
"src/index.ts:1472"
],
"newSet": true,
"added": [
"deployment",
"hook",
"persisted",
"request",
"skill"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DecisionReason",
"at": [
"src/core/decision-receipt.ts:29",
"src/core/tool-policy.ts:189",
"src/index.ts:1429"
],
"newSet": false,
"added": [
"deployment_rule",
"request_rule"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ENGINE_NOTICE_CODES",
"at": [
"src/core/governance-codes.ts:348"
],
"newSet": false,
"added": [
"permission.allowed_tool_not_granted"
],
"removed": [
"skills.allowed_tool_not_granted"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": true
},
{
"set": "PermissionRule.behavior",
"at": [
"src/core/permission-rules.ts:79"
],
"newSet": false,
"added": [],
"removed": [
"allow"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "PermissionRuleIssue.code",
"at": [
"src/core/permission-rules.ts:103"
],
"newSet": false,
"added": [
"invalid.behavior",
"invalid.entry_type",
"unsupported.allow"
],
"removed": [
"invalid.allow_param_rule",
"unsupported.bash_prefix",
"unsupported.file_glob"
],
"breaking": true,
"criteriaCovered": false
},
{
"set": "READ_OUTCOMES",
"at": [
"src/tools/fs/fs-read.ts:83"
],
"newSet": true,
"added": [
"attached",
"not_attached",
"partial",
"unchanged"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReadKind",
"at": [
"src/tools/fs/fs-read.ts:88"
],
"newSet": true,
"added": [
"image",
"notebook",
"pdf",
"text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReadOutcome",
"at": [
"src/tools/fs/fs-read.ts:84"
],
"newSet": true,
"added": [
"attached",
"not_attached",
"partial",
"unchanged"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SYNTHETIC_READ_LAYERS",
"at": [
"src/core/synthetic-read-verdict.ts:61"
],
"newSet": true,
"added": [
"caller_policy",
"inherited_constraint",
"narrowing",
"org_rules",
"persisted_rules",
"skill_rows"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SYNTHETIC_READ_UNANSWERABLE_CAUSES",
"at": [
"src/core/synthetic-read-verdict.ts:65"
],
"newSet": true,
"added": [
"approval_seat",
"call_unreadable",
"org_unavailable",
"threw",
"timed_out"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SyntheticReadLayer",
"at": [
"src/core/synthetic-read-verdict.ts:62"
],
"newSet": true,
"added": [
"caller_policy",
"inherited_constraint",
"narrowing",
"org_rules",
"persisted_rules",
"skill_rows"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SyntheticReadUnanswerableCause",
"at": [
"src/core/synthetic-read-verdict.ts:66"
],
"newSet": true,
"added": [
"approval_seat",
"call_unreadable",
"org_unavailable",
"threw",
"timed_out"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "TraceEvent.kind",
"at": [
"src/core/trace.ts:62",
"src/core/trace.ts:96",
"src/core/trace.ts:137",
"src/core/trace.ts:167",
"src/core/trace.ts:208",
"src/core/trace.ts:226",
"src/core/trace.ts:241",
"src/core/trace.ts:276",
"src/core/trace.ts:278",
"src/core/trace.ts:321",
"src/core/trace.ts:350",
"src/core/trace.ts:368",
"src/core/trace.ts:382",
"src/core/trace.ts:399",
"src/core/trace.ts:415",
"src/core/trace.ts:430",
"src/core/trace.ts:447",
"src/core/trace.ts:462",
"src/core/trace.ts:476",
"src/core/trace.ts:494",
"src/core/trace.ts:513",
"src/core/trace.ts:531",
"src/core/trace.ts:556",
"src/core/trace.ts:584",
"src/core/trace.ts:598",
"src/core/trace.ts:612",
"src/core/trace.ts:633",
"src/core/trace.ts:644",
"src/core/trace.ts:659",
"src/core/trace.ts:671",
"src/core/trace.ts:685",
"src/core/trace.ts:704",
"src/core/trace.ts:714",
"src/core/trace.ts:722",
"src/core/trace.ts:732",
"src/core/trace.ts:748",
"src/core/trace.ts:765",
"src/core/trace.ts:777",
"src/core/trace.ts:787",
"src/core/trace.ts:809",
"src/core/trace.ts:831",
"src/core/trace.ts:839",
"src/core/trace.ts:859",
"src/core/trace.ts:875",
"src/core/trace.ts:885",
"src/core/trace.ts:898",
"src/core/trace.ts:912",
"src/core/trace.ts:921",
"src/core/trace.ts:932",
"src/core/trace.ts:942"
],
"newSet": false,
"added": [
"permission.allowed_tools_allowed"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "TraceEvent.source",
"at": [
"src/core/trace.ts:452"
],
"newSet": true,
"added": [
"deployment",
"request"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "AskRequest",
"at": [
"src/core/tool-policy.ts:2820"
],
"added": [
"allowRuleShadowed"
],
"addedDetail": [
{
"key": "allowRuleShadowed",
"optional": true
}
],
"addedRequired": [],
"removed": [
"persistedRuleShadowed"
],
"breaking": true,
"criteriaCovered": true
},
{
"type": "PermissionResult",
"at": [
"src/core/tool-policy.ts:474"
],
"added": [
"ask.allowRuleShadowed"
],
"addedDetail": [
{
"key": "ask.allowRuleShadowed",
"optional": true
}
],
"addedRequired": [],
"removed": [
"ask.persistedRuleShadowed"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "PreToolUseResult",
"at": [
"src/core/hooks.ts:1180"
],
"added": [
"ask.allowRuleShadowed"
],
"addedDetail": [
{
"key": "ask.allowRuleShadowed",
"optional": true
}
],
"addedRequired": [],
"removed": [
"ask.persistedRuleShadowed"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "RiskDescriptor",
"at": [
"src/core/checkpoint-store.ts:146"
],
"added": [
"allowRuleShadowed"
],
"addedDetail": [
{
"key": "allowRuleShadowed",
"optional": true
}
],
"addedRequired": [],
"removed": [
"shadowedRule"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "RunInternals",
"at": [
"src/core/runner/contracts.ts:1415"
],
"added": [
"inheritedAllowedTools"
],
"addedDetail": [
{
"key": "inheritedAllowedTools",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "RunnerDeps",
"at": [
"src/core/runner-deps.ts:105"
],
"added": [
"allowedTools"
],
"addedDetail": [
{
"key": "allowedTools",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "TaskSpec",
"at": [
"src/core/task-spec.ts:52"
],
"added": [
"allowedTools"
],
"addedDetail": [
{
"key": "allowedTools",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "ToolExecuteContext",
"at": [
"src/core/tool-spec.ts:613"
],
"added": [
"activeRequestAllowedTools"
],
"addedDetail": [
{
"key": "activeRequestAllowedTools",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ToolGateInput",
"at": [
"src/core/hooks.ts:1470"
],
"via": "runToolGate.ToolGateInput",
"added": [
"deploymentAllows",
"deploymentAllows.onAllowed",
"requestAllows",
"requestAllows.onAllowed"
],
"addedDetail": [
{
"key": "deploymentAllows",
"optional": true
},
{
"key": "deploymentAllows.onAllowed",
"optional": true
},
{
"key": "requestAllows",
"optional": true
},
{
"key": "requestAllows.onAllowed",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "TraceEvent",
"at": [
"src/core/trace.ts:60"
],
"added": [
"permission.allowed_tools_allowed.entries",
"permission.allowed_tools_allowed.kind",
"permission.allowed_tools_allowed.source",
"permission.allowed_tools_allowed.taskId",
"permission.allowed_tools_allowed.toolCallId",
"permission.allowed_tools_allowed.toolName",
"permission.allowed_tools_allowed.ts",
"permission.allowed_tools_allowed.version"
],
"addedDetail": [
{
"key": "permission.allowed_tools_allowed.entries",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.kind",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.source",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.taskId",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.toolCallId",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.toolName",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.ts",
"optional": false
},
{
"key": "permission.allowed_tools_allowed.version",
"optional": false
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"typeKeysUnreadableArms": [],
"typeKeysFlattenedCount": 225,
"signatures": [
{
"name": "ToolGateInput.suspendAsk",
"at": [
"src/core/hooks.ts:1564"
],
"from": [
"(req: ToolCallRequest, postHookArgs: unknown, safety?: import(\"./checkpoint-store.js\").SafetyAxis, liveFaceUnavailable?: boolean, realApproval?: import(\"./checkpoint-store.js\").RealApprovalGateBit, shadowedRule?: string, askDecisionReason?: DecisionReason, probeReason?: string, probeCause?: import(\"./checkpoint-store.js\").ProbeCause, segmentCoverage?: readonly import(\"./permission-rule-model.js\").SegmentCoverage[], matchedAskRule?: string, probeMandated?: boolean, carry?: AskCarry): Promise<ToolGateResult[\"suspend\"] | ParkAttemptFailed | undefined>"
],
"to": [
"(req: ToolCallRequest, postHookArgs: unknown, safety?: import(\"./checkpoint-store.js\").SafetyAxis, liveFaceUnavailable?: boolean, realApproval?: import(\"./checkpoint-store.js\").RealApprovalGateBit, allowRuleShadowed?: readonly import(\"./allow-rule-shadow.js\").AllowRuleShadow[], askDecisionReason?: DecisionReason, probeReason?: string, probeCause?: import(\"./checkpoint-store.js\").ProbeCause, segmentCoverage?: readonly import(\"./permission-rule-model.js\").SegmentCoverage[], matchedAskRule?: string, probeMandated?: boolean, carry?: AskCarry): Promise<ToolGateResult[\"suspend\"] | ParkAttemptFailed | undefined>"
],
"changes": [
{
"aspect": "param",
"detail": "param 6 `allowRuleShadowed` type changed, direction not read: [string -> readonly import(\"./allow-rule-shadow.js\").AllowRuleShadow[]]",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 6 `allowRuleShadowed` type changed, direction not read: [string -> readonly import(\"./allow-rule-shadow.js\").AllowRuleShadow[]] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
"breaking": true,
"criteriaCovered": false
},
{
"name": "buildRiskDescriptor",
"at": [
"src/core/checkpoint-store.ts:554"
],
"from": [
"(input: { toolName: string; args: unknown; safety?: SafetyAxis; shellGated?: boolean; shellGateDoctrine?: ShellGateDoctrine; shadowedRule?: string; probeReason?: string; probeCause?: unknown; }): RiskDescriptor"
],
"to": [
"(input: { toolName: string; args: unknown; safety?: SafetyAxis; shellGated?: boolean; shellGateDoctrine?: ShellGateDoctrine; allowRuleShadowed?: readonly import(\"./allow-rule-shadow.js\").AllowRuleShadow[]; probeReason?: string; probeCause?: unknown; }): RiskDescriptor"
],
"changes": [
{
"aspect": "param",
"detail": "param 1 `input` type changed, direction not read: …ne?: ShellGateDoctrine; [shadowedRule?: string -> allowRuleShadowed?: readonly import(\"./allow-rule-shadow.js\").AllowRu…]; probeReason?: string; …",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 1 `input` type changed, direction not read: …ne?: ShellGateDoctrine; [shadowedRule?: string -> allowRuleShadowed?: readonly import(\"./allow-rule-shadow.js\").AllowRu…]; probeReason?: string; … — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
"breaking": true,
"criteriaCovered": false
}
],
"declarationMoves": [
{
"name": "FileKind",
"kind": null,
"onSurface": false,
"from": [
"src/engine/harness/types.ts"
],
"to": [
"src/engine/harness/types.ts",
"src/internal/harness-types.ts"
]
},
{
"name": "normalizeOrgGateVerdict",
"kind": null,
"onSurface": false,
"from": [
"src/core/gate-lanes.ts",
"src/core/hooks.ts"
],
"to": [
"src/core/hooks.ts",
"src/core/rule-lane-reads.ts"
]
},
{
"name": "normalizePersistedRuleHit",
"kind": "function",
"onSurface": true,
"from": [
"src/core/gate-lanes.ts",
"src/core/hooks.ts",
"src/index.ts"
],
"to": [
"src/core/hooks.ts",
"src/core/rule-lane-reads.ts",
"src/index.ts"
]
}
],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "engineNoticeCode",
"name": "permission.allowed_tool_not_granted",
"assertions": [
"G11.a",
"G14.a"
]
},
{
"kind": "taskEventField",
"name": "steering_injected.source",
"assertions": [
"G2.a",
"G2.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G5.a",
"G5.b",
"G7.a",
"G13.a",
"G15.c"
]
},
{
"kind": "taskEventField",
"name": "tool_end.structured",
"assertions": [
"G4.a"
]
},
{
"kind": "typeMember",
"name": "AllowRuleShadow.entries",
"assertions": [
"G9.a"
]
},
{
"kind": "typeMember",
"name": "AllowRuleShadow.member",
"assertions": [
"G9.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.allowRuleShadowed",
"assertions": [
"G7.b",
"G9.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.askClass",
"assertions": [
"G7.b",
"G15.c"
]
},
{
"kind": "typeMember",
"name": "AskRequest.denialLimitFallback",
"assertions": [
"G10.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.message",
"assertions": [
"G9.b"
]
},
{
"kind": "typeMember",
"name": "PermissionRule.behavior",
"assertions": [
"G15.b",
"G16.b"
]
},
{
"kind": "typeMember",
"name": "PermissionRuleIssue.code",
"assertions": [
"G15.a",
"G15.b",
"G16.a"
]
},
{
"kind": "typeMember",
"name": "RunnerDeps.allowedTools",
"assertions": [
"G6.a",
"G12.a"
]
},
{
"kind": "typeMember",
"name": "TaskResult.terminal",
"assertions": [
"G1.a",
"G1.b",
"G1.c"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.allowedTools",
"assertions": [
"G6.a",
"G6.b",
"G8.a"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.images",
"assertions": [
"G1.a",
"G1.c"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.toolPolicy",
"assertions": [
"G2.a",
"G2.c"
]
},
{
"kind": "typeMember",
"name": "ToolPolicy.check",
"assertions": [
"G3.a",
"G3.b"
]
}
],
"consumersHint": {
"cli": [
"AskRequest",
"DecisionReason",
"ENGINE_NOTICE_CODES",
"PermissionResult",
"PermissionRule",
"PermissionRuleIssue",
"PreToolUseResult",
"RiskDescriptor",
"RunInternals",
"RunnerDeps",
"TaskSpec",
"ToolExecuteContext",
"ToolGateInput",
"TraceEvent"
],
"server": [
"AskRequest",
"DecisionReason",
"ENGINE_NOTICE_CODES",
"PermissionResult",
"PermissionRuleIssue",
"PreToolUseResult",
"RiskDescriptor",
"RunInternals",
"RunnerDeps",
"TaskSpec",
"ToolExecuteContext",
"ToolGateInput",
"TraceEvent",
"buildRiskDescriptor"
],
"sdk": [
"AskRequest",
"DecisionReason",
"ENGINE_NOTICE_CODES",
"PermissionResult",
"PermissionRuleIssue",
"PreToolUseResult",
"RiskDescriptor",
"RunnerDeps",
"TaskSpec",
"TraceEvent"
],
"note": "scanned cli@e790a1ca server@4160110a sdk@bc45b50 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it. Ledger files (**/docs/core-consumption/**, **/docs/wire-consumption/**, **/*LEDGER*.json) are not evidence of use — server: 1 name(s) matched ONLY in bookkeeping files and were set aside (PermissionRule)"
},
"breakingCount": 11,
"breakingItems": [
"closed set lost members: ENGINE_NOTICE_CODES -skills.allowed_tool_not_granted",
"closed set lost members: PermissionRule.behavior -allow",
"closed set lost members: PermissionRuleIssue.code -invalid.allow_param_rule,unsupported.bash_prefix,unsupported.file_glob",
"export removed: SKILL_ENTRY_INERT_REASONS (variable)",
"export removed: SkillEntryInertReason (type)",
"signature changed: ToolGateInput.suspendAsk — param 6 `allowRuleShadowed` type changed, direction not read: [string -> readonly import(\"./allow-rule-shadow.js\").AllowRuleShadow[]]",
"signature changed: buildRiskDescriptor — param 1 `input` type changed, direction not read: …ne?: ShellGateDoctrine; [shadowedRule?: string -> allowRuleShadowed?: readonly import(\"./allow-rule-shadow.js\").AllowRu…]; probeReason?: string; …",
"type lost keys: AskRequest -persistedRuleShadowed",
"type lost keys: PermissionResult -ask.persistedRuleShadowed",
"type lost keys: PreToolUseResult -ask.persistedRuleShadowed",
"type lost keys: RiskDescriptor -shadowedRule"
]
}