@sema-agent/core
Version:
Stateless, task-oriented AI agent core
2,422 lines • 61.2 kB
JSON
{
"repo": "core",
"version": "7.51.0",
"from": "001a2d1ae3bc2a3a21a7d2c962af5632156632cf",
"to": "1b77945f89c5a5115a7e7bc07e2d6c6d822ba780",
"added": [
{
"name": "APPROVAL_ROUTES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/wiring-manifest.ts:728",
"src/index.ts:3508"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "AllowEntryInertDetail",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:53",
"src/index.ts:1479"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ApprovalRoute",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/wiring-manifest.ts:729",
"src/index.ts:3508"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "BOUND_GRANT_ABSENCES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/skill-grant-binding.ts:26",
"src/index.ts:3514"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "BoundGrantAbsence",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/skill-grant-binding.ts:27",
"src/index.ts:3514"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "COWORK_PROMPT_SECTIONS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/index.ts:2563",
"src/prompts/cowork.ts:602"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ConsolidationWriteJudgeInput",
"kind": "interface",
"tier": "internal",
"at": [
"src/core/runner/memory-consolidation-write-judge.ts:30",
"src/index.ts:2429"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "DISPOSABLE_PROMPT_SECTIONS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:18",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "DisposablePromptSection",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:19",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "Egress",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/untrusted-egress.ts:42",
"src/index.ts:2964"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "EgressTier",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/untrusted-egress.ts:39",
"src/index.ts:2964"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "McpInstructionsEntry",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:53",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "McpMountIdentity",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/mcp-server-spec.ts:143",
"src/core/types.ts:32",
"src/index.ts:3519"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "McpRevocationLedger",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/mcp-server-spec.ts:148",
"src/core/types.ts:32",
"src/index.ts:3519"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "MediaDescriptor",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/media-byte-cap.ts:67",
"src/index.ts:159"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "PromptSectionAuthor",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:37",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "PromptSectionDisposition",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:34",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "PromptSectionEntry",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/prompt-section-seat.ts:23",
"src/index.ts:3517"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "REOPEN_REASONS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/checkpoint-store.ts:1850",
"src/core/resume-startup-cause.ts:43",
"src/index.ts:802"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "RESUME_STARTUP_CAUSES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/resume-startup-cause.ts:46",
"src/index.ts:802"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "RETIRED_MEMBERS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/gate-outcome.ts:444",
"src/index.ts:1490"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "RULE_OFFERS_ABSENCES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/ask-origin.ts:203",
"src/index.ts:3513"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ResumeStartupCause",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/resume-startup-cause.ts:47",
"src/index.ts:802"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "RuleEntryReading",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:129",
"src/index.ts:1479"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "RuleOffersAbsence",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/ask-origin.ts:204",
"src/index.ts:3513"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "SHADOW_REASON",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:570",
"src/index.ts:3511"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "SessionRuleEntryField",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:48",
"src/index.ts:376"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "SessionRuleEntryRefusal",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:85",
"src/index.ts:375"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "SessionRuleShapeRefusal",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:78",
"src/index.ts:374"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "TASK_NOTIFICATION_TERMINAL_STATUSES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/task-notification.ts:10",
"src/index.ts:986"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "TaskNotificationTerminalStatus",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/task-notification.ts:11",
"src/index.ts:987"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "allowRuleShadowSentence",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:625",
"src/index.ts:3511"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "approvalRouteOf",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/wiring-manifest.ts:738",
"src/index.ts:3508"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "cardDisclosureOf",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:638",
"src/index.ts:3511"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "coworkPromptProvider",
"kind": "function",
"tier": "advanced",
"at": [
"src/index.ts:2563",
"src/prompts/cowork.ts:591"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "createConsolidationWriteJudge",
"kind": "function",
"tier": "internal",
"at": [
"src/core/runner/memory-consolidation-write-judge.ts:86",
"src/index.ts:2429"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "deliverWriteRefusal",
"kind": "function",
"tier": "internal",
"at": [
"src/core/runner/memory-consolidation-write-judge.ts:117",
"src/index.ts:2429"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "isMediaBlock",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/media-byte-cap.ts:61",
"src/index.ts:159"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "isRetiredMember",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/gate-outcome.ts:493",
"src/index.ts:1490"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "judgeSessionRulesWrite",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:327",
"src/index.ts:371"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "mediaBlockDescriptor",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/media-byte-cap.ts:73",
"src/index.ts:159"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "noApproverSeatDeny",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/tool-policy.ts:384",
"src/index.ts:1401"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "readRuleEntry",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:141",
"src/index.ts:1479"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "readSessionRulesShape",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:242",
"src/index.ts:372"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "reopenReasonOf",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/resume-startup-cause.ts:84",
"src/index.ts:802"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "resumeStartupCauseOf",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/resume-startup-cause.ts:66",
"src/index.ts:802"
],
"criteriaCovered": false,
"breaking": false
}
],
"removed": [
{
"name": "SessionRuleNameRefusal",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:66",
"src/index.ts:372"
],
"breaking": true
},
{
"name": "assertSessionRuleNamesCurrent",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:133",
"src/index.ts:370"
],
"breaking": true
},
{
"name": "compileAllowEntry",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:177",
"src/index.ts:1469"
],
"breaking": true
},
{
"name": "stripRev",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/session-policy-store.ts:359",
"src/index.ts:369"
],
"breaking": true
}
],
"changed": [
{
"name": "ShellReadVerdict",
"from": {
"kind": "interface",
"tier": "advanced"
},
"to": {
"kind": "type",
"tier": "advanced"
},
"at": [
"src/index.ts:1129",
"src/tools/fs/shell-read-check.ts:88"
],
"breaking": true
}
],
"narrowed": [
{
"id": "F5",
"source": "behaviorFlips.summary",
"text": "#1480 (behaviour narrowing): a session `toolAllow` is a narrowing — a command line is admitted only when EVERY segment is named by an entry."
},
{
"id": "F8",
"source": "behaviorFlips.summary",
"text": "#1534 (hard-breaking; auto-mode narrowing): a removal whose target the command text cannot resolve is a person's question, never the classifier's; the three removal-breaker classes hold one frozen row."
},
{
"id": "F12",
"source": "behaviorFlips.summary",
"text": "#1493 (hard-breaking notice reading; behaviour narrowing of the person's reach): a delegated child under a parent in `auto` arms from the ancestor's face, and the fold notice names the folded word on the parent's stream too."
},
{
"id": "F20",
"source": "behaviorFlips.summary",
"text": "#1561 / #1562 (additive; behaviour narrowing of the admission): the desktop Cowork base is carried verbatim as data and rendered section by section only where every operational claim in a section is established by a fact here."
},
{
"id": "F23",
"source": "behaviorFlips.summary",
"text": "#1708 (security; behaviour narrowing): a read station's answer is read one way by every reader — the resumed leg's belt refuses a RETURNED silence as it refused a thrown one."
},
{
"id": "F25",
"source": "behaviorFlips.summary",
"text": "#1694 (security; behaviour narrowing): a resolver that fails for a whole command is not an adapter without a file face."
},
{
"id": "F26",
"source": "behaviorFlips.summary",
"text": "#1684 (security; behaviour narrowing): a followed sed backup the station cannot follow is still a write."
},
{
"id": "G2",
"source": "criteria.title",
"text": "#1480 / #1497 / #1522 — a session's toolDeny / toolAllow are rule entries of one grammar (toolAllow narrows), commandAllow / commandDeny are retired, the store refuses in one family, and no refusal carries stored text"
}
],
"closedSetMembers": [
{
"set": "ADMITTED_DOCUMENT_MIME_TYPES",
"at": [
"src/tools/fs/image-admission.ts:87"
],
"newSet": true,
"added": [
"application/pdf"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "APPROVAL_ROUTES",
"at": [
"src/core/wiring-manifest.ts:728"
],
"newSet": true,
"added": [
"durable_park",
"live_approver",
"none"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ASK_CLASSES",
"at": [
"src/core/ask-origin.ts:631"
],
"newSet": false,
"added": [],
"removed": [
"governance_unavailable"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "AdmissionPosture",
"at": [
"src/core/permission-rule-model.ts:2391"
],
"newSet": true,
"added": [
"grant",
"narrowing"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ApprovalRoute",
"at": [
"src/core/wiring-manifest.ts:729",
"src/index.ts:3508"
],
"newSet": true,
"added": [
"durable_park",
"live_approver",
"none"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "AskRequest.ruleOffersAbsence",
"at": [
"src/core/tool-policy.ts:2666"
],
"newSet": false,
"added": [
"allow_outranked",
"ask_rule_matched"
],
"removed": [
"shadowed"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "BOUND_GRANT_ABSENCES",
"at": [
"src/core/skill-grant-binding.ts:26"
],
"newSet": true,
"added": [
"not_bindable",
"unreadable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "BackgroundChildEvent.stoppedBy",
"at": [
"src/core/delegation-frames.ts:196"
],
"newSet": false,
"added": [],
"removed": [
"parent",
"system",
"user"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "BoundGrantAbsence",
"at": [
"src/core/skill-grant-binding.ts:27",
"src/index.ts:3514"
],
"newSet": true,
"added": [
"not_bindable",
"unreadable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DISPOSABLE_PROMPT_SECTIONS",
"at": [
"src/core/prompt-section-seat.ts:18"
],
"newSet": true,
"added": [
"core/discovery.mcp-instructions"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DisposablePromptSection",
"at": [
"src/core/prompt-section-seat.ts:19",
"src/index.ts:3517"
],
"newSet": true,
"added": [
"core/discovery.mcp-instructions"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ENGINE_NOTICE_CODES",
"at": [
"src/core/governance-codes.ts:361"
],
"newSet": false,
"added": [
"config.read_deny_swapped",
"permission.entry_mode_clamped",
"tool_result.media_refused"
],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"set": "EgressTier",
"at": [
"src/core/untrusted-egress.ts:39"
],
"newSet": true,
"added": [
"human",
"same-principal"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "MediaRefusalReason",
"at": [
"src/tools/fs/image-admission.ts:106"
],
"newSet": true,
"added": [
"base64_too_large",
"magic_mismatch",
"mime_unsupported",
"raw_too_large",
"undecodable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "PendingAction.ruleOffersAbsence",
"at": [
"src/core/checkpoint-store.ts:1034"
],
"newSet": false,
"added": [
"allow_outranked",
"ask_rule_matched"
],
"removed": [
"shadowed"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "PromptSectionAuthor",
"at": [
"src/core/prompt-section-seat.ts:37"
],
"newSet": true,
"added": [
"host",
"server"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "READ_DENY_DEPLOYMENT_SEATS",
"at": [
"src/core/read-face-seats.ts:41"
],
"newSet": true,
"added": [
"readDenyBuiltinExclude",
"readDenyBuiltinTiers",
"readDenyPatterns"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "REOPEN_REASONS",
"at": [
"src/core/resume-startup-cause.ts:43"
],
"newSet": true,
"added": [
"config_refused",
"constraint_rejected",
"env_failed",
"tool_unavailable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "RESUME_STARTUP_CAUSES",
"at": [
"src/core/resume-startup-cause.ts:46"
],
"newSet": true,
"added": [
"configuration",
"decision_rejected",
"environment",
"session_gone",
"tool_unavailable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "RULE_OFFERS_ABSENCES",
"at": [
"src/core/ask-origin.ts:203"
],
"newSet": true,
"added": [
"allow_outranked",
"ask_rule_matched",
"lane_cannot_speak",
"mandated"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReadDenyDeploymentSeat",
"at": [
"src/core/read-face-seats.ts:42"
],
"newSet": true,
"added": [
"readDenyBuiltinExclude",
"readDenyBuiltinTiers",
"readDenyPatterns"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReopenReason",
"at": [
"src/core/checkpoint-store.ts:1850",
"src/core/resume-startup-cause.ts:44",
"src/index.ts:779"
],
"newSet": false,
"added": [
"config_refused"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ResumeStartupCause",
"at": [
"src/core/resume-startup-cause.ts:47",
"src/index.ts:802"
],
"newSet": true,
"added": [
"configuration",
"decision_rejected",
"environment",
"session_gone",
"tool_unavailable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "RoutePairingPosture",
"at": [
"src/engine/llm/types.ts:1167"
],
"newSet": false,
"added": [],
"removed": [
"unpinned"
],
"breaking": true,
"criteriaCovered": false
},
{
"set": "RoutePairingStatus",
"at": [
"src/brain/route-adjudicator.ts:640"
],
"newSet": false,
"added": [],
"removed": [
"ok:unpinned"
],
"breaking": true,
"criteriaCovered": false
},
{
"set": "RuleOffersAbsence",
"at": [
"src/core/ask-origin.ts:204",
"src/index.ts:3513"
],
"newSet": true,
"added": [
"allow_outranked",
"ask_rule_matched",
"lane_cannot_speak",
"mandated"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SWAPPABLE_DEP_SEATS",
"at": [
"src/core/swappable-deps.ts:74"
],
"newSet": false,
"added": [
"readDenyBuiltinExclude",
"readDenyBuiltinTiers",
"readDenyPatterns"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SessionPolicyError.code",
"at": [
"src/core/session-policy-store.ts:99"
],
"newSet": false,
"added": [
"inert_entry",
"invalid_shape"
],
"removed": [
"legacy_tool_name"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "SkillsDirectoryWarningCode",
"at": [
"src/core/skills-directory.ts:56"
],
"newSet": false,
"added": [
"outside_root"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "TASK_NOTIFICATION_TERMINAL_STATUSES",
"at": [
"src/core/task-notification.ts:10"
],
"newSet": true,
"added": [
"cancelled",
"completed",
"failed",
"killed"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "TaskNotificationTerminalStatus",
"at": [
"src/core/task-notification.ts:11",
"src/index.ts:987"
],
"newSet": true,
"added": [
"cancelled",
"completed",
"failed",
"killed"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "AllowEntryInert",
"at": [
"src/core/allow-entry.ts:76"
],
"via": "SkillGrantHit.readsAsNothing",
"added": [
"guidance"
],
"addedDetail": [
{
"key": "guidance",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "AskRequest",
"at": [
"src/core/tool-policy.ts:2535"
],
"added": [
"boundGrantAbsence"
],
"addedDetail": [
{
"key": "boundGrantAbsence",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "BackgroundChildEvent",
"at": [
"src/core/delegation-frames.ts:25"
],
"added": [
"result"
],
"addedDetail": [
{
"key": "result",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "CheckpointSummary",
"at": [
"src/core/checkpoint-store.ts:2109"
],
"added": [
"boundGrantAbsence"
],
"addedDetail": [
{
"key": "boundGrantAbsence",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "ClassifierUnavailableInfo",
"at": [
"src/core/classifier-unavailable-arm.ts:35"
],
"added": [
"route"
],
"addedDetail": [
{
"key": "route",
"optional": false
}
],
"addedRequired": [
"route"
],
"removed": [
"disposition"
],
"breaking": true,
"criteriaCovered": true
},
{
"type": "ClassifierUnavailableSeat",
"at": [
"src/core/classifier-unavailable-arm.ts:46"
],
"added": [
"route"
],
"addedDetail": [
{
"key": "route",
"optional": true
}
],
"addedRequired": [],
"removed": [
"approvalSeat"
],
"breaking": true,
"criteriaCovered": true
},
{
"type": "InheritedGate",
"at": [
"src/core/runner/contracts.ts:1236"
],
"via": "RunInternals.inheritedGate",
"added": [
"autoModeFace"
],
"addedDetail": [
{
"key": "autoModeFace",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "MaterializedMcp",
"at": [
"src/core/mcp.ts:182"
],
"added": [
"instructionsDelta.pendingAdds[].author",
"serverInstructions[].author"
],
"addedDetail": [
{
"key": "instructionsDelta.pendingAdds[].author",
"optional": false
},
{
"key": "serverInstructions[].author",
"optional": false
}
],
"addedRequired": [
"instructionsDelta.pendingAdds[].author",
"serverInstructions[].author"
],
"removed": [],
"breaking": true,
"criteriaCovered": false
},
{
"type": "McpServerSpec",
"at": [
"src/core/mcp-server-spec.ts:14"
],
"added": [
"fingerprint"
],
"addedDetail": [
{
"key": "fingerprint",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "PendingAction",
"at": [
"src/core/checkpoint-store.ts:967"
],
"added": [
"tool_approval.boundGrantAbsence"
],
"addedDetail": [
{
"key": "tool_approval.boundGrantAbsence",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "PromptProvider",
"at": [
"src/prompts/default.ts:1173"
],
"added": [
"section"
],
"addedDetail": [
{
"key": "section",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "RoutePairingConfig",
"at": [
"src/engine/llm/types.ts:1158"
],
"added": [
"laneDefault"
],
"addedDetail": [
{
"key": "laneDefault",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "SessionPermissionRules",
"at": [
"src/core/session-policy-store.ts:32"
],
"added": [],
"addedDetail": [],
"addedRequired": [],
"removed": [
"commandAllow",
"commandDeny"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "ShellReadVerdict",
"at": [
"src/tools/fs/shell-read-check.ts:88"
],
"arms": "flattened",
"added": [],
"addedDetail": [],
"addedRequired": [],
"removed": [
"admit",
"details",
"disposition",
"environmentSilent",
"face",
"finding",
"readRootCandidate",
"rowsUnread",
"sentence",
"targetUnresolved",
"unestablished",
"unplacedOptions",
"unplacedOptions.program",
"writeProtected",
"writesPlaced"
],
"uncertain": "admit, details, disposition, environmentSilent, face, finding, readRootCandidate, rowsUnread, sentence, targetUnresolved, unestablished, unplacedOptions, unplacedOptions.program, writeProtected, writesPlaced may have moved into a qualified reference (`ShellReadVouch`); a qualified reference (`ShellReadQuestion`) rather than left this type — this reader does not follow those, so check before writing the BREAKING line",
"breaking": true,
"criteriaCovered": false
},
{
"type": "SkillsDirectoryOptions",
"at": [
"src/core/skills-directory.ts:87"
],
"added": [
"containWithin"
],
"addedDetail": [
{
"key": "containWithin",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "StablePromptContext",
"at": [
"src/prompts/default.ts:1002"
],
"added": [
"envFacts"
],
"addedDetail": [
{
"key": "envFacts",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "StoredSessionRules",
"at": [
"src/core/session-policy-store.ts:56"
],
"added": [],
"addedDetail": [],
"addedRequired": [],
"removed": [
"commandAllow",
"commandDeny"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "ToolCallRequest",
"at": [
"src/core/tool-policy.ts:57"
],
"added": [
"approvalReach"
],
"addedDetail": [
{
"key": "approvalReach",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
}
],
"typeKeysUnreadableArms": [
{
"type": "ReopenReason",
"at": "src/core/resume-startup-cause.ts:44",
"reasons": [
"the two refs do not name this type's union arms the same way (flat -> no union read), so the delta below is stated at UNION level, with arm prefixes dropped — a key that moved between arms without leaving the union is not visible in it"
]
},
{
"type": "ShellReadVerdict",
"at": "src/tools/fs/shell-read-check.ts:88",
"reasons": [
"a union carrying 2 arm(s) whose keys this reader does not follow (a qualified reference (`ShellReadVouch`); a qualified reference (`ShellReadQuestion`)) — a key missing from this type at `to` is still reported REMOVED, carrying `uncertain` so the writer checks whether it moved there",
"a union of 0 key-bearing arm(s) with no discriminating property (no property is declared by every key-bearing arm with literal words that no other arm shares), so its arms are read TOGETHER — a key added to one arm while a sibling already carries that name moves nothing in this manifest",
"the two refs do not name this type's union arms the same way (no union read -> flat), so the delta below is stated at UNION level, with arm prefixes dropped — a key that moved between arms without leaving the union is not visible in it"
]
}
],
"typeKeysFlattenedCount": 229,
"signatures": [
{
"name": "RunnerDeps.loadProjectMemory",
"at": [
"src/core/runner-deps.ts:1110"
],
"from": [
"(ctx: { cwd: string; handsEnabled: boolean; isSubagent: boolean; agentName?: string; sessionId?: string; phase?: \"fresh\" | \"resume\" | \"post-compact\" | \"post-clear\"; }): ProjectMemoryLoad | Promise<string | null | ProjectMemoryLoad> | null | string"
],
"to": [
"(ctx: { cwd: string; handsEnabled: boolean; isSubagent: boolean; agentName?: string; sessionId?: string; runId?: string; phase?: \"fresh\" | \"resume\" | \"post-compact\" | \"post-clear\"; }): ProjectMemoryLoad | Promise<string | null | ProjectMemoryLoad> | null | string"
],
"changes": [
{
"aspect": "param",
"detail": "param 1 `ctx` type widened: …ng; sessionId?: string; [ -> runId?: string; ]phase?: \"fresh\" | \"resum…",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "SessionPolicyError.constructor",
"at": [
"src/core/session-policy-store.ts:98"
],
"from": [
"(code: \"conflict\" | \"corrupt\" | \"legacy_tool_name\" | \"loosen_forbidden\", message: string, detail?: SessionRuleNameRefusal)"
],
"to": [
"(code: \"conflict\" | \"corrupt\" | \"inert_entry\" | \"invalid_shape\" | \"loosen_forbidden\", message: string, detail?: SessionRuleEntryRefusal | SessionRuleShapeRefusal)"
],
"changes": [
{
"aspect": "param",
"detail": "param 3 `detail` type changed, direction not read: SessionRule[Nam -> EntryRefusal | SessionRuleShap]eRefusal",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 3 `detail` type changed, direction not read: SessionRule[Nam -> EntryRefusal | SessionRuleShap]eRefusal — 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": "boundedRedactedSummary",
"at": [
"src/core/untrusted-egress.ts:346"
],
"from": [
"(value: unknown, max: number): string"
],
"to": [
"(value: unknown, max: number): Egress<\"same-principal\">"
],
"changes": [
{
"aspect": "returns",
"detail": "return type [string -> Egress<\"same-principal\">]",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
},
{
"name": "createSessionRulePolicy",
"at": [
"src/core/runner/session-rule-policy.ts:323"
],
"from": [
"(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; }): NamedToolPolicy"
],
"to": [
"(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; anchors?: PathRuleBases; }): NamedToolPolicy"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `opts` type widened: …ap<string, ToolEffect>; [ -> anchors?: PathRuleBases; ]}",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "findAdmittingRule",
"at": [
"src/core/permission-rule-model.ts:2383"
],
"from": [
"(rules: readonly PersistedRule[], call: { tool: string; command: string; cwd: string | undefined; sessionId?: string; execCwd?: string; }): readonly PersistedRule[] | undefined"
],
"to": [
"(rules: readonly PersistedRule[], call: AdmissionCall): readonly PersistedRule[] | undefined"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `call` type changed, direction not read: [{ tool: string; command: string; cwd: string | undefined; sessionId?:… -> AdmissionCall]",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 2 `call` type changed, direction not read: [{ tool: string; command: string; cwd: string | undefined; sessionId?:… -> AdmissionCall] — 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": "materializeMcpTools",
"at": [
"src/core/mcp.ts:1956"
],
"from": [
"(specs: McpServerSpec[], principal?: string, onElicit?: OnElicit, imageResizer?: McpImageResizer, reminderDisclosure?: { reminderMark?: string; counts?: ReminderDisclosureCounts; }, mcpRevocations?: { isRevoked(serverName: string): boolean; onProbeFailure?: (error: unknown) => void; }, poolOpts?: { pool: McpConnectionPool; ownsPool?: boolean; }): Promise<MaterializedMcp>"
],
"to": [
"(specs: McpServerSpec[], principal?: string, onElicit?: OnElicit, imageResizer?: McpImageResizer, reminderDisclosure?: { reminderMark?: string; counts?: ReminderDisclosureCounts; }, mcpRevocations?: McpRevocationLedger & { onProbeFailure?: (error: unknown) => void; }, poolOpts?: { pool: McpConnectionPool; ownsPool?: boolean; }, promptSections?: PromptSectionSeat): Promise<MaterializedMcp>"
],
"changes": [
{
"aspect": "param",
"detail": "param 6 `mcpRevocations` type changed, direction not read: [{ isRevoked(serverName: string): boolean; -> McpRevocationLedger & {] onProbeFailure?: (error…",
"breaking": true,
"uncertain": true
},
{
"aspect": "param",
"detail": "+optional param `promptSections?: PromptSectionSeat`",
"breaking": false
}
],
"uncertain": "param 6 `mcpRevocations` type changed, direction not read: [{ isRevoked(serverName: string): boolean; -> McpRevocationLedger & {] onProbeFailure?: (error… — 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": "normalizeRules",
"at": [
"src/core/session-policy-store.ts:275"
],
"from": [
"(rules: SessionPermissionRules): SessionPermissionRules"
],
"to": [
"(rules: unknown): SessionPermissionRules"
],
"changes": [
{
"aspect": "param",
"detail": "param 1 `rules` type changed, direction not read: [SessionPermissionRules -> unknown]",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 1 `rules` type changed, direction not read: [SessionPermissionRules -> unknown] — 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": "redactHostLeaks",
"at": [
"src/core/untrusted-egress.ts:129"
],
"from": [
"(s: string, report?: RedactionReport): string"
],
"to": [
"(s: string, report?: RedactionReport): Egress<\"human\">"
],
"changes": [
{
"aspect": "returns",
"detail": "return type [string -> Egress<\"human\">]",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
},
{
"name": "redactSecrets",
"at": [
"src/core/untrusted-egress.ts:124"
],
"from": [
"(s: string, report?: RedactionReport): string"
],
"to": [
"(s: string, report?: RedactionReport): Egress<\"same-principal\">"
],
"changes": [
{
"aspect": "returns",
"detail": "return type [string -> Egress<\"same-principal\">]",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
},
{
"name": "screenGateOutcome",
"at": [
"src/core/gate-outcome.ts:554"
],
"from": [
"(g: GateOutcome): string[]"
],
"to": [
"(g: unknown, opts?: { readonly reading?: \"archive\" | \"producer\"; }): string[]"
],
"changes": [
{
"aspect": "param",
"detail": "param 1 `g` type changed, direction not read: [GateOutcome -> unknown]",
"breaking": true,
"uncertain": true
},
{
"aspect": "param",
"detail": "+optional param `opts?: { readonly reading?: \"archive\" | \"producer\"; }`",
"breaking": false
}
],
"uncertain": "param 1 `g` type changed, direction not read: [GateOutcome -> unknown] — 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": "untrustedEgressForHuman",
"at": [
"src/core/untrusted-egress.ts:355"
],
"from": [
"(value: unknown, opts: { label: string; max: number; }): string"
],
"to": [
"(value: unknown, opts: { label: string; max: number; }): Egress<\"human\">"
],
"changes": [
{
"aspect": "returns",
"detail": "return type [string -> Egress<\"human\">]",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
}
],
"declarationMoves": [
{
"name": "AllowEntryInertDetail",
"kind": "interface",
"onSurface": true,
"from": [
"src/core/allow-entry.ts"
],
"to": [
"src/core/allow-entry.ts",
"src/index.ts"
]
},
{
"name": "ProtocolHttpAuth",
"kind": null,
"onSurface": false,
"from": [
"src/core/mcp.ts"
],
"to": [
"src/core/protocol-http-auth.ts"
]
},
{
"name": "RedactionConfidence",
"kind": "type",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/credential-vocabulary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/credential-vocabulary.ts",
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
},
{
"name": "RedactionFinding",
"kind": "interface",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
},
{
"name": "RedactionPass",
"kind": null,
"onSurface": false,
"from": [
"src/core/arg-summary.ts"
],
"to": [
"src/core/redaction-passes.ts"
]
},
{
"name": "RedactionReport",
"kind": "interface",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
},
{
"name": "RedactionSource",
"kind": "type",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/credential-vocabulary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/credential-vocabulary.ts",
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
},
{
"name": "ReopenReason",
"kind": "type",
"onSurface": true,
"from": [
"src/core/checkpoint-store.ts",
"src/index.ts"
],
"to": [
"src/core/checkpoint-store.ts",
"src/core/resume-startup-cause.ts",
"src/index.ts"
]
},
{
"name": "SummarizableFinding",
"kind": "interface",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
},
{
"name": "allowRuleShadowSentence",
"kind": "function",
"onSurface": true,
"from": [
"src/core/allow-entry.ts"
],
"to": [
"src/core/allow-entry.ts",
"src/index.ts"
]
},
{
"name": "cardDisclosureOf",
"kind": "function",
"onSurface": true,
"from": [
"src/core/allow-entry.ts"
],
"to": [
"src/core/allow-entry.ts",
"src/index.ts"
]
},
{
"name": "deliverWriteRefusal",
"kind": "function",
"onSurface": true,
"from": [
"src/core/runner/memory-consolidation-write-judge.ts"
],
"to": [
"src/core/runner/memory-consolidation-write-judge.ts",
"src/index.ts"
]
},
{
"name": "egressPasses",
"kind": null,
"onSurface": false,
"from": [
"src/core/arg-summary.ts"
],
"to": [
"src/core/redaction-passes.ts"
]
},
{
"name": "notifyResultField",
"kind": null,
"onSurface": false,
"from": [
"src/agents/subagent.ts"
],
"to": [
"src/core/task-notification.ts"
]
},
{
"name": "resolveProtocolHttpHeaders",
"kind": null,
"onSurface": false,
"from": [
"src/core/mcp.ts"
],
"to": [
"src/core/protocol-http-auth.ts"
]
},
{
"name": "runRedactionPasses",
"kind": null,
"onSurface": false,
"from": [
"src/core/arg-summary.ts"
],
"to": [
"src/core/redaction-passes.ts"
]
},
{
"name": "summarizeRedactions",
"kind": "function",
"onSurface": true,
"from": [
"src/core/arg-summary.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
],
"to": [
"src/core/redaction-passes.ts",
"src/core/untrusted-egress.ts",
"src/index.ts"
]
}
],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "engineNoticeCode",
"name": "classifier.unavailable",
"assertions": [
"G5.a"
]
},
{
"kind": "engineNoticeCode",
"name": "config.permission_mode_unavailable",
"assertions": [
"G5.c"
]
},
{
"kind": "engineNoticeCode",
"name": "config.read_deny_swapped",
"assertions": [
"G10.c"
]
},
{
"kind": "engineNoticeCode",
"name": "memory.consolidation_refused",
"assertions": [
"G15.b",
"G17.a"
]
},
{
"kind": "engineNoticeCode",
"name": "tool_result.media_refused",
"assertions": [
"G14.a"
]
},
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G2.a",
"G3.b",
"G5.a",
"G5.c",
"G11.a",
"G11.b",
"G11.c",
"G11.d",
"G13.c"
]
},
{
"kind": "taskEventField",
"name": "tool_end.isError",
"assertions": [
"G6.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.output",
"assertions": [
"G6.b",
"G7.a",
"G7.b",
"G11.a",
"G14.a",
"G14.b",
"G15.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.askClass",
"assertions": [
"G3.a",
"G3.b",
"G11.c"
]
},
{
"kind": "typeMember",
"name": "AskRequest.boundGrantAbsence",
"assertions": [
"G4.b"
]
},
{
"kind": "typeMember",
"name": "AskRequest.classes",
"assertions": [
"G3.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.message",
"assertions": [
"G11.d"
]
},
{
"kind": "typeMember",
"name": "AskRequest.ruleOffersAbsence",
"assertions": [
"G4.a"
]
},
{
"kind": "typeMember",
"name": "AssistantMessage.errorMessage",
"assertions": [
"G1.a",
"G1.b",
"G1.c"
]
},
{
"kind": "typeMember",
"name": "AssistantMessage.stopReason",
"assertions": [
"G1.a"
]
},
{
"kind": "typeMember",
"name": "BackgroundChildEvent.result",
"assertions": [
"G6.c"
]
},
{
"kind": "typeMember",
"name": "Checkpoint.reopenReason",
"assertions": [
"G6.a"
]
},
{
"kind": "typeMember",
"name": "CheckpointSummary.boundGrantAbsence",
"assertions": [
"G4.b"
]
},
{
"kind": "typeMember",
"name": "ClassifierUnavailableInfo.route",
"assertions": [
"G5.b"
]
},
{
"kind": "typeMember",
"name": "ClassifierUnavailableSeat.route",
"assertions": [
"G5.b"
]
},
{
"kind": "typeMember",
"name": "EngineNotice.code",
"assertions": [
"G5.b"
]
},
{
"kind": "typeMember",
"name": "GateOutcome.disposition",
"assertions": [
"G13.a",
"G13.b"
]
},
{
"kind": "typeMember",
"name": "MaterializedA2a.warnings",
"assertions": [
"G8.b"
]
},
{
"kind": "typeMember",
"name": "MaterializedMcp.warnings",
"assertions": [
"G8.a",
"G10.a"
]
},
{
"kind": "typeMember",
"name": "McpServerSpec.fingerprint",
"assertions": [
"G10.b"
]
},
{
"kind": "typeMember",
"name": "McpServerStatus.delivered",
"assertions": [
"G8.a"
]
},
{
"kind": "typeMember",
"name": "McpServerStatus.errorCode",
"assertions": [
"G8.a",
"G10.b"
]
},
{
"kind": "typeMember",
"name": "McpServerStatus.status",
"assertions": [
"G8.a"
]
},
{
"kind": "typeMember",
"name": "ModeRelease.reason",
"assertions": [
"G13.a"
]
},
{
"kind": "typeMember",
"name": "PendingAction.ruleOffersAbsence",
"assertions": [
"G4.a"
]
},
{
"kind": "typeMember",
"name": "PermissionResult.message",
"assertions": [
"G2.a",
"G2.c"
]
},
{
"kind": "typeMember",
"name": "PromptProvider.section",
"assertions": [
"G10.a"
]
},
{
"kind": "typeMember",
"name": "RedactionFinding.kind",
"assertions": [
"G7.b"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyError.code",
"assertions": [
"G2.b"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyError.detail",
"assertions": [
"G2.b"
]
},
{
"kind": "typeMember",
"name": "ShellReadVerdict.disposition",
"assertions": [
"G11.b"
]
},
{
"kind": "typeMember",
"name": "ShellReadVerdict.finding",
"assertions": [
"G11.b"
]
},
{
"kind": "typeMember",
"name": "SkillsDirectoryOptions.containWithin",
"assertions": [
"G12.a"
]
},
{
"kind": "typeMember",
"name": "SkillsDirectoryWarning.code",
"assertions": [
"G12.a"
]
},
{
"kind": "typeMember",
"name": "StablePromptContext.envFacts",
"assertions": [
"G9.b"
]
},
{
"kind": "typeMember",
"name": "TaskResult.runId",
"assertions": [
"G10.c"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.agents",
"assertions": [
"G16.a",
"G16.b"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.excludeTools",
"assertions": [
"G16.a"
]
},
{
"kind": "typeMember",
"name": "ToolCallRequest.approvalReach",
"assertions": [
"G17.b"
]
},
{
"kind": "typeMember",
"name": "TraceEvent.sections",
"assertions": [
"G9.a",
"G9.b"
]
}
],
"consumersHint": {
"cli": [
"ASK_CLASSES",
"AllowEntryInert",
"AllowEntryInertDetail",
"AskRequest",
"BackgroundChildEvent",
"CheckpointSummary",
"ENGINE_NOTICE_CODES",
"Egress",
"InheritedGate",
"MaterializedMcp",
"McpServerSpec",
"PendingAction",
"RunnerDeps",
"SWAPPABLE_DEP_SEATS",
"SessionPermissionRules",
"SessionPolicyError",
"SessionRuleNameRefusal",
"ShellReadVerdict",
"SkillsDirectoryOptions",
"SkillsDirectoryWarningCode",
"StablePromptContext",
"StoredSessionRules",
"TASK_NOTIFICATION_TERMINAL_STATUSES",
"ToolCallRequest",
"allowRuleShadowSentence",
"compileAllowEntry",
"normalizeRules",
"redactSecrets",
"screenGateOutcome"
],
"server": [
"ASK_CLASSES",
"AskRequest",
"BackgroundChildEvent",
"CheckpointSummary",
"ENGINE_NOTICE_CODES",
"Egress",
"InheritedGate",
"MaterializedMcp",
"McpRevocationLedger",
"McpServerSpec",
"PendingAction",
"PromptProvider",
"ReopenReason",
"RoutePairingStatus",
"RuleOffersAbsence",
"RunnerDeps",
"SWAPPABLE_DEP_SEATS",
"SessionPermissionRules",
"SessionPolicyError",
"SessionRuleNameRefusal",
"SkillsDirectoryOptions",
"SkillsDirectoryWarningCode",
"StablePromptContext",
"StoredSessionRules",
"ToolCallRequest",
"assertSessionRuleNamesCurrent",
"boundedRedactedSummary",
"cardDisclosureOf",
"compileAllowEntry",
"createSessionRulePolicy",
"findAdmittingRule",
"isMediaBlock",
"materializeMcpTools",
"normalizeRules",
"redactHostLeaks",
"redactSecrets",
"screenGateOutcome",
"stripRev",
"untrustedEgressForHuman"
],
"sdk": [
"ASK_CLASSES",
"AskRequest",
"BackgroundChildEvent",
"CheckpointSummary",
"ENGINE_NOTICE_CODES",
"InheritedGate",
"McpServerSpec",
"PendingAction",
"RoutePairingPosture",
"RoutePairingStatus",
"RuleOffersAbsence",
"RunnerDeps",
"SessionPermissionRules",
"SessionPolicyError",
"StoredSessionRules",
"assertSessionRuleNamesCurrent",
"redactSecrets",
"screenGateOutcome"
],
"note": "scanned cli@1ffe7822 server@c5a3c03a sdk@308eee7 — 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: 5 name(s) matched ONLY in bookkeeping files and were set aside (ClassifierUnavailableInfo, ClassifierUnavailableSeat, RoutePairingConfig, RoutePairingPosture, ShellReadVerdict)"
},
"breakingCount": 28,
"breakingItems": [
"closed set lost members: ASK_CLASSES -governance_unavailable",
"closed set lost members: AskRequest.ruleOffersAbsence -shadowed",
"closed set lost members: BackgroundChildEvent.stoppedBy -parent,system,user",
"closed set lost members: PendingAction.ruleOffersAbsence -shadowed",
"closed set lost members: RoutePairingPosture -unpinned",
"closed set lost members: RoutePairingStatus -ok:unpinned",
"closed set lost members: SessionPolicyError.code -legacy_tool_name",
"export kind changed: ShellReadVerdict interface -> type",
"export removed: SessionRuleNameRefusal (interface)",
"export removed: assertSessionRuleNamesCurrent (function)",
"export removed: compileAllowEntry (function)",
"export removed: stripRev (function)",
"signature changed: SessionPolicyError.constructor — param 3 `detail` type changed, direction not read: SessionRule[Nam -> EntryRefusal | SessionRuleShap]eRefusal",
"signature changed: boundedRedactedSummary — return type [string -> Egress<\"same-principal\">]",
"signature changed: findAdmittingRule — param 2 `call` type changed, direction not read: [{ tool: string; command: string; cwd: string | undefined; sessionId?:… -> AdmissionCall]",
"signature changed: materializeMcpTools — param 6 `mcpRevocations` type changed, direction not read: [{ isRevoked(serverName: string): boolean; -> McpRevocationLedger & {] onProbeFailure?: (error…",
"signature changed: normalizeRules — param 1 `rules` type changed, direction not read: [SessionPermissionRules -> unknown]",
"signature changed: redactHostLeaks — return type [string -> Egress<\"human\">]",
"signature changed: redactSecrets — return type [string -> Egress<\"same-principal\">]",
"signature changed: screenGateOutcome — param 1 `g` type changed, direction not read: [GateOutcome -> unknown]",
"signature changed: untrustedEgressForHuman — return type [string -> Egress<\"human\">]",
"type gained required keys: ClassifierUnavailableInfo +route",
"type gained required keys: MaterializedMcp +instructionsDelta.pendingAdds[].author,serverInstructions[].author",
"type lost keys: ClassifierUnavailableInfo -disposition",
"type lost keys: ClassifierUnavailableSeat -approvalSeat",
"type lost keys: SessionPermissionRules -commandAllow,commandDeny",
"type lost keys: ShellReadVerdict -admit,details,disposition,environmentSilent,face,finding,readRootCandidate,rowsUnread,sentence,targetUnresolved,unestablished,unplacedOptions,unplacedOptions.program,writeProtected,writesPlaced",
"type lost keys: StoredSessionRules -commandAllow,commandDeny"
]
}