@sema-agent/core
Version:
Stateless, task-oriented AI agent core
595 lines (594 loc) • 13.5 kB
JSON
{
"repo": "core",
"version": "7.28.1",
"from": "cba36ff92ab9b8a3912e984f6a20263bd6a4c16b",
"to": "v7.28.1",
"added": [],
"removed": [],
"changed": [],
"narrowed": [
{
"id": "F2",
"source": "behaviorFlips.summary",
"text": "NARROWING (#994 S0, shell read boundary): a command carrying an unclosed `'`, `\\\"` or `$'` is a PARSE FAILURE in every mode — no words, no segments, the plan's `unreadable` floor — where the strict faces used to re-read it quote-blind and vouch for the words that reading invented. Bash itself runs nothing on such a command."
},
{
"id": "F3",
"source": "behaviorFlips.summary",
"text": "NARROWING (#994 S0, merged-tree adversarial round 1): a word the lexer cannot settle refuses ITS OWN reading, not the whole text — the plan keeps every segment beside it and carries the refusal sentence as its `unreadable` floor, so a deny row named elsewhere in the same command still outranks the floor (`deny > ask`). Where nothing is denied, the floor is a mandated ask, never a vouched run."
},
{
"id": "F4",
"source": "behaviorFlips.summary",
"text": "NARROWING (#994 S0, merged-tree adversarial round 2): an unprovable directory move no longer relocates the base to a fiction — a `cd` target minted from an unresolved word is `unresolvable`, the base is LOST, and a later relative read is judged for DENY ROWS ONLY against `ReadCandidate.floorBases`, the bases the text was certainly standing in at that moment (the declared cwd when nothing had moved)."
},
{
"id": "F5",
"source": "behaviorFlips.summary",
"text": "NARROWING / ALIGNMENT (#994 S0 fallout, persisted-rule import): a rule body whose `$'…'` never closes is refused as `invalid.unbalanced_quotes` rather than `invalid.not_simple_command` — the same closed set, NO new member, and the `'` / `\"` spellings (which already read that way) are unchanged. The lexer now refuses an unbalanced body before the lane-shape reader sees it, so the rule parser asks the balance question first and keeps the code an import report has always grouped it under."
}
],
"closedSetMembers": [
{
"set": "BASH_ONLY_CONSTRUCTS",
"at": [
"src/shell/lex.ts:111"
],
"newSet": true,
"added": [
"ansi_c_quoting",
"append_assignment",
"brace_expansion",
"compound_assignment",
"here_string",
"locale_string",
"process_substitution",
"redirect_both",
"subscript_assignment"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "BashOnlyConstruct",
"at": [
"src/shell/lex.ts:122"
],
"newSet": true,
"added": [
"ansi_c_quoting",
"append_assignment",
"brace_expansion",
"compound_assignment",
"here_string",
"locale_string",
"process_substitution",
"redirect_both",
"subscript_assignment"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "EXPANSION_KINDS",
"at": [
"src/shell/lex.ts:44"
],
"newSet": true,
"added": [
"arithmetic",
"brace",
"command",
"glob",
"parameter",
"process",
"tilde"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ExpansionKind",
"at": [
"src/shell/lex.ts:45"
],
"newSet": true,
"added": [
"arithmetic",
"brace",
"command",
"glob",
"parameter",
"process",
"tilde"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "PARSE_FAILURE_REASONS",
"at": [
"src/shell/lex.ts:75"
],
"newSet": true,
"added": [
"background_operator",
"heredoc_delimiter_expands",
"heredoc_without_delimiter",
"redirect_without_target",
"undelimited_substitution",
"unterminated_ansi_c",
"unterminated_command_substitution",
"unterminated_compound_value",
"unterminated_double_quote",
"unterminated_heredoc",
"unterminated_parameter_expansion",
"unterminated_process_substitution",
"unterminated_single_quote",
"unterminated_subscript"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "ParseFailureReason",
"at": [
"src/shell/lex.ts:91"
],
"newSet": true,
"added": [
"background_operator",
"heredoc_delimiter_expands",
"heredoc_without_delimiter",
"redirect_without_target",
"undelimited_substitution",
"unterminated_ansi_c",
"unterminated_command_substitution",
"unterminated_compound_value",
"unterminated_double_quote",
"unterminated_heredoc",
"unterminated_parameter_expansion",
"unterminated_process_substitution",
"unterminated_single_quote",
"unterminated_subscript"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "QUOTE_KINDS",
"at": [
"src/shell/lex.ts:39"
],
"newSet": true,
"added": [
"\"",
"$\"",
"$'",
"'",
"\\"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "QuoteKind",
"at": [
"src/shell/lex.ts:40"
],
"newSet": true,
"added": [
"\"",
"$\"",
"$'",
"'",
"\\"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "UNRESOLVED_REASONS",
"at": [
"src/shell/lex.ts:49"
],
"newSet": true,
"added": [
"ansi_c_escape",
"compound_array_value",
"locale_string",
"parameter_text",
"subscript_text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"set": "UnresolvedReason",
"at": [
"src/shell/lex.ts:50"
],
"newSet": true,
"added": [
"ansi_c_escape",
"compound_array_value",
"locale_string",
"parameter_text",
"subscript_text"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
}
],
"closedSetsUnreadable": [],
"typeKeys": [
{
"type": "LexedWord",
"at": [
"src/shell/lex.ts:198"
],
"via": "ShellReadSegment.argv",
"added": [
"assignment",
"atCommandPosition",
"expansions",
"pieces",
"quotedSpans",
"unresolved"
],
"removed": [],
"breaking": false,
"criteriaCovered": false
},
{
"type": "ReadCandidate",
"at": [
"src/tools/fs/shell-read-plan.ts:110"
],
"added": [
"floorBases"
],
"removed": [],
"breaking": false,
"criteriaCovered": true
}
],
"typeKeysUnreadableArms": [],
"typeKeysFlattenedCount": 213,
"declarationMoves": [
{
"name": "LenientConnector",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexMode",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexOptions",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedCommand",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedGroup",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedHeredoc",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedRedirect",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedSegment",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedToken",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "LexedWord",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "QuoteOpen",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "SHELL_CONTROL_PREFIXES",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-program-position.ts"
],
"to": [
"src/shell/lex.ts",
"src/tools/fs/bash-program-position.ts"
]
},
{
"name": "SUBSTITUTION_PLACEHOLDER",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "SegmentTokens",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "ShellSegmentConnector",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts",
"src/tools/fs/bash-readonly-classifier.ts"
],
"to": [
"src/shell/lex.ts",
"src/tools/fs/bash-readonly-classifier.ts"
]
},
{
"name": "ansiCQuoteClose",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "dollarOpensQuote",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "lexShellText",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "literalTildeSpelling",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "quoteMask",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "substitutionsInHeredocBody",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
},
{
"name": "wordsOf",
"kind": null,
"onSurface": false,
"from": [
"src/tools/fs/bash-lexer.ts"
],
"to": [
"src/shell/lex.ts"
]
}
],
"mintMoves": [],
"criteriaObserves": [
{
"kind": "taskEventField",
"name": "tool_end.gate",
"assertions": [
"G1.a",
"G2.b",
"G3.a",
"G4.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.isError",
"assertions": [
"G1.b",
"G4.b"
]
},
{
"kind": "taskEventField",
"name": "tool_end.structured",
"assertions": [
"G1.b",
"G2.b",
"G3.a",
"G4.a"
]
},
{
"kind": "typeMember",
"name": "AskRequest.mandated",
"assertions": [
"G1.a",
"G2.a",
"G3.b"
]
},
{
"kind": "typeMember",
"name": "AskRequest.probeReason",
"assertions": [
"G2.a"
]
},
{
"kind": "typeMember",
"name": "ReadCandidate.floorBases",
"assertions": [
"G4.a"
]
},
{
"kind": "typeMember",
"name": "RuleReject.code",
"assertions": [
"G5.a"
]
},
{
"kind": "typeMember",
"name": "ShellReadPlan.unreadable",
"assertions": [
"G3.b"
]
}
],
"consumersHint": {
"cli": [],
"server": [
"ReadCandidate"
],
"sdk": [],
"note": "scanned cli@41e83b0c server@5532ec7b sdk@074194f — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
},
"breakingCount": 0,
"breakingItems": [],
"toResolvedAt": "228eabc7adbae3961b847fb9b598dcbee4593b86"
}