@sema-agent/core 7.44.0 → 7.46.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 (159) hide show
  1. package/CHANGELOG.md +418 -1
  2. package/dist/agents/extra-tool-names.d.ts +65 -0
  3. package/dist/agents/extra-tool-names.js +124 -0
  4. package/dist/agents/subagent.d.ts +17 -5
  5. package/dist/agents/subagent.js +65 -38
  6. package/dist/agents/tool-filter.d.ts +82 -5
  7. package/dist/agents/tool-filter.js +134 -4
  8. package/dist/core/agent-config-dir.d.ts +20 -0
  9. package/dist/core/agent-config-dir.js +49 -0
  10. package/dist/core/agent-definition.d.ts +2 -2
  11. package/dist/core/allow-entry.d.ts +30 -4
  12. package/dist/core/allow-entry.js +32 -5
  13. package/dist/core/ask-origin.d.ts +23 -4
  14. package/dist/core/ask-origin.js +11 -5
  15. package/dist/core/checkpoint-store.d.ts +41 -4
  16. package/dist/core/decision-receipt.js +1 -1
  17. package/dist/core/effective-path-target.d.ts +143 -10
  18. package/dist/core/effective-path-target.js +113 -9
  19. package/dist/core/engine-notice.d.ts +25 -3
  20. package/dist/core/engine-notice.js +12 -6
  21. package/dist/core/gate-fold.js +3 -0
  22. package/dist/core/gate-lanes.js +11 -3
  23. package/dist/core/gate-outcome.d.ts +5 -0
  24. package/dist/core/gate-outcome.js +2 -0
  25. package/dist/core/governance-codes.d.ts +3 -1
  26. package/dist/core/governance-codes.js +3 -0
  27. package/dist/core/hooks.d.ts +5 -0
  28. package/dist/core/memory-engine/content-origin.d.ts +0 -34
  29. package/dist/core/memory-engine/content-origin.js +9 -4
  30. package/dist/core/memory-engine/layout.d.ts +5 -1
  31. package/dist/core/memory-engine/layout.js +1 -0
  32. package/dist/core/path-rule-binding.d.ts +65 -0
  33. package/dist/core/path-rule-binding.js +99 -0
  34. package/dist/core/permission-rule-model.d.ts +47 -18
  35. package/dist/core/permission-rule-model.js +38 -42
  36. package/dist/core/permission-rule-provider.d.ts +7 -0
  37. package/dist/core/permission-rule-provider.js +10 -3
  38. package/dist/core/permission-rule-store.d.ts +8 -0
  39. package/dist/core/permission-rule-store.js +6 -2
  40. package/dist/core/permission-rule-sync.js +2 -2
  41. package/dist/core/permission-rules.d.ts +22 -36
  42. package/dist/core/permission-rules.js +50 -40
  43. package/dist/core/real-approval.d.ts +9 -6
  44. package/dist/core/real-approval.js +5 -5
  45. package/dist/core/runner/child-tree.d.ts +110 -0
  46. package/dist/core/runner/child-tree.js +107 -0
  47. package/dist/core/runner/construction-doors.d.ts +5 -0
  48. package/dist/core/runner/construction-doors.js +6 -0
  49. package/dist/core/runner/contracts.d.ts +54 -2
  50. package/dist/core/runner/permission-rule-lanes.d.ts +34 -25
  51. package/dist/core/runner/permission-rule-lanes.js +18 -12
  52. package/dist/core/runner/persisted-path-rows.d.ts +31 -7
  53. package/dist/core/runner/persisted-path-rows.js +31 -12
  54. package/dist/core/runner/prepare-ask-lane.d.ts +6 -0
  55. package/dist/core/runner/prepare-ask-lane.js +4 -2
  56. package/dist/core/runner/prepare-config-doors.js +3 -1
  57. package/dist/core/runner/prepare-execution-env.d.ts +5 -2
  58. package/dist/core/runner/prepare-execution-env.js +11 -3
  59. package/dist/core/runner/prepare-gate-stations.d.ts +6 -0
  60. package/dist/core/runner/prepare-gate-stations.js +3 -1
  61. package/dist/core/runner/prepare-hands-readface.d.ts +8 -4
  62. package/dist/core/runner/prepare-hands-readface.js +6 -6
  63. package/dist/core/runner/prepare-inherited-gate.d.ts +8 -1
  64. package/dist/core/runner/prepare-inherited-gate.js +8 -2
  65. package/dist/core/runner/prepare-listings.d.ts +4 -4
  66. package/dist/core/runner/prepare-listings.js +2 -22
  67. package/dist/core/runner/prepare-park-ask.d.ts +5 -0
  68. package/dist/core/runner/prepare-park-ask.js +6 -4
  69. package/dist/core/runner/prepare-policy-chain.d.ts +16 -2
  70. package/dist/core/runner/prepare-policy-chain.js +14 -5
  71. package/dist/core/runner/prepare-suspend-saga.d.ts +10 -0
  72. package/dist/core/runner/prepare-suspend-saga.js +7 -1
  73. package/dist/core/runner/prepare-task.js +41 -18
  74. package/dist/core/runner/prepare-turn-wiring.d.ts +2 -0
  75. package/dist/core/runner/prepare-turn-wiring.js +2 -1
  76. package/dist/core/runner/prepare-workspace-restore.d.ts +3 -0
  77. package/dist/core/runner/prepare-workspace-restore.js +1 -0
  78. package/dist/core/runner/resume-apply.js +17 -3
  79. package/dist/core/runner/resume-checkpoint-screen.js +13 -0
  80. package/dist/core/runner/resume-policy-outcome.js +2 -1
  81. package/dist/core/runner/run-leg.js +5 -1
  82. package/dist/core/runner/run-notification-lane.js +2 -2
  83. package/dist/core/runner/runtask.d.ts +2 -0
  84. package/dist/core/runner/runtask.js +4 -2
  85. package/dist/core/runner/stream-steer-verb.js +2 -2
  86. package/dist/core/runner/sub-agent-deny-lists.d.ts +32 -0
  87. package/dist/core/runner/sub-agent-deny-lists.js +121 -0
  88. package/dist/core/runner/synthetic-tools.d.ts +1 -1
  89. package/dist/core/runner/synthetic-tools.js +3 -2
  90. package/dist/core/runner/write-protection-station.d.ts +3 -2
  91. package/dist/core/runner/write-protection-station.js +1 -0
  92. package/dist/core/runner-deps.d.ts +14 -0
  93. package/dist/core/sensitive-path-policy.d.ts +8 -0
  94. package/dist/core/sensitive-path-policy.js +18 -2
  95. package/dist/core/session-policy-store.d.ts +6 -2
  96. package/dist/core/session-policy-store.js +2 -1
  97. package/dist/core/shell-wrapper-projection.d.ts +11 -0
  98. package/dist/core/shell-wrapper-projection.js +56 -0
  99. package/dist/core/shell-wrapper-table.d.ts +144 -34
  100. package/dist/core/shell-wrapper-table.js +40 -20
  101. package/dist/core/skill-grant.d.ts +10 -2
  102. package/dist/core/skill-grant.js +20 -4
  103. package/dist/core/synthetic-read-verdict.d.ts +3 -0
  104. package/dist/core/synthetic-read-verdict.js +3 -1
  105. package/dist/core/task-notification.d.ts +12 -1
  106. package/dist/core/task-notification.js +13 -1
  107. package/dist/core/task-spec.d.ts +5 -3
  108. package/dist/core/tool-catalog-entries.d.ts +21 -0
  109. package/dist/core/tool-catalog-entries.js +9 -0
  110. package/dist/core/tool-policy.d.ts +45 -12
  111. package/dist/core/tool-policy.js +18 -20
  112. package/dist/core/tool-spec.d.ts +23 -4
  113. package/dist/core/types.d.ts +1 -1
  114. package/dist/core/types.js +1 -1
  115. package/dist/core/write-protect.d.ts +4 -0
  116. package/dist/core/write-protect.js +30 -9
  117. package/dist/index.d.ts +10 -6
  118. package/dist/index.js +9 -5
  119. package/dist/orchestration/run-spec.js +8 -7
  120. package/dist/orchestration/workflow.js +3 -2
  121. package/dist/shell/lex.d.ts +7 -0
  122. package/dist/shell/lex.js +17 -0
  123. package/dist/tools/fs/bash-program-position.d.ts +8 -87
  124. package/dist/tools/fs/bash-program-position.js +33 -69
  125. package/dist/tools/fs/bash-readonly-classifier.d.ts +17 -444
  126. package/dist/tools/fs/bash-readonly-classifier.js +169 -1225
  127. package/dist/tools/fs/index.d.ts +3 -2
  128. package/dist/tools/fs/program-read-model.d.ts +694 -0
  129. package/dist/tools/fs/program-read-model.js +1252 -0
  130. package/dist/tools/fs/program-read-model.rows.d.ts +18 -0
  131. package/dist/tools/fs/program-read-model.rows.js +613 -0
  132. package/dist/tools/fs/read-deny-home.d.ts +19 -1
  133. package/dist/tools/fs/read-deny-home.js +62 -24
  134. package/dist/tools/fs/read-deny.d.ts +54 -14
  135. package/dist/tools/fs/read-deny.js +104 -50
  136. package/dist/tools/fs/removal-targets.d.ts +83 -0
  137. package/dist/tools/fs/removal-targets.js +236 -0
  138. package/dist/tools/fs/safety.d.ts +3 -0
  139. package/dist/tools/fs/safety.js +10 -3
  140. package/dist/tools/fs/shell-read-argv.d.ts +85 -0
  141. package/dist/tools/fs/shell-read-argv.js +386 -0
  142. package/dist/tools/fs/shell-read-bindings.d.ts +273 -0
  143. package/dist/tools/fs/shell-read-bindings.js +746 -0
  144. package/dist/tools/fs/shell-read-check.js +23 -15
  145. package/dist/tools/fs/shell-read-establish.js +79 -5
  146. package/dist/tools/fs/shell-read-judge.d.ts +11 -1
  147. package/dist/tools/fs/shell-read-judge.js +9 -1
  148. package/dist/tools/fs/shell-read-plan.d.ts +31 -7
  149. package/dist/tools/fs/shell-read-plan.js +299 -393
  150. package/dist/tools/fs/shell-read-word.d.ts +29 -26
  151. package/dist/tools/fs/shell-read-word.js +30 -38
  152. package/dist/tools/fs/shell-read-write-targets.d.ts +15 -37
  153. package/dist/tools/fs/shell-read-write-targets.js +83 -136
  154. package/dist/tools/fs/shell-reentry-text.d.ts +38 -6
  155. package/dist/tools/fs/shell-reentry-text.js +90 -53
  156. package/package.json +1 -1
  157. package/test/export-surface.snapshot.json +49 -3
  158. package/wire-changes/core@7.45.0.json +1084 -0
  159. package/wire-changes/core@7.46.0.json +1522 -0
@@ -0,0 +1,1522 @@
1
+ {
2
+ "repo": "core",
3
+ "version": "7.46.0",
4
+ "from": "2e80ea7afa8f82440b35c0841a1d81613d2f4fcc",
5
+ "to": "4d78f3834f2c0b04e5f350c60df286c46b9de33a",
6
+ "added": [
7
+ {
8
+ "name": "BoundPathRule",
9
+ "kind": "interface",
10
+ "tier": "advanced",
11
+ "at": [
12
+ "src/core/path-rule-binding.ts:34",
13
+ "src/index.ts:1110"
14
+ ],
15
+ "criteriaCovered": false,
16
+ "breaking": false
17
+ },
18
+ {
19
+ "name": "CallTargetReading",
20
+ "kind": "interface",
21
+ "tier": "advanced",
22
+ "at": [
23
+ "src/core/effective-path-target.ts:205",
24
+ "src/index.ts:1109"
25
+ ],
26
+ "criteriaCovered": false,
27
+ "breaking": false
28
+ },
29
+ {
30
+ "name": "CallTargetView",
31
+ "kind": "type",
32
+ "tier": "advanced",
33
+ "at": [
34
+ "src/core/effective-path-target.ts:195",
35
+ "src/index.ts:1109"
36
+ ],
37
+ "criteriaCovered": false,
38
+ "breaking": false
39
+ },
40
+ {
41
+ "name": "ENGINE_BUILTIN_TOOL_NAMES",
42
+ "kind": "variable",
43
+ "tier": "advanced",
44
+ "at": [
45
+ "src/core/tool-catalog-entries.ts:280",
46
+ "src/index.ts:1492"
47
+ ],
48
+ "criteriaCovered": false,
49
+ "breaking": false
50
+ },
51
+ {
52
+ "name": "PathRuleSpec",
53
+ "kind": "interface",
54
+ "tier": "advanced",
55
+ "at": [
56
+ "src/core/path-rule-binding.ts:24",
57
+ "src/index.ts:1110"
58
+ ],
59
+ "criteriaCovered": false,
60
+ "breaking": false
61
+ },
62
+ {
63
+ "name": "isEngineBuiltinToolName",
64
+ "kind": "function",
65
+ "tier": "advanced",
66
+ "at": [
67
+ "src/core/tool-catalog-entries.ts:299",
68
+ "src/index.ts:1492"
69
+ ],
70
+ "criteriaCovered": false,
71
+ "breaking": false
72
+ },
73
+ {
74
+ "name": "renderListEntry",
75
+ "kind": "function",
76
+ "tier": "advanced",
77
+ "at": [
78
+ "src/core/allow-entry.ts:614",
79
+ "src/index.ts:1480"
80
+ ],
81
+ "criteriaCovered": false,
82
+ "breaking": false
83
+ },
84
+ {
85
+ "name": "toolPolicyPathRules",
86
+ "kind": "function",
87
+ "tier": "advanced",
88
+ "at": [
89
+ "src/core/tool-policy.ts:809",
90
+ "src/index.ts:1421"
91
+ ],
92
+ "criteriaCovered": false,
93
+ "breaking": false
94
+ }
95
+ ],
96
+ "removed": [
97
+ {
98
+ "name": "toolPolicyPathDenyRules",
99
+ "kind": "function",
100
+ "tier": "advanced",
101
+ "at": [
102
+ "src/core/tool-policy.ts:792",
103
+ "src/index.ts:1420"
104
+ ],
105
+ "breaking": true
106
+ }
107
+ ],
108
+ "changed": [],
109
+ "narrowed": [
110
+ {
111
+ "id": "F2",
112
+ "source": "behaviorFlips.summary",
113
+ "text": "#1102 car A — curl's own `{}` / `[]` glob is expanded before the URL or upload file is judged (narrowing); `-g` / `--globoff` reads it literally"
114
+ },
115
+ {
116
+ "id": "F28",
117
+ "source": "behaviorFlips.summary",
118
+ "text": "BEHAVIOR NARROWING (#1417): a shell whose argv names no script runs its standard input, and what arrives there is its script — a literal here-document / here-string / printed text is planned as a `-c` text is; a text built when the command runs (an expanding here-document, any program on the pipe other than a literal `echo` / `printf`, a `<` file) is the removal guard's `runtime_script` (`dangerous_delete`)."
119
+ },
120
+ {
121
+ "id": "F30",
122
+ "source": "behaviorFlips.summary",
123
+ "text": "BEHAVIOR NARROWING (#1425): a read-only name keeps its value — an assignment the read-only attribute (or another attribute, or a name reference) may run before binds nothing the text says; the read through it is a read-boundary question again."
124
+ },
125
+ {
126
+ "id": "F31",
127
+ "source": "behaviorFlips.summary",
128
+ "text": "BEHAVIOR NARROWING (#1430): a sub-agent's `denyTools` / `allowTools` govern the engine's hand tools its own run mounts (Read / Edit / Write / NotebookEdit / Bash / Grep / Glob / RepoMap / EnterWorktree / ExitWorktree / TaskOutput / TaskStop), as they govern the delegation pool — one reading, the withheld hand names joining the child's exclusion list."
129
+ },
130
+ {
131
+ "id": "F32",
132
+ "source": "behaviorFlips.summary",
133
+ "text": "BEHAVIOR NARROWING (#1432; +1 optional option key): a delegation tool that declares its `extraTools` factory's roster (`SubagentToolOptions.extraToolNames`) publishes a listable pool again — a stale list spelling is refused before the run — and a factory product outside the roster refuses that spawn."
134
+ }
135
+ ],
136
+ "closedSetMembers": [
137
+ {
138
+ "set": "ARG_ROLE_KINDS",
139
+ "at": [
140
+ "src/tools/fs/program-read-model.ts:45"
141
+ ],
142
+ "newSet": true,
143
+ "added": [
144
+ "assignment",
145
+ "binds-name",
146
+ "command",
147
+ "datum",
148
+ "entry-probe",
149
+ "mount-source",
150
+ "object-path",
151
+ "path",
152
+ "program-file",
153
+ "program-text",
154
+ "shell-text"
155
+ ],
156
+ "removed": [],
157
+ "breaking": false,
158
+ "criteriaCovered": false
159
+ },
160
+ {
161
+ "set": "ArgRoleKind",
162
+ "at": [
163
+ "src/tools/fs/program-read-model.ts:46"
164
+ ],
165
+ "newSet": true,
166
+ "added": [
167
+ "assignment",
168
+ "binds-name",
169
+ "command",
170
+ "datum",
171
+ "entry-probe",
172
+ "mount-source",
173
+ "object-path",
174
+ "path",
175
+ "program-file",
176
+ "program-text",
177
+ "shell-text"
178
+ ],
179
+ "removed": [],
180
+ "breaking": false,
181
+ "criteriaCovered": false
182
+ },
183
+ {
184
+ "set": "Arity",
185
+ "at": [
186
+ "src/tools/fs/program-read-model.ts:108"
187
+ ],
188
+ "newSet": true,
189
+ "added": [
190
+ "attached",
191
+ "suffix"
192
+ ],
193
+ "removed": [],
194
+ "breaking": false,
195
+ "criteriaCovered": false
196
+ },
197
+ {
198
+ "set": "ChainInstallationGap",
199
+ "at": [
200
+ "src/core/runner/child-tree.ts:109"
201
+ ],
202
+ "newSet": true,
203
+ "added": [
204
+ "absent",
205
+ "invalid",
206
+ "misaligned"
207
+ ],
208
+ "removed": [],
209
+ "breaking": false,
210
+ "criteriaCovered": false
211
+ },
212
+ {
213
+ "set": "CheckpointErrorReason",
214
+ "at": [
215
+ "src/core/checkpoint-store.ts:2425"
216
+ ],
217
+ "newSet": false,
218
+ "added": [
219
+ "hands_coordinates_damaged",
220
+ "installation_record_absent",
221
+ "installation_record_invalid",
222
+ "installation_record_misaligned"
223
+ ],
224
+ "removed": [],
225
+ "breaking": false,
226
+ "criteriaCovered": false
227
+ },
228
+ {
229
+ "set": "ChildPlacement",
230
+ "at": [
231
+ "src/core/runner/contracts.ts:2092"
232
+ ],
233
+ "newSet": true,
234
+ "added": [
235
+ "caller_tree",
236
+ "elsewhere",
237
+ "honored"
238
+ ],
239
+ "removed": [],
240
+ "breaking": false,
241
+ "criteriaCovered": false
242
+ },
243
+ {
244
+ "set": "CodeBody",
245
+ "at": [
246
+ "src/tools/fs/program-read-model.ts:292"
247
+ ],
248
+ "newSet": true,
249
+ "added": [
250
+ "assignment-values",
251
+ "first-operand",
252
+ "option-values"
253
+ ],
254
+ "removed": [],
255
+ "breaking": false,
256
+ "criteriaCovered": false
257
+ },
258
+ {
259
+ "set": "DATUM_FORMS",
260
+ "at": [
261
+ "src/tools/fs/program-read-model.ts:27"
262
+ ],
263
+ "newSet": true,
264
+ "added": [
265
+ "count",
266
+ "delimiter",
267
+ "label",
268
+ "message",
269
+ "name-pattern",
270
+ "pattern"
271
+ ],
272
+ "removed": [],
273
+ "breaking": false,
274
+ "criteriaCovered": false
275
+ },
276
+ {
277
+ "set": "DatumForm",
278
+ "at": [
279
+ "src/tools/fs/program-read-model.ts:28"
280
+ ],
281
+ "newSet": true,
282
+ "added": [
283
+ "count",
284
+ "delimiter",
285
+ "label",
286
+ "message",
287
+ "name-pattern",
288
+ "pattern"
289
+ ],
290
+ "removed": [],
291
+ "breaking": false,
292
+ "criteriaCovered": false
293
+ },
294
+ {
295
+ "set": "DeclaredAttribute",
296
+ "at": [
297
+ "src/tools/fs/program-read-model.ts:194"
298
+ ],
299
+ "newSet": true,
300
+ "added": [
301
+ "frozen",
302
+ "integer",
303
+ "reference",
304
+ "transformed",
305
+ "unsettled"
306
+ ],
307
+ "removed": [],
308
+ "breaking": false,
309
+ "criteriaCovered": false
310
+ },
311
+ {
312
+ "set": "Dialect",
313
+ "at": [
314
+ "src/tools/fs/program-read-model.ts:197"
315
+ ],
316
+ "newSet": true,
317
+ "added": [
318
+ "any",
319
+ "bsd",
320
+ "gnu"
321
+ ],
322
+ "removed": [],
323
+ "breaking": false,
324
+ "criteriaCovered": false
325
+ },
326
+ {
327
+ "set": "ENGINE_NOTICE_CODES",
328
+ "at": [
329
+ "src/core/governance-codes.ts:350"
330
+ ],
331
+ "newSet": false,
332
+ "added": [
333
+ "permission.rule_row_dropped"
334
+ ],
335
+ "removed": [],
336
+ "breaking": false,
337
+ "criteriaCovered": true
338
+ },
339
+ {
340
+ "set": "ExtraToolNamesReason",
341
+ "at": [
342
+ "src/agents/extra-tool-names.ts:22"
343
+ ],
344
+ "newSet": true,
345
+ "added": [
346
+ "shape",
347
+ "undeclared_name",
348
+ "undeclared_origin"
349
+ ],
350
+ "removed": [],
351
+ "breaking": false,
352
+ "criteriaCovered": false
353
+ },
354
+ {
355
+ "set": "OPTION_MODES",
356
+ "at": [
357
+ "src/tools/fs/program-read-model.ts:38"
358
+ ],
359
+ "newSet": true,
360
+ "added": [
361
+ "banner",
362
+ "follows",
363
+ "forced",
364
+ "interactive",
365
+ "names-program",
366
+ "quiet",
367
+ "repeats"
368
+ ],
369
+ "removed": [],
370
+ "breaking": false,
371
+ "criteriaCovered": false
372
+ },
373
+ {
374
+ "set": "OptionMode",
375
+ "at": [
376
+ "src/tools/fs/program-read-model.ts:39"
377
+ ],
378
+ "newSet": true,
379
+ "added": [
380
+ "banner",
381
+ "follows",
382
+ "forced",
383
+ "interactive",
384
+ "names-program",
385
+ "quiet",
386
+ "repeats"
387
+ ],
388
+ "removed": [],
389
+ "breaking": false,
390
+ "criteriaCovered": false
391
+ },
392
+ {
393
+ "set": "OptionValueKind",
394
+ "at": [
395
+ "src/tools/fs/bash-readonly-classifier.ts:959"
396
+ ],
397
+ "newSet": false,
398
+ "added": [],
399
+ "removed": [
400
+ "count",
401
+ "delimiter",
402
+ "form",
403
+ "header",
404
+ "indirect",
405
+ "label",
406
+ "name-pattern",
407
+ "path",
408
+ "pattern",
409
+ "script",
410
+ "url"
411
+ ],
412
+ "persistedBy": "none",
413
+ "breaking": true,
414
+ "criteriaCovered": false
415
+ },
416
+ {
417
+ "set": "PATH_EFFECTS",
418
+ "at": [
419
+ "src/tools/fs/program-read-model.ts:58"
420
+ ],
421
+ "newSet": true,
422
+ "added": [
423
+ "create",
424
+ "edit-in-place",
425
+ "names",
426
+ "read",
427
+ "write"
428
+ ],
429
+ "removed": [],
430
+ "breaking": false,
431
+ "criteriaCovered": false
432
+ },
433
+ {
434
+ "set": "PATH_VALUE_FORMS",
435
+ "at": [
436
+ "src/tools/fs/program-read-model.ts:33"
437
+ ],
438
+ "newSet": true,
439
+ "added": [
440
+ "form",
441
+ "header",
442
+ "indirect",
443
+ "url"
444
+ ],
445
+ "removed": [],
446
+ "breaking": false,
447
+ "criteriaCovered": false
448
+ },
449
+ {
450
+ "set": "PathEffect",
451
+ "at": [
452
+ "src/tools/fs/program-read-model.ts:59"
453
+ ],
454
+ "newSet": true,
455
+ "added": [
456
+ "create",
457
+ "edit-in-place",
458
+ "names",
459
+ "read",
460
+ "write"
461
+ ],
462
+ "removed": [],
463
+ "breaking": false,
464
+ "criteriaCovered": false
465
+ },
466
+ {
467
+ "set": "PathValueForm",
468
+ "at": [
469
+ "src/tools/fs/program-read-model.ts:34"
470
+ ],
471
+ "newSet": true,
472
+ "added": [
473
+ "form",
474
+ "header",
475
+ "indirect",
476
+ "url"
477
+ ],
478
+ "removed": [],
479
+ "breaking": false,
480
+ "criteriaCovered": false
481
+ },
482
+ {
483
+ "set": "ProgramDelivery",
484
+ "at": [
485
+ "src/tools/fs/program-read-model.ts:1318"
486
+ ],
487
+ "newSet": true,
488
+ "added": [
489
+ "stdin",
490
+ "text"
491
+ ],
492
+ "removed": [],
493
+ "breaking": false,
494
+ "criteriaCovered": false
495
+ },
496
+ {
497
+ "set": "ProgramTextReading",
498
+ "at": [
499
+ "src/tools/fs/program-read-model.ts:1540"
500
+ ],
501
+ "newSet": true,
502
+ "added": [
503
+ "from-file",
504
+ "none",
505
+ "unparsed"
506
+ ],
507
+ "removed": [],
508
+ "breaking": false,
509
+ "criteriaCovered": false
510
+ },
511
+ {
512
+ "set": "READ_CANDIDATE_PROVENANCES",
513
+ "at": [
514
+ "src/tools/fs/shell-read-plan.ts:96"
515
+ ],
516
+ "newSet": false,
517
+ "added": [
518
+ "mount_source",
519
+ "object_path"
520
+ ],
521
+ "removed": [],
522
+ "breaking": false,
523
+ "criteriaCovered": false
524
+ },
525
+ {
526
+ "set": "RECOMMENDED_SENSITIVE_PATTERNS",
527
+ "at": [
528
+ "src/core/sensitive-path-policy.ts:110"
529
+ ],
530
+ "newSet": false,
531
+ "added": [
532
+ ".sema/config-lkg-*.json"
533
+ ],
534
+ "removed": [],
535
+ "breaking": false,
536
+ "criteriaCovered": false
537
+ },
538
+ {
539
+ "set": "ReadCandidate.speculative",
540
+ "at": [
541
+ "src/tools/fs/shell-read-plan.ts:156"
542
+ ],
543
+ "newSet": true,
544
+ "added": [
545
+ "containment",
546
+ "whole"
547
+ ],
548
+ "removed": [],
549
+ "breaking": false,
550
+ "criteriaCovered": false
551
+ },
552
+ {
553
+ "set": "SHELL_WRITE_COMMANDS",
554
+ "at": [
555
+ "src/tools/fs/shell-read-write-targets.ts:18"
556
+ ],
557
+ "newSet": false,
558
+ "added": [],
559
+ "removed": [
560
+ "cp",
561
+ "mkdir",
562
+ "mv",
563
+ "rm",
564
+ "rmdir",
565
+ "sed",
566
+ "tee",
567
+ "touch"
568
+ ],
569
+ "persistedBy": "checkpoint-state",
570
+ "breaking": true,
571
+ "criteriaCovered": false
572
+ },
573
+ {
574
+ "set": "Witness",
575
+ "at": [
576
+ "src/tools/fs/program-read-model.ts:295"
577
+ ],
578
+ "newSet": true,
579
+ "added": [
580
+ "binary"
581
+ ],
582
+ "removed": [],
583
+ "breaking": false,
584
+ "criteriaCovered": false
585
+ }
586
+ ],
587
+ "closedSetsUnreadable": [],
588
+ "typeKeys": [
589
+ {
590
+ "type": "CheckpointState",
591
+ "at": [
592
+ "src/core/checkpoint-store.ts:1190"
593
+ ],
594
+ "added": [
595
+ "handsHome",
596
+ "handsRoot",
597
+ "inheritedGate.pathRuleAnchors",
598
+ "inheritedGate.pathRuleAnchors.home",
599
+ "inheritedGate.pathRuleAnchors.root",
600
+ "inheritedGate.pathRuleInstallations",
601
+ "inheritedGate.pathRuleInstallations[].home",
602
+ "inheritedGate.pathRuleInstallations[].root"
603
+ ],
604
+ "addedDetail": [
605
+ {
606
+ "key": "handsHome",
607
+ "optional": true
608
+ },
609
+ {
610
+ "key": "handsRoot",
611
+ "optional": true
612
+ },
613
+ {
614
+ "key": "inheritedGate.pathRuleAnchors",
615
+ "optional": true
616
+ },
617
+ {
618
+ "key": "inheritedGate.pathRuleAnchors.home",
619
+ "optional": true
620
+ },
621
+ {
622
+ "key": "inheritedGate.pathRuleAnchors.root",
623
+ "optional": false
624
+ },
625
+ {
626
+ "key": "inheritedGate.pathRuleInstallations",
627
+ "optional": true
628
+ },
629
+ {
630
+ "key": "inheritedGate.pathRuleInstallations[].home",
631
+ "optional": true
632
+ },
633
+ {
634
+ "key": "inheritedGate.pathRuleInstallations[].root",
635
+ "optional": false
636
+ }
637
+ ],
638
+ "addedRequired": [],
639
+ "removed": [],
640
+ "breaking": false,
641
+ "criteriaCovered": true
642
+ },
643
+ {
644
+ "type": "EffectivePermissionRules",
645
+ "at": [
646
+ "src/core/permission-rule-provider.ts:89"
647
+ ],
648
+ "added": [
649
+ "droppedRows",
650
+ "droppedRows[].rule",
651
+ "droppedRows[].scopeRoot"
652
+ ],
653
+ "addedDetail": [
654
+ {
655
+ "key": "droppedRows",
656
+ "optional": true
657
+ },
658
+ {
659
+ "key": "droppedRows[].rule",
660
+ "optional": false
661
+ },
662
+ {
663
+ "key": "droppedRows[].scopeRoot",
664
+ "optional": false
665
+ }
666
+ ],
667
+ "addedRequired": [],
668
+ "removed": [],
669
+ "breaking": false,
670
+ "criteriaCovered": false
671
+ },
672
+ {
673
+ "type": "InheritedGate",
674
+ "at": [
675
+ "src/core/runner/contracts.ts:1211"
676
+ ],
677
+ "via": "RunInternals.inheritedGate",
678
+ "added": [
679
+ "pathRuleAnchors",
680
+ "pathRuleAnchors.home",
681
+ "pathRuleAnchors.root",
682
+ "pathRuleInstallations",
683
+ "pathRuleInstallations[].home",
684
+ "pathRuleInstallations[].root"
685
+ ],
686
+ "addedDetail": [
687
+ {
688
+ "key": "pathRuleAnchors",
689
+ "optional": true
690
+ },
691
+ {
692
+ "key": "pathRuleAnchors.home",
693
+ "optional": true
694
+ },
695
+ {
696
+ "key": "pathRuleAnchors.root",
697
+ "optional": false
698
+ },
699
+ {
700
+ "key": "pathRuleInstallations",
701
+ "optional": true
702
+ },
703
+ {
704
+ "key": "pathRuleInstallations[].home",
705
+ "optional": true
706
+ },
707
+ {
708
+ "key": "pathRuleInstallations[].root",
709
+ "optional": false
710
+ }
711
+ ],
712
+ "addedRequired": [],
713
+ "removed": [],
714
+ "breaking": false,
715
+ "criteriaCovered": false
716
+ },
717
+ {
718
+ "type": "NamedToolPolicy",
719
+ "at": [
720
+ "src/core/tool-policy.ts:1317"
721
+ ],
722
+ "added": [
723
+ "pathRules"
724
+ ],
725
+ "addedDetail": [
726
+ {
727
+ "key": "pathRules",
728
+ "optional": true
729
+ }
730
+ ],
731
+ "addedRequired": [],
732
+ "removed": [
733
+ "pathDenyRules"
734
+ ],
735
+ "breaking": true,
736
+ "criteriaCovered": false
737
+ },
738
+ {
739
+ "type": "Prepared",
740
+ "at": [
741
+ "src/core/runner/contracts.ts:246"
742
+ ],
743
+ "via": "Runner.SuspendReap.env",
744
+ "added": [
745
+ "stampCallTarget"
746
+ ],
747
+ "addedDetail": [
748
+ {
749
+ "key": "stampCallTarget",
750
+ "optional": true
751
+ }
752
+ ],
753
+ "addedRequired": [],
754
+ "removed": [],
755
+ "breaking": false,
756
+ "criteriaCovered": false
757
+ },
758
+ {
759
+ "type": "ReadCandidate",
760
+ "at": [
761
+ "src/tools/fs/shell-read-plan.ts:125"
762
+ ],
763
+ "added": [
764
+ "speculative"
765
+ ],
766
+ "addedDetail": [
767
+ {
768
+ "key": "speculative",
769
+ "optional": true
770
+ }
771
+ ],
772
+ "addedRequired": [],
773
+ "removed": [],
774
+ "breaking": false,
775
+ "criteriaCovered": false
776
+ },
777
+ {
778
+ "type": "ResolvedWorkspace",
779
+ "at": [
780
+ "src/core/runner/contracts.ts:2094"
781
+ ],
782
+ "added": [
783
+ "placement"
784
+ ],
785
+ "addedDetail": [
786
+ {
787
+ "key": "placement",
788
+ "optional": true
789
+ }
790
+ ],
791
+ "addedRequired": [],
792
+ "removed": [],
793
+ "breaking": false,
794
+ "criteriaCovered": true
795
+ },
796
+ {
797
+ "type": "RunInternals",
798
+ "at": [
799
+ "src/core/runner/contracts.ts:1436"
800
+ ],
801
+ "added": [
802
+ "callerRoot",
803
+ "worktreeOffered"
804
+ ],
805
+ "addedDetail": [
806
+ {
807
+ "key": "callerRoot",
808
+ "optional": true
809
+ },
810
+ {
811
+ "key": "worktreeOffered",
812
+ "optional": true
813
+ }
814
+ ],
815
+ "addedRequired": [],
816
+ "removed": [],
817
+ "breaking": false,
818
+ "criteriaCovered": false
819
+ },
820
+ {
821
+ "type": "RunnerDeps",
822
+ "at": [
823
+ "src/core/runner-deps.ts:105"
824
+ ],
825
+ "added": [
826
+ "agentConfigDir"
827
+ ],
828
+ "addedDetail": [
829
+ {
830
+ "key": "agentConfigDir",
831
+ "optional": true
832
+ }
833
+ ],
834
+ "addedRequired": [],
835
+ "removed": [],
836
+ "breaking": false,
837
+ "criteriaCovered": true
838
+ },
839
+ {
840
+ "type": "ShellReadSegment",
841
+ "at": [
842
+ "src/tools/fs/shell-read-plan.ts:175"
843
+ ],
844
+ "added": [
845
+ "stdin"
846
+ ],
847
+ "addedDetail": [
848
+ {
849
+ "key": "stdin",
850
+ "optional": true
851
+ }
852
+ ],
853
+ "addedRequired": [],
854
+ "removed": [],
855
+ "breaking": false,
856
+ "criteriaCovered": false
857
+ },
858
+ {
859
+ "type": "SubagentToolOptions",
860
+ "at": [
861
+ "src/agents/subagent.ts:2742"
862
+ ],
863
+ "added": [
864
+ "extraToolNames",
865
+ "extraToolNames[].aliases",
866
+ "extraToolNames[].contentOrigin",
867
+ "extraToolNames[].name"
868
+ ],
869
+ "addedDetail": [
870
+ {
871
+ "key": "extraToolNames",
872
+ "optional": true
873
+ },
874
+ {
875
+ "key": "extraToolNames[].aliases",
876
+ "optional": true
877
+ },
878
+ {
879
+ "key": "extraToolNames[].contentOrigin",
880
+ "optional": true
881
+ },
882
+ {
883
+ "key": "extraToolNames[].name",
884
+ "optional": false
885
+ }
886
+ ],
887
+ "addedRequired": [],
888
+ "removed": [],
889
+ "breaking": false,
890
+ "criteriaCovered": true
891
+ },
892
+ {
893
+ "type": "ToolCallRequest",
894
+ "at": [
895
+ "src/core/tool-policy.ts:52"
896
+ ],
897
+ "added": [
898
+ "pathRuleAnchors",
899
+ "targetReading"
900
+ ],
901
+ "addedDetail": [
902
+ {
903
+ "key": "pathRuleAnchors",
904
+ "optional": true
905
+ },
906
+ {
907
+ "key": "targetReading",
908
+ "optional": true
909
+ }
910
+ ],
911
+ "addedRequired": [],
912
+ "removed": [],
913
+ "breaking": false,
914
+ "criteriaCovered": true
915
+ },
916
+ {
917
+ "type": "ToolGateInput",
918
+ "at": [
919
+ "src/core/hooks.ts:1471"
920
+ ],
921
+ "via": "runToolGate.ToolGateInput",
922
+ "added": [
923
+ "stampCallTarget"
924
+ ],
925
+ "addedDetail": [
926
+ {
927
+ "key": "stampCallTarget",
928
+ "optional": true
929
+ }
930
+ ],
931
+ "addedRequired": [],
932
+ "removed": [],
933
+ "breaking": false,
934
+ "criteriaCovered": false
935
+ },
936
+ {
937
+ "type": "ToolPolicy",
938
+ "at": [
939
+ "src/core/tool-policy.ts:735"
940
+ ],
941
+ "added": [
942
+ "pathRules"
943
+ ],
944
+ "addedDetail": [
945
+ {
946
+ "key": "pathRules",
947
+ "optional": true
948
+ }
949
+ ],
950
+ "addedRequired": [],
951
+ "removed": [
952
+ "pathDenyRules"
953
+ ],
954
+ "breaking": true,
955
+ "criteriaCovered": false
956
+ },
957
+ {
958
+ "type": "WriteProtectionCompileOptions",
959
+ "at": [
960
+ "src/core/write-protect.ts:657"
961
+ ],
962
+ "added": [
963
+ "agentConfigDir"
964
+ ],
965
+ "addedDetail": [
966
+ {
967
+ "key": "agentConfigDir",
968
+ "optional": true
969
+ }
970
+ ],
971
+ "addedRequired": [],
972
+ "removed": [],
973
+ "breaking": false,
974
+ "criteriaCovered": false
975
+ }
976
+ ],
977
+ "typeKeysUnreadableArms": [],
978
+ "typeKeysFlattenedCount": 227,
979
+ "signatures": [
980
+ {
981
+ "name": "adjudicatePersistedPathRules",
982
+ "at": [
983
+ "src/core/permission-rule-model.ts:2422"
984
+ ],
985
+ "from": [
986
+ "(rules: readonly PersistedRule[], call: { tool: string; cwd: string | undefined; sessionId?: string; face?: DenyFace | undefined; }, targets: { readonly tighten?: PathTargetReading; readonly allow?: PathTargetReading; }, bases: PathRuleBases): PersistedRuleVerdict | undefined"
987
+ ],
988
+ "to": [
989
+ "(rules: readonly PersistedRule[], call: { tool: string; cwd: string | undefined; sessionId?: string; face?: DenyFace | undefined; scopeIdentity?: ScopeRootIdentity; }, views: { readonly tighten?: TargetViews; readonly allow?: TargetViews; }, anchorsOf: (rule: PersistedRule) => PathRuleBases, leads: ReadonlyMap<string, string | undefined>): PersistedRuleVerdict | undefined"
990
+ ],
991
+ "changes": [
992
+ {
993
+ "aspect": "param",
994
+ "detail": "param 2 `call` type widened: …: DenyFace | undefined; [ -> scopeIdentity?: ScopeRootIdentity; ]}",
995
+ "breaking": false
996
+ },
997
+ {
998
+ "aspect": "param",
999
+ "detail": "param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; }",
1000
+ "breaking": true,
1001
+ "uncertain": true
1002
+ },
1003
+ {
1004
+ "aspect": "param",
1005
+ "detail": "param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases",
1006
+ "breaking": true,
1007
+ "uncertain": true
1008
+ },
1009
+ {
1010
+ "aspect": "param",
1011
+ "detail": "+required param `leads: ReadonlyMap<string, string | undefined>`",
1012
+ "breaking": true
1013
+ }
1014
+ ],
1015
+ "uncertain": "param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; } · param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases — 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",
1016
+ "breaking": true,
1017
+ "criteriaCovered": false
1018
+ },
1019
+ {
1020
+ "name": "adjudicatePersistedRules",
1021
+ "at": [
1022
+ "src/core/permission-rule-model.ts:2375"
1023
+ ],
1024
+ "from": [
1025
+ "(rules: readonly PersistedRule[], call: { tool: string; command: string; cwd: string | undefined; sessionId?: string; execCwd?: string; }): PersistedRuleVerdict | undefined"
1026
+ ],
1027
+ "to": [
1028
+ "(rules: readonly PersistedRule[], call: { tool: string; command: string; cwd: string | undefined; sessionId?: string; execCwd?: string; scopeIdentity?: ScopeRootIdentity; }): PersistedRuleVerdict | undefined"
1029
+ ],
1030
+ "changes": [
1031
+ {
1032
+ "aspect": "param",
1033
+ "detail": "param 2 `call` type widened: …ring; execCwd?: string; [ -> scopeIdentity?: ScopeRootIdentity; ]}",
1034
+ "breaking": false
1035
+ }
1036
+ ],
1037
+ "breaking": false,
1038
+ "criteriaCovered": false
1039
+ },
1040
+ {
1041
+ "name": "createSensitivePathPolicy",
1042
+ "at": [
1043
+ "src/core/sensitive-path-policy.ts:399"
1044
+ ],
1045
+ "from": [
1046
+ "(opts: { env: ExecutionEnv; patterns: readonly string[]; rootPath?: string; dataRoot?: string; tools?: string[]; }): ToolPolicy"
1047
+ ],
1048
+ "to": [
1049
+ "(opts: { env: ExecutionEnv; patterns: readonly string[]; rootPath?: string; dataRoot?: string; agentConfigDir?: string; tools?: string[]; }): ToolPolicy"
1050
+ ],
1051
+ "changes": [
1052
+ {
1053
+ "aspect": "param",
1054
+ "detail": "param 1 `opts` type widened: …ing; dataRoot?: string; [ -> agentConfigDir?: string; ]tools?: string[]; }",
1055
+ "breaking": false
1056
+ }
1057
+ ],
1058
+ "breaking": false,
1059
+ "criteriaCovered": false
1060
+ },
1061
+ {
1062
+ "name": "directoryRuleAdmits",
1063
+ "at": [
1064
+ "src/core/permission-rule-model.ts:1903"
1065
+ ],
1066
+ "from": [
1067
+ "(rule: Pick<PersistedRule, \"match\" | \"command\">, path: PathIdentity, bases: PathRuleBases): boolean"
1068
+ ],
1069
+ "to": [
1070
+ "(rule: Pick<PersistedRule, \"match\" | \"command\">, path: PathIdentity, bases: PathRuleBases, treeFamily?: PathFamily | undefined): boolean"
1071
+ ],
1072
+ "changes": [
1073
+ {
1074
+ "aspect": "param",
1075
+ "detail": "+optional param `treeFamily?: PathFamily | undefined`",
1076
+ "breaking": false
1077
+ }
1078
+ ],
1079
+ "breaking": false,
1080
+ "criteriaCovered": false
1081
+ },
1082
+ {
1083
+ "name": "pathRuleReachOf",
1084
+ "at": [
1085
+ "src/core/permission-rule-model.ts:1517"
1086
+ ],
1087
+ "from": [
1088
+ "(rule: Pick<PersistedRule, \"match\" | \"command\" | \"behavior\">, target: PathIdentity, bases: PathRuleBases): ProgramRunReachOutcome"
1089
+ ],
1090
+ "to": [
1091
+ "(rule: Pick<PersistedRule, \"match\" | \"command\" | \"behavior\">, target: PathIdentity, bases: PathRuleBases, treeFamily?: PathFamily | undefined): ProgramRunReachOutcome"
1092
+ ],
1093
+ "changes": [
1094
+ {
1095
+ "aspect": "param",
1096
+ "detail": "+optional param `treeFamily?: PathFamily | undefined`",
1097
+ "breaking": false
1098
+ }
1099
+ ],
1100
+ "breaking": false,
1101
+ "criteriaCovered": false
1102
+ },
1103
+ {
1104
+ "name": "scopeCoversCwd",
1105
+ "at": [
1106
+ "src/core/permission-rule-model.ts:2136"
1107
+ ],
1108
+ "from": [
1109
+ "(scope: RuleScope, cwd: string | undefined, sessionId?: string): boolean"
1110
+ ],
1111
+ "to": [
1112
+ "(scope: RuleScope, cwd: string | undefined, sessionId?: string, identity?: ScopeRootIdentity): boolean"
1113
+ ],
1114
+ "changes": [
1115
+ {
1116
+ "aspect": "param",
1117
+ "detail": "+optional param `identity?: ScopeRootIdentity`",
1118
+ "breaking": false
1119
+ }
1120
+ ],
1121
+ "breaking": false,
1122
+ "criteriaCovered": false
1123
+ }
1124
+ ],
1125
+ "declarationMoves": [
1126
+ {
1127
+ "name": "ArgWord",
1128
+ "kind": null,
1129
+ "onSurface": false,
1130
+ "from": [
1131
+ "src/tools/fs/shell-read-write-targets.ts"
1132
+ ],
1133
+ "to": [
1134
+ "src/tools/fs/program-read-model.ts",
1135
+ "src/tools/fs/shell-read-write-targets.ts"
1136
+ ]
1137
+ },
1138
+ {
1139
+ "name": "WriteSeat",
1140
+ "kind": null,
1141
+ "onSurface": false,
1142
+ "from": [
1143
+ "src/tools/fs/shell-read-write-targets.ts"
1144
+ ],
1145
+ "to": [
1146
+ "src/tools/fs/program-read-model.ts",
1147
+ "src/tools/fs/shell-read-write-targets.ts"
1148
+ ]
1149
+ },
1150
+ {
1151
+ "name": "dropDefinitionHeads",
1152
+ "kind": null,
1153
+ "onSurface": false,
1154
+ "from": [
1155
+ "src/tools/fs/shell-read-word.ts"
1156
+ ],
1157
+ "to": [
1158
+ "src/tools/fs/shell-read-bindings.ts"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "name": "renderListEntry",
1163
+ "kind": "function",
1164
+ "onSurface": true,
1165
+ "from": [
1166
+ "src/core/allow-entry.ts"
1167
+ ],
1168
+ "to": [
1169
+ "src/core/allow-entry.ts",
1170
+ "src/index.ts"
1171
+ ]
1172
+ },
1173
+ {
1174
+ "name": "slotValueCandidates",
1175
+ "kind": null,
1176
+ "onSurface": false,
1177
+ "from": [
1178
+ "src/tools/fs/bash-readonly-classifier.ts"
1179
+ ],
1180
+ "to": [
1181
+ "src/tools/fs/program-read-model.ts"
1182
+ ]
1183
+ },
1184
+ {
1185
+ "name": "suppliesFirstOperandSlot",
1186
+ "kind": null,
1187
+ "onSurface": false,
1188
+ "from": [
1189
+ "src/tools/fs/bash-readonly-classifier.ts"
1190
+ ],
1191
+ "to": [
1192
+ "src/tools/fs/program-read-model.ts"
1193
+ ]
1194
+ }
1195
+ ],
1196
+ "mintMoves": [],
1197
+ "criteriaObserves": [
1198
+ {
1199
+ "kind": "engineNoticeCode",
1200
+ "name": "permission.rule_row_dropped",
1201
+ "assertions": [
1202
+ "G21.a"
1203
+ ]
1204
+ },
1205
+ {
1206
+ "kind": "taskEventField",
1207
+ "name": "tool_end.errorCode",
1208
+ "assertions": [
1209
+ "G38.a",
1210
+ "G38.b",
1211
+ "G38.c"
1212
+ ]
1213
+ },
1214
+ {
1215
+ "kind": "taskEventField",
1216
+ "name": "tool_end.gate",
1217
+ "assertions": [
1218
+ "G38.e",
1219
+ "G38.f",
1220
+ "G39.a",
1221
+ "G39.b",
1222
+ "G39.c",
1223
+ "G39.d",
1224
+ "G39.e"
1225
+ ]
1226
+ },
1227
+ {
1228
+ "kind": "taskEventField",
1229
+ "name": "tool_end.isError",
1230
+ "assertions": [
1231
+ "G20.a"
1232
+ ]
1233
+ },
1234
+ {
1235
+ "kind": "typeMember",
1236
+ "name": "AgentDefinition.allowTools",
1237
+ "assertions": [
1238
+ "G42.a"
1239
+ ]
1240
+ },
1241
+ {
1242
+ "kind": "typeMember",
1243
+ "name": "AgentDefinition.denyTools",
1244
+ "assertions": [
1245
+ "G40.a",
1246
+ "G42.a"
1247
+ ]
1248
+ },
1249
+ {
1250
+ "kind": "typeMember",
1251
+ "name": "AskRequest.askClass",
1252
+ "assertions": [
1253
+ "G7.a",
1254
+ "G8.a",
1255
+ "G9.a",
1256
+ "G12.a",
1257
+ "G15.a",
1258
+ "G16.a",
1259
+ "G27.a",
1260
+ "G37.a",
1261
+ "G37.b",
1262
+ "G37.e",
1263
+ "G37.f",
1264
+ "G37.g"
1265
+ ]
1266
+ },
1267
+ {
1268
+ "kind": "typeMember",
1269
+ "name": "AskRequest.classes",
1270
+ "assertions": [
1271
+ "G27.a",
1272
+ "G27.b",
1273
+ "G37.c",
1274
+ "G37.d",
1275
+ "G39.a",
1276
+ "G39.b",
1277
+ "G39.c",
1278
+ "G39.d",
1279
+ "G39.e"
1280
+ ]
1281
+ },
1282
+ {
1283
+ "kind": "typeMember",
1284
+ "name": "AskRequest.message",
1285
+ "assertions": [
1286
+ "G7.a",
1287
+ "G37.a",
1288
+ "G37.b"
1289
+ ]
1290
+ },
1291
+ {
1292
+ "kind": "typeMember",
1293
+ "name": "CheckpointError.detail",
1294
+ "assertions": [
1295
+ "G19.a"
1296
+ ]
1297
+ },
1298
+ {
1299
+ "kind": "typeMember",
1300
+ "name": "CheckpointState.handsCwd",
1301
+ "assertions": [
1302
+ "G11.a"
1303
+ ]
1304
+ },
1305
+ {
1306
+ "kind": "typeMember",
1307
+ "name": "CheckpointState.handsRoot",
1308
+ "assertions": [
1309
+ "G10.a",
1310
+ "G10.b",
1311
+ "G11.a"
1312
+ ]
1313
+ },
1314
+ {
1315
+ "kind": "typeMember",
1316
+ "name": "CompoundReadonlyVerdict.reason",
1317
+ "assertions": [
1318
+ "G25.a",
1319
+ "G25.b",
1320
+ "G25.c"
1321
+ ]
1322
+ },
1323
+ {
1324
+ "kind": "typeMember",
1325
+ "name": "GateOutcome.disposition",
1326
+ "assertions": [
1327
+ "G7.b",
1328
+ "G8.a",
1329
+ "G8.b",
1330
+ "G9.b",
1331
+ "G12.b",
1332
+ "G13.a",
1333
+ "G14.a",
1334
+ "G15.a"
1335
+ ]
1336
+ },
1337
+ {
1338
+ "kind": "typeMember",
1339
+ "name": "ResolvedWorkspace.placement",
1340
+ "assertions": [
1341
+ "G18.a"
1342
+ ]
1343
+ },
1344
+ {
1345
+ "kind": "typeMember",
1346
+ "name": "RunnerDeps.agentConfigDir",
1347
+ "assertions": [
1348
+ "G38.a",
1349
+ "G38.b",
1350
+ "G38.c",
1351
+ "G38.d",
1352
+ "G38.e",
1353
+ "G38.f"
1354
+ ]
1355
+ },
1356
+ {
1357
+ "kind": "typeMember",
1358
+ "name": "ShellReadJudgment.verdict",
1359
+ "assertions": [
1360
+ "G1.a",
1361
+ "G1.b",
1362
+ "G2.a",
1363
+ "G2.b",
1364
+ "G2.c",
1365
+ "G3.a",
1366
+ "G4.a",
1367
+ "G4.b",
1368
+ "G5.a",
1369
+ "G5.b",
1370
+ "G6.a",
1371
+ "G22.a",
1372
+ "G22.b",
1373
+ "G22.c",
1374
+ "G23.a",
1375
+ "G23.b",
1376
+ "G23.c",
1377
+ "G24.a",
1378
+ "G24.b",
1379
+ "G28.a",
1380
+ "G28.b",
1381
+ "G29.a",
1382
+ "G29.b",
1383
+ "G30.a",
1384
+ "G30.b",
1385
+ "G31.a",
1386
+ "G31.b",
1387
+ "G31.c",
1388
+ "G32.a",
1389
+ "G32.b",
1390
+ "G33.a",
1391
+ "G33.b",
1392
+ "G34.a",
1393
+ "G34.b",
1394
+ "G35.a",
1395
+ "G36.a",
1396
+ "G36.b"
1397
+ ]
1398
+ },
1399
+ {
1400
+ "kind": "typeMember",
1401
+ "name": "ShellSegment.peeled",
1402
+ "assertions": [
1403
+ "G26.a",
1404
+ "G26.b"
1405
+ ]
1406
+ },
1407
+ {
1408
+ "kind": "typeMember",
1409
+ "name": "SubagentToolOptions.extraToolNames",
1410
+ "assertions": [
1411
+ "G40.a",
1412
+ "G41.a",
1413
+ "G41.b",
1414
+ "G41.c"
1415
+ ]
1416
+ },
1417
+ {
1418
+ "kind": "typeMember",
1419
+ "name": "SubagentToolOptions.onExtraToolsError",
1420
+ "assertions": [
1421
+ "G41.a"
1422
+ ]
1423
+ },
1424
+ {
1425
+ "kind": "typeMember",
1426
+ "name": "TaskSpec.excludeTools",
1427
+ "assertions": [
1428
+ "G42.b"
1429
+ ]
1430
+ },
1431
+ {
1432
+ "kind": "typeMember",
1433
+ "name": "TaskSpec.handsReadOnly",
1434
+ "assertions": [
1435
+ "G42.b"
1436
+ ]
1437
+ },
1438
+ {
1439
+ "kind": "typeMember",
1440
+ "name": "ToolCallRequest.root",
1441
+ "assertions": [
1442
+ "G17.a"
1443
+ ]
1444
+ },
1445
+ {
1446
+ "kind": "typeMember",
1447
+ "name": "ToolCallRequest.targetReading",
1448
+ "assertions": [
1449
+ "G7.b"
1450
+ ]
1451
+ },
1452
+ {
1453
+ "kind": "typeMember",
1454
+ "name": "ToolSpec.agentToolPool",
1455
+ "assertions": [
1456
+ "G40.b"
1457
+ ]
1458
+ }
1459
+ ],
1460
+ "consumersHint": {
1461
+ "cli": [
1462
+ "Arity",
1463
+ "CheckpointErrorReason",
1464
+ "CheckpointState",
1465
+ "ENGINE_NOTICE_CODES",
1466
+ "EffectivePermissionRules",
1467
+ "InheritedGate",
1468
+ "NamedToolPolicy",
1469
+ "OptionValueKind",
1470
+ "Prepared",
1471
+ "READ_CANDIDATE_PROVENANCES",
1472
+ "RECOMMENDED_SENSITIVE_PATTERNS",
1473
+ "ReadCandidate",
1474
+ "RunInternals",
1475
+ "RunnerDeps",
1476
+ "SHELL_WRITE_COMMANDS",
1477
+ "SubagentToolOptions",
1478
+ "ToolCallRequest",
1479
+ "ToolGateInput",
1480
+ "ToolPolicy",
1481
+ "WriteProtectionCompileOptions",
1482
+ "adjudicatePersistedPathRules",
1483
+ "createSensitivePathPolicy"
1484
+ ],
1485
+ "server": [
1486
+ "CheckpointErrorReason",
1487
+ "CheckpointState",
1488
+ "Dialect",
1489
+ "ENGINE_NOTICE_CODES",
1490
+ "InheritedGate",
1491
+ "Prepared",
1492
+ "RECOMMENDED_SENSITIVE_PATTERNS",
1493
+ "ReadCandidate",
1494
+ "RunInternals",
1495
+ "RunnerDeps",
1496
+ "SubagentToolOptions",
1497
+ "ToolCallRequest",
1498
+ "ToolGateInput",
1499
+ "ToolPolicy",
1500
+ "WriteProtectionCompileOptions",
1501
+ "createSensitivePathPolicy",
1502
+ "scopeCoversCwd",
1503
+ "toolPolicyPathDenyRules"
1504
+ ],
1505
+ "sdk": [
1506
+ "CheckpointErrorReason",
1507
+ "ENGINE_NOTICE_CODES",
1508
+ "RunnerDeps",
1509
+ "ToolPolicy"
1510
+ ],
1511
+ "note": "scanned cli@bdbfee8f server@da3c2cdc sdk@8d8178f — 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 (EffectivePermissionRules, NamedToolPolicy, ResolvedWorkspace, ShellReadSegment, adjudicatePersistedPathRules, adjudicatePersistedRules, directoryRuleAdmits, pathRuleReachOf)"
1512
+ },
1513
+ "breakingCount": 6,
1514
+ "breakingItems": [
1515
+ "closed set lost members: OptionValueKind -count,delimiter,form,header,indirect,label,name-pattern,path,pattern,script,url",
1516
+ "closed set lost members: SHELL_WRITE_COMMANDS -cp,mkdir,mv,rm,rmdir,sed,tee,touch",
1517
+ "export removed: toolPolicyPathDenyRules (function)",
1518
+ "signature changed: adjudicatePersistedPathRules — param 3 `views` type changed, direction not read: { readonly tighten?: [PathTargetReading; readonly allow?: PathTargetReading -> TargetViews; readonly allow?: TargetViews]; }; param 4 `anchorsOf` type changed, direction not read: [ -> (rule: PersistedRule) => ]PathRuleBases; +required param `leads: ReadonlyMap<string, string | undefined>`",
1519
+ "type lost keys: NamedToolPolicy -pathDenyRules",
1520
+ "type lost keys: ToolPolicy -pathDenyRules"
1521
+ ]
1522
+ }