@sema-agent/core
Version:
Stateless, task-oriented AI agent core
253 lines (252 loc) • 6.93 kB
JSON
{
"repo": "core",
"version": "7.48.0",
"from": "b29642cbf7daa459e48226114b2ac2132e855036",
"to": "7161f2a278ed51f0154de745fd7f6a4f8d349039",
"added": [],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F1",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING, open to veto (#1461): a word that a name's established value spells is read as that value at the program position and as an operand — a `Bash` allow no longer runs `P=rm; $P -rf <root>` without a card."
},
{
"id": "F2",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING, open to veto (#1461, completed): each field of a split unquoted value is a word of its own — named by its text, its `NAME=value` shape kept — for every reader, the removal guard included."
},
{
"id": "F7",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1459): every launcher field asks the one value table — `su -c` / `runuser -c` / `watch` / `bash -c` hand every established value of a name, as `sudo -s` already did."
},
{
"id": "F8",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1460): the combination bound counts distinct names and nothing is sampled past it — the words past the bound are handed on as written with their values as deny floors."
},
{
"id": "F9",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1446): a launcher option cluster is read as getopt reads it, its command-line letter included."
},
{
"id": "F10",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1452): `watch` declares its options (procps and BusyBox) and the words from its first operand on are the shell text; the exported `SHELL_WRAPPER_TABLE` `watch` row gains its option sets."
},
{
"id": "F11",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1463): a shell run as another user starts with that user's home — a login shell stands in it, `HOME` there is the target's."
},
{
"id": "F12",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING, open to veto (#1424): standard input flows into a group and into an inner shell; a process-substitution script and a stream-fed shell are scripts built when the command runs — also for a harmless text."
},
{
"id": "F13",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1466): the judge sees every name bash opens — a part of a pattern word carries the word's widened pattern, a malformed bracket unit is a member as bash reads it, a field forms its pattern once it has fully expanded."
},
{
"id": "F14",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1471): session rules with a bucket that is not a list of strings are refused — a bare `\"rm\"` was stored as `[\"r\",\"m\"]`."
},
{
"id": "F15",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1400): a protocol name with an empty tool segment (`mcp__srv__`) is judged `unmintable_segment`, not `current` — a rule that guarded nothing in silence is refused or announced."
},
{
"id": "F17",
"source": "behaviorFlips.summary",
"text": "BEHAVIOR NARROWING (#1442): a `readDenyPatterns` row that opens with `/` is rooted — it names that one absolute location (placed where its literal head leads through a link), not that tail at any depth."
}
],
"closedSetMembers": [],
"closedSetsUnreadable": [],
"typeKeys": [],
"typeKeysUnreadableArms": [],
"typeKeysFlattenedCount": 228,
"signatures": [],
"declarationMoves": [],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G1.a",
"G2.a",
"G2.c",
"G4.a",
"G4.b",
"G5.a",
"G5.c",
"G6.a",
"G7.a",
"G8.a",
"G8.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.isError",
"assertions": [
"G12.a",
"G12.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.output",
"assertions": [
"G12.a",
"G12.b"
]
},
{
"kind": "typeMember",
"name": "AskRequest.askClass",
"assertions": [
"G1.a",
"G1.b",
"G1.c",
"G1.d",
"G2.a",
"G3.a",
"G3.b",
"G3.c",
"G3.d",
"G4.a",
"G4.c",
"G5.a",
"G5.b",
"G5.c",
"G5.d",
"G6.a",
"G6.b",
"G6.c",
"G7.a",
"G7.b",
"G8.c"
]
},
{
"kind": "typeMember",
"name": "AskRequest.classes",
"assertions": [
"G2.b"
]
},
{
"kind": "typeMember",
"name": "AskRequest.message",
"assertions": [
"G1.c",
"G3.b",
"G6.b",
"G7.b"
]
},
{
"kind": "typeMember",
"name": "GateOutcome.disposition",
"assertions": [
"G1.b",
"G2.b",
"G2.c",
"G3.a",
"G3.c",
"G3.d",
"G4.b",
"G4.c",
"G5.b",
"G5.d",
"G6.c",
"G8.a",
"G8.b",
"G8.c"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyError.code",
"assertions": [
"G9.b",
"G10.a"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyError.detail.verdict",
"assertions": [
"G10.a"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyStore.getRules",
"assertions": [
"G9.a"
]
},
{
"kind": "typeMember",
"name": "SessionPolicyStore.putRules",
"assertions": [
"G9.a",
"G9.b"
]
},
{
"kind": "typeMember",
"name": "TaskResult.terminal.code",
"assertions": [
"G10.b"
]
},
{
"kind": "typeMember",
"name": "TaskResult.terminal.message",
"assertions": [
"G10.b"
]
},
{
"kind": "typeMember",
"name": "WorkflowRun.error",
"assertions": [
"G11.a",
"G11.b"
]
},
{
"kind": "typeMember",
"name": "WorkflowRun.result",
"assertions": [
"G11.b"
]
},
{
"kind": "typeMember",
"name": "WorkflowRun.status",
"assertions": [
"G11.a"
]
}
],
"consumersHint": {
"cli": [],
"server": [],
"sdk": [],
"note": "scanned cli@bad8fa4b server@a49a0616 sdk@ae10bec — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
},
"breakingCount": 0,
"breakingItems": []
}