@sema-agent/core
Version:
Stateless, task-oriented AI agent core
153 lines (152 loc) • 4.73 kB
JSON
{
"repo": "core",
"version": "7.27.0",
"from": "e90527d7630a7098366f7843b8aae7346ea0a07c",
"to": "v7.27.0",
"added": [
{
"name": "ApprovalSeatOutcome",
"kind": "type",
"tier": "advanced",
"at": [
"src/core/tool-policy.ts:1318",
"src/index.ts:1345"
],
"criteriaCovered": true,
"breaking": false
}
],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F1",
"source": "behaviorFlips.summary",
"text": "NARROWING (#1019, P2, approval face — durable): the auto-mode classifier's denial-limit fallback, when PARKED durably and then settled by nobody (a policy refusal, or no approver), stops the leg with `classifier.denial_limit` exactly as the synchronous station does — the deny stands as the call's result, the stop ends the leg; a person's refusal on the same park does NOT stop (one table, `SETTLEMENT_NOBODY_JUDGED`, both stations)."
},
{
"id": "F3",
"source": "behaviorFlips.summary",
"text": "NARROWING (#1002 ①, C-R80, prompt face): the engine-minted approval-posture directive is EXCLUSIVE, bypass first — a run declaring both `autoModeRequested` and `approverPosture:\"bypass\"` receives the bypass segment alone (CC 2.1.259 `case\"auto_mode\"` arm order); single-seat runs are byte-unchanged. Cross-leg coexistence of two segments (a later leg adding the bypass seat after an auto-only leg already stated auto) is unchanged and recorded as KL-1002c."
},
{
"id": "F4",
"source": "behaviorFlips.summary",
"text": "NARROWING (#1013, P2, file stores): every JSONL read-back judges the record's SHAPE — a line that parses but is not an object (`123`, `\"str\"`, `null`, `[1]`) is disclosed once through the store's corrupt-read seat with a `CORRUPT_BODY_FORMS` word and skipped, never handed to a consumer; the eight roster faces of `storeReadBackShapeContract` are bound; every tolerant file store has one disclosure seat (one shared guard, sync throw and async rejection both contained); an artifact-ledger idempotency-replay record with a bad shape is refused at the ledger door; the permission-rule adoption marker is judged per arm."
}
],
"closedSetMembers": [],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "FileBackgroundAgentStoreOptions",
"at": [
"src/stores/file/background-agent-store.ts:43"
],
"added": [
"onCorruptRead"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "FileCheckpointStoreOptions",
"at": [
"src/stores/file/checkpoint-store.ts:86"
],
"added": [
"onCorruptRead"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "FileWorkflowRunStoreOptions",
"at": [
"src/stores/file/workflow-run-store.ts:47"
],
"added": [
"onCorruptRead"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "Prepared",
"at": [
"src/core/runner/contracts.ts:231"
],
"via": "Runner.SuspendReap.env",
"added": [
"stopForDenialLimit"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"typeKeysUnreadableArms": [],
"typeKeysFlattenedCount": 212,
"declarationMoves": [
{
"name": "StopForDenialLimit",
"kind": null,
"onSurface": false,
"from": [
"src/core/runner/denial-limit-arms.ts"
],
"to": [
"src/core/runner/contracts.ts"
]
}
],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G1.a"
]
},
{
"kind": "typeMember",
"name": "ApprovalSeatOutcome.settledBy",
"assertions": [
"G2.a"
]
},
{
"kind": "typeMember",
"name": "FileMailboxStoreOptions.onCorruptRead",
"assertions": [
"G4.a"
]
},
{
"kind": "typeMember",
"name": "TaskSpec.approverPosture",
"assertions": [
"G3.a"
]
}
],
"consumersHint": {
"cli": [
"Prepared"
],
"server": [
"FileBackgroundAgentStoreOptions",
"FileCheckpointStoreOptions",
"FileWorkflowRunStoreOptions"
],
"sdk": [],
"note": "scanned cli@17a6b331 server@73a73469 sdk@bfb4fd0 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
},
"breakingCount": 0,
"breakingItems": [],
"toResolvedAt": "bc100bca1f15c0658cc4d0f615bb31aca7027c0b"
}