@sema-agent/core 7.24.4 → 7.25.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 (101) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/dist/agents/peer-session-drain.d.ts +16 -1
  3. package/dist/agents/peer-session-drain.js +16 -1
  4. package/dist/agents/send-message-tool.d.ts +10 -2
  5. package/dist/agents/send-message-tool.js +18 -7
  6. package/dist/agents/subagent.js +13 -10
  7. package/dist/core/background-agent-store.d.ts +3 -3
  8. package/dist/core/checkpoint-store.d.ts +1 -0
  9. package/dist/core/delegation-frames.d.ts +5 -0
  10. package/dist/core/gate-fold.js +85 -0
  11. package/dist/core/gate-lanes.js +23 -1
  12. package/dist/core/gate-outcome.d.ts +8 -2
  13. package/dist/core/gate-outcome.js +3 -1
  14. package/dist/core/hooks.d.ts +29 -0
  15. package/dist/core/hooks.js +2 -0
  16. package/dist/core/mailbox-store.d.ts +5 -0
  17. package/dist/core/mailbox-store.js +1 -1
  18. package/dist/core/parent-spec-seat.d.ts +7 -1
  19. package/dist/core/parent-spec-seat.js +2 -0
  20. package/dist/core/permission-rule-consent.js +29 -47
  21. package/dist/core/permission-rule-provider.js +4 -3
  22. package/dist/core/permission-rule-store.d.ts +143 -7
  23. package/dist/core/permission-rule-store.js +165 -15
  24. package/dist/core/runner/contracts.d.ts +36 -2
  25. package/dist/core/runner/gate-exit.d.ts +14 -0
  26. package/dist/core/runner/gate-exit.js +4 -0
  27. package/dist/core/runner/prepare-delegation-surface.d.ts +4 -4
  28. package/dist/core/runner/prepare-delegation-surface.js +2 -1
  29. package/dist/core/runner/prepare-gate-stations.d.ts +4 -0
  30. package/dist/core/runner/prepare-gate-stations.js +7 -4
  31. package/dist/core/runner/prepare-hands-readface.d.ts +8 -4
  32. package/dist/core/runner/prepare-hands-readface.js +25 -10
  33. package/dist/core/runner/prepare-inherited-gate.d.ts +23 -0
  34. package/dist/core/runner/prepare-inherited-gate.js +11 -6
  35. package/dist/core/runner/prepare-policy-chain.d.ts +15 -1
  36. package/dist/core/runner/prepare-policy-chain.js +14 -4
  37. package/dist/core/runner/prepare-suspend-saga.d.ts +5 -2
  38. package/dist/core/runner/prepare-suspend-saga.js +4 -3
  39. package/dist/core/runner/prepare-task.js +10 -9
  40. package/dist/core/runner/prepare-wiring-manifest.d.ts +11 -4
  41. package/dist/core/runner/prepare-wiring-manifest.js +8 -4
  42. package/dist/core/runner/resume-apply.js +2 -0
  43. package/dist/core/runner/run-harness-handlers.js +1 -0
  44. package/dist/core/runner/run-identity-wiring.d.ts +2 -2
  45. package/dist/core/runner/run-leg.js +26 -0
  46. package/dist/core/runner/run-notification-lane.d.ts +2 -2
  47. package/dist/core/runner/run-notification-lane.js +2 -1
  48. package/dist/core/runner/run-settle-and-teardown.js +1 -0
  49. package/dist/core/runner/session-rule-policy.d.ts +3 -4
  50. package/dist/core/runner/session-rule-policy.js +11 -3
  51. package/dist/core/session-policy-store.d.ts +27 -3
  52. package/dist/core/session-policy-store.js +12 -4
  53. package/dist/core/store-contracts/background-agent-store-contract.js +10 -0
  54. package/dist/core/store-contracts/peer-directory-contract.d.ts +23 -0
  55. package/dist/core/store-contracts/peer-directory-contract.js +82 -0
  56. package/dist/core/task-event.d.ts +6 -0
  57. package/dist/core/task-notification.d.ts +79 -4
  58. package/dist/core/task-notification.js +90 -1
  59. package/dist/core/task-registry-agent.js +1 -2
  60. package/dist/core/task-registry-monitor.js +2 -1
  61. package/dist/core/task-registry-shared.d.ts +53 -5
  62. package/dist/core/task-registry-shared.js +13 -2
  63. package/dist/core/task-registry.js +8 -5
  64. package/dist/core/task-spec.d.ts +12 -5
  65. package/dist/core/tool-catalog-entries.js +1 -0
  66. package/dist/core/tool-spec.d.ts +1 -1
  67. package/dist/core/wiring-manifest.d.ts +2 -2
  68. package/dist/engine/loop/agent-loop.js +1 -1
  69. package/dist/engine/loop/types.d.ts +4 -0
  70. package/dist/index.d.ts +6 -3
  71. package/dist/index.js +4 -3
  72. package/dist/prompts/coordinator.d.ts +2 -1
  73. package/dist/stores/file/adoption/adopt.js +23 -1
  74. package/dist/stores/file/permission-rule-store.js +3 -1
  75. package/dist/stores/file/session-policy-store.d.ts +31 -0
  76. package/dist/stores/file/session-policy-store.js +87 -7
  77. package/dist/tools/fs/bash-program-position.d.ts +4 -26
  78. package/dist/tools/fs/bash-program-position.js +0 -11
  79. package/dist/tools/fs/bash-readonly-classifier.d.ts +20 -309
  80. package/dist/tools/fs/bash-readonly-classifier.js +28 -766
  81. package/dist/tools/fs/fs-bash.d.ts +43 -207
  82. package/dist/tools/fs/fs-bash.js +20 -341
  83. package/dist/tools/fs/index.d.ts +12 -13
  84. package/dist/tools/fs/index.js +3 -4
  85. package/dist/tools/fs/read-deny.d.ts +25 -0
  86. package/dist/tools/fs/read-deny.js +19 -0
  87. package/dist/tools/fs/safety.js +2 -6
  88. package/dist/tools/fs/shell-read-check.d.ts +99 -0
  89. package/dist/tools/fs/shell-read-check.js +229 -0
  90. package/dist/tools/fs/shell-read-establish.d.ts +70 -115
  91. package/dist/tools/fs/shell-read-establish.js +216 -102
  92. package/dist/tools/fs/shell-read-judge.d.ts +231 -0
  93. package/dist/tools/fs/shell-read-judge.js +170 -0
  94. package/dist/tools/fs/shell-read-plan.d.ts +3 -0
  95. package/dist/tools/fs/shell-read-plan.js +82 -19
  96. package/dist/tools/monitor.d.ts +5 -5
  97. package/dist/tools/monitor.js +3 -5
  98. package/dist/tools/task-list.d.ts +4 -0
  99. package/package.json +1 -1
  100. package/test/export-surface.snapshot.json +19 -3
  101. package/wire-changes/core@7.25.0.json +671 -0
@@ -0,0 +1,671 @@
1
+ {
2
+ "repo": "core",
3
+ "version": "7.25.0",
4
+ "from": "cf97cdb0f908b76024df797a71fc33ecac6c0356",
5
+ "to": "v7.25.0",
6
+ "added": [
7
+ {
8
+ "name": "AddResult",
9
+ "kind": "type",
10
+ "tier": "advanced",
11
+ "at": [
12
+ "src/core/permission-rule-store.ts:1244",
13
+ "src/index.ts:1636"
14
+ ],
15
+ "criteriaCovered": false,
16
+ "breaking": false
17
+ },
18
+ {
19
+ "name": "NOTIFICATION_INJECTION_OUTCOMES",
20
+ "kind": "variable",
21
+ "tier": "advanced",
22
+ "at": [
23
+ "src/core/task-notification.ts:22",
24
+ "src/index.ts:966"
25
+ ],
26
+ "criteriaCovered": false,
27
+ "breaking": false
28
+ },
29
+ {
30
+ "name": "NotificationInjectionOutcome",
31
+ "kind": "type",
32
+ "tier": "advanced",
33
+ "at": [
34
+ "src/core/task-notification.ts:21",
35
+ "src/index.ts:965"
36
+ ],
37
+ "criteriaCovered": false,
38
+ "breaking": false
39
+ },
40
+ {
41
+ "name": "PEER_DIRECTORY_CONTRACT_SCOPE",
42
+ "kind": "variable",
43
+ "tier": "advanced",
44
+ "at": [
45
+ "src/core/store-contracts/peer-directory-contract.ts:12",
46
+ "src/index.ts:2763"
47
+ ],
48
+ "criteriaCovered": false,
49
+ "breaking": false
50
+ },
51
+ {
52
+ "name": "PeerDirectoryContractHooks",
53
+ "kind": "interface",
54
+ "tier": "advanced",
55
+ "at": [
56
+ "src/core/store-contracts/peer-directory-contract.ts:14",
57
+ "src/index.ts:2763"
58
+ ],
59
+ "criteriaCovered": false,
60
+ "breaking": false
61
+ },
62
+ {
63
+ "name": "RuleTightenAddDelta",
64
+ "kind": "interface",
65
+ "tier": "advanced",
66
+ "at": [
67
+ "src/core/permission-rule-store.ts:171",
68
+ "src/index.ts:1669"
69
+ ],
70
+ "criteriaCovered": false,
71
+ "breaking": false
72
+ },
73
+ {
74
+ "name": "addPersistedRule",
75
+ "kind": "function",
76
+ "tier": "advanced",
77
+ "at": [
78
+ "src/core/permission-rule-store.ts:1277",
79
+ "src/index.ts:1615"
80
+ ],
81
+ "criteriaCovered": false,
82
+ "breaking": false
83
+ },
84
+ {
85
+ "name": "isNotificationInjectionOutcome",
86
+ "kind": "function",
87
+ "tier": "advanced",
88
+ "at": [
89
+ "src/core/task-notification.ts:25",
90
+ "src/index.ts:967"
91
+ ],
92
+ "criteriaCovered": false,
93
+ "breaking": false
94
+ },
95
+ {
96
+ "name": "peerDirectoryContract",
97
+ "kind": "function",
98
+ "tier": "advanced",
99
+ "at": [
100
+ "src/core/store-contracts/peer-directory-contract.ts:51",
101
+ "src/index.ts:2763"
102
+ ],
103
+ "criteriaCovered": false,
104
+ "breaking": false
105
+ }
106
+ ],
107
+ "removed": [
108
+ {
109
+ "name": "bashReadBoundaryProbe",
110
+ "kind": "function",
111
+ "tier": "advanced",
112
+ "at": [
113
+ "src/index.ts:588",
114
+ "src/tools/fs/fs-bash.ts:648"
115
+ ],
116
+ "breaking": true
117
+ }
118
+ ],
119
+ "changed": [],
120
+ "narrowed": [
121
+ {
122
+ "id": "F3",
123
+ "source": "behaviorFlips.summary",
124
+ "text": "NARROWING (#969 S0): a child REVIVED by a sibling child (or by a host verb with no reviver session) addresses `main` to the row's ROOT session and carries no live injector — its `SendMessage(\"main\")` reads `main_not_deliverable` naming the session, instead of being delivered live into the sibling reviver's lane. WHO NEEDS IT: 'main' means one conversation (the leader), never whoever happened to wake the agent. WHO IS AFFECTED: a model that relied on a sibling reading its 'main' messages after reviving it — it addresses the sibling by name instead; the sibling's own completion notification is unchanged."
125
+ },
126
+ {
127
+ "id": "F6",
128
+ "source": "behaviorFlips.summary",
129
+ "text": "#945 class A (NARROWING, 39 cells; 7.24.3 red on every cell): a deny-listed shell read is REFUSED at the gate's read station on every shell face and under every doctrine — no card, no YES arm"
130
+ },
131
+ {
132
+ "id": "F16",
133
+ "source": "behaviorFlips.summary",
134
+ "text": "NARROWING (#982): a key's `rev` (`(sessionId, principal)`) is a high-water mark across `deleteBySession` — the first write after an erase stamps `max(row, mark)+1`, never 1; rows carry their LINEAGE `gen` (an erase ends it; the live rule reader treats a row of another generation as not comparable whatever its rev, and no longer latches on a transient absence); `SessionPolicyError` gains code `corrupt` (closed set +1)."
135
+ },
136
+ {
137
+ "id": "F18",
138
+ "source": "behaviorFlips.summary",
139
+ "text": "WIDENING (#981, narrowed scope): the ancestor session-rule layer publishes the row it enforced to grandchildren spawned later (per-leg seat keyed by layer index; one projection also read by the checkpoint half); the other half (sessions with no rule row publish no ancestorRules) stays for 7.26.0."
140
+ }
141
+ ],
142
+ "closedSetMembers": [
143
+ {
144
+ "set": "DENIED_BY_VALUES",
145
+ "at": [
146
+ "src/core/gate-outcome.ts:165"
147
+ ],
148
+ "newSet": false,
149
+ "added": [
150
+ "read_boundary"
151
+ ],
152
+ "removed": [],
153
+ "breaking": false,
154
+ "criteriaCovered": false
155
+ },
156
+ {
157
+ "set": "NOTIFICATION_INJECTION_OUTCOMES",
158
+ "at": [
159
+ "src/core/task-notification.ts:22"
160
+ ],
161
+ "newSet": true,
162
+ "added": [
163
+ "dropped_duplicate",
164
+ "parked",
165
+ "parked_durably",
166
+ "queued"
167
+ ],
168
+ "removed": [],
169
+ "breaking": false,
170
+ "criteriaCovered": false
171
+ },
172
+ {
173
+ "set": "NotificationInjectionOutcome",
174
+ "at": [
175
+ "src/core/task-notification.ts:21"
176
+ ],
177
+ "newSet": true,
178
+ "added": [
179
+ "dropped_duplicate",
180
+ "parked",
181
+ "parked_durably",
182
+ "queued"
183
+ ],
184
+ "removed": [],
185
+ "breaking": false,
186
+ "criteriaCovered": false
187
+ },
188
+ {
189
+ "set": "REMOVAL_LIVENESS_WORDS",
190
+ "at": [
191
+ "src/core/permission-rule-store.ts:985"
192
+ ],
193
+ "newSet": true,
194
+ "added": [
195
+ "no",
196
+ "unknown",
197
+ "yes"
198
+ ],
199
+ "removed": [],
200
+ "breaking": false,
201
+ "criteriaCovered": false
202
+ },
203
+ {
204
+ "set": "ReadEstablishment",
205
+ "at": [
206
+ "src/tools/fs/shell-read-judge.ts:105"
207
+ ],
208
+ "newSet": true,
209
+ "added": [
210
+ "canonical",
211
+ "expansion",
212
+ "lexical",
213
+ "unestablishable"
214
+ ],
215
+ "removed": [],
216
+ "breaking": false,
217
+ "criteriaCovered": false
218
+ },
219
+ {
220
+ "set": "RemovalLiveness",
221
+ "at": [
222
+ "src/core/permission-rule-store.ts:986"
223
+ ],
224
+ "newSet": true,
225
+ "added": [
226
+ "no",
227
+ "unknown",
228
+ "yes"
229
+ ],
230
+ "removed": [],
231
+ "breaking": false,
232
+ "criteriaCovered": false
233
+ },
234
+ {
235
+ "set": "SHELL_READ_FINDINGS",
236
+ "at": [
237
+ "src/tools/fs/shell-read-judge.ts:26"
238
+ ],
239
+ "newSet": true,
240
+ "added": [
241
+ "declined",
242
+ "deny_hit",
243
+ "identity_changed",
244
+ "none",
245
+ "outside_roots",
246
+ "unestablishable"
247
+ ],
248
+ "removed": [],
249
+ "breaking": false,
250
+ "criteriaCovered": false
251
+ },
252
+ {
253
+ "set": "SHELL_READ_SEATS",
254
+ "at": [
255
+ "src/tools/fs/shell-read-judge.ts:33"
256
+ ],
257
+ "newSet": true,
258
+ "added": [
259
+ "bash_classify",
260
+ "bash_off",
261
+ "readonly",
262
+ "rejudge"
263
+ ],
264
+ "removed": [],
265
+ "breaking": false,
266
+ "criteriaCovered": false
267
+ },
268
+ {
269
+ "set": "ShellReadDisposition",
270
+ "at": [
271
+ "src/tools/fs/shell-read-judge.ts:52"
272
+ ],
273
+ "newSet": true,
274
+ "added": [
275
+ "mandated",
276
+ "ordinary",
277
+ "refuse",
278
+ "vouch"
279
+ ],
280
+ "removed": [],
281
+ "breaking": false,
282
+ "criteriaCovered": false
283
+ },
284
+ {
285
+ "set": "ShellReadFinding",
286
+ "at": [
287
+ "src/tools/fs/shell-read-judge.ts:27"
288
+ ],
289
+ "newSet": true,
290
+ "added": [
291
+ "declined",
292
+ "deny_hit",
293
+ "identity_changed",
294
+ "none",
295
+ "outside_roots",
296
+ "unestablishable"
297
+ ],
298
+ "removed": [],
299
+ "breaking": false,
300
+ "criteriaCovered": false
301
+ },
302
+ {
303
+ "set": "ShellReadSeat",
304
+ "at": [
305
+ "src/tools/fs/shell-read-judge.ts:34"
306
+ ],
307
+ "newSet": true,
308
+ "added": [
309
+ "bash_classify",
310
+ "bash_off",
311
+ "readonly",
312
+ "rejudge"
313
+ ],
314
+ "removed": [],
315
+ "breaking": false,
316
+ "criteriaCovered": false
317
+ },
318
+ {
319
+ "set": "TASK_OUTPUT_REPLAY_KINDS",
320
+ "at": [
321
+ "src/core/task-registry-shared.ts:762"
322
+ ],
323
+ "newSet": true,
324
+ "added": [
325
+ "cursor",
326
+ "full"
327
+ ],
328
+ "removed": [],
329
+ "breaking": false,
330
+ "criteriaCovered": false
331
+ },
332
+ {
333
+ "set": "TaskOutputReplay",
334
+ "at": [
335
+ "src/core/task-registry-shared.ts:763"
336
+ ],
337
+ "newSet": true,
338
+ "added": [
339
+ "cursor",
340
+ "full"
341
+ ],
342
+ "removed": [],
343
+ "breaking": false,
344
+ "criteriaCovered": false
345
+ }
346
+ ],
347
+ "closedSetsUnreadable": [],
348
+ "typeKeys": [
349
+ {
350
+ "type": "BackgroundAgentRecord",
351
+ "at": [
352
+ "src/core/background-agent-store.ts:37"
353
+ ],
354
+ "added": [],
355
+ "removed": [
356
+ "teamName"
357
+ ],
358
+ "breaking": true,
359
+ "criteriaCovered": false
360
+ },
361
+ {
362
+ "type": "BackgroundChildEvent",
363
+ "at": [
364
+ "src/core/delegation-frames.ts:19"
365
+ ],
366
+ "added": [
367
+ "spawnName"
368
+ ],
369
+ "removed": [],
370
+ "breaking": false,
371
+ "criteriaCovered": true
372
+ },
373
+ {
374
+ "type": "CompoundReadonlyVerdict",
375
+ "at": [
376
+ "src/tools/fs/bash-readonly-classifier.ts:649"
377
+ ],
378
+ "added": [],
379
+ "removed": [
380
+ "checkedPaths",
381
+ "checkedSpellings",
382
+ "outOfRootGrantCandidate",
383
+ "outOfRootGrantCoversExactPath",
384
+ "outOfRootPaths",
385
+ "outOfRootRead",
386
+ "outOfRootSpellings",
387
+ "readDenied",
388
+ "readDeniedPath",
389
+ "readDeniedPattern",
390
+ "recursiveReadPaths",
391
+ "refusedWhole",
392
+ "segmentNameRefusal",
393
+ "undecidedPaths",
394
+ "undecidedSpellings",
395
+ "unresolvedOperands"
396
+ ],
397
+ "breaking": true,
398
+ "criteriaCovered": false
399
+ },
400
+ {
401
+ "type": "HookInvocationIdentity",
402
+ "at": [
403
+ "src/core/hooks.ts:1017"
404
+ ],
405
+ "added": [
406
+ "agentType",
407
+ "spawnName"
408
+ ],
409
+ "removed": [],
410
+ "breaking": false,
411
+ "criteriaCovered": true
412
+ },
413
+ {
414
+ "type": "MailboxPeerMeta",
415
+ "at": [
416
+ "src/core/mailbox-store.ts:56"
417
+ ],
418
+ "added": [
419
+ "fromRoot"
420
+ ],
421
+ "removed": [],
422
+ "breaking": false,
423
+ "criteriaCovered": false
424
+ },
425
+ {
426
+ "type": "MonitorToolOptions",
427
+ "at": [
428
+ "src/tools/monitor.ts:60"
429
+ ],
430
+ "added": [
431
+ "shellReadAdmission"
432
+ ],
433
+ "removed": [
434
+ "readBoundary"
435
+ ],
436
+ "breaking": true,
437
+ "criteriaCovered": false
438
+ },
439
+ {
440
+ "type": "ParentSpecSeat",
441
+ "at": [
442
+ "src/core/parent-spec-seat.ts:42"
443
+ ],
444
+ "added": [
445
+ "hooks"
446
+ ],
447
+ "removed": [],
448
+ "breaking": false,
449
+ "criteriaCovered": true
450
+ },
451
+ {
452
+ "type": "RunInternals",
453
+ "at": [
454
+ "src/core/runner/contracts.ts:1324"
455
+ ],
456
+ "added": [
457
+ "spawnAgentType",
458
+ "uplinkSessionId"
459
+ ],
460
+ "removed": [],
461
+ "breaking": false,
462
+ "criteriaCovered": false
463
+ },
464
+ {
465
+ "type": "SendMessageToolOptions",
466
+ "at": [
467
+ "src/agents/send-message-tool.ts:45"
468
+ ],
469
+ "added": [
470
+ "uplinkSessionId"
471
+ ],
472
+ "removed": [],
473
+ "breaking": false,
474
+ "criteriaCovered": true
475
+ },
476
+ {
477
+ "type": "StoredSessionRules",
478
+ "at": [
479
+ "src/core/session-policy-store.ts:42"
480
+ ],
481
+ "added": [
482
+ "gen"
483
+ ],
484
+ "removed": [],
485
+ "breaking": false,
486
+ "criteriaCovered": false
487
+ },
488
+ {
489
+ "type": "TaskEvent",
490
+ "at": [
491
+ "src/core/task-event.ts:265"
492
+ ],
493
+ "added": [
494
+ "task_progress.spawnName"
495
+ ],
496
+ "removed": [],
497
+ "breaking": false,
498
+ "criteriaCovered": false
499
+ }
500
+ ],
501
+ "declarationMoves": [
502
+ {
503
+ "name": "deepestCommonDir",
504
+ "kind": null,
505
+ "onSurface": false,
506
+ "from": [
507
+ "src/tools/fs/bash-readonly-classifier.ts"
508
+ ],
509
+ "to": [
510
+ "src/tools/fs/shell-read-judge.ts"
511
+ ]
512
+ },
513
+ {
514
+ "name": "elideMiddle",
515
+ "kind": null,
516
+ "onSurface": false,
517
+ "from": [
518
+ "src/tools/fs/fs-bash.ts"
519
+ ],
520
+ "to": [
521
+ "src/tools/fs/read-deny.ts"
522
+ ]
523
+ },
524
+ {
525
+ "name": "fitMiddle",
526
+ "kind": null,
527
+ "onSurface": false,
528
+ "from": [
529
+ "src/tools/fs/fs-bash.ts"
530
+ ],
531
+ "to": [
532
+ "src/tools/fs/read-deny.ts"
533
+ ]
534
+ }
535
+ ],
536
+ "mintMoves": [],
537
+ "criteriaObserves": [
538
+ {
539
+ "kind": "taskEventField",
540
+ "name": "tool_end.errorCode",
541
+ "assertions": [
542
+ "G6.a"
543
+ ]
544
+ },
545
+ {
546
+ "kind": "taskEventField",
547
+ "name": "tool_end.gate",
548
+ "assertions": [
549
+ "G6.a",
550
+ "G10.a"
551
+ ]
552
+ },
553
+ {
554
+ "kind": "taskEventField",
555
+ "name": "tool_end.isError",
556
+ "assertions": [
557
+ "G10.a"
558
+ ]
559
+ },
560
+ {
561
+ "kind": "taskEventField",
562
+ "name": "tool_end.output",
563
+ "assertions": [
564
+ "G2.a",
565
+ "G3.a"
566
+ ]
567
+ },
568
+ {
569
+ "kind": "taskEventField",
570
+ "name": "tool_end.structured",
571
+ "assertions": [
572
+ "G6.a",
573
+ "G6.c",
574
+ "G9.a"
575
+ ]
576
+ },
577
+ {
578
+ "kind": "typeMember",
579
+ "name": "AskRequest.origin",
580
+ "assertions": [
581
+ "G6.b"
582
+ ]
583
+ },
584
+ {
585
+ "kind": "typeMember",
586
+ "name": "AskRequest.probeReason",
587
+ "assertions": [
588
+ "G6.b"
589
+ ]
590
+ },
591
+ {
592
+ "kind": "typeMember",
593
+ "name": "AskRequest.readRootCandidate",
594
+ "assertions": [
595
+ "G6.b",
596
+ "G6.c"
597
+ ]
598
+ },
599
+ {
600
+ "kind": "typeMember",
601
+ "name": "BackgroundAgentRecord.rootSessionId",
602
+ "assertions": [
603
+ "G5.a"
604
+ ]
605
+ },
606
+ {
607
+ "kind": "typeMember",
608
+ "name": "BackgroundChildEvent.spawnName",
609
+ "assertions": [
610
+ "G1.a"
611
+ ]
612
+ },
613
+ {
614
+ "kind": "typeMember",
615
+ "name": "HookInvocationIdentity.spawnName",
616
+ "assertions": [
617
+ "G4.a"
618
+ ]
619
+ },
620
+ {
621
+ "kind": "typeMember",
622
+ "name": "ParentSpecSeat.hooks",
623
+ "assertions": [
624
+ "G4.a"
625
+ ]
626
+ },
627
+ {
628
+ "kind": "typeMember",
629
+ "name": "RuleAdd.origin",
630
+ "assertions": [
631
+ "G7.a"
632
+ ]
633
+ },
634
+ {
635
+ "kind": "typeMember",
636
+ "name": "SendMessageToolOptions.uplinkSessionId",
637
+ "assertions": [
638
+ "G2.a",
639
+ "G3.a"
640
+ ]
641
+ },
642
+ {
643
+ "kind": "typeMember",
644
+ "name": "SessionPolicyStore.deleteBySession",
645
+ "assertions": [
646
+ "G8.a"
647
+ ]
648
+ },
649
+ {
650
+ "kind": "typeMember",
651
+ "name": "StoredSessionRules.rev",
652
+ "assertions": [
653
+ "G8.a"
654
+ ]
655
+ }
656
+ ],
657
+ "consumersHint": {
658
+ "cli": [],
659
+ "server": [],
660
+ "sdk": [],
661
+ "note": "NOT SCANNED: sema-cli, sema-server, sema-sdk — an empty list for those repos means \"not checked out\", not \"no consumer\""
662
+ },
663
+ "breakingCount": 4,
664
+ "breakingItems": [
665
+ "export removed: bashReadBoundaryProbe (function)",
666
+ "type lost keys: BackgroundAgentRecord -teamName",
667
+ "type lost keys: CompoundReadonlyVerdict -checkedPaths,checkedSpellings,outOfRootGrantCandidate,outOfRootGrantCoversExactPath,outOfRootPaths,outOfRootRead,outOfRootSpellings,readDenied,readDeniedPath,readDeniedPattern,recursiveReadPaths,refusedWhole,segmentNameRefusal,undecidedPaths,undecidedSpellings,unresolvedOperands",
668
+ "type lost keys: MonitorToolOptions -readBoundary"
669
+ ],
670
+ "toResolvedAt": "0acdbbe6fc5d38e5e3545a0adce816901a2f68c2"
671
+ }