opencode-swarm 7.169.0 → 7.170.1

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 (71) hide show
  1. package/README.md +1 -0
  2. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  3. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  4. package/dist/agents/reviewer-directive-compliance.d.ts +23 -7
  5. package/dist/ci/evaluate.d.ts +100 -0
  6. package/dist/ci/index.d.ts +13 -0
  7. package/dist/ci/quality-checks.d.ts +58 -0
  8. package/dist/ci/report.d.ts +21 -0
  9. package/dist/ci/runtime.d.ts +81 -0
  10. package/dist/cli/{capability-probe-faqefhah.js → capability-probe-pdwwz8gs.js} +1 -1
  11. package/dist/cli/{coder-settlement-fd6ba876.js → coder-settlement-g1n2dk0a.js} +3 -3
  12. package/dist/cli/{config-doctor-zeppqwwx.js → config-doctor-7v7hvdgw.js} +2 -2
  13. package/dist/cli/{core-fj1afc31.js → core-mz3rae1q.js} +1 -1
  14. package/dist/cli/{curator-llm-factory-4t773tmz.js → curator-llm-factory-xaetdtgf.js} +20 -20
  15. package/dist/cli/{curator-emftndv0.js → curator-x28dw2mf.js} +20 -20
  16. package/dist/cli/{evidence-summary-service-51b69jc3.js → evidence-summary-service-kd22mp04.js} +7 -7
  17. package/dist/cli/{gate-evidence-53s161wb.js → gate-evidence-9snb217d.js} +2 -2
  18. package/dist/cli/{guardrail-explain-mhx8gt8q.js → guardrail-explain-11zswj2c.js} +21 -21
  19. package/dist/cli/{guardrail-log-xg6hrdsq.js → guardrail-log-ykwrswvw.js} +3 -3
  20. package/dist/cli/{guardrail-reset-fgv5kt5x.js → guardrail-reset-7affkkeq.js} +20 -20
  21. package/dist/cli/{hive-promoter-41zygtgx.js → hive-promoter-sfzrcn03.js} +20 -20
  22. package/dist/cli/{index-83m0y4cj.js → index-0hjtck07.js} +3 -3
  23. package/dist/cli/{index-q1r1cfww.js → index-76qm2c2y.js} +37 -26
  24. package/dist/cli/{index-8x9keek6.js → index-8b2aqj41.js} +28 -22
  25. package/dist/cli/{index-c7kr7tnk.js → index-987ga2vy.js} +3 -3
  26. package/dist/cli/{index-yj24ny5k.js → index-9z0dc1t5.js} +1 -1
  27. package/dist/cli/{index-dd48vt27.js → index-as43fjha.js} +3 -3
  28. package/dist/cli/{index-exf0j569.js → index-bqscvndc.js} +1 -1
  29. package/dist/cli/{index-3zcds757.js → index-bswpngg6.js} +3372 -2500
  30. package/dist/cli/{index-sb1s03y9.js → index-d6q0g0nd.js} +3 -3
  31. package/dist/cli/{index-2znfa537.js → index-ensg0pt6.js} +1 -1
  32. package/dist/cli/{index-sxcfszbe.js → index-g0qsftdd.js} +1 -1
  33. package/dist/cli/{index-3bfzpzsb.js → index-hp729z5v.js} +1 -1
  34. package/dist/cli/{index-1cbjemgh.js → index-hzav6zra.js} +2 -2
  35. package/dist/cli/{index-ksybszed.js → index-knh5z9gb.js} +1 -1
  36. package/dist/cli/{index-5reh1bjz.js → index-krzb4zkx.js} +1 -1
  37. package/dist/cli/{index-76ng6vmq.js → index-q5q42mf3.js} +4 -4
  38. package/dist/cli/{index-0vgs5r39.js → index-qv1y6f8r.js} +3 -3
  39. package/dist/cli/{index-egkc2bpv.js → index-r1yqx3h9.js} +1 -1
  40. package/dist/cli/{index-e4dxf5cr.js → index-rkc1a0ym.js} +20 -20
  41. package/dist/cli/{index-s96dpjsk.js → index-rp0dpvd2.js} +2 -2
  42. package/dist/cli/{index-zapc8vj4.js → index-rwdfk03c.js} +4 -4
  43. package/dist/cli/{index-wwr67xc0.js → index-tz3jzz2t.js} +1 -1
  44. package/dist/cli/{index-55fkkjec.js → index-v5gsvtvs.js} +5 -5
  45. package/dist/cli/{index-nwv3e3kc.js → index-wc34rqj0.js} +1 -1
  46. package/dist/cli/{index-p6xsgk4r.js → index-z970hmyt.js} +2 -2
  47. package/dist/cli/index.js +25 -20
  48. package/dist/cli/{knowledge-escalator-07s44av0.js → knowledge-escalator-s0y3m4sn.js} +6 -6
  49. package/dist/cli/{knowledge-events-j2n1569p.js → knowledge-events-w7vjypwy.js} +4 -4
  50. package/dist/cli/{knowledge-store-85metj89.js → knowledge-store-bc2v557f.js} +1 -1
  51. package/dist/cli/{knowledge-validator-63k1xzcc.js → knowledge-validator-adaamxzg.js} +2 -2
  52. package/dist/cli/{pending-delegations-dckmjymn.js → pending-delegations-fzjr7p7f.js} +2 -2
  53. package/dist/cli/{pr-subscriptions-pyh73me6.js → pr-subscriptions-tfwf461r.js} +1 -1
  54. package/dist/cli/{pr-workflow-gate-k1r4rjw4.js → pr-workflow-gate-heajnnkw.js} +20 -20
  55. package/dist/cli/{scan-cursor-k6egg4n0.js → scan-cursor-512cqk7t.js} +2 -2
  56. package/dist/cli/{schema-vdrtpggt.js → schema-z9kd66wf.js} +1 -1
  57. package/dist/cli/{scope-persistence-h1mmww19.js → scope-persistence-8cpqcwg7.js} +5 -5
  58. package/dist/cli/{skill-generator-pmn6gmvk.js → skill-generator-1efdbkqh.js} +7 -7
  59. package/dist/cli/{snapshot-coordination-init-rspykgd0.js → snapshot-coordination-init-fsf8h4d3.js} +20 -20
  60. package/dist/cli/{worktree-collision-ownership-x84dzzzc.js → worktree-collision-ownership-zdpeepe4.js} +2 -2
  61. package/dist/cli/{worktree-isolation-nw9pakkx.js → worktree-isolation-zswrjstb.js} +20 -20
  62. package/dist/commands/ci.d.ts +40 -0
  63. package/dist/commands/index.d.ts +1 -0
  64. package/dist/commands/registry.d.ts +8 -0
  65. package/dist/hooks/gate-denial-tracker.d.ts +18 -14
  66. package/dist/hooks/phase-complete-directive-gate.d.ts +13 -0
  67. package/dist/hooks/phase-directives.d.ts +31 -2
  68. package/dist/hooks/reviewer-verdict-parser.d.ts +6 -1
  69. package/dist/index.js +449 -439
  70. package/dist/sandbox/macos/sandbox-exec-executor.d.ts +48 -11
  71. package/package.json +1 -1
@@ -78,45 +78,45 @@ import {
78
78
  withPrWorkflowCheckoutMutationLock,
79
79
  withPrWorkflowCheckoutPreparationLock,
80
80
  writePrWorkflowAtomicJson
81
- } from "./index-3zcds757.js";
81
+ } from "./index-bswpngg6.js";
82
82
  import"./index-5400m33a.js";
83
83
  import"./index-7h01bkm6.js";
84
- import"./index-5reh1bjz.js";
84
+ import"./index-krzb4zkx.js";
85
85
  import"./index-cgpwjctj.js";
86
- import"./index-egkc2bpv.js";
87
- import"./index-zapc8vj4.js";
86
+ import"./index-r1yqx3h9.js";
87
+ import"./index-rwdfk03c.js";
88
88
  import"./index-xnpjwc4h.js";
89
89
  import"./index-txdagbh7.js";
90
90
  import"./index-9br68j86.js";
91
91
  import"./index-cw912re7.js";
92
- import"./index-c7kr7tnk.js";
93
- import"./index-55fkkjec.js";
94
- import"./index-nwv3e3kc.js";
92
+ import"./index-987ga2vy.js";
93
+ import"./index-v5gsvtvs.js";
94
+ import"./index-wc34rqj0.js";
95
95
  import"./index-fyfbpz4f.js";
96
96
  import"./index-gfbggp8k.js";
97
97
  import"./index-0hgmsyfp.js";
98
98
  import"./index-zsrtt42s.js";
99
- import"./index-sb1s03y9.js";
99
+ import"./index-d6q0g0nd.js";
100
100
  import"./index-fhh02gwx.js";
101
101
  import"./index-nyn01yrz.js";
102
102
  import"./index-b43rt5ph.js";
103
103
  import"./index-q7sjgr1y.js";
104
- import"./index-sxcfszbe.js";
105
- import"./index-wwr67xc0.js";
104
+ import"./index-g0qsftdd.js";
105
+ import"./index-tz3jzz2t.js";
106
106
  import {
107
107
  PR_REVIEW_BASE_DIMENSION_IDS
108
- } from "./index-ksybszed.js";
109
- import"./index-0vgs5r39.js";
108
+ } from "./index-knh5z9gb.js";
109
+ import"./index-qv1y6f8r.js";
110
110
  import"./index-b3pmzbh1.js";
111
111
  import"./index-2s7dvzff.js";
112
- import"./index-2znfa537.js";
112
+ import"./index-ensg0pt6.js";
113
113
  import"./index-bm5xrfnx.js";
114
114
  import"./index-rtry5xyf.js";
115
- import"./index-s96dpjsk.js";
115
+ import"./index-rp0dpvd2.js";
116
116
  import"./index-3qf1vxtb.js";
117
117
  import"./index-n832052r.js";
118
- import"./index-p6xsgk4r.js";
119
- import"./index-83m0y4cj.js";
118
+ import"./index-z970hmyt.js";
119
+ import"./index-0hjtck07.js";
120
120
  import"./index-fgp96k3r.js";
121
121
  import"./index-br3mvbsa.js";
122
122
  import"./index-bernkwgf.js";
@@ -124,7 +124,7 @@ import"./index-dvbf6fpn.js";
124
124
  import"./index-rdm3px0g.js";
125
125
  import"./index-ry16d01s.js";
126
126
  import"./index-5qt9yf5w.js";
127
- import"./index-76ng6vmq.js";
127
+ import"./index-q5q42mf3.js";
128
128
  import"./index-vzm6zre7.js";
129
129
  import"./index-ae75rja9.js";
130
130
  import"./index-9ttqbhvw.js";
@@ -134,15 +134,15 @@ import"./index-nprdr0sm.js";
134
134
  import"./index-nbdmdyke.js";
135
135
  import"./index-1xnse449.js";
136
136
  import"./index-ee6ydtfe.js";
137
- import"./index-3bfzpzsb.js";
137
+ import"./index-hp729z5v.js";
138
138
  import"./index-0mhftbpp.js";
139
139
  import"./index-a1w58b47.js";
140
- import"./index-yj24ny5k.js";
140
+ import"./index-9z0dc1t5.js";
141
141
  import"./index-sxt7fgcw.js";
142
142
  import"./index-bk5tah7q.js";
143
143
  import"./index-bpmtbmy9.js";
144
144
  import"./index-zpsr8rpc.js";
145
- import"./index-q1r1cfww.js";
145
+ import"./index-76qm2c2y.js";
146
146
  import"./index-yzjaj53h.js";
147
147
  import"./index-zgwm4ryv.js";
148
148
  import"./index-a76rekgs.js";
@@ -4,8 +4,8 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-nwv3e3kc.js";
8
- import"./index-76ng6vmq.js";
7
+ } from "./index-wc34rqj0.js";
8
+ import"./index-q5q42mf3.js";
9
9
  import"./index-vzm6zre7.js";
10
10
  import"./index-ae75rja9.js";
11
11
  import"./index-9ttqbhvw.js";
@@ -109,7 +109,7 @@ import {
109
109
  resolveGeneratedAgentRole,
110
110
  resolveGuardrailsConfig,
111
111
  stripKnownSwarmPrefix
112
- } from "./index-yj24ny5k.js";
112
+ } from "./index-9z0dc1t5.js";
113
113
  import"./index-sxt7fgcw.js";
114
114
  import"./index-bk5tah7q.js";
115
115
  import"./index-bpmtbmy9.js";
@@ -23,8 +23,8 @@ import {
23
23
  tombstoneScopeBinding,
24
24
  writeScopeBindingToDisk,
25
25
  writeScopeToDisk
26
- } from "./index-p6xsgk4r.js";
27
- import"./index-83m0y4cj.js";
26
+ } from "./index-z970hmyt.js";
27
+ import"./index-0hjtck07.js";
28
28
  import"./index-fgp96k3r.js";
29
29
  import"./index-br3mvbsa.js";
30
30
  import"./index-bernkwgf.js";
@@ -32,7 +32,7 @@ import"./index-dvbf6fpn.js";
32
32
  import"./index-rdm3px0g.js";
33
33
  import"./index-ry16d01s.js";
34
34
  import"./index-5qt9yf5w.js";
35
- import"./index-76ng6vmq.js";
35
+ import"./index-q5q42mf3.js";
36
36
  import"./index-vzm6zre7.js";
37
37
  import"./index-ae75rja9.js";
38
38
  import"./index-9ttqbhvw.js";
@@ -42,10 +42,10 @@ import"./index-nprdr0sm.js";
42
42
  import"./index-nbdmdyke.js";
43
43
  import"./index-1xnse449.js";
44
44
  import"./index-ee6ydtfe.js";
45
- import"./index-3bfzpzsb.js";
45
+ import"./index-hp729z5v.js";
46
46
  import"./index-0mhftbpp.js";
47
47
  import"./index-a1w58b47.js";
48
- import"./index-yj24ny5k.js";
48
+ import"./index-9z0dc1t5.js";
49
49
  import"./index-sxt7fgcw.js";
50
50
  import"./index-bk5tah7q.js";
51
51
  import"./index-bpmtbmy9.js";
@@ -33,19 +33,19 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-c7kr7tnk.js";
36
+ } from "./index-987ga2vy.js";
37
37
  import"./index-q7sjgr1y.js";
38
- import"./index-0vgs5r39.js";
38
+ import"./index-qv1y6f8r.js";
39
39
  import"./index-b3pmzbh1.js";
40
40
  import"./index-2s7dvzff.js";
41
- import"./index-2znfa537.js";
41
+ import"./index-ensg0pt6.js";
42
42
  import"./index-bm5xrfnx.js";
43
43
  import"./index-rtry5xyf.js";
44
- import"./index-s96dpjsk.js";
44
+ import"./index-rp0dpvd2.js";
45
45
  import"./index-3qf1vxtb.js";
46
46
  import"./index-n832052r.js";
47
47
  import"./index-5qt9yf5w.js";
48
- import"./index-76ng6vmq.js";
48
+ import"./index-q5q42mf3.js";
49
49
  import"./index-vzm6zre7.js";
50
50
  import"./index-ae75rja9.js";
51
51
  import"./index-9ttqbhvw.js";
@@ -55,10 +55,10 @@ import"./index-nprdr0sm.js";
55
55
  import"./index-nbdmdyke.js";
56
56
  import"./index-1xnse449.js";
57
57
  import"./index-ee6ydtfe.js";
58
- import"./index-3bfzpzsb.js";
58
+ import"./index-hp729z5v.js";
59
59
  import"./index-0mhftbpp.js";
60
60
  import"./index-a1w58b47.js";
61
- import"./index-yj24ny5k.js";
61
+ import"./index-9z0dc1t5.js";
62
62
  import"./index-sxt7fgcw.js";
63
63
  import"./index-bk5tah7q.js";
64
64
  import"./index-bpmtbmy9.js";
@@ -8,43 +8,43 @@ import {
8
8
  markSnapshotCoordinationClosing,
9
9
  retrySnapshotCoordinationInitialization,
10
10
  startSnapshotCoordinationInitialization
11
- } from "./index-3zcds757.js";
11
+ } from "./index-bswpngg6.js";
12
12
  import"./index-5400m33a.js";
13
13
  import"./index-7h01bkm6.js";
14
- import"./index-5reh1bjz.js";
14
+ import"./index-krzb4zkx.js";
15
15
  import"./index-cgpwjctj.js";
16
- import"./index-egkc2bpv.js";
17
- import"./index-zapc8vj4.js";
16
+ import"./index-r1yqx3h9.js";
17
+ import"./index-rwdfk03c.js";
18
18
  import"./index-xnpjwc4h.js";
19
19
  import"./index-txdagbh7.js";
20
20
  import"./index-9br68j86.js";
21
21
  import"./index-cw912re7.js";
22
- import"./index-c7kr7tnk.js";
23
- import"./index-55fkkjec.js";
24
- import"./index-nwv3e3kc.js";
22
+ import"./index-987ga2vy.js";
23
+ import"./index-v5gsvtvs.js";
24
+ import"./index-wc34rqj0.js";
25
25
  import"./index-fyfbpz4f.js";
26
26
  import"./index-gfbggp8k.js";
27
27
  import"./index-0hgmsyfp.js";
28
28
  import"./index-zsrtt42s.js";
29
- import"./index-sb1s03y9.js";
29
+ import"./index-d6q0g0nd.js";
30
30
  import"./index-fhh02gwx.js";
31
31
  import"./index-nyn01yrz.js";
32
32
  import"./index-b43rt5ph.js";
33
33
  import"./index-q7sjgr1y.js";
34
- import"./index-sxcfszbe.js";
35
- import"./index-wwr67xc0.js";
36
- import"./index-ksybszed.js";
37
- import"./index-0vgs5r39.js";
34
+ import"./index-g0qsftdd.js";
35
+ import"./index-tz3jzz2t.js";
36
+ import"./index-knh5z9gb.js";
37
+ import"./index-qv1y6f8r.js";
38
38
  import"./index-b3pmzbh1.js";
39
39
  import"./index-2s7dvzff.js";
40
- import"./index-2znfa537.js";
40
+ import"./index-ensg0pt6.js";
41
41
  import"./index-bm5xrfnx.js";
42
42
  import"./index-rtry5xyf.js";
43
- import"./index-s96dpjsk.js";
43
+ import"./index-rp0dpvd2.js";
44
44
  import"./index-3qf1vxtb.js";
45
45
  import"./index-n832052r.js";
46
- import"./index-p6xsgk4r.js";
47
- import"./index-83m0y4cj.js";
46
+ import"./index-z970hmyt.js";
47
+ import"./index-0hjtck07.js";
48
48
  import"./index-fgp96k3r.js";
49
49
  import"./index-br3mvbsa.js";
50
50
  import"./index-bernkwgf.js";
@@ -52,7 +52,7 @@ import"./index-dvbf6fpn.js";
52
52
  import"./index-rdm3px0g.js";
53
53
  import"./index-ry16d01s.js";
54
54
  import"./index-5qt9yf5w.js";
55
- import"./index-76ng6vmq.js";
55
+ import"./index-q5q42mf3.js";
56
56
  import"./index-vzm6zre7.js";
57
57
  import"./index-ae75rja9.js";
58
58
  import"./index-9ttqbhvw.js";
@@ -62,15 +62,15 @@ import"./index-nprdr0sm.js";
62
62
  import"./index-nbdmdyke.js";
63
63
  import"./index-1xnse449.js";
64
64
  import"./index-ee6ydtfe.js";
65
- import"./index-3bfzpzsb.js";
65
+ import"./index-hp729z5v.js";
66
66
  import"./index-0mhftbpp.js";
67
67
  import"./index-a1w58b47.js";
68
- import"./index-yj24ny5k.js";
68
+ import"./index-9z0dc1t5.js";
69
69
  import"./index-sxt7fgcw.js";
70
70
  import"./index-bk5tah7q.js";
71
71
  import"./index-bpmtbmy9.js";
72
72
  import"./index-zpsr8rpc.js";
73
- import"./index-q1r1cfww.js";
73
+ import"./index-76qm2c2y.js";
74
74
  import"./index-yzjaj53h.js";
75
75
  import"./index-zgwm4ryv.js";
76
76
  import"./index-a76rekgs.js";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  scanDelegationFallbacksForRecovery,
15
15
  scanDelegationsForRecovery
16
- } from "./index-ksybszed.js";
16
+ } from "./index-knh5z9gb.js";
17
17
  import"./index-b3pmzbh1.js";
18
18
  import"./index-2s7dvzff.js";
19
19
  import"./index-br3mvbsa.js";
@@ -22,7 +22,7 @@ import"./index-dvbf6fpn.js";
22
22
  import"./index-rdm3px0g.js";
23
23
  import"./index-ry16d01s.js";
24
24
  import"./index-5qt9yf5w.js";
25
- import"./index-76ng6vmq.js";
25
+ import"./index-q5q42mf3.js";
26
26
  import"./index-vzm6zre7.js";
27
27
  import"./index-ae75rja9.js";
28
28
  import"./index-9ttqbhvw.js";
@@ -21,45 +21,45 @@ import {
21
21
  sanitizeWorktreeTaskId,
22
22
  standardWorktreeByCallID,
23
23
  standardWorktreeSerializationSessions
24
- } from "./index-3zcds757.js";
24
+ } from "./index-bswpngg6.js";
25
25
  import"./index-5400m33a.js";
26
26
  import"./index-7h01bkm6.js";
27
- import"./index-5reh1bjz.js";
27
+ import"./index-krzb4zkx.js";
28
28
  import"./index-cgpwjctj.js";
29
- import"./index-egkc2bpv.js";
30
- import"./index-zapc8vj4.js";
29
+ import"./index-r1yqx3h9.js";
30
+ import"./index-rwdfk03c.js";
31
31
  import"./index-xnpjwc4h.js";
32
32
  import"./index-txdagbh7.js";
33
33
  import"./index-9br68j86.js";
34
34
  import"./index-cw912re7.js";
35
- import"./index-c7kr7tnk.js";
36
- import"./index-55fkkjec.js";
37
- import"./index-nwv3e3kc.js";
35
+ import"./index-987ga2vy.js";
36
+ import"./index-v5gsvtvs.js";
37
+ import"./index-wc34rqj0.js";
38
38
  import"./index-fyfbpz4f.js";
39
39
  import"./index-gfbggp8k.js";
40
40
  import"./index-0hgmsyfp.js";
41
41
  import"./index-zsrtt42s.js";
42
- import"./index-sb1s03y9.js";
42
+ import"./index-d6q0g0nd.js";
43
43
  import"./index-fhh02gwx.js";
44
44
  import"./index-nyn01yrz.js";
45
45
  import"./index-b43rt5ph.js";
46
46
  import"./index-q7sjgr1y.js";
47
- import"./index-sxcfszbe.js";
48
- import"./index-wwr67xc0.js";
49
- import"./index-ksybszed.js";
50
- import"./index-0vgs5r39.js";
47
+ import"./index-g0qsftdd.js";
48
+ import"./index-tz3jzz2t.js";
49
+ import"./index-knh5z9gb.js";
50
+ import"./index-qv1y6f8r.js";
51
51
  import"./index-b3pmzbh1.js";
52
52
  import"./index-2s7dvzff.js";
53
- import"./index-2znfa537.js";
53
+ import"./index-ensg0pt6.js";
54
54
  import"./index-bm5xrfnx.js";
55
55
  import"./index-rtry5xyf.js";
56
56
  import {
57
57
  resolveWorktreeIsolationConfig
58
- } from "./index-s96dpjsk.js";
58
+ } from "./index-rp0dpvd2.js";
59
59
  import"./index-3qf1vxtb.js";
60
60
  import"./index-n832052r.js";
61
- import"./index-p6xsgk4r.js";
62
- import"./index-83m0y4cj.js";
61
+ import"./index-z970hmyt.js";
62
+ import"./index-0hjtck07.js";
63
63
  import"./index-fgp96k3r.js";
64
64
  import"./index-br3mvbsa.js";
65
65
  import"./index-bernkwgf.js";
@@ -67,7 +67,7 @@ import"./index-dvbf6fpn.js";
67
67
  import"./index-rdm3px0g.js";
68
68
  import"./index-ry16d01s.js";
69
69
  import"./index-5qt9yf5w.js";
70
- import"./index-76ng6vmq.js";
70
+ import"./index-q5q42mf3.js";
71
71
  import"./index-vzm6zre7.js";
72
72
  import"./index-ae75rja9.js";
73
73
  import"./index-9ttqbhvw.js";
@@ -77,15 +77,15 @@ import"./index-nprdr0sm.js";
77
77
  import"./index-nbdmdyke.js";
78
78
  import"./index-1xnse449.js";
79
79
  import"./index-ee6ydtfe.js";
80
- import"./index-3bfzpzsb.js";
80
+ import"./index-hp729z5v.js";
81
81
  import"./index-0mhftbpp.js";
82
82
  import"./index-a1w58b47.js";
83
- import"./index-yj24ny5k.js";
83
+ import"./index-9z0dc1t5.js";
84
84
  import"./index-sxt7fgcw.js";
85
85
  import"./index-bk5tah7q.js";
86
86
  import"./index-bpmtbmy9.js";
87
87
  import"./index-zpsr8rpc.js";
88
- import"./index-q1r1cfww.js";
88
+ import"./index-76qm2c2y.js";
89
89
  import"./index-yzjaj53h.js";
90
90
  import"./index-zgwm4ryv.js";
91
91
  import"./index-a76rekgs.js";
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `swarm ci` command handler (issue #2497).
3
+ *
4
+ * Advisory headless CI: evaluates a checked-out repo's authoritative gates
5
+ * read-only (see src/ci/evaluate.ts), renders Markdown + [SWARM_CI_JSON],
6
+ * and maps the run outcome to a machine exit status:
7
+ * 0 = every evaluated gate passed (and at least one was evaluated)
8
+ * 1 = gate violation / no-data / corrupt evidence / nothing to evaluate
9
+ * 2 = cancelled (SIGINT/SIGTERM)
10
+ * 3 = deadline or internal error
11
+ *
12
+ * The command must run without a TTY and without the OpenCode host
13
+ * (scrubbed CI environments), so it carries NO toolPolicy (neither
14
+ * human-only nor agent-gated). It uses `ctx.directory` — never
15
+ * process.cwd() — per AGENTS.md invariant 4, spawns no subprocess, and
16
+ * consumes no stdin.
17
+ */
18
+ import { runAdvisoryCiRuntime } from '../ci/index.js';
19
+ import type { CommandContext, CommandFailure } from './registry.js';
20
+ export declare const DEFAULT_CI_DEADLINE_MS = 300000;
21
+ export interface CiSignalCancellation {
22
+ /** The handler invoked on SIGINT/SIGTERM; exported for unit testing the
23
+ * wiring without relying on platform signal delivery. */
24
+ handler: () => void;
25
+ install: () => void;
26
+ dispose: () => void;
27
+ }
28
+ /** Wire SIGINT/SIGTERM to the run's AbortController. Kept as a seam so the
29
+ * cancellation contract is unit-testable on platforms where self-signalling
30
+ * a native process is unreliable (Windows Git Bash; see frozen check C5's
31
+ * notes). */
32
+ export declare function createSignalCancellation(controller: AbortController, onCancelled?: () => void): CiSignalCancellation;
33
+ export declare function handleCiCommand(ctx: CommandContext): Promise<string | CommandFailure>;
34
+ /** Test seam: dependency injection over the runtime entry so handler-level
35
+ * diagnostic-branch tests can drive cancelled/deadline outcomes without
36
+ * timing or signal-delivery dependence (repo convention: DI over mock.module;
37
+ * restore in afterEach). */
38
+ export declare const _internals: {
39
+ runAdvisoryCiRuntime: typeof runAdvisoryCiRuntime;
40
+ };
@@ -12,6 +12,7 @@ export { handleAutoProceedCommand } from './auto-proceed';
12
12
  export { handleBenchmarkCommand } from './benchmark';
13
13
  export { handleBrainstormCommand } from './brainstorm';
14
14
  export { handleCheckpointCommand } from './checkpoint';
15
+ export { createSignalCancellation, DEFAULT_CI_DEADLINE_MS, handleCiCommand, } from './ci';
15
16
  export { handleCiSimulateCommand } from './ci-simulate';
16
17
  export { handleClarifyCommand } from './clarify';
17
18
  export { handleCloseCommand } from './close';
@@ -788,6 +788,14 @@ export declare const COMMAND_REGISTRY: {
788
788
  readonly category: "agent";
789
789
  readonly toolPolicy: "none";
790
790
  };
791
+ readonly ci: {
792
+ readonly handler: (ctx: CommandContext) => Promise<string | CommandFailure>;
793
+ readonly description: "Advisory headless CI: evaluate the repo gate/evidence state read-only with machine exit codes [--timeout-ms <n>] [--json]";
794
+ readonly args: "--timeout-ms <n>, --json";
795
+ readonly details: "Host-decoupled, read-only evaluation of the checked-out repo (#2497): per-task required gates (tri-state evidence), plan-critic approval, and evidence-quality thresholds, composed from the authoritative readers. Exits 0 only when every evaluated gate passes; 1 on any violation, no-data, corrupt evidence, or a missing plan; 2 on cancellation (SIGINT/SIGTERM); 3 on deadline/internal error. Emits a Markdown report plus a [SWARM_CI_JSON] machine block. Never writes to .swarm and cannot satisfy or bypass any gate; runs with no TTY and no OpenCode host.";
796
+ readonly category: "diagnostics";
797
+ readonly toolPolicy: "none";
798
+ };
791
799
  readonly 'ci-monitor': {
792
800
  readonly handler: (ctx: CommandContext) => CommandResult;
793
801
  readonly description: "Drive an already-reviewed, approved PR to green and merged (monitor CI, fix, merge) [pr]";
@@ -8,21 +8,18 @@
8
8
  *
9
9
  * This module owns that counter. `noteGateDenial` is called from the single
10
10
  * catch site wrapping the fail-closed chain in `src/index.ts`. It:
11
- * 1. classifies the denial by the leading code token of the error message,
12
- * 2. increments a per-(sessionID, toolName, discriminator, code) streak,
11
+ * 1. classifies the denial by its bounded structured cause (falling back to
12
+ * the leading code token of the error message),
13
+ * 2. increments a per-(sessionID, invocationID, stable action, cause) streak,
13
14
  * 3. APPENDS (never rewrites) escalating guidance to the error message so the
14
15
  * model reads it in the tool-rejection text, and
15
16
  * 4. at the hard rung, pushes an advisory + emits telemetry.
16
17
  *
17
- * The DISCRIMINATOR (reviewer round-4 REQUIRED 2) is the canonicalized
18
- * `subagent_type` of a `Task` call, and the empty string for every other tool.
19
- * Without it the reset was too wide: `resetGateDenialStreaks` drops a whole
20
- * (session, tool) prefix on any successful completion of that tool, so ONE
21
- * successful `Task` `explorer` erased a 4-deep `ACCEPTANCE_FIELD_REQUIRED`
22
- * streak on `Task` → `coder`. Under the interleaving the loop actually
23
- * exhibits — deny coder, delegate an explorer to investigate, deny coder again —
24
- * the STOP rung was unreachable. Sub-scoping both the count and the reset by
25
- * dispatch target makes a success clear only what plausibly succeeded.
18
+ * The action projection intentionally retains only stable routing fields. It
19
+ * canonicalizes the `Task` role and target aliases, while omitting prompts,
20
+ * command content, and other retry-varying payloads. The same projection is
21
+ * used by note, reset, and the test peek/expiry seams, so a success can clear
22
+ * only what plausibly succeeded.
26
23
  *
27
24
  * Invariants this module must not break:
28
25
  * - The caller ALWAYS rethrows. Decoration is append-only, so the leading
@@ -82,6 +79,13 @@ export declare function gateDenialDiscriminator(tool: string, args: unknown): st
82
79
  * a per-occurrence key.
83
80
  */
84
81
  export declare function deriveGateDenialCode(message: string): string;
82
+ /**
83
+ * Resolve a denial cause from an own data property only. Accessors and
84
+ * inherited values are intentionally ignored so a hostile/frozen error cannot
85
+ * make tracking invoke arbitrary code. The message parser remains the
86
+ * trajectory logger's message-only boundary.
87
+ */
88
+ export declare function deriveStructuredGateDenialCode(err: unknown): string | undefined;
85
89
  /**
86
90
  * True when the thrown value is a user/host abort rather than a policy denial.
87
91
  * Aborts must not count toward a denial streak AND must not reset one: a user
@@ -94,7 +98,7 @@ export declare function gateDenialWarnText(count: number, code: string): string;
94
98
  * The append-only hard rung, modelled on `nonTransientHardStopMessage`
95
99
  * (src/hooks/guardrails/nontransient-circuit.ts:336-354).
96
100
  */
97
- export declare function gateDenialStopText(count: number, code: string, tool: string): string;
101
+ export declare function gateDenialStopText(count: number, code: string, tool: string, actionPattern?: string): string;
98
102
  export interface GateDenialOptions {
99
103
  /**
100
104
  * `guardrails.enabled`. The thresholds live in the `guardrails` config block
@@ -169,7 +173,7 @@ export declare const _test_exports: {
169
173
  readonly MAX_DISCRIMINATOR_LENGTH: 64;
170
174
  readonly streakCount: () => number;
171
175
  /** Read a streak length without mutating it. */
172
- readonly peekStreak: (sessionID: string, tool: string, code: string, discriminator?: string) => number;
176
+ readonly peekStreak: (sessionID: string, tool: string, code: string, target?: unknown) => number;
173
177
  /** Force a streak's TTL into the past so eviction can be tested. */
174
- readonly expireStreak: (sessionID: string, tool: string, code: string, discriminator?: string) => void;
178
+ readonly expireStreak: (sessionID: string, tool: string, code: string, target?: unknown) => void;
175
179
  };
@@ -39,6 +39,19 @@ export interface DirectiveGateResult {
39
39
  }
40
40
  /**
41
41
  * Evaluate all critical directives shown during the phase. Fail-closed.
42
+ *
43
+ * Since #2628 the reviewer-facing obligation unit is the ENTRY (one shown
44
+ * obligation per entry), so resolution is evaluated per entry: an entry is
45
+ * resolved when (a) at least one of its phase-window memberships carries a
46
+ * satisfying terminal (authorized override, applied, or ignored/n_a with a
47
+ * reason), AND (b) every violated/contradicted membership is remediated by an
48
+ * `applied` terminal committed STRICTLY LATER on some membership of the same
49
+ * entry (an earlier applied never hides a later violation; the same-membership
50
+ * case is the historical in-place remediation flow, where the current terminal
51
+ * is `applied` and the violated state moved to terminal_history). The reported
52
+ * trace_id is the representative the reviewer was shown: a violated membership
53
+ * when one exists, else the most recently committed one (ties by greatest
54
+ * trace_id) — mirroring `pickDirectiveRepresentatives` in phase-directives.ts.
42
55
  */
43
56
  export declare function evaluatePhaseCriticalDirectives(params: {
44
57
  directory: string;
@@ -18,11 +18,40 @@ import type { KnowledgeEntryBase } from './knowledge-types.js';
18
18
  export declare function collectPhaseDirectiveIds(directory: string, phaseLabel?: string): Promise<string[]>;
19
19
  /** Load all knowledge entries (swarm + hive) indexed by id. */
20
20
  export declare function readEntriesById(directory: string): Promise<Map<string, KnowledgeEntryBase>>;
21
+ /**
22
+ * One candidate obligation per receipt membership, before per-entry collapse.
23
+ * `committed_at` and the terminal fields come from the membership so the
24
+ * representative selection below is deterministic.
25
+ */
26
+ export interface DirectiveCandidate {
27
+ directive: DirectiveToVerify;
28
+ /** Membership commit time (ISO-8601 UTC from the receipt ledger). */
29
+ committed_at: string;
30
+ }
31
+ /**
32
+ * True when `next` is a better per-entry representative than `incumbent`.
33
+ * Precedence (#2628): a membership whose current terminal is a violation
34
+ * (`violated` or `contradicted`) wins (it carries the remediation obligation
35
+ * via prior_terminal_*), then the most recently committed membership, then the
36
+ * lexicographically greatest trace_id (code-unit order — locale-independent
37
+ * determinism).
38
+ */
39
+ export declare function isPreferredDirectiveCandidate(next: DirectiveCandidate, incumbent: DirectiveCandidate): boolean;
40
+ /**
41
+ * Collapse membership-derived candidates to at most one per unique entry_id
42
+ * (issue #2628). The reviewer's obligation unit is the directive (entry), not
43
+ * the (trace_id, entry_id) pair — pair multiplicity re-created one verification
44
+ * per historical exposure and grew the injected block O(entries x trace_ids).
45
+ * Snapshot semantics: the result is a pure function of the membership list at
46
+ * read time; a membership committed between dispatch and settle can shift the
47
+ * representative (pre-existing skew class, not widened here).
48
+ */
49
+ export declare function pickDirectiveRepresentatives(candidates: DirectiveCandidate[]): DirectiveCandidate[];
21
50
  /**
22
51
  * Resolve the directives the reviewer must verify for a phase: the entries
23
52
  * behind the phase's retrieved IDs, with priority + lesson + verification
24
- * predicate. Archived/quarantined entries are excluded. Fail-open: returns [] on
25
- * any error.
53
+ * predicate, deduplicated to ONE obligation per entry. Archived/quarantined
54
+ * entries are excluded. Fail-open: returns [] on any error.
26
55
  */
27
56
  export declare function readPhaseDirectivesToVerify(directory: string, phaseLabel?: string): Promise<DirectiveToVerify[]>;
28
57
  /** The CRITICAL directive IDs retrieved during the phase. */
@@ -4,12 +4,17 @@
4
4
  *
5
5
  * Parses a reviewer's `DIRECTIVE_COMPLIANCE` block (VERIFIED / VIOLATED / N/A
6
6
  * lines) and reconciles it against the exact retrieval memberships the reviewer
7
- * was asked to verify, committing one authoritative terminal per pair:
7
+ * was asked to verify, committing one authoritative terminal per shown pair:
8
8
  *
9
9
  * VERIFIED:<trace_id>:<entry_id> -> outcome:'applied'
10
10
  * VIOLATED:<trace_id>:<entry_id> -> outcome:'violated'
11
11
  * N/A:<trace_id>:<entry_id> -> outcome:'n_a'
12
12
  *
13
+ * Since #2628 the shown set carries at most one pair per entry, so the pair
14
+ * shown is the entry's single obligation for the phase; the phase-complete gate
15
+ * resolves the ENTRY once that pair's terminal commits (see
16
+ * phase-complete-directive-gate.ts).
17
+ *
13
18
  * Anti-spoofing: verdicts for pairs that were not in the verify-set are dropped.
14
19
  * An omitted CRITICAL pair gets a `violated` / `reviewer_omitted` terminal.
15
20
  * Authority failures return typed uncertainty and never fabricate success.