opencode-swarm 7.194.0 → 7.196.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.
- package/.opencode/skills/commit-pr/SKILL.md +8 -0
- package/.opencode/skills/issue-tracer/references/acceptance-checks.md +20 -0
- package/.opencode/skills/issue-tracer/references/full-resolution-contract.md +12 -0
- package/.opencode/skills/swarm-pr-feedback/SKILL.md +2 -2
- package/.opencode/skills/swarm-pr-feedback/references/operational-gotchas.md +18 -0
- package/.opencode/skills/swarm-pr-review/SKILL.md +11 -10
- package/.opencode/skills/swarm-pr-review/references/counterbalancing.md +68 -0
- package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +21 -0
- package/.opencode/skills/swarm-pr-review/references/parser-dry-run.md +11 -0
- package/.opencode/skills/swarm-pr-review/references/prompt-templates.md +8 -0
- package/README.md +1 -1
- package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
- package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
- package/dist/background/pr-review-collection-receipt.d.ts +7 -1
- package/dist/background/pr-review-contract.d.ts +10 -0
- package/dist/cli/{auto-checkpoint-67dk8rjz.js → auto-checkpoint-f00tk7sc.js} +9 -9
- package/dist/cli/{checkpoint-jbqqyp5e.js → checkpoint-acztxqga.js} +17 -17
- package/dist/cli/{coder-settlement-a09t7mvx.js → coder-settlement-0ka4n1xf.js} +13 -13
- package/dist/cli/{config-doctor-dkp263xx.js → config-doctor-qv7wc6fa.js} +16 -16
- package/dist/cli/{core-stnmz1rg.js → core-dmn3arr1.js} +4 -4
- package/dist/cli/{curation-policy-8j6qn6nt.js → curation-policy-5hm6328s.js} +6 -6
- package/dist/cli/{curator-mc0wcpvw.js → curator-891pc8b7.js} +43 -43
- package/dist/cli/{curator-drift-d1wedyed.js → curator-drift-sxzs48ew.js} +9 -9
- package/dist/cli/curator-llm-factory-cvrt4bf9.js +82 -0
- package/dist/cli/{doctor-knowledge-receipt-phase-id-dfwx5jha.js → doctor-knowledge-receipt-phase-id-mvbj576e.js} +9 -9
- package/dist/cli/{evidence-summary-service-k1shqefr.js → evidence-summary-service-x9nxvmn5.js} +20 -20
- package/dist/cli/{gate-evidence-vw9y4gs6.js → gate-evidence-dxd20wrc.js} +8 -8
- package/dist/cli/guardrail-explain-fga9bnvt.js +83 -0
- package/dist/cli/{guardrail-log-vbeyx6nq.js → guardrail-log-y84b9m8n.js} +8 -8
- package/dist/cli/{guardrail-reset-jwtt15e3.js → guardrail-reset-xpcsxyt0.js} +43 -43
- package/dist/cli/{hive-promoter-p9ad63mx.js → hive-promoter-w1vchgfr.js} +43 -43
- package/dist/cli/{index-at34nry4.js → index-174j0g38.js} +5 -5
- package/dist/cli/{index-48h1yn6c.js → index-2grr37ry.js} +5 -5
- package/dist/cli/{index-yfbk69b1.js → index-31b55cq9.js} +6 -6
- package/dist/cli/{index-d7pznffh.js → index-391ydd25.js} +4 -4
- package/dist/cli/{index-jrs2qh6j.js → index-3drq02r1.js} +4 -4
- package/dist/cli/{index-t6aae9wq.js → index-3hpjqa6y.js} +1 -1
- package/dist/cli/{index-9bzgea2y.js → index-41p9zzpe.js} +4 -4
- package/dist/cli/{index-kp5qw5p4.js → index-4cazf4kb.js} +45 -45
- package/dist/cli/{index-5rkh69f3.js → index-4gmxdkcd.js} +2 -2
- package/dist/cli/{index-qh93qjc2.js → index-6183at3v.js} +2 -2
- package/dist/cli/{index-rpnkp79f.js → index-7gqmqhzj.js} +6 -6
- package/dist/cli/{index-mtqwyjrg.js → index-7rtq2t5n.js} +1 -1
- package/dist/cli/{index-n5xwza76.js → index-7zkgdefv.js} +7 -7
- package/dist/cli/{index-7bfshvq1.js → index-8bsnnnj2.js} +3 -3
- package/dist/cli/{index-0e318vgt.js → index-app2rmxv.js} +1 -1
- package/dist/cli/{index-vjytfp05.js → index-bjaef5zn.js} +293 -94
- package/dist/cli/{index-668npagp.js → index-c5xvm318.js} +1 -1
- package/dist/cli/{index-vg8sxg12.js → index-crz772sx.js} +1 -1
- package/dist/cli/{index-6s3ab22d.js → index-dfrcc46h.js} +2 -2
- package/dist/cli/{index-ndec8akq.js → index-gc0aeth5.js} +2 -2
- package/dist/cli/{index-fd6b9f38.js → index-ghckhk16.js} +2 -2
- package/dist/cli/{index-ehab3z5y.js → index-hjma52c8.js} +4 -4
- package/dist/cli/{index-1jt12p3y.js → index-hqrkr9ag.js} +1 -1
- package/dist/cli/{index-w2vbaczx.js → index-hy2fqapm.js} +1 -1
- package/dist/cli/{index-st80sjg7.js → index-j8t1g5qd.js} +1 -1
- package/dist/cli/{index-cwr69qw7.js → index-jnjvghgp.js} +7 -7
- package/dist/cli/{index-vfdkvvkf.js → index-knxq5byr.js} +2 -2
- package/dist/cli/{index-84k9zzv1.js → index-kphy4we7.js} +1 -1
- package/dist/cli/{index-ajkdt5b8.js → index-mt5t492g.js} +4 -4
- package/dist/cli/{index-7njm9jk1.js → index-necqa5bj.js} +2 -2
- package/dist/cli/{index-4ftg3p9n.js → index-nqxbqb50.js} +2 -2
- package/dist/cli/{index-x7qeaa9y.js → index-nrqyc8pr.js} +43 -43
- package/dist/cli/{index-0xe19j9g.js → index-ppnpkww2.js} +1 -1
- package/dist/cli/{index-h14wpwpa.js → index-psqfkgav.js} +4 -4
- package/dist/cli/{index-3atkcqpb.js → index-ry5g9s8d.js} +1 -1
- package/dist/cli/{index-6xppb1er.js → index-ryjp0wmq.js} +1 -1
- package/dist/cli/{index-y3n9ry9q.js → index-sgt1d7ez.js} +3 -3
- package/dist/cli/{index-f3ttgqak.js → index-svbh91pz.js} +2 -2
- package/dist/cli/{index-51dxek4p.js → index-t5med3ga.js} +4 -4
- package/dist/cli/{index-43v5axvm.js → index-te61qv0q.js} +5 -5
- package/dist/cli/{index-9v43y7y6.js → index-tjc68trf.js} +11 -11
- package/dist/cli/{index-r8mavcg6.js → index-tzasccpd.js} +5 -5
- package/dist/cli/{index-dy7nztyp.js → index-vsa05smc.js} +12 -10
- package/dist/cli/{index-9kbnxb7v.js → index-w3mav870.js} +2 -2
- package/dist/cli/{index-3dpb3kps.js → index-wscg5ryb.js} +4 -4
- package/dist/cli/{index-e8k0v19e.js → index-xmbtwtgw.js} +1 -1
- package/dist/cli/{index-hfssjyxs.js → index-yf2z4j7s.js} +2 -2
- package/dist/cli/{index-hfnyykvm.js → index-ypkfhqbc.js} +7 -7
- package/dist/cli/index.js +44 -44
- package/dist/cli/{knowledge-escalator-g6dctrae.js → knowledge-escalator-2dy96d0j.js} +15 -15
- package/dist/cli/{knowledge-events-acdz0x2g.js → knowledge-events-70kb745b.js} +13 -13
- package/dist/cli/{knowledge-link-srnt95wh.js → knowledge-link-8bn2b7vr.js} +5 -5
- package/dist/cli/{knowledge-store-vxtj4m59.js → knowledge-store-hvq03g0j.js} +6 -6
- package/dist/cli/{knowledge-validator-b545vc9t.js → knowledge-validator-eaatcnkr.js} +8 -8
- package/dist/cli/{mcp-c3t18313.js → mcp-bj3awdfy.js} +1 -1
- package/dist/cli/{model-preflight-r99c08re.js → model-preflight-skhq4xtr.js} +43 -43
- package/dist/cli/{pending-delegations-57f3049j.js → pending-delegations-yamzv468.js} +12 -12
- package/dist/cli/{pr-subscriptions-5jb793xe.js → pr-subscriptions-hkzd0nr4.js} +12 -12
- package/dist/cli/{pr-workflow-gate-n3x25ddw.js → pr-workflow-gate-2gmznmj4.js} +57 -43
- package/dist/cli/{runner-b2e89cp1.js → runner-rt2smh14.js} +6 -6
- package/dist/cli/{scan-cursor-s9mazw82.js → scan-cursor-arezehhk.js} +7 -7
- package/dist/cli/{schema-7czxpvwm.js → schema-emx6r32d.js} +2 -2
- package/dist/cli/{scope-persistence-y0ebqyjm.js → scope-persistence-tvr8w7ea.js} +16 -16
- package/dist/cli/{server-m10e78ey.js → server-ez03wdw9.js} +43 -43
- package/dist/cli/{skill-generator-kzw1dcba.js → skill-generator-w0jy1mpc.js} +17 -17
- package/dist/cli/{snapshot-coordination-init-z1aqsvn4.js → snapshot-coordination-init-2x56ds8a.js} +43 -43
- package/dist/cli/{speckit-checkoff-1g3vzywn.js → speckit-checkoff-c2e5wezr.js} +5 -5
- package/dist/cli/{telemetry-qaymh4gg.js → telemetry-vapc5q4p.js} +1 -1
- package/dist/cli/{workspace-snapshot-p69t9zn7.js → workspace-snapshot-e3kw9kpg.js} +3 -3
- package/dist/cli/{worktree-collision-ownership-d0etv08a.js → worktree-collision-ownership-1bgcea0v.js} +13 -13
- package/dist/cli/{worktree-isolation-dj2qw13p.js → worktree-isolation-9xp4dz41.js} +43 -43
- package/dist/commands/registry.d.ts +1 -1
- package/dist/epic/start.d.ts +5 -4
- package/dist/hooks/pr-workflow-gate.d.ts +153 -0
- package/dist/host/v2/agents-commands.d.ts +13 -3
- package/dist/host/v2/session-client.d.ts +45 -26
- package/dist/index.js +99 -94
- package/dist/pr-review/legacy-transcript-adapter.d.ts +54 -0
- package/dist/pr-review/render-review-body.d.ts +20 -0
- package/dist/sbom/detectors/index.d.ts +15 -0
- package/dist/tools/dispatch-lanes.d.ts +16 -1
- package/dist/tools/sbom-generate.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-97dpqjz4.js +0 -82
- package/dist/cli/guardrail-explain-24g3bsqw.js +0 -83
package/dist/cli/{snapshot-coordination-init-z1aqsvn4.js → snapshot-coordination-init-2x56ds8a.js}
RENAMED
|
@@ -8,75 +8,75 @@ import {
|
|
|
8
8
|
markSnapshotCoordinationClosing,
|
|
9
9
|
retrySnapshotCoordinationInitialization,
|
|
10
10
|
startSnapshotCoordinationInitialization
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-
|
|
11
|
+
} from "./index-bjaef5zn.js";
|
|
12
|
+
import"./index-t5med3ga.js";
|
|
13
|
+
import"./index-hjma52c8.js";
|
|
14
|
+
import"./index-2grr37ry.js";
|
|
15
15
|
import"./index-j2vv0h13.js";
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
16
|
+
import"./index-c5xvm318.js";
|
|
17
|
+
import"./index-necqa5bj.js";
|
|
18
18
|
import"./index-txdagbh7.js";
|
|
19
|
-
import"./index-
|
|
19
|
+
import"./index-knxq5byr.js";
|
|
20
20
|
import"./index-rdec0y3z.js";
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
23
|
-
import"./index-
|
|
24
|
-
import"./index-
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
21
|
+
import"./index-sgt1d7ez.js";
|
|
22
|
+
import"./index-7zkgdefv.js";
|
|
23
|
+
import"./index-41p9zzpe.js";
|
|
24
|
+
import"./index-7gqmqhzj.js";
|
|
25
|
+
import"./index-ghckhk16.js";
|
|
26
|
+
import"./index-ypkfhqbc.js";
|
|
27
27
|
import"./index-cjapb4hy.js";
|
|
28
|
-
import"./index-
|
|
28
|
+
import"./index-dfrcc46h.js";
|
|
29
29
|
import"./index-pt7h91zc.js";
|
|
30
30
|
import"./index-q7sjgr1y.js";
|
|
31
|
-
import"./index-
|
|
32
|
-
import"./index-
|
|
31
|
+
import"./index-31b55cq9.js";
|
|
32
|
+
import"./index-tjc68trf.js";
|
|
33
33
|
import"./index-6b295cas.js";
|
|
34
34
|
import"./index-9nyqt3kb.js";
|
|
35
|
-
import"./index-
|
|
35
|
+
import"./index-ryjp0wmq.js";
|
|
36
36
|
import"./index-v3bmwmqw.js";
|
|
37
|
-
import"./index-
|
|
38
|
-
import"./index-
|
|
39
|
-
import"./index-
|
|
37
|
+
import"./index-svbh91pz.js";
|
|
38
|
+
import"./index-3drq02r1.js";
|
|
39
|
+
import"./index-391ydd25.js";
|
|
40
40
|
import"./index-g4fs6z4e.js";
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-
|
|
41
|
+
import"./index-vsa05smc.js";
|
|
42
|
+
import"./index-mt5t492g.js";
|
|
43
|
+
import"./index-te61qv0q.js";
|
|
44
44
|
import"./index-m9zzj4ee.js";
|
|
45
|
-
import"./index-
|
|
45
|
+
import"./index-kphy4we7.js";
|
|
46
46
|
import"./index-2s7dvzff.js";
|
|
47
|
-
import"./index-
|
|
48
|
-
import"./index-
|
|
47
|
+
import"./index-wscg5ryb.js";
|
|
48
|
+
import"./index-hy2fqapm.js";
|
|
49
49
|
import"./index-rtry5xyf.js";
|
|
50
|
-
import"./index-
|
|
50
|
+
import"./index-8bsnnnj2.js";
|
|
51
51
|
import"./index-g22dps7x.js";
|
|
52
52
|
import"./index-0725jpp7.js";
|
|
53
|
-
import"./index-
|
|
54
|
-
import"./index-
|
|
55
|
-
import"./index-
|
|
56
|
-
import"./index-
|
|
57
|
-
import"./index-
|
|
58
|
-
import"./index-
|
|
53
|
+
import"./index-tzasccpd.js";
|
|
54
|
+
import"./index-174j0g38.js";
|
|
55
|
+
import"./index-6183at3v.js";
|
|
56
|
+
import"./index-j8t1g5qd.js";
|
|
57
|
+
import"./index-crz772sx.js";
|
|
58
|
+
import"./index-app2rmxv.js";
|
|
59
59
|
import"./index-ry16d01s.js";
|
|
60
60
|
import"./index-rdm3px0g.js";
|
|
61
61
|
import"./index-7pmbnjvj.js";
|
|
62
|
-
import"./index-
|
|
63
|
-
import"./index-
|
|
62
|
+
import"./index-gc0aeth5.js";
|
|
63
|
+
import"./index-jnjvghgp.js";
|
|
64
64
|
import"./index-vzm6zre7.js";
|
|
65
65
|
import"./index-ae75rja9.js";
|
|
66
|
-
import"./index-
|
|
67
|
-
import"./index-
|
|
68
|
-
import"./index-
|
|
66
|
+
import"./index-ry5g9s8d.js";
|
|
67
|
+
import"./index-4gmxdkcd.js";
|
|
68
|
+
import"./index-xmbtwtgw.js";
|
|
69
69
|
import"./index-t7hmqgjy.js";
|
|
70
|
-
import"./index-
|
|
70
|
+
import"./index-7rtq2t5n.js";
|
|
71
71
|
import"./index-fzpt2djt.js";
|
|
72
72
|
import"./index-ejhxgyvm.js";
|
|
73
73
|
import"./index-7g4c7s5r.js";
|
|
74
|
-
import"./index-
|
|
74
|
+
import"./index-yf2z4j7s.js";
|
|
75
75
|
import"./index-gx2vp8gx.js";
|
|
76
|
-
import"./index-
|
|
76
|
+
import"./index-ppnpkww2.js";
|
|
77
77
|
import"./index-zxdawwc7.js";
|
|
78
|
-
import"./index-
|
|
79
|
-
import"./index-
|
|
78
|
+
import"./index-nqxbqb50.js";
|
|
79
|
+
import"./index-hqrkr9ag.js";
|
|
80
80
|
import"./index-bk5tah7q.js";
|
|
81
81
|
import"./index-gknz3bv1.js";
|
|
82
82
|
import"./index-zpsr8rpc.js";
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
parseSpeckitTasksContent,
|
|
8
8
|
propagateSpeckitCheckoff,
|
|
9
9
|
writeSpeckitCheckoffLedger
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-svbh91pz.js";
|
|
11
11
|
import"./index-ejhxgyvm.js";
|
|
12
12
|
import"./index-7g4c7s5r.js";
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-
|
|
13
|
+
import"./index-yf2z4j7s.js";
|
|
14
|
+
import"./index-ppnpkww2.js";
|
|
15
15
|
import"./index-zxdawwc7.js";
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
16
|
+
import"./index-nqxbqb50.js";
|
|
17
|
+
import"./index-hqrkr9ag.js";
|
|
18
18
|
import"./index-bk5tah7q.js";
|
|
19
19
|
import"./index-gknz3bv1.js";
|
|
20
20
|
import"./index-zpsr8rpc.js";
|
|
@@ -46,11 +46,11 @@ import {
|
|
|
46
46
|
shouldSkipSnapshot,
|
|
47
47
|
switchPrFeedbackTrackingCandidateAsync,
|
|
48
48
|
workspaceSnapshotMatches
|
|
49
|
-
} from "./index-
|
|
50
|
-
import"./index-
|
|
49
|
+
} from "./index-ghckhk16.js";
|
|
50
|
+
import"./index-kphy4we7.js";
|
|
51
51
|
import"./index-2s7dvzff.js";
|
|
52
52
|
import"./index-fzpt2djt.js";
|
|
53
|
-
import"./index-
|
|
53
|
+
import"./index-yf2z4j7s.js";
|
|
54
54
|
import"./index-zxdawwc7.js";
|
|
55
55
|
import"./index-zpsr8rpc.js";
|
|
56
56
|
import"./index-zgwm4ryv.js";
|
|
@@ -6,37 +6,37 @@ import {
|
|
|
6
6
|
WORKTREE_PROVISIONING_OWNER_LEASE_MS,
|
|
7
7
|
removeWorktreeProvisioningOwner,
|
|
8
8
|
scanWorktreeProvisioningOwnersForRecovery
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-dfrcc46h.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-
|
|
17
|
-
import"./index-
|
|
16
|
+
} from "./index-vsa05smc.js";
|
|
17
|
+
import"./index-kphy4we7.js";
|
|
18
18
|
import"./index-2s7dvzff.js";
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
19
|
+
import"./index-j8t1g5qd.js";
|
|
20
|
+
import"./index-crz772sx.js";
|
|
21
|
+
import"./index-app2rmxv.js";
|
|
22
22
|
import"./index-ry16d01s.js";
|
|
23
23
|
import"./index-rdm3px0g.js";
|
|
24
24
|
import"./index-7pmbnjvj.js";
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
25
|
+
import"./index-gc0aeth5.js";
|
|
26
|
+
import"./index-jnjvghgp.js";
|
|
27
27
|
import"./index-vzm6zre7.js";
|
|
28
28
|
import"./index-ae75rja9.js";
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
31
|
-
import"./index-
|
|
29
|
+
import"./index-ry5g9s8d.js";
|
|
30
|
+
import"./index-4gmxdkcd.js";
|
|
31
|
+
import"./index-xmbtwtgw.js";
|
|
32
32
|
import"./index-t7hmqgjy.js";
|
|
33
|
-
import"./index-
|
|
33
|
+
import"./index-7rtq2t5n.js";
|
|
34
34
|
import {
|
|
35
35
|
canonicalRootKeyFresh
|
|
36
36
|
} from "./index-fzpt2djt.js";
|
|
37
37
|
import"./index-ejhxgyvm.js";
|
|
38
38
|
import"./index-7g4c7s5r.js";
|
|
39
|
-
import"./index-
|
|
39
|
+
import"./index-yf2z4j7s.js";
|
|
40
40
|
import"./index-zxdawwc7.js";
|
|
41
41
|
import"./index-bk5tah7q.js";
|
|
42
42
|
import"./index-gknz3bv1.js";
|
|
@@ -25,77 +25,77 @@ import {
|
|
|
25
25
|
sanitizeWorktreeTaskId,
|
|
26
26
|
standardWorktreeByCallID,
|
|
27
27
|
standardWorktreeSerializationSessions
|
|
28
|
-
} from "./index-
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
31
|
-
import"./index-
|
|
28
|
+
} from "./index-bjaef5zn.js";
|
|
29
|
+
import"./index-t5med3ga.js";
|
|
30
|
+
import"./index-hjma52c8.js";
|
|
31
|
+
import"./index-2grr37ry.js";
|
|
32
32
|
import"./index-j2vv0h13.js";
|
|
33
|
-
import"./index-
|
|
34
|
-
import"./index-
|
|
33
|
+
import"./index-c5xvm318.js";
|
|
34
|
+
import"./index-necqa5bj.js";
|
|
35
35
|
import"./index-txdagbh7.js";
|
|
36
|
-
import"./index-
|
|
36
|
+
import"./index-knxq5byr.js";
|
|
37
37
|
import"./index-rdec0y3z.js";
|
|
38
|
-
import"./index-
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-
|
|
38
|
+
import"./index-sgt1d7ez.js";
|
|
39
|
+
import"./index-7zkgdefv.js";
|
|
40
|
+
import"./index-41p9zzpe.js";
|
|
41
|
+
import"./index-7gqmqhzj.js";
|
|
42
|
+
import"./index-ghckhk16.js";
|
|
43
|
+
import"./index-ypkfhqbc.js";
|
|
44
44
|
import"./index-cjapb4hy.js";
|
|
45
|
-
import"./index-
|
|
45
|
+
import"./index-dfrcc46h.js";
|
|
46
46
|
import"./index-pt7h91zc.js";
|
|
47
47
|
import"./index-q7sjgr1y.js";
|
|
48
|
-
import"./index-
|
|
49
|
-
import"./index-
|
|
48
|
+
import"./index-31b55cq9.js";
|
|
49
|
+
import"./index-tjc68trf.js";
|
|
50
50
|
import"./index-6b295cas.js";
|
|
51
51
|
import"./index-9nyqt3kb.js";
|
|
52
|
-
import"./index-
|
|
52
|
+
import"./index-ryjp0wmq.js";
|
|
53
53
|
import"./index-v3bmwmqw.js";
|
|
54
|
-
import"./index-
|
|
55
|
-
import"./index-
|
|
56
|
-
import"./index-
|
|
54
|
+
import"./index-svbh91pz.js";
|
|
55
|
+
import"./index-3drq02r1.js";
|
|
56
|
+
import"./index-391ydd25.js";
|
|
57
57
|
import"./index-g4fs6z4e.js";
|
|
58
|
-
import"./index-
|
|
59
|
-
import"./index-
|
|
60
|
-
import"./index-
|
|
58
|
+
import"./index-vsa05smc.js";
|
|
59
|
+
import"./index-mt5t492g.js";
|
|
60
|
+
import"./index-te61qv0q.js";
|
|
61
61
|
import"./index-m9zzj4ee.js";
|
|
62
|
-
import"./index-
|
|
62
|
+
import"./index-kphy4we7.js";
|
|
63
63
|
import"./index-2s7dvzff.js";
|
|
64
|
-
import"./index-
|
|
65
|
-
import"./index-
|
|
64
|
+
import"./index-wscg5ryb.js";
|
|
65
|
+
import"./index-hy2fqapm.js";
|
|
66
66
|
import"./index-rtry5xyf.js";
|
|
67
67
|
import {
|
|
68
68
|
resolveWorktreeIsolationConfig
|
|
69
|
-
} from "./index-
|
|
69
|
+
} from "./index-8bsnnnj2.js";
|
|
70
70
|
import"./index-g22dps7x.js";
|
|
71
71
|
import"./index-0725jpp7.js";
|
|
72
|
-
import"./index-
|
|
73
|
-
import"./index-
|
|
74
|
-
import"./index-
|
|
75
|
-
import"./index-
|
|
76
|
-
import"./index-
|
|
77
|
-
import"./index-
|
|
72
|
+
import"./index-tzasccpd.js";
|
|
73
|
+
import"./index-174j0g38.js";
|
|
74
|
+
import"./index-6183at3v.js";
|
|
75
|
+
import"./index-j8t1g5qd.js";
|
|
76
|
+
import"./index-crz772sx.js";
|
|
77
|
+
import"./index-app2rmxv.js";
|
|
78
78
|
import"./index-ry16d01s.js";
|
|
79
79
|
import"./index-rdm3px0g.js";
|
|
80
80
|
import"./index-7pmbnjvj.js";
|
|
81
|
-
import"./index-
|
|
82
|
-
import"./index-
|
|
81
|
+
import"./index-gc0aeth5.js";
|
|
82
|
+
import"./index-jnjvghgp.js";
|
|
83
83
|
import"./index-vzm6zre7.js";
|
|
84
84
|
import"./index-ae75rja9.js";
|
|
85
|
-
import"./index-
|
|
86
|
-
import"./index-
|
|
87
|
-
import"./index-
|
|
85
|
+
import"./index-ry5g9s8d.js";
|
|
86
|
+
import"./index-4gmxdkcd.js";
|
|
87
|
+
import"./index-xmbtwtgw.js";
|
|
88
88
|
import"./index-t7hmqgjy.js";
|
|
89
|
-
import"./index-
|
|
89
|
+
import"./index-7rtq2t5n.js";
|
|
90
90
|
import"./index-fzpt2djt.js";
|
|
91
91
|
import"./index-ejhxgyvm.js";
|
|
92
92
|
import"./index-7g4c7s5r.js";
|
|
93
|
-
import"./index-
|
|
93
|
+
import"./index-yf2z4j7s.js";
|
|
94
94
|
import"./index-gx2vp8gx.js";
|
|
95
|
-
import"./index-
|
|
95
|
+
import"./index-ppnpkww2.js";
|
|
96
96
|
import"./index-zxdawwc7.js";
|
|
97
|
-
import"./index-
|
|
98
|
-
import"./index-
|
|
97
|
+
import"./index-nqxbqb50.js";
|
|
98
|
+
import"./index-hqrkr9ag.js";
|
|
99
99
|
import"./index-bk5tah7q.js";
|
|
100
100
|
import"./index-gknz3bv1.js";
|
|
101
101
|
import"./index-zpsr8rpc.js";
|
|
@@ -715,7 +715,7 @@ export declare const COMMAND_REGISTRY: {
|
|
|
715
715
|
readonly epic: {
|
|
716
716
|
readonly handler: (ctx: CommandContext) => Promise<string>;
|
|
717
717
|
readonly description: "Open, inspect, and close a plan-scoped epic (coupling-aware parallel execution of the current plan)";
|
|
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; on OpenCode 2 the v2 adapter
|
|
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; on OpenCode 2 the v2 adapter ships one, so this refusal does not fire there — Epic is startable on OpenCode 2 via the native v2 /swarm command dispatch, #3169 Phase 4), 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
721
|
readonly toolPolicy: "human-only";
|
package/dist/epic/start.d.ts
CHANGED
|
@@ -93,11 +93,12 @@ export interface EpicStartOptions {
|
|
|
93
93
|
* Every git-epic coder needs worktree isolation and every phase needs the
|
|
94
94
|
* `epic_phase_review` dispatch, and both create sessions through that client
|
|
95
95
|
* (`worktree-isolation.ts` STANDARD_WORKTREE_ISOLATION_UNAVAILABLE,
|
|
96
|
-
* `src/review/contracts.ts`).
|
|
97
|
-
*
|
|
98
|
-
*
|
|
96
|
+
* `src/review/contracts.ts`). Since #3169 Phase 2 the OpenCode 2 adapter
|
|
97
|
+
* installs a session-capable client shim (`src/host/v2/setup.ts`), and since
|
|
98
|
+
* Phase 4 a human-typed `/swarm` command dispatches natively there — this
|
|
99
|
+
* refusal now fires only on genuinely client-less hosts.
|
|
99
100
|
*/
|
|
100
|
-
export declare const EPIC_HOST_UNSUPPORTED_MESSAGE = "This OpenCode host gives the plugin no SDK client. Epic needs it for worktree-isolated coders and for the epic_phase_review reviewer/critic, so an epic here could neither run its coders nor complete a phase. Run the plan in Balanced, or use an OpenCode 1.x host (1.18.29+). (On OpenCode 2 the v2 adapter
|
|
101
|
+
export declare const EPIC_HOST_UNSUPPORTED_MESSAGE = "This OpenCode host gives the plugin no SDK client. Epic needs it for worktree-isolated coders and for the epic_phase_review reviewer/critic, so an epic here could neither run its coders nor complete a phase. Run the plan in Balanced, or use an OpenCode 1.x host (1.18.29+). (On OpenCode 2 the v2 adapter ships a session-capable client and native /swarm command dispatch, so this refusal does not fire there.)";
|
|
101
102
|
/** Durable Lean run marked `running` — read without the migrating Lean reader. */
|
|
102
103
|
declare function findRunningLeanRun(directory: string): string | null;
|
|
103
104
|
/** Why Turbo blocks the start, or null (M-a). */
|
|
@@ -464,6 +464,20 @@ interface PrReviewBatchCoherenceRecord {
|
|
|
464
464
|
reviewerItemBindings?: Record<string, string>;
|
|
465
465
|
/** Key encoding for reviewerItemBindings; absent means legacy raw item IDs. */
|
|
466
466
|
reviewerItemBindingKeyEncoding?: 'prefixed-v1';
|
|
467
|
+
/**
|
|
468
|
+
* Issue #2906: reviewer batches only. The presentation order this batch's
|
|
469
|
+
* candidates were counterbalanced into — 'A' renders the canonical sorted
|
|
470
|
+
* inventory, 'B' the exact reverse — alternating by reviewer-batch ordinal
|
|
471
|
+
* within the reviewer window so repeated passes observe order effects.
|
|
472
|
+
*/
|
|
473
|
+
presentationOrder?: 'A' | 'B';
|
|
474
|
+
/**
|
|
475
|
+
* Issue #2906: critic batches only. AUDIT-ONLY snapshot of the
|
|
476
|
+
* order-unstable item ids the critic prompt for this batch was flagged
|
|
477
|
+
* with (the prompt re-derives them live via
|
|
478
|
+
* `derivePrReviewOrderUnstableItems`); no runtime reader consumes this.
|
|
479
|
+
*/
|
|
480
|
+
orderUnstableItemIds?: string[];
|
|
467
481
|
}
|
|
468
482
|
/** One rejected `submit_pr_review_result` attempt (issue #2859 F3 journal). */
|
|
469
483
|
export interface PrReviewSubmitRejectionRecord {
|
|
@@ -474,6 +488,22 @@ export interface PrReviewSubmitRejectionRecord {
|
|
|
474
488
|
}
|
|
475
489
|
/** FIFO cap for the gate-state submit-rejection journal (issue #2859 F3). */
|
|
476
490
|
export declare const MAX_PR_REVIEW_SUBMIT_REJECTIONS = 24;
|
|
491
|
+
/**
|
|
492
|
+
* One rejected `write_pr_review_artifact` attempt (issue #3098 verdict-lane
|
|
493
|
+
* journal, mirroring the #2859 discovery journal). `sessionId` is the gate
|
|
494
|
+
* owner (the orchestrator session that called the tool) — provenance only;
|
|
495
|
+
* the composition joins entries to lanes via `workflowLane`/`laneId`.
|
|
496
|
+
*/
|
|
497
|
+
export interface PrReviewVerdictRejectionRecord {
|
|
498
|
+
sessionId: string;
|
|
499
|
+
laneId?: string;
|
|
500
|
+
workflowLane?: string;
|
|
501
|
+
boundary?: 'post_explorer' | 'post_reviewer' | 'post_critic';
|
|
502
|
+
at: number;
|
|
503
|
+
message: string;
|
|
504
|
+
}
|
|
505
|
+
/** FIFO cap for the gate-state verdict-write-rejection journal (issue #3098). */
|
|
506
|
+
export declare const MAX_PR_REVIEW_VERDICT_REJECTIONS = 24;
|
|
477
507
|
export interface PrWorkflowGateState {
|
|
478
508
|
schemaVersion: 1;
|
|
479
509
|
/** Monotonic durable revision used to reject stale same-session transitions. */
|
|
@@ -588,6 +618,17 @@ export interface PrWorkflowGateState {
|
|
|
588
618
|
* to 300 chars at write time.
|
|
589
619
|
*/
|
|
590
620
|
prReviewSubmitRejections?: PrReviewSubmitRejectionRecord[];
|
|
621
|
+
/**
|
|
622
|
+
* Bounded FIFO journal of rejected `write_pr_review_artifact` attempts
|
|
623
|
+
* (issue #3098, the verdict-lane mirror of the #2859 journal above).
|
|
624
|
+
* Observability only — surfaced in the verdict composition diagnostic so
|
|
625
|
+
* the orchestrator can see WHY a declared reviewer/critic lane produced no
|
|
626
|
+
* successful exact artifact; never consulted for artifact validity. Capped
|
|
627
|
+
* by {@link MAX_PR_REVIEW_VERDICT_REJECTIONS}; each entry's message is
|
|
628
|
+
* bounded to 300 chars at write time. `sessionId` is the gate-owner caller
|
|
629
|
+
* (provenance); lane join happens via `workflowLane`/`laneId`.
|
|
630
|
+
*/
|
|
631
|
+
prReviewVerdictRejections?: PrReviewVerdictRejectionRecord[];
|
|
591
632
|
prReviewHandoffPath?: string;
|
|
592
633
|
prReviewHandoffRequired?: boolean;
|
|
593
634
|
checkoutRecovery?: PrWorkflowCheckoutRecoveryRecord;
|
|
@@ -714,6 +755,38 @@ export declare function recordPrReviewSubmitRejection(directory: string, childSe
|
|
|
714
755
|
* ever see its most recent rejections.
|
|
715
756
|
*/
|
|
716
757
|
export declare function latestPrReviewSubmitRejectionMessage(state: Pick<PrWorkflowGateState, 'prReviewSubmitRejections'>, childSessionId: string): string | undefined;
|
|
758
|
+
/**
|
|
759
|
+
* Issue #3098: best-effort, fail-open journal of one rejected
|
|
760
|
+
* `write_pr_review_artifact` attempt onto the CALLER's own PR_REVIEW gate
|
|
761
|
+
* state (the tool is a controller tool invoked by the gate-owner session —
|
|
762
|
+
* no delegation parent-hop, unlike the #2859 discovery journal).
|
|
763
|
+
* Observability only — never changes the rejection outcome, never creates
|
|
764
|
+
* gate state for a session that has none (the pre-read outside the
|
|
765
|
+
* session-state lock means a non-gated caller gets no lock file either).
|
|
766
|
+
*/
|
|
767
|
+
export declare function recordPrReviewVerdictRejection(directory: string, sessionID: string, message: string, attribution?: {
|
|
768
|
+
laneId?: string;
|
|
769
|
+
workflowLane?: string;
|
|
770
|
+
boundary?: 'post_explorer' | 'post_reviewer' | 'post_critic';
|
|
771
|
+
}): Promise<void>;
|
|
772
|
+
/**
|
|
773
|
+
* Issue #3098: latest journal message for a failing obligation, or undefined.
|
|
774
|
+
* Newest wins. Join keys are `workflowLane` (the declared obligation) and
|
|
775
|
+
* `laneId`; the recorded `sessionId` is the gate-owner caller (provenance),
|
|
776
|
+
* never a lane child session, so it is deliberately not a join key.
|
|
777
|
+
*
|
|
778
|
+
* The production writer only ever stamps `boundary` (the write args name the
|
|
779
|
+
* boundary, never a lane), so in practice the phase-scoped fallback below is
|
|
780
|
+
* what resolves: it reports the newest rejection recorded for the failing
|
|
781
|
+
* lane's PHASE, which is honest about being phase-scoped rather than
|
|
782
|
+
* lane-scoped. The lane-exact arms stay because a future attribution producer
|
|
783
|
+
* (or a hand-seeded state) can populate them.
|
|
784
|
+
*/
|
|
785
|
+
export declare function latestPrReviewVerdictRejectionForLane(state: Pick<PrWorkflowGateState, 'prReviewVerdictRejections'>, matchers: {
|
|
786
|
+
workflowLane?: string;
|
|
787
|
+
laneIds?: readonly string[];
|
|
788
|
+
boundary?: 'post_explorer' | 'post_reviewer' | 'post_critic';
|
|
789
|
+
}): string | undefined;
|
|
717
790
|
/**
|
|
718
791
|
* Issue #2859 (F3): single wrap point over every gate-layer rejection path in
|
|
719
792
|
* `submitPrReviewResultCore` (all 15 `{ status: 'rejected' }` return sites —
|
|
@@ -1253,6 +1326,13 @@ export declare function recordPrReviewMicroFamilyDispatch(directory: string, ses
|
|
|
1253
1326
|
export declare function recordPrReviewValidationBatch(directory: string, sessionID: string, phase: PrReviewValidationPhase, lanes: readonly PrWorkflowLaneSpec[], options: {
|
|
1254
1327
|
batchId: string;
|
|
1255
1328
|
prHeadSha: string;
|
|
1329
|
+
/**
|
|
1330
|
+
* Issue #2906: reviewer batches only. The presentation order the dispatch
|
|
1331
|
+
* prompt was counterbalanced for (from `derivePrReviewPresentationOrder`).
|
|
1332
|
+
* When supplied and the re-derived ordinal disagrees, recording fails
|
|
1333
|
+
* closed so the prompt can never misrepresent the stamped receipt.
|
|
1334
|
+
*/
|
|
1335
|
+
expectedPresentationOrder?: 'A' | 'B';
|
|
1256
1336
|
}): Promise<PrWorkflowGateState>;
|
|
1257
1337
|
/**
|
|
1258
1338
|
* Validate that every declared council obligation has a successful retry, and
|
|
@@ -1491,6 +1571,27 @@ export declare function markPrReviewHandoffComplete(directory: string, sessionID
|
|
|
1491
1571
|
state: PrWorkflowGateState;
|
|
1492
1572
|
alreadyOffered: boolean;
|
|
1493
1573
|
}>;
|
|
1574
|
+
interface PrReviewFindingPolicyAuthority {
|
|
1575
|
+
policyFindings: Array<{
|
|
1576
|
+
id: string;
|
|
1577
|
+
status: string;
|
|
1578
|
+
severity: string;
|
|
1579
|
+
action: string;
|
|
1580
|
+
[key: string]: unknown;
|
|
1581
|
+
}>;
|
|
1582
|
+
criticSettlements: Array<{
|
|
1583
|
+
findingId: string;
|
|
1584
|
+
terminal: boolean;
|
|
1585
|
+
status: CriticOutcome;
|
|
1586
|
+
}>;
|
|
1587
|
+
}
|
|
1588
|
+
/**
|
|
1589
|
+
* Read the policy sidecar as an integrity-bound projection of the final
|
|
1590
|
+
* findings artifact. A write-only sidecar is not evidence: the route receipt
|
|
1591
|
+
* pins the PR head and exact findings bytes, while the sidecar digest pins the
|
|
1592
|
+
* synthesized projection itself.
|
|
1593
|
+
*/
|
|
1594
|
+
export declare function readAuthoritativeFindingPolicy(directory: string, state: PrWorkflowGateState): Promise<PrReviewFindingPolicyAuthority>;
|
|
1494
1595
|
/** Read-only final finding-policy projection for completion reports. */
|
|
1495
1596
|
export declare function readPrReviewFinalFindingPolicyForReport(directory: string, sessionID: string): Promise<{
|
|
1496
1597
|
policyVersion: 1;
|
|
@@ -1677,6 +1778,8 @@ export declare const _test_exports: {
|
|
|
1677
1778
|
validatedInventory: string[];
|
|
1678
1779
|
reviewerItemBindings?: Record<string, string> | undefined;
|
|
1679
1780
|
reviewerItemBindingKeyEncoding?: "prefixed-v1" | undefined;
|
|
1781
|
+
presentationOrder?: "A" | "B" | undefined;
|
|
1782
|
+
orderUnstableItemIds?: string[] | undefined;
|
|
1680
1783
|
}> | undefined;
|
|
1681
1784
|
prReviewRetiredReviewerSessionIds?: string[] | undefined;
|
|
1682
1785
|
prReviewRetiredConsolidatedLanes?: string[] | undefined;
|
|
@@ -1721,6 +1824,15 @@ export declare const _test_exports: {
|
|
|
1721
1824
|
message: string;
|
|
1722
1825
|
laneId?: string | undefined;
|
|
1723
1826
|
}[] | undefined;
|
|
1827
|
+
prReviewVerdictRejections?: {
|
|
1828
|
+
[x: string]: unknown;
|
|
1829
|
+
sessionId: string;
|
|
1830
|
+
at: number;
|
|
1831
|
+
message: string;
|
|
1832
|
+
laneId?: string | undefined;
|
|
1833
|
+
workflowLane?: string | undefined;
|
|
1834
|
+
boundary?: "post_explorer" | "post_reviewer" | "post_critic" | undefined;
|
|
1835
|
+
}[] | undefined;
|
|
1724
1836
|
prReviewArtifactBoundaries?: ("post_explorer" | "post_reviewer" | "post_critic")[] | undefined;
|
|
1725
1837
|
prReviewHandoffPath?: string | undefined;
|
|
1726
1838
|
prReviewHandoffRequired?: boolean | undefined;
|
|
@@ -2333,6 +2445,47 @@ export declare function readAuthoritativePrReviewCriticVerdicts(directory: strin
|
|
|
2333
2445
|
status: string;
|
|
2334
2446
|
severity: string;
|
|
2335
2447
|
}>>;
|
|
2448
|
+
/**
|
|
2449
|
+
* Issue #2906: the presentation order the NEXT reviewer batch will be
|
|
2450
|
+
* counterbalanced into — 'A' when the reviewer window holds an even number of
|
|
2451
|
+
* batches, 'B' when odd. Pure function of the persisted window state; the
|
|
2452
|
+
* dispatch tool derives it before prompt assembly and passes the same value to
|
|
2453
|
+
* `recordPrReviewValidationBatch` as `expectedPresentationOrder`, which
|
|
2454
|
+
* re-derives and fails closed on divergence.
|
|
2455
|
+
*
|
|
2456
|
+
* Issue #2906 review finding F-03: at the `MAX_WORKFLOW_BATCHES` cap the
|
|
2457
|
+
* record guard counts the window of the PRUNED state (its read-prune-append
|
|
2458
|
+
* transaction applies `prunePrWorkflowBatchesForCapacity` before deriving the
|
|
2459
|
+
* stamped ordinal), while this derivation used to count the unpruned persisted
|
|
2460
|
+
* window. When the prune flipped the window parity the guard threw — before
|
|
2461
|
+
* `persistState`, so the prune was never durable — and every retry re-derived
|
|
2462
|
+
* the same divergent value: a permanent liveness wedge that failed closed.
|
|
2463
|
+
* This derivation therefore applies the SAME pure prune under the SAME
|
|
2464
|
+
* >= cap condition, so both sides count the identical window. The prune is
|
|
2465
|
+
* pure with respect to durable state (it reads artifacts and returns a
|
|
2466
|
+
* candidate state; only the record path persists it), so running it here
|
|
2467
|
+
* cannot violate the BL-6 single-transaction rule. Every prune-abort path
|
|
2468
|
+
* (inventory inequality, unreadable delegation store, ledger overflow) returns
|
|
2469
|
+
* the state unchanged here AND inside the record guard, so the two sides agree
|
|
2470
|
+
* on those paths as well; a divergence that still reaches the guard means the
|
|
2471
|
+
* state genuinely changed between derivation and recording, which fails closed
|
|
2472
|
+
* and is recoverable by re-deriving.
|
|
2473
|
+
*/
|
|
2474
|
+
export declare function derivePrReviewPresentationOrder(directory: string, sessionID: string): Promise<'A' | 'B'>;
|
|
2475
|
+
/**
|
|
2476
|
+
* Issue #2906: every currently-composed reviewer item whose verdict flipped
|
|
2477
|
+
* across counterbalanced presentation orders (`orderAgreement: 'disagree'`).
|
|
2478
|
+
* The critic dispatch tool renders these as `order_unstable_item_ids` so the
|
|
2479
|
+
* critic prioritizes them.
|
|
2480
|
+
*/
|
|
2481
|
+
export declare function derivePrReviewOrderUnstableItems(directory: string, sessionID: string): Promise<string[]>;
|
|
2482
|
+
/**
|
|
2483
|
+
* Issue #2906: the authoritative per-item order-agreement map for the findings
|
|
2484
|
+
* writer — the same reader shape as `readAuthoritativePrReviewCriticVerdicts`,
|
|
2485
|
+
* so a model-supplied `order_agreement` on a findings row can be cross-checked
|
|
2486
|
+
* against the composed reviewer claims instead of being taken on trust.
|
|
2487
|
+
*/
|
|
2488
|
+
export declare function readAuthoritativePrReviewOrderAgreement(directory: string, sessionID: string): Promise<Map<string, 'agree' | 'disagree' | 'single'>>;
|
|
2336
2489
|
interface ExpectedWorkflowLane {
|
|
2337
2490
|
laneId: string;
|
|
2338
2491
|
workflowLane: string;
|
|
@@ -19,11 +19,21 @@
|
|
|
19
19
|
* - Entries the v1 hook marks `disable: true` (auto-select disabling the
|
|
20
20
|
* `build`/`plan` built-ins) are REMOVED on the v2 agent editor.
|
|
21
21
|
* - v1 command entries `{template, description}` → v2 CommandDefinition
|
|
22
|
-
* whose `execute`
|
|
23
|
-
* `
|
|
24
|
-
*
|
|
22
|
+
* whose `execute` natively dispatches through the shared v1 command
|
|
23
|
+
* handler (`command.execute.before` on the hooks object) and submits the
|
|
24
|
+
* handler-produced prompt via the v2 session prompt surface; the raw
|
|
25
|
+
* expanded template survives as the explicit fallback (#3169 Phase 4 —
|
|
26
|
+
* see deferredV2ExecuteSwarmCommand).
|
|
25
27
|
*/
|
|
26
28
|
import type { V1HooksSubset, V2AgentInfo, V2PluginContext, V2Registration } from './types';
|
|
29
|
+
/**
|
|
30
|
+
* Test seam (review PRR-002): the dispatch budget is read through this
|
|
31
|
+
* object so the timeout→notice arm is reachable in tests without patching
|
|
32
|
+
* global timers.
|
|
33
|
+
*/
|
|
34
|
+
export declare const _internals: {
|
|
35
|
+
dispatchTimeoutMs: number;
|
|
36
|
+
};
|
|
27
37
|
interface V1AgentConfigLike {
|
|
28
38
|
mode?: unknown;
|
|
29
39
|
prompt?: unknown;
|