@sema-agent/core
Version:
Stateless, task-oriented AI agent core
1,700 lines (1,699 loc) • 42.8 kB
JSON
{
"repo": "core",
"version": "7.50.0",
"from": "fbce2704eecb13e80618cbb09416cc1e26ae297c",
"to": "548b94a2af65198d6e01c090944cfee23b4e144f",
"added": [
{
"name": "BoundFileObject",
"kind": "interface",
"tier": "internal",
"at": [
"src/engine/harness/types.ts:403",
"src/index.ts:517",
"src/internal/harness-types.ts:35"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "CONSOLIDATION_WRITE_REFUSED_CODE",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/memory-engine/consolidation-driver.ts:250",
"src/core/memory-engine/consolidation.ts:823",
"src/core/memory-engine/index.ts:293",
"src/index.ts:2207"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ConsolidationWriteGate",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/memory-engine/consolidation.ts:833",
"src/core/memory-engine/index.ts:230",
"src/index.ts:2137"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ConsolidationWriteJudge",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/memory-engine/consolidation-driver.ts:248",
"src/core/memory-engine/index.ts:300",
"src/index.ts:2215"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ConsolidationWriteTarget",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/memory-engine/consolidation-driver.ts:242",
"src/core/memory-engine/index.ts:301",
"src/index.ts:2216"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "HumanInputAttachment",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/task-event.ts:1178",
"src/core/types.ts:42",
"src/index.ts:1232"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENTS_MAX",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:39",
"src/index.ts:1227"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENT_KINDS",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:44",
"src/index.ts:1224"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENT_LABEL_MAX",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:41",
"src/index.ts:1228"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENT_OUTCOMES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:48",
"src/index.ts:1226"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENT_SEAT",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:63",
"src/index.ts:1223"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "USER_ATTACHMENT_SUPPLIES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:46",
"src/index.ts:1225"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachment",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/task-spec.ts:60",
"src/core/types.ts:23",
"src/index.ts:3416"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachmentDeclaration",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/user-attachment.ts:184",
"src/index.ts:1230"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachmentKind",
"kind": "type",
"tier": "advanced",
"at": [
"src/engine/llm/types.ts:481",
"src/index.ts:3389",
"src/internal/llm.ts:10"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachmentObservation",
"kind": "interface",
"tier": "advanced",
"at": [
"src/engine/llm/types.ts:488",
"src/index.ts:3390",
"src/internal/llm.ts:11"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachmentOutcome",
"kind": "type",
"tier": "advanced",
"at": [
"src/engine/llm/types.ts:485",
"src/index.ts:3391",
"src/internal/llm.ts:12"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserAttachmentSupply",
"kind": "type",
"tier": "advanced",
"at": [
"src/engine/llm/types.ts:483",
"src/index.ts:3392",
"src/internal/llm.ts:13"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "UserMessageAttachment",
"kind": "interface",
"tier": "advanced",
"at": [
"src/engine/llm/types.ts:500",
"src/index.ts:3388",
"src/internal/llm.ts:14"
],
"criteriaCovered": false,
"breaking": false
}
],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F8",
"source": "behaviorFlips.summary",
"text": "(#1311 car A2, #1290) the user-attachment seat: `TaskSpec.userAttachments` reaches the model as one marked user message per attachment right after the human message, under the run's synthetic-Read judgment; the Read / notebook / PDF trailers and the MCP disclosure block open after a blank line (narrowing; a hook's feedback block appended to a tool result is not on this rule)."
}
],
"closedSetMembers": [
{
"set": "AskGuard",
"at": [
"src/core/tool-policy.ts:439"
],
"newSet": true,
"added": [
"artifact_shared_read",
"dangerous_delete",
"transcript_write",
"unverifiable_delete",
"unverifiable_shell_text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "CHECKPOINT_CONFIG_REFUSAL_CODES",
"at": [
"src/core/checkpoint-store.ts:2477"
],
"newSet": false,
"added": [
"config.user_attachment_invalid"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "MODE_RELEASE_REASONS",
"at": [
"src/core/ask-origin.ts:786"
],
"newSet": false,
"added": [],
"removed": [
"rule_unreadable"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "PermissionResult.ruleUnreadable",
"at": [
"src/core/tool-policy.ts:605"
],
"newSet": false,
"added": [
"persisted_rows"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReadKind",
"at": [
"src/tools/fs/fs-read.ts:93"
],
"newSet": false,
"added": [
"directory"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SYNTHETIC_READ_UNANSWERABLE_CAUSES",
"at": [
"src/core/synthetic-read-verdict.ts:88"
],
"newSet": false,
"added": [
"rewritten",
"store_unreadable"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "TaskEvent.type",
"at": [
"src/core/task-event.ts:290",
"src/core/task-event.ts:312",
"src/core/task-event.ts:315",
"src/core/task-event.ts:317",
"src/core/task-event.ts:358",
"src/core/task-event.ts:390",
"src/core/task-event.ts:615",
"src/core/task-event.ts:629",
"src/core/task-event.ts:694",
"src/core/task-event.ts:780",
"src/core/task-event.ts:813",
"src/core/task-event.ts:825",
"src/core/task-event.ts:853",
"src/core/task-event.ts:875",
"src/core/task-event.ts:919",
"src/core/task-event.ts:927",
"src/core/task-event.ts:966",
"src/core/task-event.ts:1013",
"src/core/task-event.ts:1118",
"src/core/task-event.ts:1139",
"src/core/task-event.ts:1150",
"src/core/task-event.ts:1162",
"src/core/task-event.ts:1170"
],
"newSet": false,
"added": [
"task_started"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "USER_ATTACHMENT_KINDS",
"at": [
"src/core/user-attachment.ts:44"
],
"newSet": true,
"added": [
"client_image",
"client_text",
"directory",
"image",
"notebook",
"pdf",
"text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "USER_ATTACHMENT_SUPPLIES",
"at": [
"src/core/user-attachment.ts:46"
],
"newSet": true,
"added": [
"content_image",
"content_text",
"path"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "UserAttachmentKind",
"at": [
"src/engine/llm/types.ts:481"
],
"newSet": true,
"added": [
"client_image",
"client_text",
"directory",
"image",
"notebook",
"pdf",
"text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "UserAttachmentOutcome",
"at": [
"src/engine/llm/types.ts:485"
],
"newSet": true,
"added": [
"attached",
"not_attached",
"partial",
"unchanged"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "UserAttachmentSupply",
"at": [
"src/engine/llm/types.ts:483"
],
"newSet": true,
"added": [
"content_image",
"content_text",
"path"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "AskClassFacts",
"at": [
"src/core/ask-origin.ts:801"
],
"added": [
"ruleStoreUnreadable"
],
"addedDetail": [
{
"key": "ruleStoreUnreadable",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "AskOriginFacts",
"at": [
"src/core/ask-origin.ts:103"
],
"via": "AskClassFacts.AskOriginFacts",
"added": [
"ruleStoreUnreadable"
],
"addedDetail": [
{
"key": "ruleStoreUnreadable",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ConsolidationDriverEngine",
"at": [
"src/core/memory-engine/consolidation-driver.ts:231"
],
"added": [
"consolidationWriteHome"
],
"addedDetail": [
{
"key": "consolidationWriteHome",
"optional": false
}
],
"addedRequired": [
"consolidationWriteHome"
],
"removed": [],
"breaking": true,
"criteriaCovered": false
},
{
"type": "ConsolidationPlanFile",
"at": [
"src/core/memory-engine/consolidation.ts:565"
],
"via": "ConsolidationPlanFoldEvidence.ConsolidationPlanFile",
"added": [
"applier"
],
"addedDetail": [
{
"key": "applier",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "DriveConsolidationOptions",
"at": [
"src/core/memory-engine/distiller.ts:1337"
],
"via": "driveConsolidationToFixpoint.DriveConsolidationOptions",
"added": [
"writeGate"
],
"addedDetail": [
{
"key": "writeGate",
"optional": false
}
],
"addedRequired": [
"writeGate"
],
"removed": [],
"breaking": true,
"criteriaCovered": false
},
{
"type": "EngineAttestation",
"at": [
"src/core/tool-policy.ts:260"
],
"added": [
"pathDenial"
],
"addedDetail": [
{
"key": "pathDenial",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ExecutionEnv",
"at": [
"src/engine/harness/types.ts:625"
],
"added": [
"openBound"
],
"addedDetail": [
{
"key": "openBound",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "FileMemoryEngineBackend",
"at": [
"src/core/memory-engine/file-backend.ts:1082"
],
"added": [
"admitsLandings"
],
"addedDetail": [
{
"key": "admitsLandings",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "FileSystem",
"at": [
"src/engine/harness/types.ts:474"
],
"via": "ExecutionEnv.FileSystem",
"added": [
"openBound"
],
"addedDetail": [
{
"key": "openBound",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "LspToolOptions",
"at": [
"src/core/lsp.ts:441"
],
"added": [
"readFace"
],
"addedDetail": [
{
"key": "readFace",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "MemoryBackend",
"at": [
"src/core/memory-engine/types.ts:277"
],
"added": [
"admitsLandings"
],
"addedDetail": [
{
"key": "admitsLandings",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "MemoryEngine",
"at": [
"src/core/memory-engine/engine.ts:1352"
],
"added": [
"consolidationWriteHome"
],
"addedDetail": [
{
"key": "consolidationWriteHome",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "NodeExecutionEnv",
"at": [
"src/engine/execution-env/node-execution-env.ts:605"
],
"added": [
"listOpenDirectory",
"openBound"
],
"addedDetail": [
{
"key": "listOpenDirectory",
"optional": true
},
{
"key": "openBound",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ObservedFilesystem",
"at": [
"src/tools/fs/shell-read-environment.ts:43"
],
"via": "ShellReadBoundary.writeTargetJudge",
"added": [
"openBound"
],
"addedDetail": [
{
"key": "openBound",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "PermissionResult",
"at": [
"src/core/tool-policy.ts:474"
],
"added": [
"ask.guards"
],
"addedDetail": [
{
"key": "ask.guards",
"optional": true
}
],
"addedRequired": [],
"removed": [
"ask.guard"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "PersistedRuleHit",
"at": [
"src/core/hooks.ts:1452"
],
"added": [
"denial"
],
"addedDetail": [
{
"key": "denial",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "PersistedRuleVerdict",
"at": [
"src/core/permission-rule-model.ts:2469"
],
"added": [
"denial"
],
"addedDetail": [
{
"key": "denial",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "PreToolUseResult",
"at": [
"src/core/hooks.ts:1198"
],
"added": [
"ask.guards"
],
"addedDetail": [
{
"key": "ask.guards",
"optional": true
}
],
"addedRequired": [],
"removed": [
"ask.guard"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "ReadDenyMatcher",
"at": [
"src/tools/fs/read-deny.ts:337"
],
"added": [
"forCall"
],
"addedDetail": [
{
"key": "forCall",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "RemoteExecutionEnv",
"at": [
"src/core/remote-env.ts:313"
],
"added": [
"openBound"
],
"addedDetail": [
{
"key": "openBound",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "RunMemoryConsolidationOptions",
"at": [
"src/core/memory-engine/consolidation-driver.ts:252"
],
"added": [
"writeJudge"
],
"addedDetail": [
{
"key": "writeJudge",
"optional": false
}
],
"addedRequired": [
"writeJudge"
],
"removed": [],
"breaking": true,
"criteriaCovered": true
},
{
"type": "ShellReadBoundary",
"at": [
"src/tools/fs/shell-read-judge.ts:165"
],
"added": [
"unreadPartitions"
],
"addedDetail": [
{
"key": "unreadPartitions",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ShellReadVerdict",
"at": [
"src/tools/fs/shell-read-check.ts:80"
],
"added": [
"environmentSilent",
"rowsUnread"
],
"addedDetail": [
{
"key": "environmentSilent",
"optional": true
},
{
"key": "rowsUnread",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "TaskEvent",
"at": [
"src/core/task-event.ts:289"
],
"added": [
"human_input.attachments",
"task_started.agentType",
"task_started.model",
"task_started.name",
"task_started.parentSessionId",
"task_started.parentTaskId",
"task_started.rootSessionId",
"task_started.seq",
"task_started.sessionId",
"task_started.spawnName",
"task_started.startedAt",
"task_started.taskId",
"task_started.taskType",
"task_started.type",
"task_started.workflowAgentLabel",
"task_started.workflowRunId"
],
"addedDetail": [
{
"key": "human_input.attachments",
"optional": true
},
{
"key": "task_started.agentType",
"optional": true
},
{
"key": "task_started.model",
"optional": false
},
{
"key": "task_started.name",
"optional": true
},
{
"key": "task_started.parentSessionId",
"optional": true
},
{
"key": "task_started.parentTaskId",
"optional": true
},
{
"key": "task_started.rootSessionId",
"optional": true
},
{
"key": "task_started.seq",
"optional": true
},
{
"key": "task_started.sessionId",
"optional": false
},
{
"key": "task_started.spawnName",
"optional": true
},
{
"key": "task_started.startedAt",
"optional": false
},
{
"key": "task_started.taskId",
"optional": false
},
{
"key": "task_started.taskType",
"optional": true
},
{
"key": "task_started.type",
"optional": false
},
{
"key": "task_started.workflowAgentLabel",
"optional": true
},
{
"key": "task_started.workflowRunId",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "TaskSpec",
"at": [
"src/core/task-spec.ts:73"
],
"added": [
"userAttachments"
],
"addedDetail": [
{
"key": "userAttachments",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "UserMessage",
"at": [
"src/engine/llm/types.ts:384"
],
"added": [
"attachment"
],
"addedDetail": [
{
"key": "attachment",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "UserPromptSubmitContext",
"at": [
"src/core/hooks.ts:1211"
],
"added": [
"userAttachments"
],
"addedDetail": [
{
"key": "userAttachments",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "WriteDenyMatcher",
"at": [
"src/tools/fs/read-deny.ts:304"
],
"added": [
"forCall"
],
"addedDetail": [
{
"key": "forCall",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"typeKeysUnreadableArms": [
{
"type": "TaskEvent",
"at": "src/core/task-event.ts:289",
"reasons": [
"a union carrying 2 arm(s) whose keys this reader does not follow (a qualified reference (`TaskEventIdentity`); a qualified reference (`BrainStatus`)) — a key missing from this type at `to` is still reported REMOVED, carrying `uncertain` so the writer checks whether it moved there"
]
}
],
"typeKeysFlattenedCount": 223,
"signatures": [
{
"name": "ConsolidationDriveEngine.commitConsolidationPlan",
"at": [
"src/core/memory-engine/distiller.ts:1228"
],
"from": [
"(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; }): Promise<ConsolidationDriveReceipt>"
],
"to": [
"(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationDriveReceipt>"
],
"changes": [
{
"aspect": "param",
"detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — 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": "ConsolidationDriveEngine.reconcileConsolidation",
"at": [
"src/core/memory-engine/distiller.ts:1229"
],
"from": [
"(scope: string): Promise<{ replayed?: { planId: string; state: string; } | null; } | undefined | void>"
],
"to": [
"(scope: string, opts: { readonly writeGate: ConsolidationWriteGate; }): Promise<{ replayed?: { planId: string; state: string; } | null; } | undefined | void>"
],
"changes": [
{
"aspect": "param",
"detail": "+required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
},
{
"name": "FileMemoryEngineBackend.applyPatches",
"at": [
"src/core/memory-engine/file-backend.ts:3600"
],
"from": [
"(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; }): Promise<PatchReport>"
],
"to": [
"(patches: readonly NotePatch[], opts?: Parameters<MemoryBackend[\"applyPatches\"]>[1]): Promise<PatchReport>"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]]",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]] — 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": "LspSession.request",
"at": [
"src/core/lsp.ts:264"
],
"from": [
"(op: LspOperation, params: LspRequestParams, signal?: AbortSignal): Promise<LspResult>"
],
"to": [
"(op: LspOperation, params: LspRequestParams, signal?: AbortSignal, gate?: LspReadGate): Promise<LspResult>"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `gate?: LspReadGate`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "MemoryBackend.applyPatches",
"at": [
"src/core/memory-engine/types.ts:386"
],
"from": [
"(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; }): Promise<PatchReport>"
],
"to": [
"(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; readonly admit?: (landings: readonly { readonly id: string; readonly scope: string; readonly slug: string; }[]) => Promise<void>; readonly confirm?: () => void; }): Promise<PatchReport>"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `opts` type widened: … anchoredRoot?: string; [ -> readonly admit?: (landings: readonly { readonly id: string; readonly …]}",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "MemoryEngine.commitConsolidationPlan",
"at": [
"src/core/memory-engine/engine.ts:6153"
],
"from": [
"(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; }): Promise<ConsolidationCommitReceipt>"
],
"to": [
"(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationCommitReceipt>"
],
"changes": [
{
"aspect": "param",
"detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — 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": "MemoryEngine.reconcileConsolidation",
"at": [
"src/core/memory-engine/engine.ts:7031"
],
"from": [
"(scope: string): Promise<ConsolidationReconcileReport>"
],
"to": [
"(scope: string, opts: { readonly writeGate: ConsolidationWriteGate; }): Promise<ConsolidationReconcileReport>"
],
"changes": [
{
"aspect": "param",
"detail": "+required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
},
{
"name": "MemoryEngine.resolveConsolidationPlan",
"at": [
"src/core/memory-engine/engine.ts:7173"
],
"from": [
"(planId: string, action: \"discard\" | \"retry\", opts: { requestId: string; }): Promise<ConsolidationResolveReceipt>"
],
"to": [
"(planId: string, action: \"discard\" | \"retry\", opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationResolveReceipt>"
],
"changes": [
{
"aspect": "param",
"detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"breaking": true,
"uncertain": true
}
],
"uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — 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": "TransportLspSession.notifyFileChanged",
"at": [
"src/core/lsp-session.ts:421"
],
"from": [
"(filePath: string, signal?: AbortSignal): Promise<void>"
],
"to": [
"(filePath: string, signal?: AbortSignal, gate?: LspReadGate): Promise<void>"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `gate?: LspReadGate`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "TransportLspSession.request",
"at": [
"src/core/lsp-session.ts:125"
],
"from": [
"(op: LspOperation, params: LspRequestParams, signal?: AbortSignal): Promise<LspResult>"
],
"to": [
"(op: LspOperation, params: LspRequestParams, signal?: AbortSignal, gate?: LspReadGate): Promise<LspResult>"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `gate?: LspReadGate`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "TransportLspSession.warmOpen",
"at": [
"src/core/lsp-session.ts:405"
],
"from": [
"(filePaths: string[], signal?: AbortSignal): Promise<{ opened: number; failed: number; }>"
],
"to": [
"(filePaths: string[], _signal?: AbortSignal): Promise<{ opened: number; failed: number; deferred: number; }>"
],
"changes": [
{
"aspect": "returns",
"detail": "return type gained members deferred",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "resolveMemoryConsolidationDriver",
"at": [
"src/core/runner/memory-consolidation-driver.ts:59"
],
"from": [
"(deps: MemoryConsolidationDriverDeps): RunMemoryConsolidationOptions"
],
"to": [
"(deps: MemoryConsolidationDriverDeps): Omit<RunMemoryConsolidationOptions, \"writeJudge\">"
],
"changes": [
{
"aspect": "returns",
"detail": "return type [RunMemoryConsolidationOptions -> Omit<RunMemoryConsolidationOptions, \"writeJudge\">]",
"breaking": true
}
],
"breaking": true,
"criteriaCovered": false
}
],
"declarationMoves": [
{
"name": "quoteDataLabel",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/dir-entries.ts"
],
"to": [
"src/engine/llm/types.ts",
"src/internal/llm.ts"
]
},
{
"name": "rootAdmittingArtifactStore",
"kind": null,
"onSurface": false,
"from": [
"src/core/runner/read-root-grant.ts"
],
"to": [
"src/tools/fs/safety.ts"
]
},
{
"name": "ruleRowsDroppedNotice",
"kind": null,
"onSurface": false,
"from": [
"src/core/runner/persisted-path-rows.ts"
],
"to": [
"src/core/runner/person-path-rows.ts"
]
},
{
"name": "ruleStoreUnreadableNotice",
"kind": null,
"onSurface": false,
"from": [
"src/core/runner/persisted-path-rows.ts"
],
"to": [
"src/core/runner/person-path-rows.ts"
]
}
],
"mintMoves": [
{
"code": "permission.rule_row_dropped",
"from": [
"src/core/runner/persisted-path-rows.ts"
],
"to": [
"src/core/runner/person-path-rows.ts"
]
},
{
"code": "permission.rule_store_unavailable",
"from": [
"src/core/runner/persisted-path-rows.ts"
],
"to": [
"src/core/runner/person-path-rows.ts"
]
}
],
"criteriaObserves": [
{
"kind": "engineNoticeCode",
"name": "memory.consolidation_incomplete",
"assertions": [
"G9.b"
]
},
{
"kind": "engineNoticeCode",
"name": "memory.consolidation_refused",
"assertions": [
"G9.c"
]
},
{
"kind": "engineNoticeCode",
"name": "permission.rule_store_unavailable",
"assertions": [
"G5.a",
"G7.c"
]
},
{
"kind": "taskEventField",
"name": "human_input.attachments",
"assertions": [
"G10.a",
"G10.b"
]
},
{
"kind": "taskEventField",
"name": "task_progress.status",
"assertions": [
"G11.c"
]
},
{
"kind": "taskEventField",
"name": "task_started.seq",
"assertions": [
"G11.a"
]
},
{
"kind": "taskEventField",
"name": "task_started.taskId",
"assertions": [
"G11.a"
]
},
{
"kind": "taskEventField",
"name": "tool_end.errorCode",
"assertions": [
"G2.a"
]
},
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G1.a",
"G1.b",
"G1.c",
"G2.b",
"G3.a",
"G3.b",
"G4.a",
"G5.a",
"G5.b",
"G7.a",
"G7.b",
"G7.c",
"G8.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.output",
"assertions": [
"G1.d",
"G3.c",
"G4.b",
"G10.d",
"G12.a",
"G12.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.structured",
"assertions": [
"G2.a",
"G2.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.totalChars",
"assertions": [
"G12.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.truncated",
"assertions": [
"G12.a"
]
},
{
"kind": "typeMember",
"name": "ConsolidationRefusedError.code",
"assertions": [
"G9.a"
]
},
{
"kind": "typeMember",
"name": "GateOutcome.disposition",
"assertions": [
"G1.a"
]
},
{
"kind": "typeMember",
"name": "GateOutcome.origin",
"assertions": [
"G7.a"
]
},
{
"kind": "typeMember",
"name": "ModeRelease.reason",
"assertions": [
"G8.a",
"G8.b"
]
},
{
"kind": "typeMember",
"name": "PermissionResult.guards",
"assertions": [
"G6.a",
"G6.b",
"G13.a",
"G13.b"
]
},
{
"kind": "typeMember",
"name": "PermissionResult.requiresRealApproval",
"assertions": [
"G13.a"
]
},
{
"kind": "typeMember",
"name": "RunMemoryConsolidationOptions.writeJudge",
"assertions": [
"G9.a"
]
},
{
"kind": "typeMember",
"name": "RunnerDeps.mediaByteCapBytes",
"assertions": [
"G14.a"
]
},
{
"kind": "typeMember",
"name": "RunnerDeps.onDelegationLifecycle",
"assertions": [
"G11.b"
]
},
{
"kind": "typeMember",
"name": "RunnerDeps.sessionStore",
"assertions": [
"G14.b"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.userAttachments",
"assertions": [
"G10.a",
"G10.c"
]
},
{
"kind": "typeMember",
"name": "WiringManifest.lsp",
"assertions": [
"G3.d"
]
}
],
"consumersHint": {
"cli": [
"AskClassFacts",
"AskOriginFacts",
"CHECKPOINT_CONFIG_REFUSAL_CODES",
"ExecutionEnv",
"FileMemoryEngineBackend",
"FileSystem",
"MODE_RELEASE_REASONS",
"MemoryBackend",
"MemoryEngine",
"NodeExecutionEnv",
"PermissionResult",
"PersistedRuleHit",
"PreToolUseResult",
"ReadDenyMatcher",
"ReadKind",
"RemoteExecutionEnv",
"RunMemoryConsolidationOptions",
"SYNTHETIC_READ_UNANSWERABLE_CAUSES",
"ShellReadBoundary",
"ShellReadVerdict",
"TaskEvent",
"TaskSpec",
"UserMessage",
"UserPromptSubmitContext"
],
"server": [
"AskClassFacts",
"CHECKPOINT_CONFIG_REFUSAL_CODES",
"ConsolidationDriverEngine",
"ExecutionEnv",
"FileMemoryEngineBackend",
"FileSystem",
"LspSession",
"MODE_RELEASE_REASONS",
"MemoryBackend",
"MemoryEngine",
"NodeExecutionEnv",
"PermissionResult",
"PreToolUseResult",
"RemoteExecutionEnv",
"RunMemoryConsolidationOptions",
"ShellReadBoundary",
"TaskEvent",
"TaskSpec",
"TransportLspSession",
"UserMessage",
"UserPromptSubmitContext",
"resolveMemoryConsolidationDriver"
],
"sdk": [
"FileSystem",
"MODE_RELEASE_REASONS",
"MemoryEngine",
"NodeExecutionEnv",
"PermissionResult",
"PreToolUseResult",
"TaskEvent",
"TaskSpec"
],
"note": "scanned cli@dea53b8d server@b4924bea sdk@a32bca5 — 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: 8 name(s) matched ONLY in bookkeeping files and were set aside (ConsolidationDriveEngine, EngineAttestation, LspToolOptions, PersistedRuleHit, PersistedRuleVerdict, ReadDenyMatcher, ShellReadVerdict, WriteDenyMatcher)"
},
"breakingCount": 13,
"breakingItems": [
"closed set lost members: MODE_RELEASE_REASONS -rule_unreadable",
"signature changed: ConsolidationDriveEngine.commitConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"signature changed: ConsolidationDriveEngine.reconcileConsolidation — +required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
"signature changed: FileMemoryEngineBackend.applyPatches — param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]]",
"signature changed: MemoryEngine.commitConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"signature changed: MemoryEngine.reconcileConsolidation — +required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
"signature changed: MemoryEngine.resolveConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
"signature changed: resolveMemoryConsolidationDriver — return type [RunMemoryConsolidationOptions -> Omit<RunMemoryConsolidationOptions, \"writeJudge\">]",
"type gained required keys: ConsolidationDriverEngine +consolidationWriteHome",
"type gained required keys: DriveConsolidationOptions +writeGate",
"type gained required keys: RunMemoryConsolidationOptions +writeJudge",
"type lost keys: PermissionResult -ask.guard",
"type lost keys: PreToolUseResult -ask.guard"
]
}