UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

595 lines (594 loc) • 13.5 kB
{ "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" }