UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

986 lines (985 loc) • 22 kB
{ "repo": "core", "version": "7.43.0", "from": "596c3a64df139e695e8354751c520d3d944010c9", "to": "f91ca4b8b3dd618fb90e1e4dd339b10255dd9051", "added": [ { "name": "APPROVAL_REACH", "kind": "variable", "tier": "advanced", "at": [ "src/core/wiring-manifest.ts:68", "src/index.ts:1177" ], "criteriaCovered": false, "breaking": false }, { "name": "ApprovalReach", "kind": "type", "tier": "advanced", "at": [ "src/core/wiring-manifest.ts:69", "src/index.ts:1178" ], "criteriaCovered": false, "breaking": false }, { "name": "BoundSkillGrants", "kind": "interface", "tier": "advanced", "at": [ "src/core/skill-grant-binding.ts:12", "src/index.ts:1476" ], "criteriaCovered": false, "breaking": false }, { "name": "abortedSeatDeny", "kind": "function", "tier": "advanced", "at": [ "src/core/tool-policy.ts:235", "src/index.ts:1406" ], "criteriaCovered": false, "breaking": false }, { "name": "isApprovalReach", "kind": "function", "tier": "advanced", "at": [ "src/core/wiring-manifest.ts:72", "src/index.ts:1179" ], "criteriaCovered": false, "breaking": false } ], "removed": [], "changed": [], "narrowed": [], "closedSetMembers": [ { "set": "ALLOW_ENTRY_INERT_REASONS", "at": [ "src/core/allow-entry.ts:39" ], "newSet": false, "added": [ "near_miss", "tool_name" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "APPROVAL_REACH", "at": [ "src/core/wiring-manifest.ts:68" ], "newSet": true, "added": [ "none" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "ASK_CLASSES", "at": [ "src/core/ask-origin.ts:596" ], "newSet": false, "added": [ "classifier_no_ruling" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "ApprovalReach", "at": [ "src/core/wiring-manifest.ts:69", "src/index.ts:1178" ], "newSet": true, "added": [ "none" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "AskSeamForm", "at": [ "src/core/wiring-manifest.ts:60" ], "newSet": false, "added": [ "declared_none" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "CHECKPOINT_CONFIG_REFUSAL_CODES", "at": [ "src/core/checkpoint-store.ts:2426" ], "newSet": false, "added": [ "config.approval_reach_invalid", "config.skill_deny_unreadable", "config.user_invoked_skill_unknown" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "CHILD_CLAMP_SEATS", "at": [ "src/core/child-clamp-seats.ts:32" ], "newSet": false, "added": [ "approvalReach" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "HeadlessApproverSeat", "at": [ "src/core/ask-origin.ts:858" ], "newSet": false, "added": [ "declared_none" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "PersistedRuleMatch", "at": [ "src/core/permission-rule-model.ts:252" ], "newSet": false, "added": [ "name", "name_prefix" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "RULE_TOOL_NAME_VERDICTS", "at": [ "src/core/tool-name-aliases.ts:75" ], "newSet": false, "added": [ "unmintable_segment" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "RuleToolNameVerdict.kind", "at": [ "src/core/tool-name-aliases.ts:97", "src/core/tool-name-aliases.ts:98", "src/core/tool-name-aliases.ts:99", "src/core/tool-name-aliases.ts:100" ], "newSet": false, "added": [ "unmintable_segment" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "RunWorkflowToolDeps.parentApprovalReach", "at": [ "src/orchestration/run-workflow-tool.ts:584" ], "newSet": true, "added": [ "none" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "ToolExecuteContext.approvalReach", "at": [ "src/core/tool-spec.ts:952" ], "newSet": true, "added": [ "none" ], "removed": [], "breaking": false, "criteriaCovered": false } ], "closedSetsUnreadable": [], "typeKeys": [ { "type": "AskCarry", "at": [ "src/core/hooks.ts:2204" ], "added": [ "classifierNoRuling" ], "addedDetail": [ { "key": "classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "AskRequest", "at": [ "src/core/tool-policy.ts:2828" ], "added": [ "boundGrantDigest", "boundGrants", "classifierNoRuling" ], "addedDetail": [ { "key": "boundGrantDigest", "optional": true }, { "key": "boundGrants", "optional": true }, { "key": "classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": true }, { "type": "CheckpointSummary", "at": [ "src/core/checkpoint-store.ts:2096" ], "added": [ "boundGrantDigest", "boundGrants", "classifierNoRuling" ], "addedDetail": [ { "key": "boundGrantDigest", "optional": true }, { "key": "boundGrants", "optional": true }, { "key": "classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": true }, { "type": "PendingAction", "at": [ "src/core/checkpoint-store.ts:951" ], "added": [ "tool_approval.boundGrants", "tool_approval.classifierNoRuling" ], "addedDetail": [ { "key": "tool_approval.boundGrants", "optional": true }, { "key": "tool_approval.classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "PermissionResult", "at": [ "src/core/tool-policy.ts:474" ], "added": [ "ask.classifierNoRuling" ], "addedDetail": [ { "key": "ask.classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "PreToolUseResult", "at": [ "src/core/hooks.ts:1180" ], "added": [ "ask.classifierNoRuling" ], "addedDetail": [ { "key": "ask.classifierNoRuling", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "RuleToolNameVerdict", "at": [ "src/core/tool-name-aliases.ts:96" ], "added": [ "unmintable_segment.currentName", "unmintable_segment.guidance", "unmintable_segment.kind" ], "addedDetail": [ { "key": "unmintable_segment.currentName", "optional": true }, { "key": "unmintable_segment.guidance", "optional": false }, { "key": "unmintable_segment.kind", "optional": false } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "RunWorkflowToolDeps", "at": [ "src/orchestration/run-workflow-tool.ts:430" ], "added": [ "parentApprovalReach" ], "addedDetail": [ { "key": "parentApprovalReach", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "SkillGrantHit", "at": [ "src/core/skill-grant.ts:200" ], "added": [ "readsAsNothing" ], "addedDetail": [ { "key": "readsAsNothing", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "TaskSpec", "at": [ "src/core/task-spec.ts:52" ], "added": [ "approvalReach" ], "addedDetail": [ { "key": "approvalReach", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": true }, { "type": "ToolExecuteContext", "at": [ "src/core/tool-spec.ts:613" ], "added": [ "approvalReach" ], "addedDetail": [ { "key": "approvalReach", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "ToolGateInput", "at": [ "src/core/hooks.ts:1470" ], "via": "runToolGate.ToolGateInput", "added": [ "askSeatForm" ], "addedDetail": [ { "key": "askSeatForm", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false } ], "typeKeysUnreadableArms": [], "typeKeysFlattenedCount": 225, "signatures": [ { "name": "compileAllowEntry", "at": [ "src/core/allow-entry.ts:150" ], "from": [ "(raw: string, behavior: \"allow\" | \"deny\"): AllowEntryInertReason | CompiledAllowEntry" ], "to": [ "(raw: string, behavior: \"allow\" | \"deny\", roster?: ReadonlySet<string>): AllowEntryInertReason | CompiledAllowEntry" ], "changes": [ { "aspect": "param", "detail": "+optional param `roster?: ReadonlySet<string>`", "breaking": false } ], "breaking": false, "criteriaCovered": false }, { "name": "compileAllowList", "at": [ "src/core/allow-entry.ts:162" ], "from": [ "(entries: readonly string[], behavior: \"allow\" | \"deny\"): { rows: Array<{ entry: string; compiled: CompiledAllowEntry; }>; inert: Array<{ entry: string; reason: AllowEntryInertReason; }>; }" ], "to": [ "(entries: readonly string[], behavior: \"allow\" | \"deny\", roster?: ReadonlySet<string>): { rows: Array<{ entry: string; compiled: CompiledAllowEntry; }>; inert: AllowEntryInert[]; }" ], "changes": [ { "aspect": "param", "detail": "+optional param `roster?: ReadonlySet<string>`", "breaking": false }, { "aspect": "returns", "detail": "return type …AllowEntry; }>; inert: A[rray<{ entry: string; reason: AllowEntryInertReason; }> -> llowEntryInert[]]; }", "breaking": true } ], "breaking": true, "criteriaCovered": false }, { "name": "resolveAskSeamForm", "at": [ "src/core/wiring-manifest.ts:985" ], "from": [ "(spec: Pick<TaskSpec, \"onAsk\">, deps: Pick<RunnerDeps, \"onAsk\">): { form: AskSeamForm; provenance?: SeamProvenance; }" ], "to": [ "(spec: Pick<TaskSpec, \"onAsk\" | \"approvalReach\">, deps: Pick<RunnerDeps, \"onAsk\">): { form: AskSeamForm; provenance?: SeamProvenance; }" ], "changes": [ { "aspect": "param", "detail": "param 1 `spec` type changed, direction not read: Pick<TaskSpec, \"onAsk\"[ -> | \"approvalReach\"]>", "breaking": true, "uncertain": true } ], "uncertain": "param 1 `spec` type changed, direction not read: Pick<TaskSpec, \"onAsk\"[ -> | \"approvalReach\"]> — 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": "ruleToolGrammarOf", "at": [ "src/core/permission-rule-model.ts:207" ], "from": [ "(toolName: string): \"command\" | \"path\" | undefined" ], "to": [ "(toolName: string): \"command\" | \"name\" | \"path\" | undefined" ], "changes": [ { "aspect": "returns", "detail": "return type \"command\" | \"[ -> name\" | \"]path\" | undefined", "breaking": true } ], "breaking": true, "criteriaCovered": false } ], "declarationMoves": [ { "name": "abortedSeatDeny", "kind": "function", "onSurface": true, "from": [ "src/core/tool-policy.ts" ], "to": [ "src/core/tool-policy.ts", "src/index.ts" ] } ], "mintMoves": [], "criteriaObserves": [ { "kind": "engineNoticeCode", "name": "classifier.denial_limit", "assertions": [ "G7.b", "G8.b", "G10.c" ] }, { "kind": "engineNoticeCode", "name": "classifier.unavailable", "assertions": [ "G7.a" ] }, { "kind": "engineNoticeCode", "name": "delegation.ask_unresolvable", "assertions": [ "G10.b" ] }, { "kind": "engineNoticeCode", "name": "permission.allowed_tool_not_granted", "assertions": [ "G12.a", "G12.b" ] }, { "kind": "taskEventField", "name": "tool_end.gate", "assertions": [ "G1.c", "G4.c", "G7.b", "G7.d", "G15.a" ] }, { "kind": "taskEventField", "name": "tool_end.isError", "assertions": [ "G15.a" ] }, { "kind": "taskEventField", "name": "tool_end.output", "assertions": [ "G15.a" ] }, { "kind": "taskEventField", "name": "wiring_manifest.manifest", "assertions": [ "G4.a" ] }, { "kind": "typeMember", "name": "AskRequest.askClass", "assertions": [ "G1.b" ] }, { "kind": "typeMember", "name": "AskRequest.boundGrantDigest", "assertions": [ "G13.b" ] }, { "kind": "typeMember", "name": "AskRequest.boundGrants", "assertions": [ "G13.b", "G13.c" ] }, { "kind": "typeMember", "name": "AskRequest.classes", "assertions": [ "G7.a", "G7.c", "G9.a", "G9.b" ] }, { "kind": "typeMember", "name": "AskRequest.classifierNoRuling", "assertions": [ "G7.a", "G7.c", "G9.d" ] }, { "kind": "typeMember", "name": "AskRequest.denialLimitFallback", "assertions": [ "G8.a" ] }, { "kind": "typeMember", "name": "AskRequest.message", "assertions": [ "G1.a", "G1.b", "G3.b" ] }, { "kind": "typeMember", "name": "AskRequest.ruleOffers", "assertions": [ "G3.a" ] }, { "kind": "typeMember", "name": "AskRequest.ruleOffersAbsence", "assertions": [ "G3.a" ] }, { "kind": "typeMember", "name": "Checkpoint.pendingAction.boundGrantDigest", "assertions": [ "G13.a", "G14.a" ] }, { "kind": "typeMember", "name": "Checkpoint.pendingAction.boundGrants", "assertions": [ "G13.a", "G13.c" ] }, { "kind": "typeMember", "name": "CheckpointError.code", "assertions": [ "G16.a" ] }, { "kind": "typeMember", "name": "CheckpointError.detail.field", "assertions": [ "G14.a", "G16.a" ] }, { "kind": "typeMember", "name": "CheckpointSummary.boundGrantDigest", "assertions": [ "G13.a", "G14.b" ] }, { "kind": "typeMember", "name": "CheckpointSummary.boundGrants", "assertions": [ "G13.a", "G14.b" ] }, { "kind": "typeMember", "name": "CheckpointSummary.classifierNoRuling", "assertions": [ "G9.c" ] }, { "kind": "typeMember", "name": "PermissionRuleIssue.code", "assertions": [ "G2.a" ] }, { "kind": "typeMember", "name": "PermissionRuleIssue.message", "assertions": [ "G2.a" ] }, { "kind": "typeMember", "name": "PersistedRule.match", "assertions": [ "G1.a" ] }, { "kind": "typeMember", "name": "RuleReject.code", "assertions": [ "G2.b" ] }, { "kind": "typeMember", "name": "RuleReject.message", "assertions": [ "G2.b" ] }, { "kind": "typeMember", "name": "SessionRuleNameRefusal.currentName", "assertions": [ "G11.a" ] }, { "kind": "typeMember", "name": "SessionRuleNameRefusal.verdict", "assertions": [ "G11.a" ] }, { "kind": "typeMember", "name": "TaskResult.terminal", "assertions": [ "G4.b", "G4.c", "G6.a", "G6.c", "G7.b", "G8.a", "G8.b", "G8.c", "G11.b" ] }, { "kind": "typeMember", "name": "TaskResult.terminal.code", "assertions": [ "G15.b", "G17.a" ] }, { "kind": "typeMember", "name": "TaskResult.terminal.message", "assertions": [ "G15.b", "G17.a" ] }, { "kind": "typeMember", "name": "TaskSpec.approvalReach", "assertions": [ "G5.a", "G5.b", "G5.c", "G6.b" ] }, { "kind": "typeMember", "name": "TaskSpec.interactionPosture", "assertions": [ "G10.a" ] }, { "kind": "typeMember", "name": "WiringManifest.ask.effective", "assertions": [ "G4.a", "G4.b" ] }, { "kind": "typeMember", "name": "WiringManifest.ask.form", "assertions": [ "G4.a", "G4.d" ] }, { "kind": "typeMember", "name": "WiringManifest.ask.provenance", "assertions": [ "G4.d" ] } ], "consumersHint": { "cli": [ "ASK_CLASSES", "AskCarry", "AskRequest", "CHECKPOINT_CONFIG_REFUSAL_CODES", "CHILD_CLAMP_SEATS", "CheckpointSummary", "PendingAction", "PermissionResult", "PreToolUseResult", "RunWorkflowToolDeps", "TaskSpec", "ToolExecuteContext", "ToolGateInput", "ruleToolGrammarOf" ], "server": [ "ASK_CLASSES", "AskCarry", "AskRequest", "CHECKPOINT_CONFIG_REFUSAL_CODES", "CheckpointSummary", "PendingAction", "PermissionResult", "PersistedRuleMatch", "PreToolUseResult", "RULE_TOOL_NAME_VERDICTS", "RunWorkflowToolDeps", "TaskSpec", "ToolExecuteContext", "ToolGateInput", "resolveAskSeamForm", "ruleToolGrammarOf" ], "sdk": [ "ASK_CLASSES", "AskRequest", "CheckpointSummary", "PendingAction", "PermissionResult", "PersistedRuleMatch", "PreToolUseResult", "TaskSpec" ], "note": "scanned cli@bf15b2f9 server@72e966f3 sdk@e3a5370 — 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: 3 name(s) matched ONLY in bookkeeping files and were set aside (AskSeamForm, RuleToolNameVerdict, SkillGrantHit)" }, "breakingCount": 3, "breakingItems": [ "signature changed: compileAllowList — return type …AllowEntry; }>; inert: A[rray<{ entry: string; reason: AllowEntryInertReason; }> -> llowEntryInert[]]; }", "signature changed: resolveAskSeamForm — param 1 `spec` type changed, direction not read: Pick<TaskSpec, \"onAsk\"[ -> | \"approvalReach\"]>", "signature changed: ruleToolGrammarOf — return type \"command\" | \"[ -> name\" | \"]path\" | undefined" ] }