@sema-agent/core 7.30.1 → 7.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +284 -0
- package/dist/agents/cross-session-judge.d.ts +4 -12
- package/dist/agents/cross-session-judge.js +4 -11
- package/dist/agents/peer-session-drain.js +0 -5
- package/dist/agents/send-message-tool.js +1 -0
- package/dist/agents/subagent.d.ts +1 -0
- package/dist/agents/subagent.js +1 -0
- package/dist/core/ask-origin.d.ts +6 -0
- package/dist/core/ask-origin.js +10 -0
- package/dist/core/checkpoint-store.d.ts +14 -0
- package/dist/core/checkpoint-store.js +1 -0
- package/dist/core/engine-notice.d.ts +4 -0
- package/dist/core/governance-codes.d.ts +1 -1
- package/dist/core/governance-codes.js +4 -0
- package/dist/core/memory-engine/data-plane.d.ts +3 -1
- package/dist/core/memory-engine/data-plane.js +1 -1
- package/dist/core/memory-engine/delegation-settlement.d.ts +44 -3
- package/dist/core/memory-engine/delegation-settlement.js +38 -3
- package/dist/core/memory-engine/engine.d.ts +133 -27
- package/dist/core/memory-engine/engine.js +452 -151
- package/dist/core/memory-engine/entry-scan.d.ts +23 -0
- package/dist/core/memory-engine/entry-scan.js +55 -0
- package/dist/core/memory-engine/file-backend.d.ts +31 -23
- package/dist/core/memory-engine/file-backend.js +174 -100
- package/dist/core/memory-engine/layer-observations.d.ts +109 -0
- package/dist/core/memory-engine/layer-observations.js +148 -0
- package/dist/core/memory-engine/layout.d.ts +40 -4
- package/dist/core/memory-engine/layout.js +43 -7
- package/dist/core/memory-engine/types.d.ts +26 -2
- package/dist/core/parent-spec-seat.d.ts +4 -1
- package/dist/core/parent-spec-seat.js +2 -0
- package/dist/core/park-selfcheck.js +1 -0
- package/dist/core/runner/announce-once-ledger.d.ts +26 -0
- package/dist/core/runner/announce-once-ledger.js +37 -0
- package/dist/core/runner/contracts.d.ts +22 -5
- package/dist/core/runner/denial-limit-arms.d.ts +2 -2
- package/dist/core/runner/prepare-acquire-reconcile.d.ts +0 -4
- package/dist/core/runner/prepare-acquire-reconcile.js +1 -3
- package/dist/core/runner/prepare-file-history.d.ts +13 -15
- package/dist/core/runner/prepare-file-history.js +57 -43
- package/dist/core/runner/prepare-hands-readface.d.ts +2 -2
- package/dist/core/runner/prepare-listings.d.ts +3 -1
- package/dist/core/runner/prepare-listings.js +2 -2
- package/dist/core/runner/prepare-memory.js +16 -5
- package/dist/core/runner/prepare-park-ask.js +27 -16
- package/dist/core/runner/prepare-prompt-inputs.d.ts +8 -1
- package/dist/core/runner/prepare-prompt-inputs.js +5 -3
- package/dist/core/runner/prepare-task.js +7 -5
- package/dist/core/runner/prepare-wiring-manifest.d.ts +1 -0
- package/dist/core/runner/prepare-wiring-manifest.js +2 -1
- package/dist/core/runner/run-attachment-seats.js +1 -1
- package/dist/core/runner/run-leg.js +61 -52
- package/dist/core/runner/run-settle-and-teardown.js +4 -0
- package/dist/core/runner/run-turn-boundary.js +6 -6
- package/dist/core/runner/turn-attachments.d.ts +6 -6
- package/dist/core/runner-deps.d.ts +3 -1
- package/dist/core/secret-env.d.ts +12 -1
- package/dist/core/secret-env.js +27 -2
- package/dist/core/store-contracts/checkpoint-store-contract.d.ts +2 -0
- package/dist/core/store-contracts/checkpoint-store-contract.js +22 -0
- package/dist/core/task-result.d.ts +1 -1
- package/dist/core/task-spec.d.ts +17 -8
- package/dist/core/tool-spec.d.ts +1 -1
- package/dist/core/wiring-manifest.d.ts +10 -0
- package/dist/core/wiring-manifest.js +7 -1
- package/dist/engine/execution-env/node-execution-env.d.ts +6 -0
- package/dist/engine/execution-env/node-execution-env.js +15 -17
- package/dist/engine/harness/agent-harness.js +7 -5
- package/dist/engine/lsp/node-lsp-manager.d.ts +4 -0
- package/dist/engine/lsp/node-lsp-manager.js +10 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/fs/shell-read-plan.d.ts +2 -2
- package/dist/tools/fs/shell-read-plan.js +15 -10
- package/dist/tools/fs/shell-read-word.d.ts +5 -4
- package/dist/tools/fs/shell-read-word.js +3 -2
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +7 -1
- package/wire-changes/core@7.31.0.json +705 -0
- package/wire-changes/core@7.31.1.json +189 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repo": "core",
|
|
3
|
+
"version": "7.31.1",
|
|
4
|
+
"from": "289b2d1998a3e890f6a8659ffc4397074ddd720a",
|
|
5
|
+
"to": "v7.31.1",
|
|
6
|
+
"added": [],
|
|
7
|
+
"removed": [],
|
|
8
|
+
"changed": [],
|
|
9
|
+
"narrowed": [
|
|
10
|
+
{
|
|
11
|
+
"id": "F1",
|
|
12
|
+
"source": "behaviorFlips.summary",
|
|
13
|
+
"text": "NARROWING (#1094, memory store; +1 error code `memory.target_outside_store`, registered in `NON_GOVERNANCE_MEMORY_CODES`; +0 exports, +0 wire keys): an act at a memory store path is judged by where it LANDS, not by how it is spelled. One verdict — the target's DIRECTORY, resolved through every link on its existing prefix, must be the store root's physical form or inside it (the final component is not judged: the backend's `rm` removes a link standing there and `rename` replaces it, the engine's in-place writes refuse it with `ELOOP` — none follows it) — gates `FileMemoryEngineBackend.applyPatches` (per op at staging, the whole batch at the commit point, per op at each act), erasure (`MemoryEngine.eraseMemoryEntries`: commit point and act), journal replay (the whole journal before its first act, each op again at its act), and the engine's own writes at store paths: the copy-out projection, the harvest's missing-file restore, the read-only layer restore and the `MEMORY.md` index writes. The backend takes its root's physical form when it opens the store and re-checks it at the head of every face; the engine takes its memory dir's physical form at its first mount and a later mount that resolves elsewhere is refused. Separately, the engine's in-place write refuses a file with more than one name (a hard link), before anything is truncated. A refused `applyPatches` / erasure throws a plain `Error` whose `.code` is the new code — before the commit marker nothing is written and no journal is left, after it the journal is kept and replays once the path resolves inside again; a refused mount throws the code; a refused restore or index write is not performed and is reported on `HarvestReport.warnings` (or `incident.detail`) with the code, a hard-link refusal names the file. WHO IS HURT: a deployment whose store holds a directory link under its root, or a hard-linked memory file — the act that used to follow it is refused until it is removed. Known limits KL-1094-a … i."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "F2",
|
|
17
|
+
"source": "behaviorFlips.summary",
|
|
18
|
+
"text": "NARROWING (#1099, spawned-environment scrub; `SecretEnvFindingKind` +1 member `namespace-rule`, confidence `medium`; +0 exports, +0 wire keys): inside the host shell's `SEMA_` namespace, and only there, a credential word as ANY `_`-separated segment makes the name a credential (`SEMA_NAMESPACE_SECRET_RE`, over the one `CREDENTIAL_WORD` alternation the suffix rule reads, the count-word reading of `TOKENS` included) — so `SEMA_MODEL_KEY_<ENTRY>`, `SEMA_WEBSEARCH_KEY_<PROVIDER>` and `SEMA_REGISTRY_TOKEN_FILE` no longer reach a tool's child shell or a language server, and the one `config.secret_env_scrubbed` notice lists them in `detail.names`. The rule is consulted after the two exact-name lists and the suffix rule, so no existing finding changes kind, and every name outside `SEMA_` keeps its v7.31.0 verdict and kind. WHO IS HURT: a `SEMA_` name with a credential-word segment that a child needed (`SEMA_REGISTRY_TOKEN_FILE`, `SEMA_LLM_KEY_DB`, six `SEMA_CODE_*` knobs a nested `sema` reads); an `inheritEnv` allowlist, `shellEnv` / a per-exec env and a host-supplied LSP `env` still pass a name verbatim."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "F3",
|
|
22
|
+
"source": "behaviorFlips.summary",
|
|
23
|
+
"text": "NARROWING (#1100, shell read boundary; tightening only — no verdict loosens against 7.31.0; +0 exports, +0 wire keys; supersedes #1004's no-opener ruling for tilde values): three rules on one mechanism, the declared-home deny floor. (1) The opener condition leaves the assignment-value reading: an environment value with a leading tilde is placed against the declared home whether or not a program opens it, so `F=~/<deny row>; cat \"$F\"` meets the deny judge exactly as its `$HOME` and literal spellings already did. (2) A LITERAL tilde (quoted, escaped, after an option's `=`) — a relative `./~…` path to bash, but a program such as npm expands it itself — also carries its declared-home spelling as a deny-only view: refused on a deny row, never a containment question. (3) Each member of a `:` list meets the deny rows (a tilde member placed against the home); the whole value is still no containment candidate. Where no deny row is hit nothing changes. WHO IS HURT: a text whose value or literal-tilde operand names a deny row under the declared home and is never read that way is refused, as its `$HOME` and literal spellings already were (KL-1100a / KL-1100b)."
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"closedSetMembers": [
|
|
27
|
+
{
|
|
28
|
+
"set": "SecretEnvFindingKind",
|
|
29
|
+
"at": [
|
|
30
|
+
"src/core/secret-env.ts:181"
|
|
31
|
+
],
|
|
32
|
+
"newSet": false,
|
|
33
|
+
"added": [
|
|
34
|
+
"namespace-rule"
|
|
35
|
+
],
|
|
36
|
+
"removed": [],
|
|
37
|
+
"breaking": false,
|
|
38
|
+
"criteriaCovered": false
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"closedSetsUnreadable": [],
|
|
42
|
+
"typeKeys": [],
|
|
43
|
+
"typeKeysUnreadableArms": [],
|
|
44
|
+
"typeKeysFlattenedCount": 216,
|
|
45
|
+
"declarationMoves": [],
|
|
46
|
+
"mintMoves": [],
|
|
47
|
+
"criteriaObserves": [
|
|
48
|
+
{
|
|
49
|
+
"kind": "engineNoticeCode",
|
|
50
|
+
"name": "config.secret_env_scrubbed",
|
|
51
|
+
"assertions": [
|
|
52
|
+
"G2.a"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"kind": "typeMember",
|
|
57
|
+
"name": "AskRequest.mandated",
|
|
58
|
+
"assertions": [
|
|
59
|
+
"G3.a",
|
|
60
|
+
"G3.b"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"kind": "typeMember",
|
|
65
|
+
"name": "EngineNotice.detail",
|
|
66
|
+
"assertions": [
|
|
67
|
+
"G2.a"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "typeMember",
|
|
72
|
+
"name": "FileMemoryEngineBackend.applyPatches",
|
|
73
|
+
"assertions": [
|
|
74
|
+
"G1.a"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"kind": "typeMember",
|
|
79
|
+
"name": "HarvestReport.incident",
|
|
80
|
+
"assertions": [
|
|
81
|
+
"G1.a"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "typeMember",
|
|
86
|
+
"name": "HarvestReport.ok",
|
|
87
|
+
"assertions": [
|
|
88
|
+
"G1.b"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"kind": "typeMember",
|
|
93
|
+
"name": "HarvestReport.restored",
|
|
94
|
+
"assertions": [
|
|
95
|
+
"G1.a",
|
|
96
|
+
"G1.b"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"kind": "typeMember",
|
|
101
|
+
"name": "HarvestReport.warnings",
|
|
102
|
+
"assertions": [
|
|
103
|
+
"G1.a"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"kind": "typeMember",
|
|
108
|
+
"name": "MemoryEngine.eraseMemoryEntries",
|
|
109
|
+
"assertions": [
|
|
110
|
+
"G1.a"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"kind": "typeMember",
|
|
115
|
+
"name": "MemoryEngine.materialize",
|
|
116
|
+
"assertions": [
|
|
117
|
+
"G1.a"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"kind": "typeMember",
|
|
122
|
+
"name": "MemoryErasureAttestation.status",
|
|
123
|
+
"assertions": [
|
|
124
|
+
"G1.b"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"kind": "typeMember",
|
|
129
|
+
"name": "PatchReport.applied",
|
|
130
|
+
"assertions": [
|
|
131
|
+
"G1.b"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"kind": "typeMember",
|
|
136
|
+
"name": "SecretEnvFinding.confidence",
|
|
137
|
+
"assertions": [
|
|
138
|
+
"G2.a"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"kind": "typeMember",
|
|
143
|
+
"name": "SecretEnvFinding.key",
|
|
144
|
+
"assertions": [
|
|
145
|
+
"G2.b"
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"kind": "typeMember",
|
|
150
|
+
"name": "SecretEnvFinding.kind",
|
|
151
|
+
"assertions": [
|
|
152
|
+
"G2.a",
|
|
153
|
+
"G2.b"
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"kind": "typeMember",
|
|
158
|
+
"name": "ShellReadVerdict.disposition",
|
|
159
|
+
"assertions": [
|
|
160
|
+
"G3.a",
|
|
161
|
+
"G3.b"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"kind": "typeMember",
|
|
166
|
+
"name": "ShellReadVerdict.finding",
|
|
167
|
+
"assertions": [
|
|
168
|
+
"G3.a",
|
|
169
|
+
"G3.b"
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"kind": "typeMember",
|
|
174
|
+
"name": "ShellReadVerdict.readRootCandidate",
|
|
175
|
+
"assertions": [
|
|
176
|
+
"G3.b"
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"consumersHint": {
|
|
181
|
+
"cli": [],
|
|
182
|
+
"server": [],
|
|
183
|
+
"sdk": [],
|
|
184
|
+
"note": "scanned cli@4e593722 server@c60beebe sdk@a9440f2 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it. Ledger files (**/docs/core-consumption/**, **/docs/wire-consumption/**, **/*LEDGER*.json) are not evidence of use — server: 1 name(s) matched ONLY in bookkeeping files and were set aside (SecretEnvFindingKind)"
|
|
185
|
+
},
|
|
186
|
+
"breakingCount": 0,
|
|
187
|
+
"breakingItems": [],
|
|
188
|
+
"toResolvedAt": "c7c5484e2ab1b4abcba1297de62424e71306e66c"
|
|
189
|
+
}
|