opencode-swarm 7.192.4 → 7.193.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 (100) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +2 -2
  2. package/.opencode/skills/swarm-pr-review/references/verdict-settlement-contract.md +17 -0
  3. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  4. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  5. package/dist/cli/{auto-checkpoint-1xy6dprq.js → auto-checkpoint-taay16xe.js} +7 -7
  6. package/dist/cli/{checkpoint-wvhmkgv5.js → checkpoint-6229g3jq.js} +14 -14
  7. package/dist/cli/{coder-settlement-wpkmkgcf.js → coder-settlement-hexmmefv.js} +10 -10
  8. package/dist/cli/{config-doctor-xvhejh7g.js → config-doctor-3ghvthh5.js} +13 -13
  9. package/dist/cli/{core-yzgm8pcw.js → core-0k7t9fw0.js} +3 -3
  10. package/dist/cli/{curation-policy-yzdznz4z.js → curation-policy-8j6qn6nt.js} +4 -4
  11. package/dist/cli/{curator-drift-5c041yaf.js → curator-drift-a5142x0d.js} +8 -8
  12. package/dist/cli/{curator-3xh6246r.js → curator-kwwnkyr7.js} +40 -40
  13. package/dist/cli/curator-llm-factory-8gt3mvg9.js +82 -0
  14. package/dist/cli/{doctor-knowledge-receipt-phase-id-cx6n5jtp.js → doctor-knowledge-receipt-phase-id-11nsf9tz.js} +7 -7
  15. package/dist/cli/{evidence-summary-service-cc139a85.js → evidence-summary-service-y2ykc6ta.js} +17 -17
  16. package/dist/cli/{gate-evidence-7azk0xbt.js → gate-evidence-cd5299js.js} +5 -5
  17. package/dist/cli/guardrail-explain-hpgecr7x.js +83 -0
  18. package/dist/cli/{guardrail-log-env1h4wr.js → guardrail-log-g6krx0s2.js} +6 -6
  19. package/dist/cli/{guardrail-reset-1404ymcw.js → guardrail-reset-a3xv675m.js} +40 -40
  20. package/dist/cli/{hive-promoter-hap3dh02.js → hive-promoter-90svfzvs.js} +40 -40
  21. package/dist/cli/{index-8zj647hc.js → index-0e318vgt.js} +1 -1
  22. package/dist/cli/{index-s68yyat0.js → index-1dx5zyss.js} +1 -1
  23. package/dist/cli/{index-kn16k0fv.js → index-1p24bfn2.js} +5 -5
  24. package/dist/cli/{index-bgzpw6ge.js → index-3atkcqpb.js} +1 -1
  25. package/dist/cli/{index-s43zb23q.js → index-3xj89bf0.js} +42 -42
  26. package/dist/cli/{index-6k70exke.js → index-4gacy6y6.js} +2 -2
  27. package/dist/cli/{index-g2phkwh2.js → index-4mq8r4be.js} +3 -3
  28. package/dist/cli/{index-54p1vs33.js → index-5ev6f1gj.js} +3 -3
  29. package/dist/cli/{index-tww9qw9z.js → index-5n760fzn.js} +6 -6
  30. package/dist/cli/{index-1n7sf9gz.js → index-5rkh69f3.js} +1 -1
  31. package/dist/cli/{index-0e1nxkte.js → index-668npagp.js} +1 -1
  32. package/dist/cli/{index-xpwp9hw1.js → index-6dn16dre.js} +5 -5
  33. package/dist/cli/{index-g8jd3h4r.js → index-6s3ab22d.js} +2 -2
  34. package/dist/cli/{index-5gy5dc2n.js → index-7njm9jk1.js} +1 -1
  35. package/dist/cli/{index-eaess7dm.js → index-84k9zzv1.js} +1 -1
  36. package/dist/cli/{index-rsfvxaw0.js → index-bg19b84s.js} +7 -7
  37. package/dist/cli/{index-cp9h2sqb.js → index-bgtfvst1.js} +1 -1
  38. package/dist/cli/{index-22ww8fjt.js → index-bkpyff61.js} +2 -2
  39. package/dist/cli/{index-jb669k7s.js → index-cpt38e0e.js} +2 -2
  40. package/dist/cli/{index-gkr6ns9n.js → index-cs0p582p.js} +4 -4
  41. package/dist/cli/{index-v6ghzghn.js → index-d2emv8ap.js} +3 -3
  42. package/dist/cli/{index-ftatc9wj.js → index-db786kn6.js} +40 -40
  43. package/dist/cli/{index-fzqn2kk8.js → index-fd6b9f38.js} +2 -2
  44. package/dist/cli/{index-c5gb6a86.js → index-he2nyr7x.js} +10 -10
  45. package/dist/cli/{index-dtet46e6.js → index-hfnyykvm.js} +5 -5
  46. package/dist/cli/{index-nwswxes7.js → index-hfssjyxs.js} +2 -2
  47. package/dist/cli/{index-5gyq54c5.js → index-jx80ed6g.js} +4563 -4121
  48. package/dist/cli/{index-j4pxkvw3.js → index-jxs9qnad.js} +4 -4
  49. package/dist/cli/{index-xwxqtdwz.js → index-ma71x1aa.js} +4 -4
  50. package/dist/cli/{index-4twjbsfw.js → index-ndec8akq.js} +1 -1
  51. package/dist/cli/{index-rqapvhh5.js → index-ngk8hpc3.js} +1 -1
  52. package/dist/cli/{index-qzkrcz1r.js → index-nktwf2xm.js} +6 -6
  53. package/dist/cli/{index-c8fjbghs.js → index-ntmnse4d.js} +1 -1
  54. package/dist/cli/{index-2qpme44n.js → index-nz6ehpjn.js} +3 -3
  55. package/dist/cli/{index-c6wzbs0g.js → index-prvancd0.js} +2 -2
  56. package/dist/cli/{index-a9m7h5v0.js → index-qh93qjc2.js} +1 -1
  57. package/dist/cli/{index-vgktct21.js → index-r3mffz78.js} +4 -4
  58. package/dist/cli/{index-q47snsb2.js → index-rd9th57y.js} +3 -3
  59. package/dist/cli/{index-dt4cjxbz.js → index-st80sjg7.js} +1 -1
  60. package/dist/cli/{index-zya4a544.js → index-tr47q89d.js} +4 -4
  61. package/dist/cli/{index-6vwnm3sm.js → index-vbp35frb.js} +2 -2
  62. package/dist/cli/{index-mbn4vn3z.js → index-vg8sxg12.js} +1 -1
  63. package/dist/cli/{index-5dws7eyb.js → index-w2vbaczx.js} +1 -1
  64. package/dist/cli/{index-72eh47b2.js → index-x2phyvcv.js} +3 -3
  65. package/dist/cli/{index-myjqj3na.js → index-ymnathfr.js} +7 -7
  66. package/dist/cli/index.js +41 -41
  67. package/dist/cli/{knowledge-escalator-eta167xh.js → knowledge-escalator-2d7g3hs0.js} +12 -12
  68. package/dist/cli/{knowledge-events-mz25jn9f.js → knowledge-events-hjeaevc9.js} +10 -10
  69. package/dist/cli/{knowledge-link-a5tvjqdt.js → knowledge-link-srnt95wh.js} +3 -3
  70. package/dist/cli/{knowledge-store-qd08dbws.js → knowledge-store-g9cb2m0v.js} +4 -4
  71. package/dist/cli/{knowledge-validator-jyrsgamq.js → knowledge-validator-dghf9pcj.js} +6 -6
  72. package/dist/cli/{mcp-4wgxc5ax.js → mcp-f5myvd7r.js} +1 -1
  73. package/dist/cli/{model-preflight-4p3x4vma.js → model-preflight-4w4wd6dj.js} +40 -40
  74. package/dist/cli/{pending-delegations-7hm6xgzw.js → pending-delegations-adm6gf3n.js} +10 -10
  75. package/dist/cli/{pr-subscriptions-2y3w5pyt.js → pr-subscriptions-n1hks854.js} +10 -10
  76. package/dist/cli/{pr-workflow-gate-y04z3z80.js → pr-workflow-gate-59cr6gve.js} +44 -40
  77. package/dist/cli/{runner-8qybgy4n.js → runner-b2e89cp1.js} +4 -4
  78. package/dist/cli/{scan-cursor-2hpc6mxt.js → scan-cursor-t26xmfhd.js} +5 -5
  79. package/dist/cli/{schema-33k1e2cv.js → schema-cr120ar5.js} +1 -1
  80. package/dist/cli/{scope-persistence-y769jep8.js → scope-persistence-mrnz8j43.js} +13 -13
  81. package/dist/cli/{server-199m00cz.js → server-mwk6zn83.js} +40 -40
  82. package/dist/cli/{skill-generator-b9by3739.js → skill-generator-svs4k0g8.js} +14 -14
  83. package/dist/cli/{snapshot-coordination-init-wyyn8ftk.js → snapshot-coordination-init-xzrahhsb.js} +40 -40
  84. package/dist/cli/{speckit-checkoff-y2ywmh9k.js → speckit-checkoff-g2qrb1tn.js} +4 -4
  85. package/dist/cli/{workspace-snapshot-vfpnxjsp.js → workspace-snapshot-p69t9zn7.js} +3 -3
  86. package/dist/cli/{worktree-collision-ownership-hg0yrc5b.js → worktree-collision-ownership-d145wmpg.js} +11 -11
  87. package/dist/cli/{worktree-isolation-epbn1xgh.js → worktree-isolation-pt1rws6p.js} +40 -40
  88. package/dist/commands/registry.d.ts +1 -1
  89. package/dist/hooks/injection-policy.d.ts +94 -0
  90. package/dist/hooks/pr-workflow-gate.d.ts +44 -5
  91. package/dist/host/v2/types.d.ts +254 -11
  92. package/dist/index.js +492 -491
  93. package/dist/pr-review/finding-policy.d.ts +1 -1
  94. package/dist/pr-review/verdict-settlement.d.ts +182 -0
  95. package/dist/services/context-budget-service.d.ts +8 -1
  96. package/dist/tools/complete-pr-workflow.d.ts +13 -0
  97. package/dist/tools/write-pr-review-artifact.d.ts +1 -1
  98. package/package.json +1 -1
  99. package/dist/cli/curator-llm-factory-6y7wrbvk.js +0 -82
  100. package/dist/cli/guardrail-explain-b3y98j5b.js +0 -83
@@ -33,36 +33,36 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-vgktct21.js";
36
+ } from "./index-r3mffz78.js";
37
37
  import"./index-q7sjgr1y.js";
38
- import"./index-zya4a544.js";
39
- import"./index-gkr6ns9n.js";
38
+ import"./index-tr47q89d.js";
39
+ import"./index-cs0p582p.js";
40
40
  import"./index-m9zzj4ee.js";
41
- import"./index-eaess7dm.js";
41
+ import"./index-84k9zzv1.js";
42
42
  import"./index-2s7dvzff.js";
43
- import"./index-j4pxkvw3.js";
44
- import"./index-5dws7eyb.js";
43
+ import"./index-jxs9qnad.js";
44
+ import"./index-w2vbaczx.js";
45
45
  import"./index-rtry5xyf.js";
46
- import"./index-6vwnm3sm.js";
46
+ import"./index-vbp35frb.js";
47
47
  import"./index-g22dps7x.js";
48
48
  import"./index-0725jpp7.js";
49
- import"./index-4twjbsfw.js";
50
- import"./index-rsfvxaw0.js";
49
+ import"./index-ndec8akq.js";
50
+ import"./index-bg19b84s.js";
51
51
  import"./index-vzm6zre7.js";
52
52
  import"./index-ae75rja9.js";
53
- import"./index-bgzpw6ge.js";
54
- import"./index-1n7sf9gz.js";
53
+ import"./index-3atkcqpb.js";
54
+ import"./index-5rkh69f3.js";
55
55
  import"./index-e8k0v19e.js";
56
56
  import"./index-t7hmqgjy.js";
57
57
  import"./index-mtqwyjrg.js";
58
58
  import"./index-fzpt2djt.js";
59
59
  import"./index-ejhxgyvm.js";
60
60
  import"./index-7g4c7s5r.js";
61
- import"./index-nwswxes7.js";
61
+ import"./index-hfssjyxs.js";
62
62
  import"./index-gx2vp8gx.js";
63
- import"./index-rqapvhh5.js";
63
+ import"./index-ngk8hpc3.js";
64
64
  import"./index-zxdawwc7.js";
65
- import"./index-s68yyat0.js";
65
+ import"./index-1dx5zyss.js";
66
66
  import"./index-py8wpe81.js";
67
67
  import"./index-bk5tah7q.js";
68
68
  import"./index-gknz3bv1.js";
@@ -8,74 +8,74 @@ import {
8
8
  markSnapshotCoordinationClosing,
9
9
  retrySnapshotCoordinationInitialization,
10
10
  startSnapshotCoordinationInitialization
11
- } from "./index-5gyq54c5.js";
12
- import"./index-22ww8fjt.js";
13
- import"./index-g2phkwh2.js";
14
- import"./index-xwxqtdwz.js";
11
+ } from "./index-jx80ed6g.js";
12
+ import"./index-bkpyff61.js";
13
+ import"./index-4mq8r4be.js";
14
+ import"./index-ma71x1aa.js";
15
15
  import"./index-j2vv0h13.js";
16
- import"./index-0e1nxkte.js";
17
- import"./index-5gy5dc2n.js";
16
+ import"./index-668npagp.js";
17
+ import"./index-7njm9jk1.js";
18
18
  import"./index-txdagbh7.js";
19
- import"./index-c6wzbs0g.js";
19
+ import"./index-prvancd0.js";
20
20
  import"./index-rdec0y3z.js";
21
- import"./index-v6ghzghn.js";
22
- import"./index-myjqj3na.js";
23
- import"./index-vgktct21.js";
24
- import"./index-tww9qw9z.js";
25
- import"./index-fzqn2kk8.js";
26
- import"./index-dtet46e6.js";
21
+ import"./index-d2emv8ap.js";
22
+ import"./index-ymnathfr.js";
23
+ import"./index-r3mffz78.js";
24
+ import"./index-5n760fzn.js";
25
+ import"./index-fd6b9f38.js";
26
+ import"./index-hfnyykvm.js";
27
27
  import"./index-cjapb4hy.js";
28
- import"./index-g8jd3h4r.js";
28
+ import"./index-6s3ab22d.js";
29
29
  import"./index-pt7h91zc.js";
30
30
  import"./index-q7sjgr1y.js";
31
- import"./index-qzkrcz1r.js";
32
- import"./index-c5gb6a86.js";
31
+ import"./index-nktwf2xm.js";
32
+ import"./index-he2nyr7x.js";
33
33
  import"./index-6b295cas.js";
34
34
  import"./index-9nyqt3kb.js";
35
- import"./index-cp9h2sqb.js";
35
+ import"./index-bgtfvst1.js";
36
36
  import"./index-v3bmwmqw.js";
37
- import"./index-6k70exke.js";
38
- import"./index-2qpme44n.js";
39
- import"./index-72eh47b2.js";
37
+ import"./index-4gacy6y6.js";
38
+ import"./index-nz6ehpjn.js";
39
+ import"./index-x2phyvcv.js";
40
40
  import"./index-g4fs6z4e.js";
41
- import"./index-xpwp9hw1.js";
42
- import"./index-zya4a544.js";
43
- import"./index-gkr6ns9n.js";
41
+ import"./index-6dn16dre.js";
42
+ import"./index-tr47q89d.js";
43
+ import"./index-cs0p582p.js";
44
44
  import"./index-m9zzj4ee.js";
45
- import"./index-eaess7dm.js";
45
+ import"./index-84k9zzv1.js";
46
46
  import"./index-2s7dvzff.js";
47
- import"./index-j4pxkvw3.js";
48
- import"./index-5dws7eyb.js";
47
+ import"./index-jxs9qnad.js";
48
+ import"./index-w2vbaczx.js";
49
49
  import"./index-rtry5xyf.js";
50
- import"./index-6vwnm3sm.js";
50
+ import"./index-vbp35frb.js";
51
51
  import"./index-g22dps7x.js";
52
52
  import"./index-0725jpp7.js";
53
- import"./index-kn16k0fv.js";
54
- import"./index-54p1vs33.js";
55
- import"./index-a9m7h5v0.js";
56
- import"./index-dt4cjxbz.js";
57
- import"./index-mbn4vn3z.js";
58
- import"./index-8zj647hc.js";
53
+ import"./index-1p24bfn2.js";
54
+ import"./index-5ev6f1gj.js";
55
+ import"./index-qh93qjc2.js";
56
+ import"./index-st80sjg7.js";
57
+ import"./index-vg8sxg12.js";
58
+ import"./index-0e318vgt.js";
59
59
  import"./index-ry16d01s.js";
60
60
  import"./index-rdm3px0g.js";
61
61
  import"./index-7pmbnjvj.js";
62
- import"./index-4twjbsfw.js";
63
- import"./index-rsfvxaw0.js";
62
+ import"./index-ndec8akq.js";
63
+ import"./index-bg19b84s.js";
64
64
  import"./index-vzm6zre7.js";
65
65
  import"./index-ae75rja9.js";
66
- import"./index-bgzpw6ge.js";
67
- import"./index-1n7sf9gz.js";
66
+ import"./index-3atkcqpb.js";
67
+ import"./index-5rkh69f3.js";
68
68
  import"./index-e8k0v19e.js";
69
69
  import"./index-t7hmqgjy.js";
70
70
  import"./index-mtqwyjrg.js";
71
71
  import"./index-fzpt2djt.js";
72
72
  import"./index-ejhxgyvm.js";
73
73
  import"./index-7g4c7s5r.js";
74
- import"./index-nwswxes7.js";
74
+ import"./index-hfssjyxs.js";
75
75
  import"./index-gx2vp8gx.js";
76
- import"./index-rqapvhh5.js";
76
+ import"./index-ngk8hpc3.js";
77
77
  import"./index-zxdawwc7.js";
78
- import"./index-s68yyat0.js";
78
+ import"./index-1dx5zyss.js";
79
79
  import"./index-py8wpe81.js";
80
80
  import"./index-bk5tah7q.js";
81
81
  import"./index-gknz3bv1.js";
@@ -7,13 +7,13 @@ import {
7
7
  parseSpeckitTasksContent,
8
8
  propagateSpeckitCheckoff,
9
9
  writeSpeckitCheckoffLedger
10
- } from "./index-6k70exke.js";
10
+ } from "./index-4gacy6y6.js";
11
11
  import"./index-ejhxgyvm.js";
12
12
  import"./index-7g4c7s5r.js";
13
- import"./index-nwswxes7.js";
14
- import"./index-rqapvhh5.js";
13
+ import"./index-hfssjyxs.js";
14
+ import"./index-ngk8hpc3.js";
15
15
  import"./index-zxdawwc7.js";
16
- import"./index-s68yyat0.js";
16
+ import"./index-1dx5zyss.js";
17
17
  import"./index-py8wpe81.js";
18
18
  import"./index-bk5tah7q.js";
19
19
  import"./index-gknz3bv1.js";
@@ -46,11 +46,11 @@ import {
46
46
  shouldSkipSnapshot,
47
47
  switchPrFeedbackTrackingCandidateAsync,
48
48
  workspaceSnapshotMatches
49
- } from "./index-fzqn2kk8.js";
50
- import"./index-eaess7dm.js";
49
+ } from "./index-fd6b9f38.js";
50
+ import"./index-84k9zzv1.js";
51
51
  import"./index-2s7dvzff.js";
52
52
  import"./index-fzpt2djt.js";
53
- import"./index-nwswxes7.js";
53
+ import"./index-hfssjyxs.js";
54
54
  import"./index-zxdawwc7.js";
55
55
  import"./index-zpsr8rpc.js";
56
56
  import"./index-zgwm4ryv.js";
@@ -6,28 +6,28 @@ import {
6
6
  WORKTREE_PROVISIONING_OWNER_LEASE_MS,
7
7
  removeWorktreeProvisioningOwner,
8
8
  scanWorktreeProvisioningOwnersForRecovery
9
- } from "./index-g8jd3h4r.js";
9
+ } from "./index-6s3ab22d.js";
10
10
  import {
11
11
  scanWorktreeMergeFailuresForRecovery
12
12
  } from "./index-v3bmwmqw.js";
13
13
  import {
14
14
  scanDelegationFallbacksForRecovery,
15
15
  scanDelegationsForRecovery
16
- } from "./index-xpwp9hw1.js";
17
- import"./index-eaess7dm.js";
16
+ } from "./index-6dn16dre.js";
17
+ import"./index-84k9zzv1.js";
18
18
  import"./index-2s7dvzff.js";
19
- import"./index-dt4cjxbz.js";
20
- import"./index-mbn4vn3z.js";
21
- import"./index-8zj647hc.js";
19
+ import"./index-st80sjg7.js";
20
+ import"./index-vg8sxg12.js";
21
+ import"./index-0e318vgt.js";
22
22
  import"./index-ry16d01s.js";
23
23
  import"./index-rdm3px0g.js";
24
24
  import"./index-7pmbnjvj.js";
25
- import"./index-4twjbsfw.js";
26
- import"./index-rsfvxaw0.js";
25
+ import"./index-ndec8akq.js";
26
+ import"./index-bg19b84s.js";
27
27
  import"./index-vzm6zre7.js";
28
28
  import"./index-ae75rja9.js";
29
- import"./index-bgzpw6ge.js";
30
- import"./index-1n7sf9gz.js";
29
+ import"./index-3atkcqpb.js";
30
+ import"./index-5rkh69f3.js";
31
31
  import"./index-e8k0v19e.js";
32
32
  import"./index-t7hmqgjy.js";
33
33
  import"./index-mtqwyjrg.js";
@@ -36,7 +36,7 @@ import {
36
36
  } from "./index-fzpt2djt.js";
37
37
  import"./index-ejhxgyvm.js";
38
38
  import"./index-7g4c7s5r.js";
39
- import"./index-nwswxes7.js";
39
+ import"./index-hfssjyxs.js";
40
40
  import"./index-zxdawwc7.js";
41
41
  import"./index-bk5tah7q.js";
42
42
  import"./index-gknz3bv1.js";
@@ -25,76 +25,76 @@ import {
25
25
  sanitizeWorktreeTaskId,
26
26
  standardWorktreeByCallID,
27
27
  standardWorktreeSerializationSessions
28
- } from "./index-5gyq54c5.js";
29
- import"./index-22ww8fjt.js";
30
- import"./index-g2phkwh2.js";
31
- import"./index-xwxqtdwz.js";
28
+ } from "./index-jx80ed6g.js";
29
+ import"./index-bkpyff61.js";
30
+ import"./index-4mq8r4be.js";
31
+ import"./index-ma71x1aa.js";
32
32
  import"./index-j2vv0h13.js";
33
- import"./index-0e1nxkte.js";
34
- import"./index-5gy5dc2n.js";
33
+ import"./index-668npagp.js";
34
+ import"./index-7njm9jk1.js";
35
35
  import"./index-txdagbh7.js";
36
- import"./index-c6wzbs0g.js";
36
+ import"./index-prvancd0.js";
37
37
  import"./index-rdec0y3z.js";
38
- import"./index-v6ghzghn.js";
39
- import"./index-myjqj3na.js";
40
- import"./index-vgktct21.js";
41
- import"./index-tww9qw9z.js";
42
- import"./index-fzqn2kk8.js";
43
- import"./index-dtet46e6.js";
38
+ import"./index-d2emv8ap.js";
39
+ import"./index-ymnathfr.js";
40
+ import"./index-r3mffz78.js";
41
+ import"./index-5n760fzn.js";
42
+ import"./index-fd6b9f38.js";
43
+ import"./index-hfnyykvm.js";
44
44
  import"./index-cjapb4hy.js";
45
- import"./index-g8jd3h4r.js";
45
+ import"./index-6s3ab22d.js";
46
46
  import"./index-pt7h91zc.js";
47
47
  import"./index-q7sjgr1y.js";
48
- import"./index-qzkrcz1r.js";
49
- import"./index-c5gb6a86.js";
48
+ import"./index-nktwf2xm.js";
49
+ import"./index-he2nyr7x.js";
50
50
  import"./index-6b295cas.js";
51
51
  import"./index-9nyqt3kb.js";
52
- import"./index-cp9h2sqb.js";
52
+ import"./index-bgtfvst1.js";
53
53
  import"./index-v3bmwmqw.js";
54
- import"./index-6k70exke.js";
55
- import"./index-2qpme44n.js";
56
- import"./index-72eh47b2.js";
54
+ import"./index-4gacy6y6.js";
55
+ import"./index-nz6ehpjn.js";
56
+ import"./index-x2phyvcv.js";
57
57
  import"./index-g4fs6z4e.js";
58
- import"./index-xpwp9hw1.js";
59
- import"./index-zya4a544.js";
60
- import"./index-gkr6ns9n.js";
58
+ import"./index-6dn16dre.js";
59
+ import"./index-tr47q89d.js";
60
+ import"./index-cs0p582p.js";
61
61
  import"./index-m9zzj4ee.js";
62
- import"./index-eaess7dm.js";
62
+ import"./index-84k9zzv1.js";
63
63
  import"./index-2s7dvzff.js";
64
- import"./index-j4pxkvw3.js";
65
- import"./index-5dws7eyb.js";
64
+ import"./index-jxs9qnad.js";
65
+ import"./index-w2vbaczx.js";
66
66
  import"./index-rtry5xyf.js";
67
67
  import {
68
68
  resolveWorktreeIsolationConfig
69
- } from "./index-6vwnm3sm.js";
69
+ } from "./index-vbp35frb.js";
70
70
  import"./index-g22dps7x.js";
71
71
  import"./index-0725jpp7.js";
72
- import"./index-kn16k0fv.js";
73
- import"./index-54p1vs33.js";
74
- import"./index-a9m7h5v0.js";
75
- import"./index-dt4cjxbz.js";
76
- import"./index-mbn4vn3z.js";
77
- import"./index-8zj647hc.js";
72
+ import"./index-1p24bfn2.js";
73
+ import"./index-5ev6f1gj.js";
74
+ import"./index-qh93qjc2.js";
75
+ import"./index-st80sjg7.js";
76
+ import"./index-vg8sxg12.js";
77
+ import"./index-0e318vgt.js";
78
78
  import"./index-ry16d01s.js";
79
79
  import"./index-rdm3px0g.js";
80
80
  import"./index-7pmbnjvj.js";
81
- import"./index-4twjbsfw.js";
82
- import"./index-rsfvxaw0.js";
81
+ import"./index-ndec8akq.js";
82
+ import"./index-bg19b84s.js";
83
83
  import"./index-vzm6zre7.js";
84
84
  import"./index-ae75rja9.js";
85
- import"./index-bgzpw6ge.js";
86
- import"./index-1n7sf9gz.js";
85
+ import"./index-3atkcqpb.js";
86
+ import"./index-5rkh69f3.js";
87
87
  import"./index-e8k0v19e.js";
88
88
  import"./index-t7hmqgjy.js";
89
89
  import"./index-mtqwyjrg.js";
90
90
  import"./index-fzpt2djt.js";
91
91
  import"./index-ejhxgyvm.js";
92
92
  import"./index-7g4c7s5r.js";
93
- import"./index-nwswxes7.js";
93
+ import"./index-hfssjyxs.js";
94
94
  import"./index-gx2vp8gx.js";
95
- import"./index-rqapvhh5.js";
95
+ import"./index-ngk8hpc3.js";
96
96
  import"./index-zxdawwc7.js";
97
- import"./index-s68yyat0.js";
97
+ import"./index-1dx5zyss.js";
98
98
  import"./index-py8wpe81.js";
99
99
  import"./index-bk5tah7q.js";
100
100
  import"./index-gknz3bv1.js";
@@ -718,7 +718,7 @@ export declare const COMMAND_REGISTRY: {
718
718
  readonly details: "An epic is bound to ONE plan: `start` opens it for the current plan, `close` ends it. Requires `epic.mode.enabled: true` in config (top-level `epic` block; no `turbo` block needed — the legacy `turbo.epic` path is still accepted and migrated). `start [--force]` refuses, in order: epic-disabled-by-config, host-unsupported (the host gives the plugin no OpenCode SDK client — OpenCode 2 does not yet — so worktree-isolated coders and the phase review cannot run), no-plan / plan-ledger-unreadable, epic-already-open (idempotent for the same plan) / epic-open-for-other-plan, turbo-active (config turbo_mode, a session with Turbo on, or a running Lean run — Epic enables neither Lean nor Turbo and never waives per-task QA), dirty-baseline (git: uncommitted changes outside .swarm/), detached-head / epic-branch-exists (epic-branch policy), in-flight-coders (any coder dispatch, background delegation, unsettled settlement, or preserved/recovery lane), not-epic-sized (too few pending tasks, insufficient scope coverage, or insufficient effective speedup — run it in Balanced, or reshape it with the plan-shaping suggestions shown; `--force` overrides and is recorded). Non-git projects run an epic serially (one task per wave). Git epics default to `epic.commit_policy: \"epic-branch\"`: start checks out `swarm/epic/<epicKey>` and every Epic commit goes there (epic_next_wave blocks with epic-branch-mismatch, and no landing or residue is committed, while HEAD is elsewhere); `current-branch` keeps commits on the starting branch. In a git epic every coder runs in an isolated worktree (refused EPIC_ISOLATION_DEGRADED when isolation is unavailable) and lands as a `swarm(task <id>): …` merge commit; main-tree files a non-coder writer (test_engineer, docs) wrote for a task are committed as residue of that task; update_task_status writes nothing to git; wave close records the commit of each task as `refs/swarm/epics/<epicKey>/tasks/<id>` (deleted at close unless `epic.retain_refs`; never pushed by default). While open, the architect calls epic_next_wave and does what its status says: it issues one wave at a time (tasks with non-conflicting declared scopes — exclusive tasks alone, at most one task per densely coupled component; phases strictly in order), the architect dispatches one Task per taskId in ONE message and runs per-task QA (pre_check_batch → reviewer + test_engineer → update_task_status(completed)), and the next epic_next_wave closes the wave (recording outcomes and declared-vs-actual divergence) and issues the next; when a phase is done it returns phase-ready-for-review → epic_phase_review → phase_complete. `close [--abandon] [--land squash|merge|none]` refuses while tasks are pending (or the epic is orphaned / unreadable) unless `--abandon`, refuses a dirty tree before landing, writes a close report (epic-report-v2, embedding the epic scorecard) to .swarm/epic/reports/ and .swarm/epic-prior/reports/ (newest 50 kept), and lands the epic branch onto the original branch: squash (default — staged, uncommitted changes for you to review and commit), merge (a --no-ff merge commit), or none (switch back only). The epic branch is kept (remove it with `git branch -D` once committed). A landing conflict is rolled back (the attempted squash or merge is undone) and the epic stays closing — rerun close to resume. `--abandon` never lands; it switches back to the original branch when the tree is clean. `status [--repair-refs]` (also bare /swarm epic) shows the epic, its waves, phases, the task components recorded with the latest wave and recorded divergence, orphan detection (plan renamed or replaced), sentinel/row repair, recorded worktree merge failures, and retires legacy Epic v1 session state once; `--repair-refs` re-adopts task commits a rebase or amend made unreachable from HEAD. `report [<key>|last] [--format json]` shows the epic scorecard: live for the open epic (bare `report`), else from the close report of a past epic in .swarm/epic-prior/reports/ (`last` = newest; `<key>` = a report or epic key) — tasks completed in the epic, waves (count, width), time over closed waves (wave span, task issue→resolve time, and their ratio, a concurrency factor that is NOT a speedup: it includes queueing behind serialized QA), conflicts (merge-back failures, undeclared writes), rework (extra generations, reopens), first-pass gate rates (upper bounds: the failure history is bounded), forced/sizing at start and learned hot files. Epics learn from their outcomes: undeclared writes teach learned co-writes (a task declaring D that also wrote f makes later tasks declaring D conflict with tasks on f — planner analysis only, never write authorization) and incidents (undeclared writes, merge conflicts, Stage B failures, rework, reopens) in excess of clean exposures make a file hot (a task declaring it runs alone) — undeclared writes its strongest learned co-writer explains are discounted (expansion already separates them), so one declarer writing a file is not heat; an empty history learns nothing (neutral start). Each wave close updates the posterior of the epic; close merges it into the project prior .swarm/epic-prior/learning.json (decayed per epic and by age; kept across /swarm close; `epic.learning.*`). `learning` shows what the planner learned and uses now; `prior [show]` shows the project prior; `prior reset` previews and prints a single-use confirm token (15 minutes); `prior reset --confirm=<token>` clears it. Also: clear-merge-failure <taskId> [--confirm]. The former `on` / `off` toggles, the `decide` / `last` subcommands and `calibration` (renamed `learning`) were removed.";
719
719
  readonly args: "start [--force] | close [--abandon] [--land squash|merge|none] | status [--repair-refs] | report [<key>|last] [--format json] | learning | prior [show|reset [--confirm=<token>]] | clear-merge-failure <taskId> [--confirm]";
720
720
  readonly category: "diagnostics";
721
- readonly toolPolicy: "none";
721
+ readonly toolPolicy: "human-only";
722
722
  };
723
723
  readonly 'dark-matter': {
724
724
  readonly handler: (ctx: CommandContext) => Promise<string>;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Shared gate-aware injection policy (issue #3100).
3
+ *
4
+ * One deterministic decision point for session-state directive channels,
5
+ * keyed by PR-workflow gate mode × content class — never by content
6
+ * heuristics. #3093's plan-cursor/parallel-pre-check suppression is the
7
+ * first registered consumer (migrated with zero behavior change); the
8
+ * agent-activity table channel is the second (new suppression under
9
+ * PR_REVIEW). The swarm-command banner and delegation [NEXT] steering are
10
+ * load-bearing and structurally never-suppressed.
11
+ *
12
+ * Proposed suppression matrix (issue #3100 AC5 — the maintainer confirms
13
+ * the matrix on the issue before merge; this module ships the proposed
14
+ * shape and a ratchet test pins it):
15
+ *
16
+ * | content class | channels | PR_REVIEW | PR_FEEDBACK | no gate* |
17
+ * |---------------------|--------------------------------|-----------|-------------|----------|
18
+ * | plan-execution | plan-cursor, parallel-precheck | suppress | inject | inject |
19
+ * | agent-activity | agent-activity tables | suppress | inject | inject |
20
+ * | command-contract | command-banner | inject | inject | inject |
21
+ * | delegation-steering | delegation-steering | inject | inject | inject |
22
+ *
23
+ * *no gate / a gate owned by a different session / a gate read that
24
+ * failed all arrive here as a null gate state and fail toward emission —
25
+ * matching the #3093 fail-open composition convention: a miss costs extra
26
+ * directives, never hidden ones. (The gate-state READER throws on invalid
27
+ * or unreadable state; the null is the composer's `.catch` result, not the
28
+ * reader's. This module is pure and has no failure path of its own.)
29
+ *
30
+ * Deliberate asymmetry (#3161 PRR-010): composition keys the gate read on
31
+ * the RAW composing sessionID (the composer owns the read; see
32
+ * system-enhancer), while PR-workflow ENFORCEMENT resolves the gate-owning
33
+ * ancestor session via pr-workflow-session-resolver. A pre-gate child
34
+ * session that outlives gate activation therefore still receives these
35
+ * directives. This is intentional: the #3093 session-scoping pin requires
36
+ * a different session's gate NOT to suppress, and changing composition to
37
+ * ancestor resolution would alter that shipped behavior.
38
+ *
39
+ * Divergence disclosure (plan-critic rounds 1/3): `command-banner` and
40
+ * `delegation-steering` are REGISTERED here but their composers do not
41
+ * consult this policy at runtime — the never-suppress guarantee is
42
+ * structural (empty suppression lists below, pinned by a ratchet test),
43
+ * not an emission-site check. If emission-path governance is ever wanted,
44
+ * the fallback is wiring each composer through shouldInjectChannel (the
45
+ * decision is gate-independent for never-suppress classes, so no new gate
46
+ * read would be required).
47
+ *
48
+ * Budget-report consumer (#3161 PRR-003): the context-budget report
49
+ * consumes the plan-cursor channel decision (as an explicit emission
50
+ * flag) so it stops counting a policy-suppressed cursor.
51
+ *
52
+ * Known residual budget-report divergences, NOT yet tracked by an issue
53
+ * (verify they still exist before filing):
54
+ * - DISCOVER-mode counting — the emission conditions require a non-DISCOVER
55
+ * mode while the report is mode-blind, so in DISCOVER it still counts a
56
+ * cursor the prompt never contained.
57
+ * - Path B ranked-drop counting — a cursor candidate skipped by the
58
+ * scoring injection loop is still counted.
59
+ * #3161 tracks the budget twin itself (PRR-003), not these two.
60
+ */
61
+ import type { PrWorkflowMode } from './pr-workflow-gate';
62
+ /** Content classes the policy reasons about. */
63
+ export type InjectionContentClass = 'plan-execution' | 'agent-activity' | 'command-contract' | 'delegation-steering';
64
+ /** The directive channels registered as policy consumers (issue #3100 scope). */
65
+ export type InjectionChannel = 'plan-cursor' | 'parallel-precheck' | 'agent-activity' | 'command-banner' | 'delegation-steering';
66
+ /**
67
+ * Minimal gate-state shape the policy needs (structural: a full
68
+ * PrWorkflowGateState satisfies it, keeping this module pure and
69
+ * runtime-independent of the gate store).
70
+ */
71
+ export interface InjectionGateState {
72
+ mode: PrWorkflowMode;
73
+ }
74
+ /** Channel registry: every registered channel maps to exactly one content class. */
75
+ export declare const INJECTION_CHANNEL_CONTENT_CLASS: Readonly<Record<InjectionChannel, InjectionContentClass>>;
76
+ /**
77
+ * The suppression matrix: gate modes under which a content class is
78
+ * suppressed. Empty list = must-not-suppress under every mode (the two
79
+ * load-bearing classes; a ratchet test pins their emptiness).
80
+ */
81
+ export declare const SUPPRESSED_UNDER: Readonly<Record<InjectionContentClass, readonly InjectionGateState['mode'][]>>;
82
+ /**
83
+ * Decide whether a channel may inject this turn. Deterministic: a pure
84
+ * function of the channel's content class and the gate mode. Unknown
85
+ * channels and absent gate state (no gate, read failure, foreign session)
86
+ * fail toward emission.
87
+ *
88
+ * The own-property check (not a truthiness check) is load-bearing: the
89
+ * registries are plain object literals, so a PROTOTYPE key such as
90
+ * 'constructor' or 'toString' resolves to a truthy inherited value that
91
+ * would otherwise pass a truthiness guard and then throw on
92
+ * `SUPPRESSED_UNDER[<Function>].includes` instead of failing open.
93
+ */
94
+ export declare function shouldInjectChannel(channel: InjectionChannel, gateState: InjectionGateState | null): boolean;
@@ -15,6 +15,7 @@ import { type PrReviewDimensionCancellationRecord, type PrReviewPartialBaseCover
15
15
  import { type CriticOutcome } from '../pr-review/finding-policy.js';
16
16
  import { type PrReviewComposablePhase, type PrReviewItemClaim, type PrReviewPhaseComposition, parseCriticVerdict } from '../pr-review/legacy-transcript-adapter.js';
17
17
  import { withPrWorkflowCheckoutMutationLock, workflowCheckoutMutationLockRelativePath, workflowGateStateLockRelativePath, workflowGateStateRelativePath } from '../pr-review/persistence.js';
18
+ import { type PrReviewVerdictSettlementPhase } from '../pr-review/verdict-settlement.js';
18
19
  import { type ForgeContext } from '../providers/forge-provider.js';
19
20
  import { resolveGhBinary } from '../tools/gh-evidence.js';
20
21
  import { classifyLaneLivenessCondition, type EffectivePrLaneHorizon, resolveEffectivePrLaneHorizonMs } from './lane-liveness-watchdog.js';
@@ -390,6 +391,14 @@ type PrReviewArtifactRecord = {
390
391
  */
391
392
  risk_impact?: PrReviewRiskImpact;
392
393
  risk_tags?: PrReviewRiskTag[];
394
+ /**
395
+ * Model-supplied critic status (issue #3101). Present on post_critic
396
+ * records when the caller attests a critic outcome; the records-match
397
+ * validator rejects any value on a disclosed-dead critic item (the model
398
+ * never authors a critic status there — the writer's settlement injection
399
+ * derives it).
400
+ */
401
+ critic_status?: string;
393
402
  };
394
403
  interface PrFeedbackScopeDeclarationRecord {
395
404
  taskId: string;
@@ -552,6 +561,14 @@ export interface PrWorkflowGateState {
552
561
  prReviewArtifactRunId?: string;
553
562
  prReviewFindingsPath?: string;
554
563
  prReviewArtifactBoundaries?: PrReviewArtifactBoundary[];
564
+ /**
565
+ * Issue #3101: sha256 of each phase's persisted N-of-M verdict-settlement
566
+ * receipt (the exact file bytes, recorded at persist time). Consumption
567
+ * re-verifies the digest so a receipt rewritten after the fact under the
568
+ * same head/digest identity fails closed — the same controller-held anchor
569
+ * discipline as `prReviewCoverageDisclosureDigest` (issue #2383).
570
+ */
571
+ prReviewVerdictSettlementDigests?: Partial<Record<PrReviewVerdictSettlementPhase, string>>;
555
572
  prReviewPartialBaseCoverage?: PrReviewPartialBaseCoverageRecord;
556
573
  prReviewCoverageDisclosurePath?: string;
557
574
  prReviewCoverageDisclosureDigest?: string;
@@ -2227,6 +2244,25 @@ interface CandidateArtifactParseResult {
2227
2244
  declare function resolvePrReviewRowFamily(workflowLane: string | undefined, mode?: string): RowFormatFamily;
2228
2245
  declare function parseCanonicalCandidateRows(text: string, fallbackFamily: RowFormatFamily): CandidateArtifactParseResult;
2229
2246
  declare function extractCandidateIds(text: string, fallbackFamily: RowFormatFamily, scopeToLanes?: readonly string[]): string[];
2247
+ /**
2248
+ * Issue #3101: the per-item disclosure rows of admitted N-of-M verdict
2249
+ * settlements (both phases, effective sets), for additive tool-response echoes.
2250
+ */
2251
+ export declare function readPrReviewVerdictSettlementReceiptItems(directory: string, sessionID: string): Promise<Array<{
2252
+ itemId: string;
2253
+ sourceBatchId: string;
2254
+ sourceLaneId: string;
2255
+ disposition: string;
2256
+ evidenceClass: string;
2257
+ terminalStatus: string;
2258
+ }>>;
2259
+ /**
2260
+ * Issue #3101: the effective (receipt ∩ current-unclaimed) item ids of an
2261
+ * admitted N-of-M verdict settlement for a phase; empty when no covering
2262
+ * settlement exists. Consumers: the artifact writer's critic-settlement
2263
+ * injection, the exact-cover exemption, and the tool-response echoes.
2264
+ */
2265
+ export declare function readPrReviewVerdictSettlementEffectiveIds(directory: string, sessionID: string, phase: PrReviewVerdictSettlementPhase): Promise<ReadonlySet<string>>;
2230
2266
  /** Read the durable critic settlement projection used by terminal readiness. */
2231
2267
  export declare function readAuthoritativePrReviewCriticSettlements(directory: string, sessionID: string): Promise<Array<{
2232
2268
  findingId: string;
@@ -2246,13 +2282,16 @@ export declare function readAuthoritativePrReviewCriticSettlements(directory: st
2246
2282
  * unchallenged, with the only surface symptom a downstream
2247
2283
  * `no authoritative reviewer verdict` that names a consequence, not the cause.
2248
2284
  *
2249
- * Composition currently makes this unreachable by construction: settlement *is*
2285
+ * Under plain composition this is unreachable by construction: settlement *is*
2250
2286
  * `unclaimed.length === 0` over the very map derivation projects, and claims are
2251
2287
  * filtered to `requiredInventory`, so `unclaimed === []` implies the map covers
2252
- * every required item. This assertion deliberately does **not** rely on that
2253
- * adjacency. It states the property directly so a future refactor that re-splits
2254
- * settlement from derivation fails loudly at the gate instead of silently
2255
- * skipping the critic phase.
2288
+ * every required item. Under an admitted N-of-M verdict settlement (issue
2289
+ * #3101) a settled phase can still carry unclaimed items, and this guard
2290
+ * early-returns for them — on that path the settlement receipt, not this
2291
+ * assertion, is the coverage proof. The property check still stands for every
2292
+ * plain-composition settle so a future refactor that re-splits settlement from
2293
+ * derivation fails loudly at the gate instead of silently skipping the critic
2294
+ * phase.
2256
2295
  *
2257
2296
  * Fail-closed and always on; never downgraded to a warning, because the failure
2258
2297
  * it catches is invisible in the passing direction. Pure over values the caller