@sema-agent/core 7.49.4 → 7.50.0

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.
Files changed (200) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/dist/agents/observer.js +3 -10
  3. package/dist/agents/peer-directory.d.ts +8 -3
  4. package/dist/agents/peer-directory.js +5 -3
  5. package/dist/agents/subagent-steps.d.ts +6 -14
  6. package/dist/agents/subagent-steps.js +3 -17
  7. package/dist/brain/stream-shared.d.ts +1 -1
  8. package/dist/core/allow-entry.d.ts +1 -1
  9. package/dist/core/allow-entry.js +1 -1
  10. package/dist/core/ask-origin.d.ts +15 -11
  11. package/dist/core/ask-origin.js +6 -14
  12. package/dist/core/auto-mode-prompt.js +6 -2
  13. package/dist/core/checkpoint-store.d.ts +6 -4
  14. package/dist/core/checkpoint-store.js +1 -1
  15. package/dist/core/context-edit.d.ts +2 -2
  16. package/dist/core/decision-receipt.d.ts +2 -2
  17. package/dist/core/decision-receipt.js +30 -11
  18. package/dist/core/delegation-frames.d.ts +66 -18
  19. package/dist/core/delegation-frames.js +22 -0
  20. package/dist/core/engine-notice.d.ts +7 -5
  21. package/dist/core/frame-settlement.d.ts +6 -1
  22. package/dist/core/gate-fold.js +19 -13
  23. package/dist/core/gate-lanes.js +12 -11
  24. package/dist/core/gate-outcome.d.ts +2 -2
  25. package/dist/core/governance-codes.js +2 -0
  26. package/dist/core/hooks.d.ts +28 -20
  27. package/dist/core/human-input-projection.js +2 -0
  28. package/dist/core/lsp-diagnostics.d.ts +3 -0
  29. package/dist/core/lsp-diagnostics.js +6 -0
  30. package/dist/core/lsp-session.d.ts +39 -17
  31. package/dist/core/lsp-session.js +118 -58
  32. package/dist/core/lsp.d.ts +83 -3
  33. package/dist/core/lsp.js +146 -16
  34. package/dist/core/mcp.js +2 -1
  35. package/dist/core/media-byte-cap.d.ts +14 -0
  36. package/dist/core/media-byte-cap.js +15 -3
  37. package/dist/core/memory-engine/consolidation-driver.d.ts +23 -1
  38. package/dist/core/memory-engine/consolidation-driver.js +54 -6
  39. package/dist/core/memory-engine/consolidation-write-gate.d.ts +46 -0
  40. package/dist/core/memory-engine/consolidation-write-gate.js +82 -0
  41. package/dist/core/memory-engine/consolidation.d.ts +17 -0
  42. package/dist/core/memory-engine/consolidation.js +1 -0
  43. package/dist/core/memory-engine/distiller.d.ts +8 -2
  44. package/dist/core/memory-engine/distiller.js +8 -6
  45. package/dist/core/memory-engine/engine.d.ts +37 -4
  46. package/dist/core/memory-engine/engine.js +127 -38
  47. package/dist/core/memory-engine/file-backend.d.ts +8 -3
  48. package/dist/core/memory-engine/file-backend.js +44 -16
  49. package/dist/core/memory-engine/index.d.ts +2 -2
  50. package/dist/core/memory-engine/index.js +1 -1
  51. package/dist/core/memory-engine/landing-admission.d.ts +65 -0
  52. package/dist/core/memory-engine/landing-admission.js +68 -0
  53. package/dist/core/memory-engine/types.d.ts +23 -0
  54. package/dist/core/mode-policy.d.ts +3 -2
  55. package/dist/core/mode-policy.js +2 -0
  56. package/dist/core/permission-rule-model.d.ts +19 -13
  57. package/dist/core/permission-rule-model.js +7 -4
  58. package/dist/core/permission-rule-provider.d.ts +11 -0
  59. package/dist/core/permission-rules.d.ts +1 -1
  60. package/dist/core/permission-rules.js +5 -2
  61. package/dist/core/persisted-rule-arms.d.ts +15 -7
  62. package/dist/core/persisted-rule-arms.js +13 -6
  63. package/dist/core/posix-mode-face.d.ts +10 -0
  64. package/dist/core/posix-mode-face.js +3 -0
  65. package/dist/core/reminder-mint.d.ts +5 -0
  66. package/dist/core/reminder-mint.js +1 -0
  67. package/dist/core/retired-keys.d.ts +8 -0
  68. package/dist/core/retired-keys.js +4 -0
  69. package/dist/core/rule-lane-reads.d.ts +4 -4
  70. package/dist/core/rule-lane-reads.js +10 -1
  71. package/dist/core/runner/construction-doors.d.ts +10 -4
  72. package/dist/core/runner/construction-doors.js +25 -2
  73. package/dist/core/runner/contracts.d.ts +20 -3
  74. package/dist/core/runner/env-capability-census.js +1 -1
  75. package/dist/core/runner/gate-exit.js +2 -1
  76. package/dist/core/runner/memory-consolidation-driver.d.ts +6 -4
  77. package/dist/core/runner/memory-consolidation-driver.js +5 -2
  78. package/dist/core/runner/memory-consolidation-write-judge.d.ts +17 -0
  79. package/dist/core/runner/memory-consolidation-write-judge.js +14 -0
  80. package/dist/core/runner/permission-rule-lanes.d.ts +16 -22
  81. package/dist/core/runner/permission-rule-lanes.js +13 -43
  82. package/dist/core/runner/person-path-rows.d.ts +244 -0
  83. package/dist/core/runner/person-path-rows.js +387 -0
  84. package/dist/core/runner/prepare-acquire-reconcile.js +8 -1
  85. package/dist/core/runner/prepare-artifact.d.ts +5 -3
  86. package/dist/core/runner/prepare-artifact.js +2 -8
  87. package/dist/core/runner/prepare-caps-and-workflow.d.ts +4 -3
  88. package/dist/core/runner/prepare-caps-and-workflow.js +1 -1
  89. package/dist/core/runner/prepare-context-lane.js +2 -2
  90. package/dist/core/runner/prepare-gate-stations.d.ts +3 -3
  91. package/dist/core/runner/prepare-gate-stations.js +1 -1
  92. package/dist/core/runner/prepare-hands-readface.d.ts +19 -10
  93. package/dist/core/runner/prepare-hands-readface.js +57 -43
  94. package/dist/core/runner/prepare-lsp.d.ts +15 -13
  95. package/dist/core/runner/prepare-lsp.js +11 -11
  96. package/dist/core/runner/prepare-policy-chain.d.ts +8 -4
  97. package/dist/core/runner/prepare-policy-chain.js +6 -7
  98. package/dist/core/runner/prepare-run-refs.js +1 -1
  99. package/dist/core/runner/prepare-task.js +24 -16
  100. package/dist/core/runner/prepare-turn-wiring.d.ts +13 -6
  101. package/dist/core/runner/prepare-turn-wiring.js +19 -8
  102. package/dist/core/runner/read-root-grant.d.ts +1 -25
  103. package/dist/core/runner/read-root-grant.js +1 -17
  104. package/dist/core/runner/retired-runner-deps.d.ts +2 -2
  105. package/dist/core/runner/run-brain-sinks.d.ts +1 -5
  106. package/dist/core/runner/run-brain-sinks.js +2 -4
  107. package/dist/core/runner/run-harness-handlers.js +5 -4
  108. package/dist/core/runner/run-identity-wiring.d.ts +4 -4
  109. package/dist/core/runner/run-identity-wiring.js +10 -1
  110. package/dist/core/runner/run-leg.d.ts +1 -1
  111. package/dist/core/runner/run-leg.js +22 -9
  112. package/dist/core/runner/run-settle-and-teardown.d.ts +0 -4
  113. package/dist/core/runner/run-settle-and-teardown.js +7 -4
  114. package/dist/core/runner/run-terminal-adoption.d.ts +1 -1
  115. package/dist/core/runner/run-terminal-adoption.js +1 -1
  116. package/dist/core/runner/run-turn-boundary.js +2 -2
  117. package/dist/core/runner/runtask.js +8 -8
  118. package/dist/core/runner/session-file-state-replay.d.ts +14 -4
  119. package/dist/core/runner/session-file-state-replay.js +8 -0
  120. package/dist/core/runner/stream-steer-verb.js +3 -0
  121. package/dist/core/runner/tool-end-body.d.ts +5 -4
  122. package/dist/core/runner/tool-end-body.js +4 -4
  123. package/dist/core/runner/tool-output-projection.d.ts +6 -4
  124. package/dist/core/runner/tool-output-projection.js +66 -47
  125. package/dist/core/runner-deps.d.ts +6 -3
  126. package/dist/core/shared-memory/types.d.ts +2 -2
  127. package/dist/core/shell-read-silence.d.ts +23 -0
  128. package/dist/core/shell-read-silence.js +18 -0
  129. package/dist/core/synthetic-read-verdict.d.ts +80 -21
  130. package/dist/core/synthetic-read-verdict.js +89 -18
  131. package/dist/core/task-event.d.ts +113 -25
  132. package/dist/core/task-spec.d.ts +44 -0
  133. package/dist/core/task-tool-shape.d.ts +1 -1
  134. package/dist/core/tool-catalog-entries.js +16 -2
  135. package/dist/core/tool-policy.d.ts +25 -15
  136. package/dist/core/tool-policy.js +9 -13
  137. package/dist/core/trace.d.ts +3 -2
  138. package/dist/core/types.d.ts +3 -3
  139. package/dist/core/types.js +1 -1
  140. package/dist/core/untrusted-text.d.ts +2 -2
  141. package/dist/core/user-attachment.d.ts +164 -0
  142. package/dist/core/user-attachment.js +437 -0
  143. package/dist/engine/compaction/compaction.js +10 -3
  144. package/dist/engine/compaction/utils.js +6 -0
  145. package/dist/engine/execution-env/node-execution-env.d.ts +19 -1
  146. package/dist/engine/execution-env/node-execution-env.js +127 -1
  147. package/dist/engine/harness/agent-harness.d.ts +12 -2
  148. package/dist/engine/harness/agent-harness.js +15 -3
  149. package/dist/engine/harness/types.d.ts +21 -0
  150. package/dist/engine/llm/content-block-render.d.ts +15 -0
  151. package/dist/engine/llm/content-block-render.js +10 -0
  152. package/dist/engine/llm/index.d.ts +1 -0
  153. package/dist/engine/llm/index.js +1 -0
  154. package/dist/engine/llm/types.d.ts +80 -4
  155. package/dist/engine/llm/types.js +43 -1
  156. package/dist/engine/session/import-validate.js +2 -0
  157. package/dist/index.d.ts +6 -4
  158. package/dist/index.js +2 -1
  159. package/dist/internal/harness-types.d.ts +1 -1
  160. package/dist/internal/llm.d.ts +2 -2
  161. package/dist/internal/llm.js +1 -1
  162. package/dist/orchestration/workflow.d.ts +4 -5
  163. package/dist/orchestration/workflow.js +2 -2
  164. package/dist/prompts/default.d.ts +1 -1
  165. package/dist/stores/file/permission-rule-store.d.ts +13 -1
  166. package/dist/stores/file/permission-rule-store.js +40 -21
  167. package/dist/tools/artifact/artifact-tool.js +1 -1
  168. package/dist/tools/fs/bash-readonly-classifier.d.ts +1 -1
  169. package/dist/tools/fs/dir-entries.d.ts +4 -10
  170. package/dist/tools/fs/dir-entries.js +4 -11
  171. package/dist/tools/fs/file-read-check.js +3 -3
  172. package/dist/tools/fs/fs-pdf.js +2 -4
  173. package/dist/tools/fs/fs-read.d.ts +47 -4
  174. package/dist/tools/fs/fs-read.js +63 -19
  175. package/dist/tools/fs/fs-search-tools.d.ts +3 -3
  176. package/dist/tools/fs/fs-search-tools.js +7 -2
  177. package/dist/tools/fs/fs-write.d.ts +1 -1
  178. package/dist/tools/fs/fs-write.js +7 -6
  179. package/dist/tools/fs/index.d.ts +7 -1
  180. package/dist/tools/fs/index.js +56 -34
  181. package/dist/tools/fs/read-deny-home.d.ts +19 -1
  182. package/dist/tools/fs/read-deny-home.js +32 -22
  183. package/dist/tools/fs/read-deny.d.ts +14 -0
  184. package/dist/tools/fs/read-deny.js +8 -0
  185. package/dist/tools/fs/repo-map.d.ts +3 -2
  186. package/dist/tools/fs/repo-map.js +11 -3
  187. package/dist/tools/fs/safety.d.ts +41 -2
  188. package/dist/tools/fs/safety.js +12 -3
  189. package/dist/tools/fs/shell-read-check.d.ts +12 -3
  190. package/dist/tools/fs/shell-read-check.js +28 -15
  191. package/dist/tools/fs/shell-read-device.d.ts +1 -1
  192. package/dist/tools/fs/shell-read-judge.d.ts +9 -4
  193. package/dist/tools/fs/shell-read-judge.js +1 -1
  194. package/dist/tools/loop-tick.d.ts +2 -2
  195. package/package.json +3 -1
  196. package/test/export-surface.snapshot.json +39 -1
  197. package/wire-changes/core@7.49.5.json +104 -0
  198. package/wire-changes/core@7.50.0.json +1699 -0
  199. package/dist/core/runner/persisted-path-rows.d.ts +0 -88
  200. package/dist/core/runner/persisted-path-rows.js +0 -108
@@ -0,0 +1,1699 @@
1
+ {
2
+ "repo": "core",
3
+ "version": "7.50.0",
4
+ "from": "fbce2704eecb13e80618cbb09416cc1e26ae297c",
5
+ "to": "548b94a2af65198d6e01c090944cfee23b4e144f",
6
+ "added": [
7
+ {
8
+ "name": "BoundFileObject",
9
+ "kind": "interface",
10
+ "tier": "internal",
11
+ "at": [
12
+ "src/engine/harness/types.ts:403",
13
+ "src/index.ts:517",
14
+ "src/internal/harness-types.ts:35"
15
+ ],
16
+ "criteriaCovered": false,
17
+ "breaking": false
18
+ },
19
+ {
20
+ "name": "CONSOLIDATION_WRITE_REFUSED_CODE",
21
+ "kind": "variable",
22
+ "tier": "advanced",
23
+ "at": [
24
+ "src/core/memory-engine/consolidation-driver.ts:250",
25
+ "src/core/memory-engine/consolidation.ts:823",
26
+ "src/core/memory-engine/index.ts:293",
27
+ "src/index.ts:2207"
28
+ ],
29
+ "criteriaCovered": false,
30
+ "breaking": false
31
+ },
32
+ {
33
+ "name": "ConsolidationWriteGate",
34
+ "kind": "type",
35
+ "tier": "advanced",
36
+ "at": [
37
+ "src/core/memory-engine/consolidation.ts:833",
38
+ "src/core/memory-engine/index.ts:230",
39
+ "src/index.ts:2137"
40
+ ],
41
+ "criteriaCovered": false,
42
+ "breaking": false
43
+ },
44
+ {
45
+ "name": "ConsolidationWriteJudge",
46
+ "kind": "type",
47
+ "tier": "advanced",
48
+ "at": [
49
+ "src/core/memory-engine/consolidation-driver.ts:248",
50
+ "src/core/memory-engine/index.ts:300",
51
+ "src/index.ts:2215"
52
+ ],
53
+ "criteriaCovered": false,
54
+ "breaking": false
55
+ },
56
+ {
57
+ "name": "ConsolidationWriteTarget",
58
+ "kind": "interface",
59
+ "tier": "advanced",
60
+ "at": [
61
+ "src/core/memory-engine/consolidation-driver.ts:242",
62
+ "src/core/memory-engine/index.ts:301",
63
+ "src/index.ts:2216"
64
+ ],
65
+ "criteriaCovered": false,
66
+ "breaking": false
67
+ },
68
+ {
69
+ "name": "HumanInputAttachment",
70
+ "kind": "interface",
71
+ "tier": "advanced",
72
+ "at": [
73
+ "src/core/task-event.ts:1178",
74
+ "src/core/types.ts:42",
75
+ "src/index.ts:1232"
76
+ ],
77
+ "criteriaCovered": false,
78
+ "breaking": false
79
+ },
80
+ {
81
+ "name": "USER_ATTACHMENTS_MAX",
82
+ "kind": "variable",
83
+ "tier": "advanced",
84
+ "at": [
85
+ "src/core/user-attachment.ts:39",
86
+ "src/index.ts:1227"
87
+ ],
88
+ "criteriaCovered": false,
89
+ "breaking": false
90
+ },
91
+ {
92
+ "name": "USER_ATTACHMENT_KINDS",
93
+ "kind": "variable",
94
+ "tier": "advanced",
95
+ "at": [
96
+ "src/core/user-attachment.ts:44",
97
+ "src/index.ts:1224"
98
+ ],
99
+ "criteriaCovered": false,
100
+ "breaking": false
101
+ },
102
+ {
103
+ "name": "USER_ATTACHMENT_LABEL_MAX",
104
+ "kind": "variable",
105
+ "tier": "advanced",
106
+ "at": [
107
+ "src/core/user-attachment.ts:41",
108
+ "src/index.ts:1228"
109
+ ],
110
+ "criteriaCovered": false,
111
+ "breaking": false
112
+ },
113
+ {
114
+ "name": "USER_ATTACHMENT_OUTCOMES",
115
+ "kind": "variable",
116
+ "tier": "advanced",
117
+ "at": [
118
+ "src/core/user-attachment.ts:48",
119
+ "src/index.ts:1226"
120
+ ],
121
+ "criteriaCovered": false,
122
+ "breaking": false
123
+ },
124
+ {
125
+ "name": "USER_ATTACHMENT_SEAT",
126
+ "kind": "variable",
127
+ "tier": "advanced",
128
+ "at": [
129
+ "src/core/user-attachment.ts:63",
130
+ "src/index.ts:1223"
131
+ ],
132
+ "criteriaCovered": false,
133
+ "breaking": false
134
+ },
135
+ {
136
+ "name": "USER_ATTACHMENT_SUPPLIES",
137
+ "kind": "variable",
138
+ "tier": "advanced",
139
+ "at": [
140
+ "src/core/user-attachment.ts:46",
141
+ "src/index.ts:1225"
142
+ ],
143
+ "criteriaCovered": false,
144
+ "breaking": false
145
+ },
146
+ {
147
+ "name": "UserAttachment",
148
+ "kind": "type",
149
+ "tier": "advanced",
150
+ "at": [
151
+ "src/core/task-spec.ts:60",
152
+ "src/core/types.ts:23",
153
+ "src/index.ts:3416"
154
+ ],
155
+ "criteriaCovered": false,
156
+ "breaking": false
157
+ },
158
+ {
159
+ "name": "UserAttachmentDeclaration",
160
+ "kind": "interface",
161
+ "tier": "advanced",
162
+ "at": [
163
+ "src/core/user-attachment.ts:184",
164
+ "src/index.ts:1230"
165
+ ],
166
+ "criteriaCovered": false,
167
+ "breaking": false
168
+ },
169
+ {
170
+ "name": "UserAttachmentKind",
171
+ "kind": "type",
172
+ "tier": "advanced",
173
+ "at": [
174
+ "src/engine/llm/types.ts:481",
175
+ "src/index.ts:3389",
176
+ "src/internal/llm.ts:10"
177
+ ],
178
+ "criteriaCovered": false,
179
+ "breaking": false
180
+ },
181
+ {
182
+ "name": "UserAttachmentObservation",
183
+ "kind": "interface",
184
+ "tier": "advanced",
185
+ "at": [
186
+ "src/engine/llm/types.ts:488",
187
+ "src/index.ts:3390",
188
+ "src/internal/llm.ts:11"
189
+ ],
190
+ "criteriaCovered": false,
191
+ "breaking": false
192
+ },
193
+ {
194
+ "name": "UserAttachmentOutcome",
195
+ "kind": "type",
196
+ "tier": "advanced",
197
+ "at": [
198
+ "src/engine/llm/types.ts:485",
199
+ "src/index.ts:3391",
200
+ "src/internal/llm.ts:12"
201
+ ],
202
+ "criteriaCovered": false,
203
+ "breaking": false
204
+ },
205
+ {
206
+ "name": "UserAttachmentSupply",
207
+ "kind": "type",
208
+ "tier": "advanced",
209
+ "at": [
210
+ "src/engine/llm/types.ts:483",
211
+ "src/index.ts:3392",
212
+ "src/internal/llm.ts:13"
213
+ ],
214
+ "criteriaCovered": false,
215
+ "breaking": false
216
+ },
217
+ {
218
+ "name": "UserMessageAttachment",
219
+ "kind": "interface",
220
+ "tier": "advanced",
221
+ "at": [
222
+ "src/engine/llm/types.ts:500",
223
+ "src/index.ts:3388",
224
+ "src/internal/llm.ts:14"
225
+ ],
226
+ "criteriaCovered": false,
227
+ "breaking": false
228
+ }
229
+ ],
230
+ "removed": [],
231
+ "changed": [],
232
+ "narrowed": [
233
+ {
234
+ "id": "F8",
235
+ "source": "behaviorFlips.summary",
236
+ "text": "(#1311 car A2, #1290) the user-attachment seat: `TaskSpec.userAttachments` reaches the model as one marked user message per attachment right after the human message, under the run's synthetic-Read judgment; the Read / notebook / PDF trailers and the MCP disclosure block open after a blank line (narrowing; a hook's feedback block appended to a tool result is not on this rule)."
237
+ }
238
+ ],
239
+ "closedSetMembers": [
240
+ {
241
+ "set": "AskGuard",
242
+ "at": [
243
+ "src/core/tool-policy.ts:439"
244
+ ],
245
+ "newSet": true,
246
+ "added": [
247
+ "artifact_shared_read",
248
+ "dangerous_delete",
249
+ "transcript_write",
250
+ "unverifiable_delete",
251
+ "unverifiable_shell_text"
252
+ ],
253
+ "removed": [],
254
+ "breaking": false,
255
+ "criteriaCovered": false
256
+ },
257
+ {
258
+ "set": "CHECKPOINT_CONFIG_REFUSAL_CODES",
259
+ "at": [
260
+ "src/core/checkpoint-store.ts:2477"
261
+ ],
262
+ "newSet": false,
263
+ "added": [
264
+ "config.user_attachment_invalid"
265
+ ],
266
+ "removed": [],
267
+ "breaking": false,
268
+ "criteriaCovered": false
269
+ },
270
+ {
271
+ "set": "MODE_RELEASE_REASONS",
272
+ "at": [
273
+ "src/core/ask-origin.ts:786"
274
+ ],
275
+ "newSet": false,
276
+ "added": [],
277
+ "removed": [
278
+ "rule_unreadable"
279
+ ],
280
+ "persistedBy": "none",
281
+ "breaking": true,
282
+ "criteriaCovered": false
283
+ },
284
+ {
285
+ "set": "PermissionResult.ruleUnreadable",
286
+ "at": [
287
+ "src/core/tool-policy.ts:605"
288
+ ],
289
+ "newSet": false,
290
+ "added": [
291
+ "persisted_rows"
292
+ ],
293
+ "removed": [],
294
+ "breaking": false,
295
+ "criteriaCovered": false
296
+ },
297
+ {
298
+ "set": "ReadKind",
299
+ "at": [
300
+ "src/tools/fs/fs-read.ts:93"
301
+ ],
302
+ "newSet": false,
303
+ "added": [
304
+ "directory"
305
+ ],
306
+ "removed": [],
307
+ "breaking": false,
308
+ "criteriaCovered": false
309
+ },
310
+ {
311
+ "set": "SYNTHETIC_READ_UNANSWERABLE_CAUSES",
312
+ "at": [
313
+ "src/core/synthetic-read-verdict.ts:88"
314
+ ],
315
+ "newSet": false,
316
+ "added": [
317
+ "rewritten",
318
+ "store_unreadable"
319
+ ],
320
+ "removed": [],
321
+ "breaking": false,
322
+ "criteriaCovered": false
323
+ },
324
+ {
325
+ "set": "TaskEvent.type",
326
+ "at": [
327
+ "src/core/task-event.ts:290",
328
+ "src/core/task-event.ts:312",
329
+ "src/core/task-event.ts:315",
330
+ "src/core/task-event.ts:317",
331
+ "src/core/task-event.ts:358",
332
+ "src/core/task-event.ts:390",
333
+ "src/core/task-event.ts:615",
334
+ "src/core/task-event.ts:629",
335
+ "src/core/task-event.ts:694",
336
+ "src/core/task-event.ts:780",
337
+ "src/core/task-event.ts:813",
338
+ "src/core/task-event.ts:825",
339
+ "src/core/task-event.ts:853",
340
+ "src/core/task-event.ts:875",
341
+ "src/core/task-event.ts:919",
342
+ "src/core/task-event.ts:927",
343
+ "src/core/task-event.ts:966",
344
+ "src/core/task-event.ts:1013",
345
+ "src/core/task-event.ts:1118",
346
+ "src/core/task-event.ts:1139",
347
+ "src/core/task-event.ts:1150",
348
+ "src/core/task-event.ts:1162",
349
+ "src/core/task-event.ts:1170"
350
+ ],
351
+ "newSet": false,
352
+ "added": [
353
+ "task_started"
354
+ ],
355
+ "removed": [],
356
+ "breaking": false,
357
+ "criteriaCovered": false
358
+ },
359
+ {
360
+ "set": "USER_ATTACHMENT_KINDS",
361
+ "at": [
362
+ "src/core/user-attachment.ts:44"
363
+ ],
364
+ "newSet": true,
365
+ "added": [
366
+ "client_image",
367
+ "client_text",
368
+ "directory",
369
+ "image",
370
+ "notebook",
371
+ "pdf",
372
+ "text"
373
+ ],
374
+ "removed": [],
375
+ "breaking": false,
376
+ "criteriaCovered": false
377
+ },
378
+ {
379
+ "set": "USER_ATTACHMENT_SUPPLIES",
380
+ "at": [
381
+ "src/core/user-attachment.ts:46"
382
+ ],
383
+ "newSet": true,
384
+ "added": [
385
+ "content_image",
386
+ "content_text",
387
+ "path"
388
+ ],
389
+ "removed": [],
390
+ "breaking": false,
391
+ "criteriaCovered": false
392
+ },
393
+ {
394
+ "set": "UserAttachmentKind",
395
+ "at": [
396
+ "src/engine/llm/types.ts:481"
397
+ ],
398
+ "newSet": true,
399
+ "added": [
400
+ "client_image",
401
+ "client_text",
402
+ "directory",
403
+ "image",
404
+ "notebook",
405
+ "pdf",
406
+ "text"
407
+ ],
408
+ "removed": [],
409
+ "breaking": false,
410
+ "criteriaCovered": false
411
+ },
412
+ {
413
+ "set": "UserAttachmentOutcome",
414
+ "at": [
415
+ "src/engine/llm/types.ts:485"
416
+ ],
417
+ "newSet": true,
418
+ "added": [
419
+ "attached",
420
+ "not_attached",
421
+ "partial",
422
+ "unchanged"
423
+ ],
424
+ "removed": [],
425
+ "breaking": false,
426
+ "criteriaCovered": false
427
+ },
428
+ {
429
+ "set": "UserAttachmentSupply",
430
+ "at": [
431
+ "src/engine/llm/types.ts:483"
432
+ ],
433
+ "newSet": true,
434
+ "added": [
435
+ "content_image",
436
+ "content_text",
437
+ "path"
438
+ ],
439
+ "removed": [],
440
+ "breaking": false,
441
+ "criteriaCovered": false
442
+ }
443
+ ],
444
+ "closedSetsUnreadable": [],
445
+ "typeKeys": [
446
+ {
447
+ "type": "AskClassFacts",
448
+ "at": [
449
+ "src/core/ask-origin.ts:801"
450
+ ],
451
+ "added": [
452
+ "ruleStoreUnreadable"
453
+ ],
454
+ "addedDetail": [
455
+ {
456
+ "key": "ruleStoreUnreadable",
457
+ "optional": true
458
+ }
459
+ ],
460
+ "addedRequired": [],
461
+ "removed": [],
462
+ "breaking": false,
463
+ "criteriaCovered": false
464
+ },
465
+ {
466
+ "type": "AskOriginFacts",
467
+ "at": [
468
+ "src/core/ask-origin.ts:103"
469
+ ],
470
+ "via": "AskClassFacts.AskOriginFacts",
471
+ "added": [
472
+ "ruleStoreUnreadable"
473
+ ],
474
+ "addedDetail": [
475
+ {
476
+ "key": "ruleStoreUnreadable",
477
+ "optional": true
478
+ }
479
+ ],
480
+ "addedRequired": [],
481
+ "removed": [],
482
+ "breaking": false,
483
+ "criteriaCovered": false
484
+ },
485
+ {
486
+ "type": "ConsolidationDriverEngine",
487
+ "at": [
488
+ "src/core/memory-engine/consolidation-driver.ts:231"
489
+ ],
490
+ "added": [
491
+ "consolidationWriteHome"
492
+ ],
493
+ "addedDetail": [
494
+ {
495
+ "key": "consolidationWriteHome",
496
+ "optional": false
497
+ }
498
+ ],
499
+ "addedRequired": [
500
+ "consolidationWriteHome"
501
+ ],
502
+ "removed": [],
503
+ "breaking": true,
504
+ "criteriaCovered": false
505
+ },
506
+ {
507
+ "type": "ConsolidationPlanFile",
508
+ "at": [
509
+ "src/core/memory-engine/consolidation.ts:565"
510
+ ],
511
+ "via": "ConsolidationPlanFoldEvidence.ConsolidationPlanFile",
512
+ "added": [
513
+ "applier"
514
+ ],
515
+ "addedDetail": [
516
+ {
517
+ "key": "applier",
518
+ "optional": true
519
+ }
520
+ ],
521
+ "addedRequired": [],
522
+ "removed": [],
523
+ "breaking": false,
524
+ "criteriaCovered": false
525
+ },
526
+ {
527
+ "type": "DriveConsolidationOptions",
528
+ "at": [
529
+ "src/core/memory-engine/distiller.ts:1337"
530
+ ],
531
+ "via": "driveConsolidationToFixpoint.DriveConsolidationOptions",
532
+ "added": [
533
+ "writeGate"
534
+ ],
535
+ "addedDetail": [
536
+ {
537
+ "key": "writeGate",
538
+ "optional": false
539
+ }
540
+ ],
541
+ "addedRequired": [
542
+ "writeGate"
543
+ ],
544
+ "removed": [],
545
+ "breaking": true,
546
+ "criteriaCovered": false
547
+ },
548
+ {
549
+ "type": "EngineAttestation",
550
+ "at": [
551
+ "src/core/tool-policy.ts:260"
552
+ ],
553
+ "added": [
554
+ "pathDenial"
555
+ ],
556
+ "addedDetail": [
557
+ {
558
+ "key": "pathDenial",
559
+ "optional": true
560
+ }
561
+ ],
562
+ "addedRequired": [],
563
+ "removed": [],
564
+ "breaking": false,
565
+ "criteriaCovered": false
566
+ },
567
+ {
568
+ "type": "ExecutionEnv",
569
+ "at": [
570
+ "src/engine/harness/types.ts:625"
571
+ ],
572
+ "added": [
573
+ "openBound"
574
+ ],
575
+ "addedDetail": [
576
+ {
577
+ "key": "openBound",
578
+ "optional": true
579
+ }
580
+ ],
581
+ "addedRequired": [],
582
+ "removed": [],
583
+ "breaking": false,
584
+ "criteriaCovered": false
585
+ },
586
+ {
587
+ "type": "FileMemoryEngineBackend",
588
+ "at": [
589
+ "src/core/memory-engine/file-backend.ts:1082"
590
+ ],
591
+ "added": [
592
+ "admitsLandings"
593
+ ],
594
+ "addedDetail": [
595
+ {
596
+ "key": "admitsLandings",
597
+ "optional": true
598
+ }
599
+ ],
600
+ "addedRequired": [],
601
+ "removed": [],
602
+ "breaking": false,
603
+ "criteriaCovered": false
604
+ },
605
+ {
606
+ "type": "FileSystem",
607
+ "at": [
608
+ "src/engine/harness/types.ts:474"
609
+ ],
610
+ "via": "ExecutionEnv.FileSystem",
611
+ "added": [
612
+ "openBound"
613
+ ],
614
+ "addedDetail": [
615
+ {
616
+ "key": "openBound",
617
+ "optional": true
618
+ }
619
+ ],
620
+ "addedRequired": [],
621
+ "removed": [],
622
+ "breaking": false,
623
+ "criteriaCovered": false
624
+ },
625
+ {
626
+ "type": "LspToolOptions",
627
+ "at": [
628
+ "src/core/lsp.ts:441"
629
+ ],
630
+ "added": [
631
+ "readFace"
632
+ ],
633
+ "addedDetail": [
634
+ {
635
+ "key": "readFace",
636
+ "optional": true
637
+ }
638
+ ],
639
+ "addedRequired": [],
640
+ "removed": [],
641
+ "breaking": false,
642
+ "criteriaCovered": false
643
+ },
644
+ {
645
+ "type": "MemoryBackend",
646
+ "at": [
647
+ "src/core/memory-engine/types.ts:277"
648
+ ],
649
+ "added": [
650
+ "admitsLandings"
651
+ ],
652
+ "addedDetail": [
653
+ {
654
+ "key": "admitsLandings",
655
+ "optional": true
656
+ }
657
+ ],
658
+ "addedRequired": [],
659
+ "removed": [],
660
+ "breaking": false,
661
+ "criteriaCovered": false
662
+ },
663
+ {
664
+ "type": "MemoryEngine",
665
+ "at": [
666
+ "src/core/memory-engine/engine.ts:1352"
667
+ ],
668
+ "added": [
669
+ "consolidationWriteHome"
670
+ ],
671
+ "addedDetail": [
672
+ {
673
+ "key": "consolidationWriteHome",
674
+ "optional": true
675
+ }
676
+ ],
677
+ "addedRequired": [],
678
+ "removed": [],
679
+ "breaking": false,
680
+ "criteriaCovered": false
681
+ },
682
+ {
683
+ "type": "NodeExecutionEnv",
684
+ "at": [
685
+ "src/engine/execution-env/node-execution-env.ts:605"
686
+ ],
687
+ "added": [
688
+ "listOpenDirectory",
689
+ "openBound"
690
+ ],
691
+ "addedDetail": [
692
+ {
693
+ "key": "listOpenDirectory",
694
+ "optional": true
695
+ },
696
+ {
697
+ "key": "openBound",
698
+ "optional": true
699
+ }
700
+ ],
701
+ "addedRequired": [],
702
+ "removed": [],
703
+ "breaking": false,
704
+ "criteriaCovered": false
705
+ },
706
+ {
707
+ "type": "ObservedFilesystem",
708
+ "at": [
709
+ "src/tools/fs/shell-read-environment.ts:43"
710
+ ],
711
+ "via": "ShellReadBoundary.writeTargetJudge",
712
+ "added": [
713
+ "openBound"
714
+ ],
715
+ "addedDetail": [
716
+ {
717
+ "key": "openBound",
718
+ "optional": true
719
+ }
720
+ ],
721
+ "addedRequired": [],
722
+ "removed": [],
723
+ "breaking": false,
724
+ "criteriaCovered": false
725
+ },
726
+ {
727
+ "type": "PermissionResult",
728
+ "at": [
729
+ "src/core/tool-policy.ts:474"
730
+ ],
731
+ "added": [
732
+ "ask.guards"
733
+ ],
734
+ "addedDetail": [
735
+ {
736
+ "key": "ask.guards",
737
+ "optional": true
738
+ }
739
+ ],
740
+ "addedRequired": [],
741
+ "removed": [
742
+ "ask.guard"
743
+ ],
744
+ "breaking": true,
745
+ "criteriaCovered": false
746
+ },
747
+ {
748
+ "type": "PersistedRuleHit",
749
+ "at": [
750
+ "src/core/hooks.ts:1452"
751
+ ],
752
+ "added": [
753
+ "denial"
754
+ ],
755
+ "addedDetail": [
756
+ {
757
+ "key": "denial",
758
+ "optional": true
759
+ }
760
+ ],
761
+ "addedRequired": [],
762
+ "removed": [],
763
+ "breaking": false,
764
+ "criteriaCovered": false
765
+ },
766
+ {
767
+ "type": "PersistedRuleVerdict",
768
+ "at": [
769
+ "src/core/permission-rule-model.ts:2469"
770
+ ],
771
+ "added": [
772
+ "denial"
773
+ ],
774
+ "addedDetail": [
775
+ {
776
+ "key": "denial",
777
+ "optional": true
778
+ }
779
+ ],
780
+ "addedRequired": [],
781
+ "removed": [],
782
+ "breaking": false,
783
+ "criteriaCovered": false
784
+ },
785
+ {
786
+ "type": "PreToolUseResult",
787
+ "at": [
788
+ "src/core/hooks.ts:1198"
789
+ ],
790
+ "added": [
791
+ "ask.guards"
792
+ ],
793
+ "addedDetail": [
794
+ {
795
+ "key": "ask.guards",
796
+ "optional": true
797
+ }
798
+ ],
799
+ "addedRequired": [],
800
+ "removed": [
801
+ "ask.guard"
802
+ ],
803
+ "breaking": true,
804
+ "criteriaCovered": false
805
+ },
806
+ {
807
+ "type": "ReadDenyMatcher",
808
+ "at": [
809
+ "src/tools/fs/read-deny.ts:337"
810
+ ],
811
+ "added": [
812
+ "forCall"
813
+ ],
814
+ "addedDetail": [
815
+ {
816
+ "key": "forCall",
817
+ "optional": true
818
+ }
819
+ ],
820
+ "addedRequired": [],
821
+ "removed": [],
822
+ "breaking": false,
823
+ "criteriaCovered": false
824
+ },
825
+ {
826
+ "type": "RemoteExecutionEnv",
827
+ "at": [
828
+ "src/core/remote-env.ts:313"
829
+ ],
830
+ "added": [
831
+ "openBound"
832
+ ],
833
+ "addedDetail": [
834
+ {
835
+ "key": "openBound",
836
+ "optional": true
837
+ }
838
+ ],
839
+ "addedRequired": [],
840
+ "removed": [],
841
+ "breaking": false,
842
+ "criteriaCovered": false
843
+ },
844
+ {
845
+ "type": "RunMemoryConsolidationOptions",
846
+ "at": [
847
+ "src/core/memory-engine/consolidation-driver.ts:252"
848
+ ],
849
+ "added": [
850
+ "writeJudge"
851
+ ],
852
+ "addedDetail": [
853
+ {
854
+ "key": "writeJudge",
855
+ "optional": false
856
+ }
857
+ ],
858
+ "addedRequired": [
859
+ "writeJudge"
860
+ ],
861
+ "removed": [],
862
+ "breaking": true,
863
+ "criteriaCovered": true
864
+ },
865
+ {
866
+ "type": "ShellReadBoundary",
867
+ "at": [
868
+ "src/tools/fs/shell-read-judge.ts:165"
869
+ ],
870
+ "added": [
871
+ "unreadPartitions"
872
+ ],
873
+ "addedDetail": [
874
+ {
875
+ "key": "unreadPartitions",
876
+ "optional": true
877
+ }
878
+ ],
879
+ "addedRequired": [],
880
+ "removed": [],
881
+ "breaking": false,
882
+ "criteriaCovered": false
883
+ },
884
+ {
885
+ "type": "ShellReadVerdict",
886
+ "at": [
887
+ "src/tools/fs/shell-read-check.ts:80"
888
+ ],
889
+ "added": [
890
+ "environmentSilent",
891
+ "rowsUnread"
892
+ ],
893
+ "addedDetail": [
894
+ {
895
+ "key": "environmentSilent",
896
+ "optional": true
897
+ },
898
+ {
899
+ "key": "rowsUnread",
900
+ "optional": true
901
+ }
902
+ ],
903
+ "addedRequired": [],
904
+ "removed": [],
905
+ "breaking": false,
906
+ "criteriaCovered": false
907
+ },
908
+ {
909
+ "type": "TaskEvent",
910
+ "at": [
911
+ "src/core/task-event.ts:289"
912
+ ],
913
+ "added": [
914
+ "human_input.attachments",
915
+ "task_started.agentType",
916
+ "task_started.model",
917
+ "task_started.name",
918
+ "task_started.parentSessionId",
919
+ "task_started.parentTaskId",
920
+ "task_started.rootSessionId",
921
+ "task_started.seq",
922
+ "task_started.sessionId",
923
+ "task_started.spawnName",
924
+ "task_started.startedAt",
925
+ "task_started.taskId",
926
+ "task_started.taskType",
927
+ "task_started.type",
928
+ "task_started.workflowAgentLabel",
929
+ "task_started.workflowRunId"
930
+ ],
931
+ "addedDetail": [
932
+ {
933
+ "key": "human_input.attachments",
934
+ "optional": true
935
+ },
936
+ {
937
+ "key": "task_started.agentType",
938
+ "optional": true
939
+ },
940
+ {
941
+ "key": "task_started.model",
942
+ "optional": false
943
+ },
944
+ {
945
+ "key": "task_started.name",
946
+ "optional": true
947
+ },
948
+ {
949
+ "key": "task_started.parentSessionId",
950
+ "optional": true
951
+ },
952
+ {
953
+ "key": "task_started.parentTaskId",
954
+ "optional": true
955
+ },
956
+ {
957
+ "key": "task_started.rootSessionId",
958
+ "optional": true
959
+ },
960
+ {
961
+ "key": "task_started.seq",
962
+ "optional": true
963
+ },
964
+ {
965
+ "key": "task_started.sessionId",
966
+ "optional": false
967
+ },
968
+ {
969
+ "key": "task_started.spawnName",
970
+ "optional": true
971
+ },
972
+ {
973
+ "key": "task_started.startedAt",
974
+ "optional": false
975
+ },
976
+ {
977
+ "key": "task_started.taskId",
978
+ "optional": false
979
+ },
980
+ {
981
+ "key": "task_started.taskType",
982
+ "optional": true
983
+ },
984
+ {
985
+ "key": "task_started.type",
986
+ "optional": false
987
+ },
988
+ {
989
+ "key": "task_started.workflowAgentLabel",
990
+ "optional": true
991
+ },
992
+ {
993
+ "key": "task_started.workflowRunId",
994
+ "optional": true
995
+ }
996
+ ],
997
+ "addedRequired": [],
998
+ "removed": [],
999
+ "breaking": false,
1000
+ "criteriaCovered": true
1001
+ },
1002
+ {
1003
+ "type": "TaskSpec",
1004
+ "at": [
1005
+ "src/core/task-spec.ts:73"
1006
+ ],
1007
+ "added": [
1008
+ "userAttachments"
1009
+ ],
1010
+ "addedDetail": [
1011
+ {
1012
+ "key": "userAttachments",
1013
+ "optional": true
1014
+ }
1015
+ ],
1016
+ "addedRequired": [],
1017
+ "removed": [],
1018
+ "breaking": false,
1019
+ "criteriaCovered": true
1020
+ },
1021
+ {
1022
+ "type": "UserMessage",
1023
+ "at": [
1024
+ "src/engine/llm/types.ts:384"
1025
+ ],
1026
+ "added": [
1027
+ "attachment"
1028
+ ],
1029
+ "addedDetail": [
1030
+ {
1031
+ "key": "attachment",
1032
+ "optional": true
1033
+ }
1034
+ ],
1035
+ "addedRequired": [],
1036
+ "removed": [],
1037
+ "breaking": false,
1038
+ "criteriaCovered": false
1039
+ },
1040
+ {
1041
+ "type": "UserPromptSubmitContext",
1042
+ "at": [
1043
+ "src/core/hooks.ts:1211"
1044
+ ],
1045
+ "added": [
1046
+ "userAttachments"
1047
+ ],
1048
+ "addedDetail": [
1049
+ {
1050
+ "key": "userAttachments",
1051
+ "optional": true
1052
+ }
1053
+ ],
1054
+ "addedRequired": [],
1055
+ "removed": [],
1056
+ "breaking": false,
1057
+ "criteriaCovered": false
1058
+ },
1059
+ {
1060
+ "type": "WriteDenyMatcher",
1061
+ "at": [
1062
+ "src/tools/fs/read-deny.ts:304"
1063
+ ],
1064
+ "added": [
1065
+ "forCall"
1066
+ ],
1067
+ "addedDetail": [
1068
+ {
1069
+ "key": "forCall",
1070
+ "optional": true
1071
+ }
1072
+ ],
1073
+ "addedRequired": [],
1074
+ "removed": [],
1075
+ "breaking": false,
1076
+ "criteriaCovered": false
1077
+ }
1078
+ ],
1079
+ "typeKeysUnreadableArms": [
1080
+ {
1081
+ "type": "TaskEvent",
1082
+ "at": "src/core/task-event.ts:289",
1083
+ "reasons": [
1084
+ "a union carrying 2 arm(s) whose keys this reader does not follow (a qualified reference (`TaskEventIdentity`); a qualified reference (`BrainStatus`)) — a key missing from this type at `to` is still reported REMOVED, carrying `uncertain` so the writer checks whether it moved there"
1085
+ ]
1086
+ }
1087
+ ],
1088
+ "typeKeysFlattenedCount": 223,
1089
+ "signatures": [
1090
+ {
1091
+ "name": "ConsolidationDriveEngine.commitConsolidationPlan",
1092
+ "at": [
1093
+ "src/core/memory-engine/distiller.ts:1228"
1094
+ ],
1095
+ "from": [
1096
+ "(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; }): Promise<ConsolidationDriveReceipt>"
1097
+ ],
1098
+ "to": [
1099
+ "(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationDriveReceipt>"
1100
+ ],
1101
+ "changes": [
1102
+ {
1103
+ "aspect": "param",
1104
+ "detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1105
+ "breaking": true,
1106
+ "uncertain": true
1107
+ }
1108
+ ],
1109
+ "uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
1110
+ "breaking": true,
1111
+ "criteriaCovered": false
1112
+ },
1113
+ {
1114
+ "name": "ConsolidationDriveEngine.reconcileConsolidation",
1115
+ "at": [
1116
+ "src/core/memory-engine/distiller.ts:1229"
1117
+ ],
1118
+ "from": [
1119
+ "(scope: string): Promise<{ replayed?: { planId: string; state: string; } | null; } | undefined | void>"
1120
+ ],
1121
+ "to": [
1122
+ "(scope: string, opts: { readonly writeGate: ConsolidationWriteGate; }): Promise<{ replayed?: { planId: string; state: string; } | null; } | undefined | void>"
1123
+ ],
1124
+ "changes": [
1125
+ {
1126
+ "aspect": "param",
1127
+ "detail": "+required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
1128
+ "breaking": true
1129
+ }
1130
+ ],
1131
+ "breaking": true,
1132
+ "criteriaCovered": false
1133
+ },
1134
+ {
1135
+ "name": "FileMemoryEngineBackend.applyPatches",
1136
+ "at": [
1137
+ "src/core/memory-engine/file-backend.ts:3600"
1138
+ ],
1139
+ "from": [
1140
+ "(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; }): Promise<PatchReport>"
1141
+ ],
1142
+ "to": [
1143
+ "(patches: readonly NotePatch[], opts?: Parameters<MemoryBackend[\"applyPatches\"]>[1]): Promise<PatchReport>"
1144
+ ],
1145
+ "changes": [
1146
+ {
1147
+ "aspect": "param",
1148
+ "detail": "param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]]",
1149
+ "breaking": true,
1150
+ "uncertain": true
1151
+ }
1152
+ ],
1153
+ "uncertain": "param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
1154
+ "breaking": true,
1155
+ "criteriaCovered": false
1156
+ },
1157
+ {
1158
+ "name": "LspSession.request",
1159
+ "at": [
1160
+ "src/core/lsp.ts:264"
1161
+ ],
1162
+ "from": [
1163
+ "(op: LspOperation, params: LspRequestParams, signal?: AbortSignal): Promise<LspResult>"
1164
+ ],
1165
+ "to": [
1166
+ "(op: LspOperation, params: LspRequestParams, signal?: AbortSignal, gate?: LspReadGate): Promise<LspResult>"
1167
+ ],
1168
+ "changes": [
1169
+ {
1170
+ "aspect": "param",
1171
+ "detail": "+optional param `gate?: LspReadGate`",
1172
+ "breaking": false
1173
+ }
1174
+ ],
1175
+ "breaking": false,
1176
+ "criteriaCovered": false
1177
+ },
1178
+ {
1179
+ "name": "MemoryBackend.applyPatches",
1180
+ "at": [
1181
+ "src/core/memory-engine/types.ts:386"
1182
+ ],
1183
+ "from": [
1184
+ "(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; }): Promise<PatchReport>"
1185
+ ],
1186
+ "to": [
1187
+ "(patches: readonly NotePatch[], opts?: { readonly anchoredRoot?: string; readonly admit?: (landings: readonly { readonly id: string; readonly scope: string; readonly slug: string; }[]) => Promise<void>; readonly confirm?: () => void; }): Promise<PatchReport>"
1188
+ ],
1189
+ "changes": [
1190
+ {
1191
+ "aspect": "param",
1192
+ "detail": "param 2 `opts` type widened: … anchoredRoot?: string; [ -> readonly admit?: (landings: readonly { readonly id: string; readonly …]}",
1193
+ "breaking": false
1194
+ }
1195
+ ],
1196
+ "breaking": false,
1197
+ "criteriaCovered": false
1198
+ },
1199
+ {
1200
+ "name": "MemoryEngine.commitConsolidationPlan",
1201
+ "at": [
1202
+ "src/core/memory-engine/engine.ts:6153"
1203
+ ],
1204
+ "from": [
1205
+ "(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; }): Promise<ConsolidationCommitReceipt>"
1206
+ ],
1207
+ "to": [
1208
+ "(cycleToken: string, proposal: ConsolidationProposal, opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationCommitReceipt>"
1209
+ ],
1210
+ "changes": [
1211
+ {
1212
+ "aspect": "param",
1213
+ "detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1214
+ "breaking": true,
1215
+ "uncertain": true
1216
+ }
1217
+ ],
1218
+ "uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
1219
+ "breaking": true,
1220
+ "criteriaCovered": false
1221
+ },
1222
+ {
1223
+ "name": "MemoryEngine.reconcileConsolidation",
1224
+ "at": [
1225
+ "src/core/memory-engine/engine.ts:7031"
1226
+ ],
1227
+ "from": [
1228
+ "(scope: string): Promise<ConsolidationReconcileReport>"
1229
+ ],
1230
+ "to": [
1231
+ "(scope: string, opts: { readonly writeGate: ConsolidationWriteGate; }): Promise<ConsolidationReconcileReport>"
1232
+ ],
1233
+ "changes": [
1234
+ {
1235
+ "aspect": "param",
1236
+ "detail": "+required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
1237
+ "breaking": true
1238
+ }
1239
+ ],
1240
+ "breaking": true,
1241
+ "criteriaCovered": false
1242
+ },
1243
+ {
1244
+ "name": "MemoryEngine.resolveConsolidationPlan",
1245
+ "at": [
1246
+ "src/core/memory-engine/engine.ts:7173"
1247
+ ],
1248
+ "from": [
1249
+ "(planId: string, action: \"discard\" | \"retry\", opts: { requestId: string; }): Promise<ConsolidationResolveReceipt>"
1250
+ ],
1251
+ "to": [
1252
+ "(planId: string, action: \"discard\" | \"retry\", opts: { requestId: string; writeGate: ConsolidationWriteGate; }): Promise<ConsolidationResolveReceipt>"
1253
+ ],
1254
+ "changes": [
1255
+ {
1256
+ "aspect": "param",
1257
+ "detail": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1258
+ "breaking": true,
1259
+ "uncertain": true
1260
+ }
1261
+ ],
1262
+ "uncertain": "param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]} — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
1263
+ "breaking": true,
1264
+ "criteriaCovered": false
1265
+ },
1266
+ {
1267
+ "name": "TransportLspSession.notifyFileChanged",
1268
+ "at": [
1269
+ "src/core/lsp-session.ts:421"
1270
+ ],
1271
+ "from": [
1272
+ "(filePath: string, signal?: AbortSignal): Promise<void>"
1273
+ ],
1274
+ "to": [
1275
+ "(filePath: string, signal?: AbortSignal, gate?: LspReadGate): Promise<void>"
1276
+ ],
1277
+ "changes": [
1278
+ {
1279
+ "aspect": "param",
1280
+ "detail": "+optional param `gate?: LspReadGate`",
1281
+ "breaking": false
1282
+ }
1283
+ ],
1284
+ "breaking": false,
1285
+ "criteriaCovered": false
1286
+ },
1287
+ {
1288
+ "name": "TransportLspSession.request",
1289
+ "at": [
1290
+ "src/core/lsp-session.ts:125"
1291
+ ],
1292
+ "from": [
1293
+ "(op: LspOperation, params: LspRequestParams, signal?: AbortSignal): Promise<LspResult>"
1294
+ ],
1295
+ "to": [
1296
+ "(op: LspOperation, params: LspRequestParams, signal?: AbortSignal, gate?: LspReadGate): Promise<LspResult>"
1297
+ ],
1298
+ "changes": [
1299
+ {
1300
+ "aspect": "param",
1301
+ "detail": "+optional param `gate?: LspReadGate`",
1302
+ "breaking": false
1303
+ }
1304
+ ],
1305
+ "breaking": false,
1306
+ "criteriaCovered": false
1307
+ },
1308
+ {
1309
+ "name": "TransportLspSession.warmOpen",
1310
+ "at": [
1311
+ "src/core/lsp-session.ts:405"
1312
+ ],
1313
+ "from": [
1314
+ "(filePaths: string[], signal?: AbortSignal): Promise<{ opened: number; failed: number; }>"
1315
+ ],
1316
+ "to": [
1317
+ "(filePaths: string[], _signal?: AbortSignal): Promise<{ opened: number; failed: number; deferred: number; }>"
1318
+ ],
1319
+ "changes": [
1320
+ {
1321
+ "aspect": "returns",
1322
+ "detail": "return type gained members deferred",
1323
+ "breaking": false
1324
+ }
1325
+ ],
1326
+ "breaking": false,
1327
+ "criteriaCovered": false
1328
+ },
1329
+ {
1330
+ "name": "resolveMemoryConsolidationDriver",
1331
+ "at": [
1332
+ "src/core/runner/memory-consolidation-driver.ts:59"
1333
+ ],
1334
+ "from": [
1335
+ "(deps: MemoryConsolidationDriverDeps): RunMemoryConsolidationOptions"
1336
+ ],
1337
+ "to": [
1338
+ "(deps: MemoryConsolidationDriverDeps): Omit<RunMemoryConsolidationOptions, \"writeJudge\">"
1339
+ ],
1340
+ "changes": [
1341
+ {
1342
+ "aspect": "returns",
1343
+ "detail": "return type [RunMemoryConsolidationOptions -> Omit<RunMemoryConsolidationOptions, \"writeJudge\">]",
1344
+ "breaking": true
1345
+ }
1346
+ ],
1347
+ "breaking": true,
1348
+ "criteriaCovered": false
1349
+ }
1350
+ ],
1351
+ "declarationMoves": [
1352
+ {
1353
+ "name": "quoteDataLabel",
1354
+ "kind": null,
1355
+ "onSurface": false,
1356
+ "from": [
1357
+ "src/tools/fs/dir-entries.ts"
1358
+ ],
1359
+ "to": [
1360
+ "src/engine/llm/types.ts",
1361
+ "src/internal/llm.ts"
1362
+ ]
1363
+ },
1364
+ {
1365
+ "name": "rootAdmittingArtifactStore",
1366
+ "kind": null,
1367
+ "onSurface": false,
1368
+ "from": [
1369
+ "src/core/runner/read-root-grant.ts"
1370
+ ],
1371
+ "to": [
1372
+ "src/tools/fs/safety.ts"
1373
+ ]
1374
+ },
1375
+ {
1376
+ "name": "ruleRowsDroppedNotice",
1377
+ "kind": null,
1378
+ "onSurface": false,
1379
+ "from": [
1380
+ "src/core/runner/persisted-path-rows.ts"
1381
+ ],
1382
+ "to": [
1383
+ "src/core/runner/person-path-rows.ts"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "name": "ruleStoreUnreadableNotice",
1388
+ "kind": null,
1389
+ "onSurface": false,
1390
+ "from": [
1391
+ "src/core/runner/persisted-path-rows.ts"
1392
+ ],
1393
+ "to": [
1394
+ "src/core/runner/person-path-rows.ts"
1395
+ ]
1396
+ }
1397
+ ],
1398
+ "mintMoves": [
1399
+ {
1400
+ "code": "permission.rule_row_dropped",
1401
+ "from": [
1402
+ "src/core/runner/persisted-path-rows.ts"
1403
+ ],
1404
+ "to": [
1405
+ "src/core/runner/person-path-rows.ts"
1406
+ ]
1407
+ },
1408
+ {
1409
+ "code": "permission.rule_store_unavailable",
1410
+ "from": [
1411
+ "src/core/runner/persisted-path-rows.ts"
1412
+ ],
1413
+ "to": [
1414
+ "src/core/runner/person-path-rows.ts"
1415
+ ]
1416
+ }
1417
+ ],
1418
+ "criteriaObserves": [
1419
+ {
1420
+ "kind": "engineNoticeCode",
1421
+ "name": "memory.consolidation_incomplete",
1422
+ "assertions": [
1423
+ "G9.b"
1424
+ ]
1425
+ },
1426
+ {
1427
+ "kind": "engineNoticeCode",
1428
+ "name": "memory.consolidation_refused",
1429
+ "assertions": [
1430
+ "G9.c"
1431
+ ]
1432
+ },
1433
+ {
1434
+ "kind": "engineNoticeCode",
1435
+ "name": "permission.rule_store_unavailable",
1436
+ "assertions": [
1437
+ "G5.a",
1438
+ "G7.c"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "kind": "taskEventField",
1443
+ "name": "human_input.attachments",
1444
+ "assertions": [
1445
+ "G10.a",
1446
+ "G10.b"
1447
+ ]
1448
+ },
1449
+ {
1450
+ "kind": "taskEventField",
1451
+ "name": "task_progress.status",
1452
+ "assertions": [
1453
+ "G11.c"
1454
+ ]
1455
+ },
1456
+ {
1457
+ "kind": "taskEventField",
1458
+ "name": "task_started.seq",
1459
+ "assertions": [
1460
+ "G11.a"
1461
+ ]
1462
+ },
1463
+ {
1464
+ "kind": "taskEventField",
1465
+ "name": "task_started.taskId",
1466
+ "assertions": [
1467
+ "G11.a"
1468
+ ]
1469
+ },
1470
+ {
1471
+ "kind": "taskEventField",
1472
+ "name": "tool_end.errorCode",
1473
+ "assertions": [
1474
+ "G2.a"
1475
+ ]
1476
+ },
1477
+ {
1478
+ "kind": "taskEventField",
1479
+ "name": "tool_end.gate",
1480
+ "assertions": [
1481
+ "G1.a",
1482
+ "G1.b",
1483
+ "G1.c",
1484
+ "G2.b",
1485
+ "G3.a",
1486
+ "G3.b",
1487
+ "G4.a",
1488
+ "G5.a",
1489
+ "G5.b",
1490
+ "G7.a",
1491
+ "G7.b",
1492
+ "G7.c",
1493
+ "G8.b"
1494
+ ]
1495
+ },
1496
+ {
1497
+ "kind": "taskEventField",
1498
+ "name": "tool_end.output",
1499
+ "assertions": [
1500
+ "G1.d",
1501
+ "G3.c",
1502
+ "G4.b",
1503
+ "G10.d",
1504
+ "G12.a",
1505
+ "G12.b"
1506
+ ]
1507
+ },
1508
+ {
1509
+ "kind": "taskEventField",
1510
+ "name": "tool_end.structured",
1511
+ "assertions": [
1512
+ "G2.a",
1513
+ "G2.b"
1514
+ ]
1515
+ },
1516
+ {
1517
+ "kind": "taskEventField",
1518
+ "name": "tool_end.totalChars",
1519
+ "assertions": [
1520
+ "G12.b"
1521
+ ]
1522
+ },
1523
+ {
1524
+ "kind": "taskEventField",
1525
+ "name": "tool_end.truncated",
1526
+ "assertions": [
1527
+ "G12.a"
1528
+ ]
1529
+ },
1530
+ {
1531
+ "kind": "typeMember",
1532
+ "name": "ConsolidationRefusedError.code",
1533
+ "assertions": [
1534
+ "G9.a"
1535
+ ]
1536
+ },
1537
+ {
1538
+ "kind": "typeMember",
1539
+ "name": "GateOutcome.disposition",
1540
+ "assertions": [
1541
+ "G1.a"
1542
+ ]
1543
+ },
1544
+ {
1545
+ "kind": "typeMember",
1546
+ "name": "GateOutcome.origin",
1547
+ "assertions": [
1548
+ "G7.a"
1549
+ ]
1550
+ },
1551
+ {
1552
+ "kind": "typeMember",
1553
+ "name": "ModeRelease.reason",
1554
+ "assertions": [
1555
+ "G8.a",
1556
+ "G8.b"
1557
+ ]
1558
+ },
1559
+ {
1560
+ "kind": "typeMember",
1561
+ "name": "PermissionResult.guards",
1562
+ "assertions": [
1563
+ "G6.a",
1564
+ "G6.b",
1565
+ "G13.a",
1566
+ "G13.b"
1567
+ ]
1568
+ },
1569
+ {
1570
+ "kind": "typeMember",
1571
+ "name": "PermissionResult.requiresRealApproval",
1572
+ "assertions": [
1573
+ "G13.a"
1574
+ ]
1575
+ },
1576
+ {
1577
+ "kind": "typeMember",
1578
+ "name": "RunMemoryConsolidationOptions.writeJudge",
1579
+ "assertions": [
1580
+ "G9.a"
1581
+ ]
1582
+ },
1583
+ {
1584
+ "kind": "typeMember",
1585
+ "name": "RunnerDeps.mediaByteCapBytes",
1586
+ "assertions": [
1587
+ "G14.a"
1588
+ ]
1589
+ },
1590
+ {
1591
+ "kind": "typeMember",
1592
+ "name": "RunnerDeps.onDelegationLifecycle",
1593
+ "assertions": [
1594
+ "G11.b"
1595
+ ]
1596
+ },
1597
+ {
1598
+ "kind": "typeMember",
1599
+ "name": "RunnerDeps.sessionStore",
1600
+ "assertions": [
1601
+ "G14.b"
1602
+ ]
1603
+ },
1604
+ {
1605
+ "kind": "typeMember",
1606
+ "name": "TaskSpec.userAttachments",
1607
+ "assertions": [
1608
+ "G10.a",
1609
+ "G10.c"
1610
+ ]
1611
+ },
1612
+ {
1613
+ "kind": "typeMember",
1614
+ "name": "WiringManifest.lsp",
1615
+ "assertions": [
1616
+ "G3.d"
1617
+ ]
1618
+ }
1619
+ ],
1620
+ "consumersHint": {
1621
+ "cli": [
1622
+ "AskClassFacts",
1623
+ "AskOriginFacts",
1624
+ "CHECKPOINT_CONFIG_REFUSAL_CODES",
1625
+ "ExecutionEnv",
1626
+ "FileMemoryEngineBackend",
1627
+ "FileSystem",
1628
+ "MODE_RELEASE_REASONS",
1629
+ "MemoryBackend",
1630
+ "MemoryEngine",
1631
+ "NodeExecutionEnv",
1632
+ "PermissionResult",
1633
+ "PersistedRuleHit",
1634
+ "PreToolUseResult",
1635
+ "ReadDenyMatcher",
1636
+ "ReadKind",
1637
+ "RemoteExecutionEnv",
1638
+ "RunMemoryConsolidationOptions",
1639
+ "SYNTHETIC_READ_UNANSWERABLE_CAUSES",
1640
+ "ShellReadBoundary",
1641
+ "ShellReadVerdict",
1642
+ "TaskEvent",
1643
+ "TaskSpec",
1644
+ "UserMessage",
1645
+ "UserPromptSubmitContext"
1646
+ ],
1647
+ "server": [
1648
+ "AskClassFacts",
1649
+ "CHECKPOINT_CONFIG_REFUSAL_CODES",
1650
+ "ConsolidationDriverEngine",
1651
+ "ExecutionEnv",
1652
+ "FileMemoryEngineBackend",
1653
+ "FileSystem",
1654
+ "LspSession",
1655
+ "MODE_RELEASE_REASONS",
1656
+ "MemoryBackend",
1657
+ "MemoryEngine",
1658
+ "NodeExecutionEnv",
1659
+ "PermissionResult",
1660
+ "PreToolUseResult",
1661
+ "RemoteExecutionEnv",
1662
+ "RunMemoryConsolidationOptions",
1663
+ "ShellReadBoundary",
1664
+ "TaskEvent",
1665
+ "TaskSpec",
1666
+ "TransportLspSession",
1667
+ "UserMessage",
1668
+ "UserPromptSubmitContext",
1669
+ "resolveMemoryConsolidationDriver"
1670
+ ],
1671
+ "sdk": [
1672
+ "FileSystem",
1673
+ "MODE_RELEASE_REASONS",
1674
+ "MemoryEngine",
1675
+ "NodeExecutionEnv",
1676
+ "PermissionResult",
1677
+ "PreToolUseResult",
1678
+ "TaskEvent",
1679
+ "TaskSpec"
1680
+ ],
1681
+ "note": "scanned cli@dea53b8d server@b4924bea sdk@a32bca5 — 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: 8 name(s) matched ONLY in bookkeeping files and were set aside (ConsolidationDriveEngine, EngineAttestation, LspToolOptions, PersistedRuleHit, PersistedRuleVerdict, ReadDenyMatcher, ShellReadVerdict, WriteDenyMatcher)"
1682
+ },
1683
+ "breakingCount": 13,
1684
+ "breakingItems": [
1685
+ "closed set lost members: MODE_RELEASE_REASONS -rule_unreadable",
1686
+ "signature changed: ConsolidationDriveEngine.commitConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1687
+ "signature changed: ConsolidationDriveEngine.reconcileConsolidation — +required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
1688
+ "signature changed: FileMemoryEngineBackend.applyPatches — param 2 `opts` type changed, direction not read: [{ readonly anchoredRoot?: string; } -> Parameters<MemoryBackend[\"applyPatches\"]>[1]]",
1689
+ "signature changed: MemoryEngine.commitConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1690
+ "signature changed: MemoryEngine.reconcileConsolidation — +required param `opts: { readonly writeGate: ConsolidationWriteGate; }`",
1691
+ "signature changed: MemoryEngine.resolveConsolidationPlan — param 3 `opts` type changed, direction not read: { requestId: string; [ -> writeGate: ConsolidationWriteGate; ]}",
1692
+ "signature changed: resolveMemoryConsolidationDriver — return type [RunMemoryConsolidationOptions -> Omit<RunMemoryConsolidationOptions, \"writeJudge\">]",
1693
+ "type gained required keys: ConsolidationDriverEngine +consolidationWriteHome",
1694
+ "type gained required keys: DriveConsolidationOptions +writeGate",
1695
+ "type gained required keys: RunMemoryConsolidationOptions +writeJudge",
1696
+ "type lost keys: PermissionResult -ask.guard",
1697
+ "type lost keys: PreToolUseResult -ask.guard"
1698
+ ]
1699
+ }