@sema-agent/core 7.31.1 → 7.32.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 (86) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/agents/inherited-tool-pool.d.ts +28 -0
  3. package/dist/agents/inherited-tool-pool.js +15 -0
  4. package/dist/agents/list-agents-tool.d.ts +7 -0
  5. package/dist/agents/list-agents-tool.js +9 -2
  6. package/dist/agents/peer-session-drain.d.ts +2 -0
  7. package/dist/agents/peer-session-drain.js +1 -0
  8. package/dist/agents/send-message-tool.d.ts +17 -0
  9. package/dist/agents/send-message-tool.js +11 -4
  10. package/dist/agents/subagent.d.ts +10 -1
  11. package/dist/agents/subagent.js +24 -8
  12. package/dist/core/ask-origin.d.ts +15 -6
  13. package/dist/core/ask-origin.js +15 -9
  14. package/dist/core/background-shell.d.ts +45 -0
  15. package/dist/core/background-shell.js +13 -0
  16. package/dist/core/checkpoint-store.d.ts +5 -0
  17. package/dist/core/checkpoint-store.js +3 -2
  18. package/dist/core/engine-notice.d.ts +9 -0
  19. package/dist/core/gate-lanes.js +1 -1
  20. package/dist/core/governance-codes.d.ts +1 -1
  21. package/dist/core/governance-codes.js +4 -0
  22. package/dist/core/hooks.d.ts +2 -0
  23. package/dist/core/read-root-grant-screen.d.ts +23 -0
  24. package/dist/core/read-root-grant-screen.js +17 -0
  25. package/dist/core/runner/contracts.d.ts +1 -1
  26. package/dist/core/runner/prepare-artifact.d.ts +12 -7
  27. package/dist/core/runner/prepare-artifact.js +10 -8
  28. package/dist/core/runner/prepare-ask-lane.d.ts +3 -0
  29. package/dist/core/runner/prepare-ask-lane.js +5 -1
  30. package/dist/core/runner/prepare-boundary-parks.js +5 -5
  31. package/dist/core/runner/prepare-delegation-surface.d.ts +18 -0
  32. package/dist/core/runner/prepare-delegation-surface.js +6 -25
  33. package/dist/core/runner/prepare-hands-readface.d.ts +12 -89
  34. package/dist/core/runner/prepare-hands-readface.js +14 -48
  35. package/dist/core/runner/prepare-inherited-gate.d.ts +3 -1
  36. package/dist/core/runner/prepare-inherited-gate.js +2 -1
  37. package/dist/core/runner/prepare-park-ask.js +6 -4
  38. package/dist/core/runner/prepare-policy-chain.js +4 -0
  39. package/dist/core/runner/prepare-task.js +5 -3
  40. package/dist/core/runner/read-root-grant.d.ts +66 -0
  41. package/dist/core/runner/read-root-grant.js +77 -0
  42. package/dist/core/runner/run-notification-lane.d.ts +1 -1
  43. package/dist/core/runner/run-settle-and-teardown.js +3 -9
  44. package/dist/core/runner/runtask.js +1 -1
  45. package/dist/core/runner/send-message-continuation.d.ts +45 -0
  46. package/dist/core/runner/send-message-continuation.js +27 -0
  47. package/dist/core/runner/session-read-file-states.d.ts +91 -0
  48. package/dist/core/runner/session-read-file-states.js +43 -0
  49. package/dist/core/store-contracts/checkpoint-store-contract.d.ts +2 -0
  50. package/dist/core/store-contracts/checkpoint-store-contract.js +19 -0
  51. package/dist/core/task-registry-monitor.js +3 -0
  52. package/dist/core/task-registry-shared.d.ts +16 -3
  53. package/dist/core/task-registry.d.ts +65 -29
  54. package/dist/core/task-registry.js +78 -28
  55. package/dist/core/task-spec.d.ts +5 -3
  56. package/dist/core/tool-policy.d.ts +23 -0
  57. package/dist/core/tool-policy.js +15 -4
  58. package/dist/core/tool-spec.d.ts +2 -0
  59. package/dist/engine/execution-env/node-execution-env.d.ts +13 -3
  60. package/dist/engine/execution-env/node-execution-env.js +26 -0
  61. package/dist/index.d.ts +4 -3
  62. package/dist/index.js +2 -1
  63. package/dist/scenarios/full-body.d.ts +5 -2
  64. package/dist/scenarios/full-body.js +14 -7
  65. package/dist/tools/fs/fs-bash-background-text.d.ts +16 -0
  66. package/dist/tools/fs/fs-bash-background-text.js +22 -0
  67. package/dist/tools/fs/fs-bash.d.ts +6 -0
  68. package/dist/tools/fs/fs-bash.js +9 -27
  69. package/dist/tools/fs/fs-read.d.ts +2 -2
  70. package/dist/tools/fs/fs-search-tools.d.ts +3 -2
  71. package/dist/tools/fs/index.d.ts +8 -1
  72. package/dist/tools/fs/index.js +2 -3
  73. package/dist/tools/fs/repo-map.d.ts +2 -1
  74. package/dist/tools/fs/safety.d.ts +3 -1
  75. package/dist/tools/fs/safety.js +2 -1
  76. package/dist/tools/fs/shell-read-check.d.ts +3 -0
  77. package/dist/tools/fs/shell-read-check.js +1 -1
  78. package/dist/tools/fs/shell-read-establish.d.ts +3 -1
  79. package/dist/tools/fs/shell-read-establish.js +2 -2
  80. package/dist/tools/monitor.d.ts +5 -4
  81. package/dist/tools/monitor.js +5 -4
  82. package/dist/tools/todo.d.ts +3 -3
  83. package/dist/tools/todo.js +5 -4
  84. package/package.json +1 -1
  85. package/test/export-surface.snapshot.json +13 -1
  86. package/wire-changes/core@7.32.0.json +850 -0
@@ -0,0 +1,850 @@
1
+ {
2
+ "repo": "core",
3
+ "version": "7.32.0",
4
+ "from": "c016a8efa8f6783d10207f15b6d101864a6a2db6",
5
+ "to": "v7.32.0",
6
+ "added": [
7
+ {
8
+ "name": "BackgroundHardKillOutcome",
9
+ "kind": "type",
10
+ "tier": "advanced",
11
+ "at": [
12
+ "src/core/background-shell.ts:164",
13
+ "src/index.ts:1321"
14
+ ],
15
+ "criteriaCovered": false,
16
+ "breaking": false
17
+ },
18
+ {
19
+ "name": "BackgroundShellHardKillReceipt",
20
+ "kind": "interface",
21
+ "tier": "advanced",
22
+ "at": [
23
+ "src/core/task-registry.ts:194",
24
+ "src/index.ts:1221"
25
+ ],
26
+ "criteriaCovered": true,
27
+ "breaking": false
28
+ },
29
+ {
30
+ "name": "PERSISTED_RULE_MANDATES",
31
+ "kind": "variable",
32
+ "tier": "advanced",
33
+ "at": [
34
+ "src/core/ask-origin.ts:431",
35
+ "src/index.ts:1426"
36
+ ],
37
+ "criteriaCovered": false,
38
+ "breaking": false
39
+ },
40
+ {
41
+ "name": "PersistedRuleMandate",
42
+ "kind": "type",
43
+ "tier": "advanced",
44
+ "at": [
45
+ "src/core/ask-origin.ts:432",
46
+ "src/index.ts:1426"
47
+ ],
48
+ "criteriaCovered": false,
49
+ "breaking": false
50
+ },
51
+ {
52
+ "name": "ReadRootGrantScreen",
53
+ "kind": "type",
54
+ "tier": "advanced",
55
+ "at": [
56
+ "src/core/read-root-grant-screen.ts:10",
57
+ "src/index.ts:1425"
58
+ ],
59
+ "criteriaCovered": false,
60
+ "breaking": false
61
+ },
62
+ {
63
+ "name": "isPersistedRuleMandate",
64
+ "kind": "function",
65
+ "tier": "advanced",
66
+ "at": [
67
+ "src/core/ask-origin.ts:435",
68
+ "src/index.ts:1426"
69
+ ],
70
+ "criteriaCovered": false,
71
+ "breaking": false
72
+ }
73
+ ],
74
+ "removed": [],
75
+ "changed": [],
76
+ "narrowed": [
77
+ {
78
+ "id": "F3",
79
+ "source": "behaviorFlips.summary",
80
+ "text": "NARROWING (#1093; the `admits_artifact_store` reason of F2's notice; +0 exports). (a) The grant never admits the local artifact store: a granted directory that contains the wired `localArtifactStub` store (`capabilities.storageDir`), lies inside it or is it widens nothing (`reason: \"admits_artifact_store\"`), judged in the store's physical form — a store declared through a symlinked parent and not yet created included — by the function the Artifact mount judges with (`rootAdmittingArtifactStore`). (b) That mount judgment is now two-way: a declared read root INSIDE the store (e.g. `additionalReadDirectories: [<store>/sub]`) refuses the Artifact mount with `config.artifact_host_invalid`, where before only a store inside a root did (KL-1093e closed). (c) Roots are identities: the Runner's shell read station no longer re-resolves its roots, so a DECLARED `additionalReadDirectories` / `additionalDirectories` root swapped for a link before the run's first shell judgment no longer vouches for the link's target. (d) A `createApprovalPolicy` `approve` seat has no card: an answer carrying `readRootGrant` there is a fail-closed deny naming the member, where before the member was ignored and the call allowed. WHO IS HURT: a deployment whose declared read root sits inside its local artifact store (no Artifact tool), and an approve seat that attached the member."
81
+ },
82
+ {
83
+ "id": "F4",
84
+ "source": "behaviorFlips.summary",
85
+ "text": "Behaviour change with a NARROWING (#1107; +1 optional `list()` row key `retained`; +0 exports for this half): ONE retain predicate (`retainsBackgroundProcesses`: the env capability, the task lane or the row mark retains; a dying isolated env overrides) answers every face — the Bash card and its launch / adoption receipts, the Monitor receipt, the row stamp (taken once at registration from the env and the launching task's lane, which the Runner's Bash and Monitor always state), teardown settle and dispose, the park-only sweeps, the session reap, the exit hard face and `list()` (`retained?: true`). A task-level `TaskSpec.retainBackgroundProcesses` run's Bash card and receipts no longer say background processes \"do NOT survive the session\". NARROWING at the session reap: a retained row is left alone (row, watcher, process) and every other session shell row is killed and settled — the settle-without-kill outcome is gone; a row launched under a non-retaining run's receipt is no longer re-labelled retained by a later retaining run's teardown and is reaped as its receipt said; a Monitor row launched with the task lane is stamped retained. WHO IS HURT: a reader of a retain-env row's `killed` status after the reap (the process was alive), and a mixed-lane session that relied on a later run's declaration to keep an earlier shell."
86
+ },
87
+ {
88
+ "id": "F7",
89
+ "source": "behaviorFlips.summary",
90
+ "text": "Model-facing text + one construction-time NARROWING (#1108; +0 exports): SendMessage's continuation sentence and ListAgents' recorded-agent label and finished-agent reach speak the subagent transcript tier, one helper (`sendMessageContinuationTier` = `resolveSubagentTranscriptTier` over the mount's session store, gated on all three revival seats: row store, mailbox, reviver). `full` keeps \"by name or task_id, even across restarts\" / \"agent (durable record)\"; `rows` (a process-local or undeclared transcript placement — a Runner's default session store) says the record outlives a restart and the conversation does not / \"agent (record kept; conversation not kept across restarts)\"; `none` = session retention only / \"agent (recorded name)\". `createListAgentsTool` / `mountListAgents` take `continuationTier` (absent ⇒ the `none` wording); the Runner fills it from the same seats as its SendMessage. `createSendMessageTool` reads the session store's subagent placement at construction, and a junk `durability` declaration throws `config.store_durability_invalid` where it constructed before."
91
+ },
92
+ {
93
+ "id": "G2",
94
+ "source": "criteria.title",
95
+ "text": "#1093 NARROWING — the grant never admits the local artifact store, a root inside the store refuses the mount, a declared root is an identity, an approve seat's grant is a deny"
96
+ }
97
+ ],
98
+ "closedSetMembers": [
99
+ {
100
+ "set": "BackgroundHardKillOutcome",
101
+ "at": [
102
+ "src/core/background-shell.ts:164"
103
+ ],
104
+ "newSet": true,
105
+ "added": [
106
+ "already_gone",
107
+ "killed",
108
+ "no_pgid"
109
+ ],
110
+ "removed": [],
111
+ "breaking": false,
112
+ "criteriaCovered": false
113
+ },
114
+ {
115
+ "set": "ENGINE_NOTICE_CODES",
116
+ "at": [
117
+ "src/core/governance-codes.ts:319"
118
+ ],
119
+ "newSet": false,
120
+ "added": [
121
+ "approval.read_root_grant_rejected",
122
+ "approval.read_root_granted"
123
+ ],
124
+ "removed": [],
125
+ "breaking": false,
126
+ "criteriaCovered": true
127
+ }
128
+ ],
129
+ "closedSetsUnreadable": [],
130
+ "typeKeys": [
131
+ {
132
+ "type": "ApprovalSeatOutcome",
133
+ "at": [
134
+ "src/core/tool-policy.ts:1326"
135
+ ],
136
+ "arms": "flattened",
137
+ "added": [
138
+ "readRootGrant"
139
+ ],
140
+ "addedDetail": [
141
+ {
142
+ "key": "readRootGrant",
143
+ "optional": true
144
+ }
145
+ ],
146
+ "addedRequired": [],
147
+ "removed": [],
148
+ "breaking": false,
149
+ "criteriaCovered": false
150
+ },
151
+ {
152
+ "type": "AskCarry",
153
+ "at": [
154
+ "src/core/hooks.ts:2147"
155
+ ],
156
+ "added": [
157
+ "mandate"
158
+ ],
159
+ "addedDetail": [
160
+ {
161
+ "key": "mandate",
162
+ "optional": true
163
+ }
164
+ ],
165
+ "addedRequired": [],
166
+ "removed": [],
167
+ "breaking": false,
168
+ "criteriaCovered": false
169
+ },
170
+ {
171
+ "type": "AskOutcome",
172
+ "at": [
173
+ "src/core/tool-policy.ts:3151"
174
+ ],
175
+ "added": [
176
+ "readRootGrant"
177
+ ],
178
+ "addedDetail": [
179
+ {
180
+ "key": "readRootGrant",
181
+ "optional": true
182
+ }
183
+ ],
184
+ "addedRequired": [],
185
+ "removed": [],
186
+ "breaking": false,
187
+ "criteriaCovered": true
188
+ },
189
+ {
190
+ "type": "AskRequest",
191
+ "at": [
192
+ "src/core/tool-policy.ts:2685"
193
+ ],
194
+ "added": [
195
+ "mandate"
196
+ ],
197
+ "addedDetail": [
198
+ {
199
+ "key": "mandate",
200
+ "optional": true
201
+ }
202
+ ],
203
+ "addedRequired": [],
204
+ "removed": [],
205
+ "breaking": false,
206
+ "criteriaCovered": true
207
+ },
208
+ {
209
+ "type": "BackgroundBashTaskHandle",
210
+ "at": [
211
+ "src/core/task-registry-shared.ts:145"
212
+ ],
213
+ "via": "TaskRegistry.BackgroundBashTaskHandle",
214
+ "added": [
215
+ "retainStatedAtLaunch"
216
+ ],
217
+ "addedDetail": [
218
+ {
219
+ "key": "retainStatedAtLaunch",
220
+ "optional": true
221
+ }
222
+ ],
223
+ "addedRequired": [],
224
+ "removed": [],
225
+ "breaking": false,
226
+ "criteriaCovered": false
227
+ },
228
+ {
229
+ "type": "BackgroundShellCapability",
230
+ "at": [
231
+ "src/core/background-shell.ts:92"
232
+ ],
233
+ "added": [
234
+ "killBackgroundNow"
235
+ ],
236
+ "addedDetail": [
237
+ {
238
+ "key": "killBackgroundNow",
239
+ "optional": true
240
+ }
241
+ ],
242
+ "addedRequired": [],
243
+ "removed": [],
244
+ "breaking": false,
245
+ "criteriaCovered": true
246
+ },
247
+ {
248
+ "type": "CheckpointSummary",
249
+ "at": [
250
+ "src/core/checkpoint-store.ts:2093"
251
+ ],
252
+ "added": [
253
+ "mandate"
254
+ ],
255
+ "addedDetail": [
256
+ {
257
+ "key": "mandate",
258
+ "optional": true
259
+ }
260
+ ],
261
+ "addedRequired": [],
262
+ "removed": [],
263
+ "breaking": false,
264
+ "criteriaCovered": true
265
+ },
266
+ {
267
+ "type": "ListAgentsToolOptions",
268
+ "at": [
269
+ "src/agents/list-agents-tool.ts:58"
270
+ ],
271
+ "added": [
272
+ "continuationTier"
273
+ ],
274
+ "addedDetail": [
275
+ {
276
+ "key": "continuationTier",
277
+ "optional": true
278
+ }
279
+ ],
280
+ "addedRequired": [],
281
+ "removed": [],
282
+ "breaking": false,
283
+ "criteriaCovered": true
284
+ },
285
+ {
286
+ "type": "MonitorTaskHandle",
287
+ "at": [
288
+ "src/core/task-registry-shared.ts:431"
289
+ ],
290
+ "via": "TaskRegistry.MonitorTaskHandle",
291
+ "added": [
292
+ "retainStatedAtLaunch"
293
+ ],
294
+ "addedDetail": [
295
+ {
296
+ "key": "retainStatedAtLaunch",
297
+ "optional": true
298
+ }
299
+ ],
300
+ "addedRequired": [],
301
+ "removed": [],
302
+ "breaking": false,
303
+ "criteriaCovered": false
304
+ },
305
+ {
306
+ "type": "PendingAction",
307
+ "at": [
308
+ "src/core/checkpoint-store.ts:962"
309
+ ],
310
+ "added": [
311
+ "tool_approval.mandate"
312
+ ],
313
+ "addedDetail": [
314
+ {
315
+ "key": "tool_approval.mandate",
316
+ "optional": true
317
+ }
318
+ ],
319
+ "addedRequired": [],
320
+ "removed": [],
321
+ "breaking": false,
322
+ "criteriaCovered": false
323
+ },
324
+ {
325
+ "type": "PermissionResult",
326
+ "at": [
327
+ "src/core/tool-policy.ts:448"
328
+ ],
329
+ "added": [
330
+ "ask.mandate"
331
+ ],
332
+ "addedDetail": [
333
+ {
334
+ "key": "ask.mandate",
335
+ "optional": true
336
+ }
337
+ ],
338
+ "addedRequired": [],
339
+ "removed": [],
340
+ "breaking": false,
341
+ "criteriaCovered": false
342
+ },
343
+ {
344
+ "type": "PreToolUseResult",
345
+ "at": [
346
+ "src/core/hooks.ts:1159"
347
+ ],
348
+ "added": [
349
+ "ask.mandate"
350
+ ],
351
+ "addedDetail": [
352
+ {
353
+ "key": "ask.mandate",
354
+ "optional": true
355
+ }
356
+ ],
357
+ "addedRequired": [],
358
+ "removed": [],
359
+ "breaking": false,
360
+ "criteriaCovered": false
361
+ },
362
+ {
363
+ "type": "RegisterBackgroundBashInput",
364
+ "at": [
365
+ "src/core/task-registry.ts:153"
366
+ ],
367
+ "via": "TaskRegistry.RegisterBackgroundBashInput",
368
+ "added": [
369
+ "retainBackgroundProcesses"
370
+ ],
371
+ "addedDetail": [
372
+ {
373
+ "key": "retainBackgroundProcesses",
374
+ "optional": true
375
+ }
376
+ ],
377
+ "addedRequired": [],
378
+ "removed": [],
379
+ "breaking": false,
380
+ "criteriaCovered": false
381
+ },
382
+ {
383
+ "type": "RegisterMonitorInput",
384
+ "at": [
385
+ "src/core/task-registry-shared.ts:528"
386
+ ],
387
+ "added": [
388
+ "retainBackgroundProcesses"
389
+ ],
390
+ "addedDetail": [
391
+ {
392
+ "key": "retainBackgroundProcesses",
393
+ "optional": true
394
+ }
395
+ ],
396
+ "addedRequired": [],
397
+ "removed": [],
398
+ "breaking": false,
399
+ "criteriaCovered": false
400
+ },
401
+ {
402
+ "type": "ResolvedAsk",
403
+ "at": [
404
+ "src/core/tool-policy.ts:3414"
405
+ ],
406
+ "arms": "flattened",
407
+ "added": [
408
+ "readRootGrant"
409
+ ],
410
+ "addedDetail": [
411
+ {
412
+ "key": "readRootGrant",
413
+ "optional": true
414
+ }
415
+ ],
416
+ "addedRequired": [],
417
+ "removed": [],
418
+ "breaking": false,
419
+ "criteriaCovered": false
420
+ },
421
+ {
422
+ "type": "SubagentToolOptions",
423
+ "at": [
424
+ "src/agents/subagent.ts:2747"
425
+ ],
426
+ "added": [
427
+ "inheritedTools"
428
+ ],
429
+ "addedDetail": [
430
+ {
431
+ "key": "inheritedTools",
432
+ "optional": true
433
+ }
434
+ ],
435
+ "addedRequired": [],
436
+ "removed": [],
437
+ "breaking": false,
438
+ "criteriaCovered": true
439
+ },
440
+ {
441
+ "type": "ToolExecuteContext",
442
+ "at": [
443
+ "src/core/tool-spec.ts:603"
444
+ ],
445
+ "added": [
446
+ "mountsCallerTool"
447
+ ],
448
+ "addedDetail": [
449
+ {
450
+ "key": "mountsCallerTool",
451
+ "optional": true
452
+ }
453
+ ],
454
+ "addedRequired": [],
455
+ "removed": [],
456
+ "breaking": false,
457
+ "criteriaCovered": true
458
+ }
459
+ ],
460
+ "typeKeysUnreadableArms": [
461
+ {
462
+ "type": "ApprovalSeatOutcome",
463
+ "at": "src/core/tool-policy.ts:1326",
464
+ "reasons": [
465
+ "a union carrying 1 arm(s) whose keys this reader does not follow (a generic reference (`Extract<…>`)) — a key missing from this type at `to` is still reported REMOVED, carrying `uncertain` so the writer checks whether it moved there"
466
+ ]
467
+ },
468
+ {
469
+ "type": "ResolvedAsk",
470
+ "at": "src/core/tool-policy.ts:3414",
471
+ "reasons": [
472
+ "a union carrying 1 arm(s) whose keys this reader does not follow (a generic reference (`Extract<…>`)) — a key missing from this type at `to` is still reported REMOVED, carrying `uncertain` so the writer checks whether it moved there",
473
+ "a union of 2 key-bearing arm(s) with no discriminating property (no property is declared by every key-bearing arm with literal words that no other arm shares), so its arms are read TOGETHER — a key added to one arm while a sibling already carries that name moves nothing in this manifest"
474
+ ]
475
+ }
476
+ ],
477
+ "typeKeysFlattenedCount": 216,
478
+ "declarationMoves": [
479
+ {
480
+ "name": "PERSISTED_RULE_MANDATES",
481
+ "kind": "variable",
482
+ "onSurface": true,
483
+ "from": [
484
+ "src/core/ask-origin.ts"
485
+ ],
486
+ "to": [
487
+ "src/core/ask-origin.ts",
488
+ "src/index.ts"
489
+ ]
490
+ },
491
+ {
492
+ "name": "PersistedRuleMandate",
493
+ "kind": "type",
494
+ "onSurface": true,
495
+ "from": [
496
+ "src/core/ask-origin.ts"
497
+ ],
498
+ "to": [
499
+ "src/core/ask-origin.ts",
500
+ "src/index.ts"
501
+ ]
502
+ },
503
+ {
504
+ "name": "SessionReadFileStates",
505
+ "kind": null,
506
+ "onSurface": false,
507
+ "from": [
508
+ "src/core/runner/prepare-hands-readface.ts"
509
+ ],
510
+ "to": [
511
+ "src/core/runner/session-read-file-states.ts"
512
+ ]
513
+ },
514
+ {
515
+ "name": "sessionSeatAnchorHolds",
516
+ "kind": null,
517
+ "onSurface": false,
518
+ "from": [
519
+ "src/core/runner/prepare-hands-readface.ts"
520
+ ],
521
+ "to": [
522
+ "src/core/runner/session-read-file-states.ts"
523
+ ]
524
+ }
525
+ ],
526
+ "mintMoves": [],
527
+ "criteriaObserves": [
528
+ {
529
+ "kind": "engineNoticeCode",
530
+ "name": "approval.read_root_grant_rejected",
531
+ "assertions": [
532
+ "G1.b",
533
+ "G2.a"
534
+ ]
535
+ },
536
+ {
537
+ "kind": "engineNoticeCode",
538
+ "name": "approval.read_root_granted",
539
+ "assertions": [
540
+ "G1.a"
541
+ ]
542
+ },
543
+ {
544
+ "kind": "engineNoticeCode",
545
+ "name": "config.artifact_host_invalid",
546
+ "assertions": [
547
+ "G2.b"
548
+ ]
549
+ },
550
+ {
551
+ "kind": "taskEventField",
552
+ "name": "tool_end.isError",
553
+ "assertions": [
554
+ "G3.a",
555
+ "G3.b"
556
+ ]
557
+ },
558
+ {
559
+ "kind": "taskEventField",
560
+ "name": "tool_end.output",
561
+ "assertions": [
562
+ "G1.a",
563
+ "G2.a",
564
+ "G3.a",
565
+ "G5.a",
566
+ "G8.a"
567
+ ]
568
+ },
569
+ {
570
+ "kind": "typeMember",
571
+ "name": "AskOutcome.readRootGrant",
572
+ "assertions": [
573
+ "G1.a",
574
+ "G1.b"
575
+ ]
576
+ },
577
+ {
578
+ "kind": "typeMember",
579
+ "name": "AskRequest.args",
580
+ "assertions": [
581
+ "G2.b"
582
+ ]
583
+ },
584
+ {
585
+ "kind": "typeMember",
586
+ "name": "AskRequest.mandate",
587
+ "assertions": [
588
+ "G4.a"
589
+ ]
590
+ },
591
+ {
592
+ "kind": "typeMember",
593
+ "name": "AskRequest.mandated",
594
+ "assertions": [
595
+ "G4.a"
596
+ ]
597
+ },
598
+ {
599
+ "kind": "typeMember",
600
+ "name": "AskRequest.readRootCandidate",
601
+ "assertions": [
602
+ "G1.a"
603
+ ]
604
+ },
605
+ {
606
+ "kind": "typeMember",
607
+ "name": "AskRequest.ruleOffersAbsence",
608
+ "assertions": [
609
+ "G4.a"
610
+ ]
611
+ },
612
+ {
613
+ "kind": "typeMember",
614
+ "name": "BackgroundPoll.status",
615
+ "assertions": [
616
+ "G5.a"
617
+ ]
618
+ },
619
+ {
620
+ "kind": "typeMember",
621
+ "name": "BackgroundShellCapability.killBackgroundNow",
622
+ "assertions": [
623
+ "G6.a"
624
+ ]
625
+ },
626
+ {
627
+ "kind": "typeMember",
628
+ "name": "BackgroundShellHardKillReceipt.outcome",
629
+ "assertions": [
630
+ "G6.a",
631
+ "G9.a"
632
+ ]
633
+ },
634
+ {
635
+ "kind": "typeMember",
636
+ "name": "BackgroundShellHardKillReceipt.owner",
637
+ "assertions": [
638
+ "G9.a"
639
+ ]
640
+ },
641
+ {
642
+ "kind": "typeMember",
643
+ "name": "BackgroundShellHardKillReceipt.retained",
644
+ "assertions": [
645
+ "G6.a"
646
+ ]
647
+ },
648
+ {
649
+ "kind": "typeMember",
650
+ "name": "CheckpointSummary.mandate",
651
+ "assertions": [
652
+ "G4.a"
653
+ ]
654
+ },
655
+ {
656
+ "kind": "typeMember",
657
+ "name": "CodeToolsConfig.subagent",
658
+ "assertions": [
659
+ "G3.a"
660
+ ]
661
+ },
662
+ {
663
+ "kind": "typeMember",
664
+ "name": "EngineNotice.detail",
665
+ "assertions": [
666
+ "G1.a",
667
+ "G1.b",
668
+ "G2.a"
669
+ ]
670
+ },
671
+ {
672
+ "kind": "typeMember",
673
+ "name": "EngineNotice.message",
674
+ "assertions": [
675
+ "G2.a"
676
+ ]
677
+ },
678
+ {
679
+ "kind": "typeMember",
680
+ "name": "ListAgentsToolOptions.continuationTier",
681
+ "assertions": [
682
+ "G8.a"
683
+ ]
684
+ },
685
+ {
686
+ "kind": "typeMember",
687
+ "name": "PendingAction.mandate",
688
+ "assertions": [
689
+ "G4.a"
690
+ ]
691
+ },
692
+ {
693
+ "kind": "typeMember",
694
+ "name": "PermissionResult.action",
695
+ "assertions": [
696
+ "G2.b"
697
+ ]
698
+ },
699
+ {
700
+ "kind": "typeMember",
701
+ "name": "RunnerDeps.artifactHost",
702
+ "assertions": [
703
+ "G2.a"
704
+ ]
705
+ },
706
+ {
707
+ "kind": "typeMember",
708
+ "name": "RunnerDeps.executionEnv",
709
+ "assertions": [
710
+ "G7.a"
711
+ ]
712
+ },
713
+ {
714
+ "kind": "typeMember",
715
+ "name": "RunnerDeps.executionEnvFactory",
716
+ "assertions": [
717
+ "G7.a"
718
+ ]
719
+ },
720
+ {
721
+ "kind": "typeMember",
722
+ "name": "SubagentToolOptions.allowTools",
723
+ "assertions": [
724
+ "G3.b"
725
+ ]
726
+ },
727
+ {
728
+ "kind": "typeMember",
729
+ "name": "SubagentToolOptions.extraTools",
730
+ "assertions": [
731
+ "G3.b"
732
+ ]
733
+ },
734
+ {
735
+ "kind": "typeMember",
736
+ "name": "SubagentToolOptions.inheritedTools",
737
+ "assertions": [
738
+ "G3.a"
739
+ ]
740
+ },
741
+ {
742
+ "kind": "typeMember",
743
+ "name": "SubagentToolOptions.tools",
744
+ "assertions": [
745
+ "G3.b"
746
+ ]
747
+ },
748
+ {
749
+ "kind": "typeMember",
750
+ "name": "TaskRegistry.killAllBackgroundShellsNow",
751
+ "assertions": [
752
+ "G6.a",
753
+ "G9.a"
754
+ ]
755
+ },
756
+ {
757
+ "kind": "typeMember",
758
+ "name": "TaskRegistry.list",
759
+ "assertions": [
760
+ "G5.a"
761
+ ]
762
+ },
763
+ {
764
+ "kind": "typeMember",
765
+ "name": "TaskRegistry.reapSessionBackground",
766
+ "assertions": [
767
+ "G5.a",
768
+ "G9.a"
769
+ ]
770
+ },
771
+ {
772
+ "kind": "typeMember",
773
+ "name": "TaskSpec.additionalReadDirectories",
774
+ "assertions": [
775
+ "G2.b"
776
+ ]
777
+ },
778
+ {
779
+ "kind": "typeMember",
780
+ "name": "TaskSpec.retainBackgroundProcesses",
781
+ "assertions": [
782
+ "G5.a",
783
+ "G7.a"
784
+ ]
785
+ },
786
+ {
787
+ "kind": "typeMember",
788
+ "name": "ToolExecuteContext.mountsCallerTool",
789
+ "assertions": [
790
+ "G3.b"
791
+ ]
792
+ },
793
+ {
794
+ "kind": "typeMember",
795
+ "name": "ToolSpec.description",
796
+ "assertions": [
797
+ "G8.a"
798
+ ]
799
+ },
800
+ {
801
+ "kind": "typeMember",
802
+ "name": "WiringManifest.fleet.subagentTranscripts",
803
+ "assertions": [
804
+ "G8.a"
805
+ ]
806
+ }
807
+ ],
808
+ "consumersHint": {
809
+ "cli": [
810
+ "ApprovalSeatOutcome",
811
+ "AskCarry",
812
+ "AskOutcome",
813
+ "AskRequest",
814
+ "CheckpointSummary",
815
+ "ENGINE_NOTICE_CODES",
816
+ "PERSISTED_RULE_MANDATES",
817
+ "PendingAction",
818
+ "PermissionResult",
819
+ "PreToolUseResult",
820
+ "ResolvedAsk",
821
+ "ToolExecuteContext"
822
+ ],
823
+ "server": [
824
+ "ApprovalSeatOutcome",
825
+ "AskCarry",
826
+ "AskOutcome",
827
+ "AskRequest",
828
+ "BackgroundShellCapability",
829
+ "CheckpointSummary",
830
+ "ENGINE_NOTICE_CODES",
831
+ "PendingAction",
832
+ "PermissionResult",
833
+ "PreToolUseResult",
834
+ "SubagentToolOptions",
835
+ "ToolExecuteContext"
836
+ ],
837
+ "sdk": [
838
+ "AskRequest",
839
+ "CheckpointSummary",
840
+ "ENGINE_NOTICE_CODES",
841
+ "PendingAction",
842
+ "PermissionResult",
843
+ "PreToolUseResult"
844
+ ],
845
+ "note": "scanned cli@4e593722 server@fdf1ec74 sdk@35f83df — 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: 4 name(s) matched ONLY in bookkeeping files and were set aside (ListAgentsToolOptions, RegisterBackgroundBashInput, RegisterMonitorInput, ResolvedAsk)"
846
+ },
847
+ "breakingCount": 0,
848
+ "breakingItems": [],
849
+ "toResolvedAt": "ef4d392c3cf502986af9e2f94d9cec9d39cc810d"
850
+ }