@sema-agent/core
Version:
Stateless, task-oriented AI agent core
55 lines (54 loc) • 1.47 kB
JSON
{
"repo": "core",
"version": "7.24.4",
"from": "583db3a8918e747e8dab1c5e2f457cf79171bd3f",
"to": "v7.24.4",
"added": [],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F1",
"source": "behaviorFlips.summary",
"text": "NARROWING (#978, P2, permissions): every rule source is re-read at every tool gate — a session-policy rule (`PUT /v1/sessions/:id/policy` on server; `sessionPolicyStore` in core) written after a run's first turn denies the matching call in the SAME run; and every rule denial is one minted sentence naming its source."
}
],
"closedSetMembers": [],
"closedSetsUnreadable": [],
"typeKeys": [],
"declarationMoves": [],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "taskEventField",
"name": "tool_end.isError",
"assertions": [
"G1.a",
"G1.b"
]
},
{
"kind": "typeMember",
"name": "BackgroundChildEvent.seq",
"assertions": [
"G2.a"
]
},
{
"kind": "typeMember",
"name": "SessionPermissionRules.toolDeny",
"assertions": [
"G1.a"
]
}
],
"consumersHint": {
"cli": [],
"server": [],
"sdk": [],
"note": "NOT SCANNED: sema-cli, sema-server, sema-sdk — an empty list for those repos means \"not checked out\", not \"no consumer\""
},
"breakingCount": 0,
"breakingItems": [],
"toResolvedAt": "5cbec5a04d5cd905a121a02e21c3c71087a7b4fe"
}