@sema-agent/core
Version:
Stateless, task-oriented AI agent core
68 lines (67 loc) • 2.74 kB
JSON
{
"repo": "core",
"version": "7.17.5",
"from": "dd51253ac702ab232224dac50de33eb0dd09e40f",
"to": "3dfd4ff66bfd1c6ea217fa251d2f28df79052f87",
"added": [],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F1",
"source": "behaviorFlips.summary",
"text": "Narrowing — argv re-entry (#766; test [7178] ①; B-107): a program that turns its STDIN into another program's argv (`xargs`, `parallel`) is judged like a shell re-entry — refused whole, so the boundary asks (mandated) instead of vouching; when the wrapped program is a declared no-path verb the pipeline runs unasked."
},
{
"id": "F2",
"source": "behaviorFlips.summary",
"text": "Narrowing — a base move the walk cannot verify (#767; test [7178] ②; B-107): after `cd X` the relative operands of a later segment are judged against BOTH bases (moved and unmoved) unless every connector between that `cd` and the segment is `&&` (the shell itself verifies the move); `;`, `||`, `|`, `&` and unknown connectors leave the move unverified (fail-closed)."
},
{
"id": "F3",
"source": "behaviorFlips.summary",
"text": "Narrowing + contract (#768 β/γ; clay C-R37; test [7178] ③): the full Bash face runs the canonical recheck the `bash_readonly` face already had — after the gate allowed and before spawn, every path the lexical verdict accepted (`checkedPaths` + glob patterns) is canonicalized against the READ roots; one that escapes is REFUSED (an error result, `details.type: \"readonly_out_of_root\"`, never an ask — the gate has passed and there is no channel to ask on). The seat's contract is stated as `@contract shell.read_boundary.friction_floor`: the shell read boundary judges what a command TEXT may name (a friction floor); the security boundary is the executionEnv sandbox."
}
],
"closedSetMembers": [
{
"set": "ShellSegmentConnector",
"at": [
"src/tools/fs/bash-readonly-classifier.ts:344"
],
"newSet": true,
"added": [
"&&",
";",
"start",
"|",
"||"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"typeKeys": [],
"declarationMoves": [],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "typeMember",
"name": "AskRequest.ruleOffersAbsence",
"assertions": [
"G1.a",
"G2.a",
"G3.a"
]
}
],
"consumersHint": {
"cli": [],
"server": [],
"sdk": [],
"note": "scanned cli@0a45f646 server@82cf402c sdk@6910789 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
},
"breakingCount": 0,
"breakingItems": []
}