@sema-agent/core
Version:
Stateless, task-oriented AI agent core
1,523 lines (1,522 loc) • 36.7 kB
JSON
{
"repo": "core",
"version": "7.46.0",
"from": "2e80ea7afa8f82440b35c0841a1d81613d2f4fcc",
"to": "4d78f3834f2c0b04e5f350c60df286c46b9de33a",
"added": [
{
"name": "BoundPathRule",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/path-rule-binding.ts:34",
"src/index.ts:1110"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "CallTargetReading",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/effective-path-target.ts:205",
"src/index.ts:1109"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "CallTargetView",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/effective-path-target.ts:195",
"src/index.ts:1109"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "ENGINE_BUILTIN_TOOL_NAMES",
"kind": "variable",
"tier": "advanced",
"at": [
"src/core/tool-catalog-entries.ts:280",
"src/index.ts:1492"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "PathRuleSpec",
"kind": "interface",
"tier": "advanced",
"at": [
"src/core/path-rule-binding.ts:24",
"src/index.ts:1110"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "isEngineBuiltinToolName",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/tool-catalog-entries.ts:299",
"src/index.ts:1492"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "renderListEntry",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/allow-entry.ts:614",
"src/index.ts:1480"
],
"criteriaCovered": false,
"breaking": false
},
{
"name": "toolPolicyPathRules",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/tool-policy.ts:809",
"src/index.ts:1421"
],
"criteriaCovered": false,
"breaking": false
}
],
"removed": [
{
"name": "toolPolicyPathDenyRules",
"kind": "function",
"tier": "advanced",
"at": [
"src/core/tool-policy.ts:792",
"src/index.ts:1420"
],
"breaking": true
}
],
"changed": [],
"narrowed": [
{
"id": "F2",
"source": "behaviorFlips.summary",
"text": "#1102 car A — curl's own `{}` / `[]` glob is expanded before the URL or upload file is judged (narrowing); `-g` / `--globoff` reads it literally"
},
{
"id": "F28",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1417): a shell whose argv names no script runs its standard input, and what arrives there is its script — a literal here-document / here-string / printed text is planned as a `-c` text is; a text built when the command runs (an expanding here-document, any program on the pipe other than a literal `echo` / `printf`, a `<` file) is the removal guard's `runtime_script` (`dangerous_delete`)."
},
{
"id": "F30",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1425): a read-only name keeps its value — an assignment the read-only attribute (or another attribute, or a name reference) may run before binds nothing the text says; the read through it is a read-boundary question again."
},
{
"id": "F31",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1430): a sub-agent's `denyTools` / `allowTools` govern the engine's hand tools its own run mounts (Read / Edit / Write / NotebookEdit / Bash / Grep / Glob / RepoMap / EnterWorktree / ExitWorktree / TaskOutput / TaskStop), as they govern the delegation pool — one reading, the withheld hand names joining the child's exclusion list."
},
{
"id": "F32",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1432; +1 optional option key): a delegation tool that declares its `extraTools` factory's roster (`SubagentToolOptions.extraToolNames`) publishes a listable pool again — a stale list spelling is refused before the run — and a factory product outside the roster refuses that spawn."
}
],
"closedSetMembers": [
{
"set": "ARG_ROLE_KINDS",
"at": [
"src/tools/fs/program-read-model.ts:45"
],
"newSet": true,
"added": [
"assignment",
"binds-name",
"command",
"datum",
"entry-probe",
"mount-source",
"object-path",
"path",
"program-file",
"program-text",
"shell-text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ArgRoleKind",
"at": [
"src/tools/fs/program-read-model.ts:46"
],
"newSet": true,
"added": [
"assignment",
"binds-name",
"command",
"datum",
"entry-probe",
"mount-source",
"object-path",
"path",
"program-file",
"program-text",
"shell-text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "Arity",
"at": [
"src/tools/fs/program-read-model.ts:108"
],
"newSet": true,
"added": [
"attached",
"suffix"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ChainInstallationGap",
"at": [
"src/core/runner/child-tree.ts:109"
],
"newSet": true,
"added": [
"absent",
"invalid",
"misaligned"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "CheckpointErrorReason",
"at": [
"src/core/checkpoint-store.ts:2425"
],
"newSet": false,
"added": [
"hands_coordinates_damaged",
"installation_record_absent",
"installation_record_invalid",
"installation_record_misaligned"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ChildPlacement",
"at": [
"src/core/runner/contracts.ts:2092"
],
"newSet": true,
"added": [
"caller_tree",
"elsewhere",
"honored"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "CodeBody",
"at": [
"src/tools/fs/program-read-model.ts:292"
],
"newSet": true,
"added": [
"assignment-values",
"first-operand",
"option-values"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DATUM_FORMS",
"at": [
"src/tools/fs/program-read-model.ts:27"
],
"newSet": true,
"added": [
"count",
"delimiter",
"label",
"message",
"name-pattern",
"pattern"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DatumForm",
"at": [
"src/tools/fs/program-read-model.ts:28"
],
"newSet": true,
"added": [
"count",
"delimiter",
"label",
"message",
"name-pattern",
"pattern"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "DeclaredAttribute",
"at": [
"src/tools/fs/program-read-model.ts:194"
],
"newSet": true,
"added": [
"frozen",
"integer",
"reference",
"transformed",
"unsettled"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "Dialect",
"at": [
"src/tools/fs/program-read-model.ts:197"
],
"newSet": true,
"added": [
"any",
"bsd",
"gnu"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ENGINE_NOTICE_CODES",
"at": [
"src/core/governance-codes.ts:350"
],
"newSet": false,
"added": [
"permission.rule_row_dropped"
],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"set": "ExtraToolNamesReason",
"at": [
"src/agents/extra-tool-names.ts:22"
],
"newSet": true,
"added": [
"shape",
"undeclared_name",
"undeclared_origin"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "OPTION_MODES",
"at": [
"src/tools/fs/program-read-model.ts:38"
],
"newSet": true,
"added": [
"banner",
"follows",
"forced",
"interactive",
"names-program",
"quiet",
"repeats"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "OptionMode",
"at": [
"src/tools/fs/program-read-model.ts:39"
],
"newSet": true,
"added": [
"banner",
"follows",
"forced",
"interactive",
"names-program",
"quiet",
"repeats"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "OptionValueKind",
"at": [
"src/tools/fs/bash-readonly-classifier.ts:959"
],
"newSet": false,
"added": [],
"removed": [
"count",
"delimiter",
"form",
"header",
"indirect",
"label",
"name-pattern",
"path",
"pattern",
"script",
"url"
],
"persistedBy": "none",
"breaking": true,
"criteriaCovered": false
},
{
"set": "PATH_EFFECTS",
"at": [
"src/tools/fs/program-read-model.ts:58"
],
"newSet": true,
"added": [
"create",
"edit-in-place",
"names",
"read",
"write"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "PATH_VALUE_FORMS",
"at": [
"src/tools/fs/program-read-model.ts:33"
],
"newSet": true,
"added": [
"form",
"header",
"indirect",
"url"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "PathEffect",
"at": [
"src/tools/fs/program-read-model.ts:59"
],
"newSet": true,
"added": [
"create",
"edit-in-place",
"names",
"read",
"write"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "PathValueForm",
"at": [
"src/tools/fs/program-read-model.ts:34"
],
"newSet": true,
"added": [
"form",
"header",
"indirect",
"url"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ProgramDelivery",
"at": [
"src/tools/fs/program-read-model.ts:1318"
],
"newSet": true,
"added": [
"stdin",
"text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ProgramTextReading",
"at": [
"src/tools/fs/program-read-model.ts:1540"
],
"newSet": true,
"added": [
"from-file",
"none",
"unparsed"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "READ_CANDIDATE_PROVENANCES",
"at": [
"src/tools/fs/shell-read-plan.ts:96"
],
"newSet": false,
"added": [
"mount_source",
"object_path"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "RECOMMENDED_SENSITIVE_PATTERNS",
"at": [
"src/core/sensitive-path-policy.ts:110"
],
"newSet": false,
"added": [
".sema/config-lkg-*.json"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ReadCandidate.speculative",
"at": [
"src/tools/fs/shell-read-plan.ts:156"
],
"newSet": true,
"added": [
"containment",
"whole"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "SHELL_WRITE_COMMANDS",
"at": [
"src/tools/fs/shell-read-write-targets.ts:18"
],
"newSet": false,
"added": [],
"removed": [
"cp",
"mkdir",
"mv",
"rm",
"rmdir",
"sed",
"tee",
"touch"
],
"persistedBy": "checkpoint-state",
"breaking": true,
"criteriaCovered": false
},
{
"set": "Witness",
"at": [
"src/tools/fs/program-read-model.ts:295"
],
"newSet": true,
"added": [
"binary"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "CheckpointState",
"at": [
"src/core/checkpoint-store.ts:1190"
],
"added": [
"handsHome",
"handsRoot",
"inheritedGate.pathRuleAnchors",
"inheritedGate.pathRuleAnchors.home",
"inheritedGate.pathRuleAnchors.root",
"inheritedGate.pathRuleInstallations",
"inheritedGate.pathRuleInstallations[].home",
"inheritedGate.pathRuleInstallations[].root"
],
"addedDetail": [
{
"key": "handsHome",
"optional": true
},
{
"key": "handsRoot",
"optional": true
},
{
"key": "inheritedGate.pathRuleAnchors",
"optional": true
},
{
"key": "inheritedGate.pathRuleAnchors.home",
"optional": true
},
{
"key": "inheritedGate.pathRuleAnchors.root",
"optional": false
},
{
"key": "inheritedGate.pathRuleInstallations",
"optional": true
},
{
"key": "inheritedGate.pathRuleInstallations[].home",
"optional": true
},
{
"key": "inheritedGate.pathRuleInstallations[].root",
"optional": false
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "EffectivePermissionRules",
"at": [
"src/core/permission-rule-provider.ts:89"
],
"added": [
"droppedRows",
"droppedRows[].rule",
"droppedRows[].scopeRoot"
],
"addedDetail": [
{
"key": "droppedRows",
"optional": true
},
{
"key": "droppedRows[].rule",
"optional": false
},
{
"key": "droppedRows[].scopeRoot",
"optional": false
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "InheritedGate",
"at": [
"src/core/runner/contracts.ts:1211"
],
"via": "RunInternals.inheritedGate",
"added": [
"pathRuleAnchors",
"pathRuleAnchors.home",
"pathRuleAnchors.root",
"pathRuleInstallations",
"pathRuleInstallations[].home",
"pathRuleInstallations[].root"
],
"addedDetail": [
{
"key": "pathRuleAnchors",
"optional": true
},
{
"key": "pathRuleAnchors.home",
"optional": true
},
{
"key": "pathRuleAnchors.root",
"optional": false
},
{
"key": "pathRuleInstallations",
"optional": true
},
{
"key": "pathRuleInstallations[].home",
"optional": true
},
{
"key": "pathRuleInstallations[].root",
"optional": false
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "NamedToolPolicy",
"at": [
"src/core/tool-policy.ts:1317"
],
"added": [
"pathRules"
],
"addedDetail": [
{
"key": "pathRules",
"optional": true
}
],
"addedRequired": [],
"removed": [
"pathDenyRules"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "Prepared",
"at": [
"src/core/runner/contracts.ts:246"
],
"via": "Runner.SuspendReap.env",
"added": [
"stampCallTarget"
],
"addedDetail": [
{
"key": "stampCallTarget",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ReadCandidate",
"at": [
"src/tools/fs/shell-read-plan.ts:125"
],
"added": [
"speculative"
],
"addedDetail": [
{
"key": "speculative",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ResolvedWorkspace",
"at": [
"src/core/runner/contracts.ts:2094"
],
"added": [
"placement"
],
"addedDetail": [
{
"key": "placement",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "RunInternals",
"at": [
"src/core/runner/contracts.ts:1436"
],
"added": [
"callerRoot",
"worktreeOffered"
],
"addedDetail": [
{
"key": "callerRoot",
"optional": true
},
{
"key": "worktreeOffered",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "RunnerDeps",
"at": [
"src/core/runner-deps.ts:105"
],
"added": [
"agentConfigDir"
],
"addedDetail": [
{
"key": "agentConfigDir",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "ShellReadSegment",
"at": [
"src/tools/fs/shell-read-plan.ts:175"
],
"added": [
"stdin"
],
"addedDetail": [
{
"key": "stdin",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "SubagentToolOptions",
"at": [
"src/agents/subagent.ts:2742"
],
"added": [
"extraToolNames",
"extraToolNames[].aliases",
"extraToolNames[].contentOrigin",
"extraToolNames[].name"
],
"addedDetail": [
{
"key": "extraToolNames",
"optional": true
},
{
"key": "extraToolNames[].aliases",
"optional": true
},
{
"key": "extraToolNames[].contentOrigin",
"optional": true
},
{
"key": "extraToolNames[].name",
"optional": false
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "ToolCallRequest",
"at": [
"src/core/tool-policy.ts:52"
],
"added": [
"pathRuleAnchors",
"targetReading"
],
"addedDetail": [
{
"key": "pathRuleAnchors",
"optional": true
},
{
"key": "targetReading",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": true
},
{
"type": "ToolGateInput",
"at": [
"src/core/hooks.ts:1471"
],
"via": "runToolGate.ToolGateInput",
"added": [
"stampCallTarget"
],
"addedDetail": [
{
"key": "stampCallTarget",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ToolPolicy",
"at": [
"src/core/tool-policy.ts:735"
],
"added": [
"pathRules"
],
"addedDetail": [
{
"key": "pathRules",
"optional": true
}
],
"addedRequired": [],
"removed": [
"pathDenyRules"
],
"breaking": true,
"criteriaCovered": false
},
{
"type": "WriteProtectionCompileOptions",
"at": [
"src/core/write-protect.ts:657"
],
"added": [
"agentConfigDir"
],
"addedDetail": [
{
"key": "agentConfigDir",
"optional": true
}
],
"addedRequired": [],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"typeKeysUnreadableArms": [],
"typeKeysFlattenedCount": 227,
"signatures": [
{
"name": "adjudicatePersistedPathRules",
"at": [
"src/core/permission-rule-model.ts:2422"
],
"from": [
"(rules: readonly PersistedRule[], call: { tool: string; cwd: string | undefined; sessionId?: string; face?: DenyFace | undefined; }, targets: { readonly tighten?: PathTargetReading; readonly allow?: PathTargetReading; }, bases: PathRuleBases): PersistedRuleVerdict | undefined"
],
"to": [
"(rules: readonly PersistedRule[], call: { tool: string; cwd: string | undefined; sessionId?: string; face?: DenyFace | undefined; scopeIdentity?: ScopeRootIdentity; }, views: { readonly tighten?: TargetViews; readonly allow?: TargetViews; }, anchorsOf: (rule: PersistedRule) => PathRuleBases, leads: ReadonlyMap<string, string | undefined>): PersistedRuleVerdict | undefined"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `call` type widened: …: DenyFace | undefined; [ -> scopeIdentity?: ScopeRootIdentity; ]}",
"breaking": false
},
{
"aspect": "param",
"detail": "param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; }",
"breaking": true,
"uncertain": true
},
{
"aspect": "param",
"detail": "param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases",
"breaking": true,
"uncertain": true
},
{
"aspect": "param",
"detail": "+required param `leads: ReadonlyMap<string, string | undefined>`",
"breaking": true
}
],
"uncertain": "param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; } · param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases — 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": "adjudicatePersistedRules",
"at": [
"src/core/permission-rule-model.ts:2375"
],
"from": [
"(rules: readonly PersistedRule[], call: { tool: string; command: string; cwd: string | undefined; sessionId?: string; execCwd?: string; }): PersistedRuleVerdict | undefined"
],
"to": [
"(rules: readonly PersistedRule[], call: { tool: string; command: string; cwd: string | undefined; sessionId?: string; execCwd?: string; scopeIdentity?: ScopeRootIdentity; }): PersistedRuleVerdict | undefined"
],
"changes": [
{
"aspect": "param",
"detail": "param 2 `call` type widened: …ring; execCwd?: string; [ -> scopeIdentity?: ScopeRootIdentity; ]}",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "createSensitivePathPolicy",
"at": [
"src/core/sensitive-path-policy.ts:399"
],
"from": [
"(opts: { env: ExecutionEnv; patterns: readonly string[]; rootPath?: string; dataRoot?: string; tools?: string[]; }): ToolPolicy"
],
"to": [
"(opts: { env: ExecutionEnv; patterns: readonly string[]; rootPath?: string; dataRoot?: string; agentConfigDir?: string; tools?: string[]; }): ToolPolicy"
],
"changes": [
{
"aspect": "param",
"detail": "param 1 `opts` type widened: …ing; dataRoot?: string; [ -> agentConfigDir?: string; ]tools?: string[]; }",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "directoryRuleAdmits",
"at": [
"src/core/permission-rule-model.ts:1903"
],
"from": [
"(rule: Pick<PersistedRule, \"match\" | \"command\">, path: PathIdentity, bases: PathRuleBases): boolean"
],
"to": [
"(rule: Pick<PersistedRule, \"match\" | \"command\">, path: PathIdentity, bases: PathRuleBases, treeFamily?: PathFamily | undefined): boolean"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `treeFamily?: PathFamily | undefined`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "pathRuleReachOf",
"at": [
"src/core/permission-rule-model.ts:1517"
],
"from": [
"(rule: Pick<PersistedRule, \"match\" | \"command\" | \"behavior\">, target: PathIdentity, bases: PathRuleBases): ProgramRunReachOutcome"
],
"to": [
"(rule: Pick<PersistedRule, \"match\" | \"command\" | \"behavior\">, target: PathIdentity, bases: PathRuleBases, treeFamily?: PathFamily | undefined): ProgramRunReachOutcome"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `treeFamily?: PathFamily | undefined`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
},
{
"name": "scopeCoversCwd",
"at": [
"src/core/permission-rule-model.ts:2136"
],
"from": [
"(scope: RuleScope, cwd: string | undefined, sessionId?: string): boolean"
],
"to": [
"(scope: RuleScope, cwd: string | undefined, sessionId?: string, identity?: ScopeRootIdentity): boolean"
],
"changes": [
{
"aspect": "param",
"detail": "+optional param `identity?: ScopeRootIdentity`",
"breaking": false
}
],
"breaking": false,
"criteriaCovered": false
}
],
"declarationMoves": [
{
"name": "ArgWord",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/shell-read-write-targets.ts"
],
"to": [
"src/tools/fs/program-read-model.ts",
"src/tools/fs/shell-read-write-targets.ts"
]
},
{
"name": "WriteSeat",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/shell-read-write-targets.ts"
],
"to": [
"src/tools/fs/program-read-model.ts",
"src/tools/fs/shell-read-write-targets.ts"
]
},
{
"name": "dropDefinitionHeads",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/shell-read-word.ts"
],
"to": [
"src/tools/fs/shell-read-bindings.ts"
]
},
{
"name": "renderListEntry",
"kind": "function",
"onSurface": true,
"from": [
"src/core/allow-entry.ts"
],
"to": [
"src/core/allow-entry.ts",
"src/index.ts"
]
},
{
"name": "slotValueCandidates",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-readonly-classifier.ts"
],
"to": [
"src/tools/fs/program-read-model.ts"
]
},
{
"name": "suppliesFirstOperandSlot",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-readonly-classifier.ts"
],
"to": [
"src/tools/fs/program-read-model.ts"
]
}
],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "engineNoticeCode",
"name": "permission.rule_row_dropped",
"assertions": [
"G21.a"
]
},
{
"kind": "taskEventField",
"name": "tool_end.errorCode",
"assertions": [
"G38.a",
"G38.b",
"G38.c"
]
},
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G38.e",
"G38.f",
"G39.a",
"G39.b",
"G39.c",
"G39.d",
"G39.e"
]
},
{
"kind": "taskEventField",
"name": "tool_end.isError",
"assertions": [
"G20.a"
]
},
{
"kind": "typeMember",
"name": "AgentDefinition.allowTools",
"assertions": [
"G42.a"
]
},
{
"kind": "typeMember",
"name": "AgentDefinition.denyTools",
"assertions": [
"G40.a",
"G42.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.askClass",
"assertions": [
"G7.a",
"G8.a",
"G9.a",
"G12.a",
"G15.a",
"G16.a",
"G27.a",
"G37.a",
"G37.b",
"G37.e",
"G37.f",
"G37.g"
]
},
{
"kind": "typeMember",
"name": "AskRequest.classes",
"assertions": [
"G27.a",
"G27.b",
"G37.c",
"G37.d",
"G39.a",
"G39.b",
"G39.c",
"G39.d",
"G39.e"
]
},
{
"kind": "typeMember",
"name": "AskRequest.message",
"assertions": [
"G7.a",
"G37.a",
"G37.b"
]
},
{
"kind": "typeMember",
"name": "CheckpointError.detail",
"assertions": [
"G19.a"
]
},
{
"kind": "typeMember",
"name": "CheckpointState.handsCwd",
"assertions": [
"G11.a"
]
},
{
"kind": "typeMember",
"name": "CheckpointState.handsRoot",
"assertions": [
"G10.a",
"G10.b",
"G11.a"
]
},
{
"kind": "typeMember",
"name": "CompoundReadonlyVerdict.reason",
"assertions": [
"G25.a",
"G25.b",
"G25.c"
]
},
{
"kind": "typeMember",
"name": "GateOutcome.disposition",
"assertions": [
"G7.b",
"G8.a",
"G8.b",
"G9.b",
"G12.b",
"G13.a",
"G14.a",
"G15.a"
]
},
{
"kind": "typeMember",
"name": "ResolvedWorkspace.placement",
"assertions": [
"G18.a"
]
},
{
"kind": "typeMember",
"name": "RunnerDeps.agentConfigDir",
"assertions": [
"G38.a",
"G38.b",
"G38.c",
"G38.d",
"G38.e",
"G38.f"
]
},
{
"kind": "typeMember",
"name": "ShellReadJudgment.verdict",
"assertions": [
"G1.a",
"G1.b",
"G2.a",
"G2.b",
"G2.c",
"G3.a",
"G4.a",
"G4.b",
"G5.a",
"G5.b",
"G6.a",
"G22.a",
"G22.b",
"G22.c",
"G23.a",
"G23.b",
"G23.c",
"G24.a",
"G24.b",
"G28.a",
"G28.b",
"G29.a",
"G29.b",
"G30.a",
"G30.b",
"G31.a",
"G31.b",
"G31.c",
"G32.a",
"G32.b",
"G33.a",
"G33.b",
"G34.a",
"G34.b",
"G35.a",
"G36.a",
"G36.b"
]
},
{
"kind": "typeMember",
"name": "ShellSegment.peeled",
"assertions": [
"G26.a",
"G26.b"
]
},
{
"kind": "typeMember",
"name": "SubagentToolOptions.extraToolNames",
"assertions": [
"G40.a",
"G41.a",
"G41.b",
"G41.c"
]
},
{
"kind": "typeMember",
"name": "SubagentToolOptions.onExtraToolsError",
"assertions": [
"G41.a"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.excludeTools",
"assertions": [
"G42.b"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.handsReadOnly",
"assertions": [
"G42.b"
]
},
{
"kind": "typeMember",
"name": "ToolCallRequest.root",
"assertions": [
"G17.a"
]
},
{
"kind": "typeMember",
"name": "ToolCallRequest.targetReading",
"assertions": [
"G7.b"
]
},
{
"kind": "typeMember",
"name": "ToolSpec.agentToolPool",
"assertions": [
"G40.b"
]
}
],
"consumersHint": {
"cli": [
"Arity",
"CheckpointErrorReason",
"CheckpointState",
"ENGINE_NOTICE_CODES",
"EffectivePermissionRules",
"InheritedGate",
"NamedToolPolicy",
"OptionValueKind",
"Prepared",
"READ_CANDIDATE_PROVENANCES",
"RECOMMENDED_SENSITIVE_PATTERNS",
"ReadCandidate",
"RunInternals",
"RunnerDeps",
"SHELL_WRITE_COMMANDS",
"SubagentToolOptions",
"ToolCallRequest",
"ToolGateInput",
"ToolPolicy",
"WriteProtectionCompileOptions",
"adjudicatePersistedPathRules",
"createSensitivePathPolicy"
],
"server": [
"CheckpointErrorReason",
"CheckpointState",
"Dialect",
"ENGINE_NOTICE_CODES",
"InheritedGate",
"Prepared",
"RECOMMENDED_SENSITIVE_PATTERNS",
"ReadCandidate",
"RunInternals",
"RunnerDeps",
"SubagentToolOptions",
"ToolCallRequest",
"ToolGateInput",
"ToolPolicy",
"WriteProtectionCompileOptions",
"createSensitivePathPolicy",
"scopeCoversCwd",
"toolPolicyPathDenyRules"
],
"sdk": [
"CheckpointErrorReason",
"ENGINE_NOTICE_CODES",
"RunnerDeps",
"ToolPolicy"
],
"note": "scanned cli@bdbfee8f server@da3c2cdc sdk@8d8178f — 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 (EffectivePermissionRules, NamedToolPolicy, ResolvedWorkspace, ShellReadSegment, adjudicatePersistedPathRules, adjudicatePersistedRules, directoryRuleAdmits, pathRuleReachOf)"
},
"breakingCount": 6,
"breakingItems": [
"closed set lost members: OptionValueKind -count,delimiter,form,header,indirect,label,name-pattern,path,pattern,script,url",
"closed set lost members: SHELL_WRITE_COMMANDS -cp,mkdir,mv,rm,rmdir,sed,tee,touch",
"export removed: toolPolicyPathDenyRules (function)",
"signature changed: adjudicatePersistedPathRules — param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; }; param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases; +required param `leads: ReadonlyMap<string, string | undefined>`",
"type lost keys: NamedToolPolicy -pathDenyRules",
"type lost keys: ToolPolicy -pathDenyRules"
]
}