opencode-swarm 7.188.1 → 7.188.3
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/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
- package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
- package/dist/cli/{auto-checkpoint-w2mjh5m3.js → auto-checkpoint-9scxvjvr.js} +7 -7
- package/dist/cli/{checkpoint-eac282hg.js → checkpoint-rq5eqyft.js} +12 -12
- package/dist/cli/{coder-settlement-40qspmep.js → coder-settlement-9rkvamnp.js} +8 -8
- package/dist/cli/{config-doctor-p21xsvfn.js → config-doctor-ewbdfafa.js} +11 -11
- package/dist/cli/{core-z7qs8s32.js → core-ytxbej6s.js} +1 -1
- package/dist/cli/{curation-policy-v64ctcbd.js → curation-policy-n5kzg460.js} +5 -5
- package/dist/cli/{curator-csg36d2a.js → curator-60ftt4mg.js} +35 -35
- package/dist/cli/{curator-drift-z6c2ctqr.js → curator-drift-jbjjkkbg.js} +5 -5
- package/dist/cli/{curator-llm-factory-dtyyh77f.js → curator-llm-factory-6r5vkvts.js} +35 -35
- package/dist/cli/{doctor-knowledge-receipt-phase-id-gps8dpqr.js → doctor-knowledge-receipt-phase-id-f1b7ah16.js} +6 -6
- package/dist/cli/{evidence-summary-service-txbkchx6.js → evidence-summary-service-vgtsevph.js} +15 -15
- package/dist/cli/{gate-evidence-bwyxrk3z.js → gate-evidence-2reyjm1v.js} +5 -5
- package/dist/cli/{guardrail-explain-gxzdr8w4.js → guardrail-explain-b1ck5ey3.js} +36 -36
- package/dist/cli/{guardrail-log-ra5qbb4b.js → guardrail-log-9c078ms0.js} +6 -6
- package/dist/cli/{guardrail-reset-b0s11ban.js → guardrail-reset-h844v5k3.js} +35 -35
- package/dist/cli/{hive-promoter-avvddtgc.js → hive-promoter-hndtg0g9.js} +35 -35
- package/dist/cli/{index-5m06enb0.js → index-0vhaejxa.js} +1 -1
- package/dist/cli/{index-c66ywect.js → index-1wfychd6.js} +1 -1
- package/dist/cli/{index-z4zznftq.js → index-1xedjkyy.js} +2 -2
- package/dist/cli/{index-w4q0sw5g.js → index-2y4v88xp.js} +4 -4
- package/dist/cli/{index-936d3ny7.js → index-322afz1z.js} +1 -1
- package/dist/cli/{index-zhnywrhs.js → index-5jm1nkv7.js} +6 -6
- package/dist/cli/{index-aqe9x8ga.js → index-63pm3wa2.js} +3 -3
- package/dist/cli/{index-a1tpp2fs.js → index-685ypb7s.js} +2 -2
- package/dist/cli/{index-61pxv4sk.js → index-78vg2tgj.js} +35 -35
- package/dist/cli/{index-cdakr0yh.js → index-7n7775g7.js} +37 -37
- package/dist/cli/{index-zvrfvtp3.js → index-82q5nv5h.js} +4 -4
- package/dist/cli/{index-mdbqm6w1.js → index-91ajdtc6.js} +4 -4
- package/dist/cli/{index-jd3hvnqn.js → index-9dp2zhvj.js} +2 -2
- package/dist/cli/{index-mb1reyw3.js → index-9kaerjtj.js} +1 -1
- package/dist/cli/{index-rwabrcsg.js → index-ats43ttc.js} +1 -1
- package/dist/cli/{index-0v2svrev.js → index-bt11gbj8.js} +1 -1
- package/dist/cli/{index-swagbt0g.js → index-crkx7tta.js} +1 -1
- package/dist/cli/{index-7sbyvk99.js → index-e3ddxfh4.js} +1 -1
- package/dist/cli/{index-dxhd7dsr.js → index-ebhxj1dk.js} +7 -7
- package/dist/cli/{index-9bjf0bhd.js → index-gjnt7sfc.js} +2 -2
- package/dist/cli/{index-cb72p9w2.js → index-h3sty9qx.js} +2 -2
- package/dist/cli/{index-4m6k2r0v.js → index-jgkcsykf.js} +4 -4
- package/dist/cli/{index-wkxhhyej.js → index-jh7s55h1.js} +75 -75
- package/dist/cli/{index-8pbtv6ea.js → index-nbmvxaa2.js} +1 -1
- package/dist/cli/{index-gy57hcy2.js → index-p9y1t8tk.js} +1 -1
- package/dist/cli/{index-qgvmq92m.js → index-pah0zema.js} +2 -2
- package/dist/cli/{index-pswvtgdx.js → index-pya6v67j.js} +3 -3
- package/dist/cli/{index-fdx38afm.js → index-q1ymkdnc.js} +6 -6
- package/dist/cli/{index-edaj9qxn.js → index-q2nydddh.js} +1 -1
- package/dist/cli/{index-4htcpbs4.js → index-qx0npayj.js} +3 -3
- package/dist/cli/{index-zwgh0gty.js → index-r06m1jps.js} +1 -1
- package/dist/cli/{index-41v699sv.js → index-rszpn3zf.js} +3 -3
- package/dist/cli/{index-cs6g43qy.js → index-rw8bq18z.js} +4 -4
- package/dist/cli/{index-x73e0zkb.js → index-rysj8e3x.js} +1 -1
- package/dist/cli/{index-ztq5ag7q.js → index-s51gwkgd.js} +4 -4
- package/dist/cli/{index-9007eaeh.js → index-tqdjsvrm.js} +3 -3
- package/dist/cli/{index-xrsfbr31.js → index-vz6cjc6f.js} +3 -3
- package/dist/cli/{index-jn08bcaa.js → index-vzd1a06e.js} +3 -3
- package/dist/cli/{index-b9pz70d0.js → index-yd36m8y5.js} +2 -2
- package/dist/cli/{index-4rjw95qw.js → index-z7k42wpb.js} +4 -4
- package/dist/cli/index.js +36 -36
- package/dist/cli/{knowledge-escalator-02z57h57.js → knowledge-escalator-n0k4zjgy.js} +12 -12
- package/dist/cli/{knowledge-events-yqfwghad.js → knowledge-events-ywqkth1n.js} +10 -10
- package/dist/cli/{knowledge-link-9gx2djyd.js → knowledge-link-rv41fqwp.js} +4 -4
- package/dist/cli/{knowledge-store-85rcyme4.js → knowledge-store-0svng5s4.js} +5 -5
- package/dist/cli/{knowledge-validator-0fax9dq4.js → knowledge-validator-s2ddkgxg.js} +7 -7
- package/dist/cli/{mcp-rt2qxyc1.js → mcp-2xhqha8p.js} +1 -1
- package/dist/cli/{model-preflight-yf57x1x7.js → model-preflight-zz20c518.js} +35 -35
- package/dist/cli/{pending-delegations-3emmnz2y.js → pending-delegations-72k8zeye.js} +7 -7
- package/dist/cli/{pr-subscriptions-mpwtbpdd.js → pr-subscriptions-9eftakcv.js} +7 -7
- package/dist/cli/{pr-workflow-gate-0qzc2dbr.js → pr-workflow-gate-90j60vp7.js} +35 -35
- package/dist/cli/{runner-x8sbydkw.js → runner-zhnj544n.js} +5 -5
- package/dist/cli/{scan-cursor-w0m9zjrr.js → scan-cursor-swrnhys8.js} +6 -6
- package/dist/cli/{schema-0w9q2h6j.js → schema-g5qw8zv2.js} +1 -1
- package/dist/cli/{scope-persistence-3mc615t3.js → scope-persistence-nd32ryps.js} +11 -11
- package/dist/cli/{server-h36cgr2m.js → server-nez5478r.js} +35 -35
- package/dist/cli/{skill-generator-qaskynvt.js → skill-generator-tr5femt4.js} +14 -14
- package/dist/cli/{snapshot-coordination-init-j226zrvz.js → snapshot-coordination-init-c82a9gd1.js} +35 -35
- package/dist/cli/{speckit-checkoff-6xa1f1qr.js → speckit-checkoff-fr3jnnah.js} +3 -3
- package/dist/cli/{telemetry-d0j31j5d.js → telemetry-wb54p3hn.js} +1 -1
- package/dist/cli/{worktree-collision-ownership-frtjkhms.js → worktree-collision-ownership-q0kn3g0k.js} +7 -7
- package/dist/cli/{worktree-isolation-c07qk28m.js → worktree-isolation-zz26e66q.js} +35 -35
- package/dist/context-map/post-agent-update.d.ts +16 -1
- package/dist/host/v2/agents-commands.d.ts +41 -0
- package/dist/host/v2/events.d.ts +39 -0
- package/dist/host/v2/guidance.d.ts +30 -0
- package/dist/host/v2/hooks.d.ts +31 -0
- package/dist/host/v2/setup.d.ts +61 -0
- package/dist/host/v2/tools.d.ts +41 -0
- package/dist/host/v2/types.d.ts +291 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +7 -6
- package/dist/types/context-map.d.ts +1 -1
- package/package.json +1 -1
package/dist/cli/{snapshot-coordination-init-j226zrvz.js → snapshot-coordination-init-c82a9gd1.js}
RENAMED
|
@@ -8,74 +8,74 @@ 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-jh7s55h1.js";
|
|
12
|
+
import"./index-vzd1a06e.js";
|
|
13
|
+
import"./index-pah0zema.js";
|
|
14
|
+
import"./index-vz6cjc6f.js";
|
|
15
15
|
import"./index-vx8a8w3b.js";
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
16
|
+
import"./index-rysj8e3x.js";
|
|
17
|
+
import"./index-9dp2zhvj.js";
|
|
18
18
|
import"./index-txdagbh7.js";
|
|
19
|
-
import"./index-
|
|
19
|
+
import"./index-1xedjkyy.js";
|
|
20
20
|
import"./index-rdec0y3z.js";
|
|
21
|
-
import"./index-
|
|
22
|
-
import"./index-
|
|
23
|
-
import"./index-
|
|
24
|
-
import"./index-
|
|
21
|
+
import"./index-p9y1t8tk.js";
|
|
22
|
+
import"./index-s51gwkgd.js";
|
|
23
|
+
import"./index-63pm3wa2.js";
|
|
24
|
+
import"./index-5jm1nkv7.js";
|
|
25
25
|
import"./index-mf19yqss.js";
|
|
26
|
-
import"./index-
|
|
26
|
+
import"./index-rszpn3zf.js";
|
|
27
27
|
import"./index-cjapb4hy.js";
|
|
28
28
|
import"./index-a8gvszr2.js";
|
|
29
29
|
import"./index-pt7h91zc.js";
|
|
30
30
|
import"./index-q7sjgr1y.js";
|
|
31
|
-
import"./index-
|
|
32
|
-
import"./index-
|
|
31
|
+
import"./index-82q5nv5h.js";
|
|
32
|
+
import"./index-ebhxj1dk.js";
|
|
33
33
|
import"./index-6b295cas.js";
|
|
34
34
|
import"./index-9nyqt3kb.js";
|
|
35
|
-
import"./index-
|
|
35
|
+
import"./index-crkx7tta.js";
|
|
36
36
|
import"./index-zsrtt42s.js";
|
|
37
|
-
import"./index-
|
|
38
|
-
import"./index-
|
|
39
|
-
import"./index-
|
|
37
|
+
import"./index-1wfychd6.js";
|
|
38
|
+
import"./index-tqdjsvrm.js";
|
|
39
|
+
import"./index-q2nydddh.js";
|
|
40
40
|
import"./index-g4fs6z4e.js";
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-
|
|
41
|
+
import"./index-2y4v88xp.js";
|
|
42
|
+
import"./index-91ajdtc6.js";
|
|
43
|
+
import"./index-jgkcsykf.js";
|
|
44
44
|
import"./index-m9zzj4ee.js";
|
|
45
45
|
import"./index-bejxkee0.js";
|
|
46
46
|
import"./index-2s7dvzff.js";
|
|
47
|
-
import"./index-
|
|
48
|
-
import"./index-
|
|
47
|
+
import"./index-rw8bq18z.js";
|
|
48
|
+
import"./index-ats43ttc.js";
|
|
49
49
|
import"./index-rtry5xyf.js";
|
|
50
|
-
import"./index-
|
|
50
|
+
import"./index-h3sty9qx.js";
|
|
51
51
|
import"./index-kbkk7vnh.js";
|
|
52
52
|
import"./index-0725jpp7.js";
|
|
53
|
-
import"./index-
|
|
54
|
-
import"./index-
|
|
55
|
-
import"./index-
|
|
53
|
+
import"./index-gjnt7sfc.js";
|
|
54
|
+
import"./index-z7k42wpb.js";
|
|
55
|
+
import"./index-yd36m8y5.js";
|
|
56
56
|
import"./index-m1qy7f1e.js";
|
|
57
57
|
import"./index-cc1vzq4m.js";
|
|
58
58
|
import"./index-9hag235h.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-9kaerjtj.js";
|
|
63
|
+
import"./index-q1ymkdnc.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-r06m1jps.js";
|
|
67
|
+
import"./index-e3ddxfh4.js";
|
|
68
|
+
import"./index-bt11gbj8.js";
|
|
69
69
|
import"./index-t7hmqgjy.js";
|
|
70
|
-
import"./index-
|
|
70
|
+
import"./index-qx0npayj.js";
|
|
71
71
|
import"./index-fzpt2djt.js";
|
|
72
72
|
import"./index-ejhxgyvm.js";
|
|
73
73
|
import"./index-7g4c7s5r.js";
|
|
74
74
|
import"./index-r6e8syr3.js";
|
|
75
75
|
import"./index-gx2vp8gx.js";
|
|
76
|
-
import"./index-
|
|
76
|
+
import"./index-322afz1z.js";
|
|
77
77
|
import"./index-zxdawwc7.js";
|
|
78
|
-
import"./index-
|
|
78
|
+
import"./index-0vhaejxa.js";
|
|
79
79
|
import"./index-bstjg81q.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-
|
|
10
|
+
} from "./index-1wfychd6.js";
|
|
11
11
|
import"./index-ejhxgyvm.js";
|
|
12
12
|
import"./index-7g4c7s5r.js";
|
|
13
13
|
import"./index-r6e8syr3.js";
|
|
14
|
-
import"./index-
|
|
14
|
+
import"./index-322afz1z.js";
|
|
15
15
|
import"./index-zxdawwc7.js";
|
|
16
|
-
import"./index-
|
|
16
|
+
import"./index-0vhaejxa.js";
|
|
17
17
|
import"./index-bstjg81q.js";
|
|
18
18
|
import"./index-bk5tah7q.js";
|
|
19
19
|
import"./index-gknz3bv1.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
scanDelegationFallbacksForRecovery,
|
|
15
15
|
scanDelegationsForRecovery
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-2y4v88xp.js";
|
|
17
17
|
import"./index-bejxkee0.js";
|
|
18
18
|
import"./index-2s7dvzff.js";
|
|
19
19
|
import"./index-m1qy7f1e.js";
|
|
@@ -22,15 +22,15 @@ import"./index-9hag235h.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-9kaerjtj.js";
|
|
26
|
+
import"./index-q1ymkdnc.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-r06m1jps.js";
|
|
30
|
+
import"./index-e3ddxfh4.js";
|
|
31
|
+
import"./index-bt11gbj8.js";
|
|
32
32
|
import"./index-t7hmqgjy.js";
|
|
33
|
-
import"./index-
|
|
33
|
+
import"./index-qx0npayj.js";
|
|
34
34
|
import {
|
|
35
35
|
canonicalRootKeyFresh
|
|
36
36
|
} from "./index-fzpt2djt.js";
|
|
@@ -21,76 +21,76 @@ import {
|
|
|
21
21
|
sanitizeWorktreeTaskId,
|
|
22
22
|
standardWorktreeByCallID,
|
|
23
23
|
standardWorktreeSerializationSessions
|
|
24
|
-
} from "./index-
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
27
|
-
import"./index-
|
|
24
|
+
} from "./index-jh7s55h1.js";
|
|
25
|
+
import"./index-vzd1a06e.js";
|
|
26
|
+
import"./index-pah0zema.js";
|
|
27
|
+
import"./index-vz6cjc6f.js";
|
|
28
28
|
import"./index-vx8a8w3b.js";
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
29
|
+
import"./index-rysj8e3x.js";
|
|
30
|
+
import"./index-9dp2zhvj.js";
|
|
31
31
|
import"./index-txdagbh7.js";
|
|
32
|
-
import"./index-
|
|
32
|
+
import"./index-1xedjkyy.js";
|
|
33
33
|
import"./index-rdec0y3z.js";
|
|
34
|
-
import"./index-
|
|
35
|
-
import"./index-
|
|
36
|
-
import"./index-
|
|
37
|
-
import"./index-
|
|
34
|
+
import"./index-p9y1t8tk.js";
|
|
35
|
+
import"./index-s51gwkgd.js";
|
|
36
|
+
import"./index-63pm3wa2.js";
|
|
37
|
+
import"./index-5jm1nkv7.js";
|
|
38
38
|
import"./index-mf19yqss.js";
|
|
39
|
-
import"./index-
|
|
39
|
+
import"./index-rszpn3zf.js";
|
|
40
40
|
import"./index-cjapb4hy.js";
|
|
41
41
|
import"./index-a8gvszr2.js";
|
|
42
42
|
import"./index-pt7h91zc.js";
|
|
43
43
|
import"./index-q7sjgr1y.js";
|
|
44
|
-
import"./index-
|
|
45
|
-
import"./index-
|
|
44
|
+
import"./index-82q5nv5h.js";
|
|
45
|
+
import"./index-ebhxj1dk.js";
|
|
46
46
|
import"./index-6b295cas.js";
|
|
47
47
|
import"./index-9nyqt3kb.js";
|
|
48
|
-
import"./index-
|
|
48
|
+
import"./index-crkx7tta.js";
|
|
49
49
|
import"./index-zsrtt42s.js";
|
|
50
|
-
import"./index-
|
|
51
|
-
import"./index-
|
|
52
|
-
import"./index-
|
|
50
|
+
import"./index-1wfychd6.js";
|
|
51
|
+
import"./index-tqdjsvrm.js";
|
|
52
|
+
import"./index-q2nydddh.js";
|
|
53
53
|
import"./index-g4fs6z4e.js";
|
|
54
|
-
import"./index-
|
|
55
|
-
import"./index-
|
|
56
|
-
import"./index-
|
|
54
|
+
import"./index-2y4v88xp.js";
|
|
55
|
+
import"./index-91ajdtc6.js";
|
|
56
|
+
import"./index-jgkcsykf.js";
|
|
57
57
|
import"./index-m9zzj4ee.js";
|
|
58
58
|
import"./index-bejxkee0.js";
|
|
59
59
|
import"./index-2s7dvzff.js";
|
|
60
|
-
import"./index-
|
|
61
|
-
import"./index-
|
|
60
|
+
import"./index-rw8bq18z.js";
|
|
61
|
+
import"./index-ats43ttc.js";
|
|
62
62
|
import"./index-rtry5xyf.js";
|
|
63
63
|
import {
|
|
64
64
|
resolveWorktreeIsolationConfig
|
|
65
|
-
} from "./index-
|
|
65
|
+
} from "./index-h3sty9qx.js";
|
|
66
66
|
import"./index-kbkk7vnh.js";
|
|
67
67
|
import"./index-0725jpp7.js";
|
|
68
|
-
import"./index-
|
|
69
|
-
import"./index-
|
|
70
|
-
import"./index-
|
|
68
|
+
import"./index-gjnt7sfc.js";
|
|
69
|
+
import"./index-z7k42wpb.js";
|
|
70
|
+
import"./index-yd36m8y5.js";
|
|
71
71
|
import"./index-m1qy7f1e.js";
|
|
72
72
|
import"./index-cc1vzq4m.js";
|
|
73
73
|
import"./index-9hag235h.js";
|
|
74
74
|
import"./index-ry16d01s.js";
|
|
75
75
|
import"./index-rdm3px0g.js";
|
|
76
76
|
import"./index-7pmbnjvj.js";
|
|
77
|
-
import"./index-
|
|
78
|
-
import"./index-
|
|
77
|
+
import"./index-9kaerjtj.js";
|
|
78
|
+
import"./index-q1ymkdnc.js";
|
|
79
79
|
import"./index-vzm6zre7.js";
|
|
80
80
|
import"./index-ae75rja9.js";
|
|
81
|
-
import"./index-
|
|
82
|
-
import"./index-
|
|
83
|
-
import"./index-
|
|
81
|
+
import"./index-r06m1jps.js";
|
|
82
|
+
import"./index-e3ddxfh4.js";
|
|
83
|
+
import"./index-bt11gbj8.js";
|
|
84
84
|
import"./index-t7hmqgjy.js";
|
|
85
|
-
import"./index-
|
|
85
|
+
import"./index-qx0npayj.js";
|
|
86
86
|
import"./index-fzpt2djt.js";
|
|
87
87
|
import"./index-ejhxgyvm.js";
|
|
88
88
|
import"./index-7g4c7s5r.js";
|
|
89
89
|
import"./index-r6e8syr3.js";
|
|
90
90
|
import"./index-gx2vp8gx.js";
|
|
91
|
-
import"./index-
|
|
91
|
+
import"./index-322afz1z.js";
|
|
92
92
|
import"./index-zxdawwc7.js";
|
|
93
|
-
import"./index-
|
|
93
|
+
import"./index-0vhaejxa.js";
|
|
94
94
|
import"./index-bstjg81q.js";
|
|
95
95
|
import"./index-bk5tah7q.js";
|
|
96
96
|
import"./index-gknz3bv1.js";
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* No `bun:` imports — this module is Node-ESM-loadable (Invariant 2).
|
|
17
17
|
*/
|
|
18
18
|
import * as fs from 'node:fs';
|
|
19
|
-
import type { ContextMap } from '../types/context-map';
|
|
19
|
+
import type { ContextMap, DecisionEntry } from '../types/context-map';
|
|
20
20
|
import { extractFileSummary } from './file-summary';
|
|
21
21
|
import { appendDecision, appendTaskHistory, createEmptyContextMap, loadContextMap, saveContextMap } from './persistence';
|
|
22
22
|
/**
|
|
@@ -49,6 +49,21 @@ export interface PostAgentUpdateParams {
|
|
|
49
49
|
/** Project root directory */
|
|
50
50
|
directory: string;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Allocate the next durable decision ID for a context map.
|
|
54
|
+
*
|
|
55
|
+
* Derived from the decisions already present in the map being updated:
|
|
56
|
+
* the max numeric suffix among existing `A<n>` IDs + 1, computed with BigInt
|
|
57
|
+
* so suffixes past 2^53 stay exact. Mirrors `allocateSummaryId` in
|
|
58
|
+
* src/summaries/manager.ts (issue #2576 / #2720): after a process restart
|
|
59
|
+
* the map is reloaded from disk, so allocation continues after the persisted
|
|
60
|
+
* IDs instead of restarting at A1 and duplicating identity in
|
|
61
|
+
* `.swarm/context-map.json`.
|
|
62
|
+
*
|
|
63
|
+
* IDs that do not match `^A\d+$` (foreign prefixes, non-strings) are ignored
|
|
64
|
+
* rather than crashing allocation.
|
|
65
|
+
*/
|
|
66
|
+
export declare function allocateDecisionId(decisions: readonly DecisionEntry[]): string;
|
|
52
67
|
/**
|
|
53
68
|
* Test-only dependency-injection seam. Production code calls through this
|
|
54
69
|
* object so tests can replace the underlying implementations without
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2 agent + command registration (issue #3004 / #2910).
|
|
3
|
+
*
|
|
4
|
+
* Single-source design: the v1 `config` hook IS the shared builder. This
|
|
5
|
+
* module invokes `hooks.config` against a synthetic `opencodeConfig` object
|
|
6
|
+
* and registers the resulting `.agent` / `.command` tables onto the v2 agent
|
|
7
|
+
* and command domains — the auto-select promotions and the entire v1 command table are reused with
|
|
8
|
+
* zero extraction from src/index.ts (the v1 TUI shortcut block stays
|
|
9
|
+
* byte-pinned). DELTA: the lane-permission mutations the v1 hook writes into
|
|
10
|
+
* the config object (applyLanePermissions) have no v2 destination here and
|
|
11
|
+
* are dropped - external-directory lane scoping is a #2910 follow-up row in
|
|
12
|
+
* docs/host/v2-hook-inventory.md.
|
|
13
|
+
*
|
|
14
|
+
* Mappings (docs/host/v2-hook-inventory.md rows 4-5):
|
|
15
|
+
* - v1 AgentConfig → v2 Agent.Info: `prompt`→`system`, `mode` preserved
|
|
16
|
+
* (multi-swarm `*_architect` primary semantics — AGENTS.md invariant 11),
|
|
17
|
+
* `model` string 'provider/model' → Model.Ref, `tools` allowlist →
|
|
18
|
+
* per-tool allow permission rules (best-effort; see inventory).
|
|
19
|
+
* - Entries the v1 hook marks `disable: true` (auto-select disabling the
|
|
20
|
+
* `build`/`plan` built-ins) are REMOVED on the v2 agent editor.
|
|
21
|
+
* - v1 command entries `{template, description}` → v2 CommandDefinition
|
|
22
|
+
* whose `execute` submits the expanded template through
|
|
23
|
+
* `ctx.session.prompt` (TUI-side $ARGUMENTS expansion is replaced by
|
|
24
|
+
* direct substitution — inventory row).
|
|
25
|
+
*/
|
|
26
|
+
import type { V1HooksSubset, V2AgentInfo, V2PluginContext, V2Registration } from './types';
|
|
27
|
+
interface V1AgentConfigLike {
|
|
28
|
+
mode?: unknown;
|
|
29
|
+
prompt?: unknown;
|
|
30
|
+
description?: unknown;
|
|
31
|
+
model?: unknown;
|
|
32
|
+
tools?: unknown;
|
|
33
|
+
disable?: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** Map one v1 AgentConfig entry to a v2 Agent.Info. */
|
|
36
|
+
export declare function mapV1AgentToV2(name: string, config: V1AgentConfigLike): V2AgentInfo;
|
|
37
|
+
/** Expand a v1 TUI template for a v2 command execution. */
|
|
38
|
+
export declare function expandV1Template(template: string, argumentsText: string): string;
|
|
39
|
+
/** Register agents + commands via the synthetic config-hook run. */
|
|
40
|
+
export declare function registerV2AgentsAndCommands(ctx: V2PluginContext, hooks: V1HooksSubset, directory: string, registrations: V2Registration[]): Promise<void>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2 event subscription pump (issue #3004 / #2910).
|
|
3
|
+
*
|
|
4
|
+
* Consumes the v2 host's event stream (async iterable from
|
|
5
|
+
* `ctx.event.subscribe()`) and maps host events onto the plugin's existing v1
|
|
6
|
+
* event handler. The pump runs detached; the returned stop function breaks
|
|
7
|
+
* iteration (called by the v2 cleanup).
|
|
8
|
+
*
|
|
9
|
+
* Event-name map (full table in docs/host/v2-hook-inventory.md row 14):
|
|
10
|
+
*
|
|
11
|
+
* v2 event → v1 handler input
|
|
12
|
+
* ------------------------+-------------------------------------------
|
|
13
|
+
* session.idle → { type: 'session.idle', properties }
|
|
14
|
+
* session.status.updated → { type: 'session.idle', properties } (state watch)
|
|
15
|
+
* session.text.delta → { type: 'message.part.updated', properties }
|
|
16
|
+
* session.text.ended → { type: 'message.updated', properties }
|
|
17
|
+
* session.tool.called → { type: 'message.part.updated', properties }
|
|
18
|
+
* session.tool.success → { type: 'message.updated', properties }
|
|
19
|
+
* session.tool.failed → { type: 'message.updated', properties }
|
|
20
|
+
* session.execution.failed → { type: 'session.error', properties }
|
|
21
|
+
* session.deleted / session.created → same-name v1 types
|
|
22
|
+
*
|
|
23
|
+
* Unmapped event types are counted in a bounded debug log, never silently
|
|
24
|
+
* assumed. This module is named deferred-/startDeferred- per the C6 await
|
|
25
|
+
* convention (its awaits live in deferred-named helpers).
|
|
26
|
+
*/
|
|
27
|
+
import type { V1HooksSubset, V2EventEnvelope, V2PluginContext } from './types';
|
|
28
|
+
interface MappedEvent {
|
|
29
|
+
type: string;
|
|
30
|
+
properties: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
/** Map a v2 event envelope onto the v1 handler input (or undefined). */
|
|
33
|
+
export declare function mapV2EventToV1(envelope: V2EventEnvelope): MappedEvent | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Start the detached event pump. Returns a stop function. Named per the C6
|
|
36
|
+
* convention (deferred).
|
|
37
|
+
*/
|
|
38
|
+
export declare function startDeferredEventPump(ctx: V2PluginContext, hooks: V1HooksSubset): () => void;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2 guidance delivery — the session `context` hook (issue #3004 / #2910, R1
|
|
3
|
+
* in ADR-0003).
|
|
4
|
+
*
|
|
5
|
+
* Transport mapping (docs/host/v2-hook-inventory.md row 6/7):
|
|
6
|
+
*
|
|
7
|
+
* - The v1 MESSAGES transform chain runs first against a translated view of
|
|
8
|
+
* `event.messages`. On v1 its guidance injections ride USER-role carrier
|
|
9
|
+
* messages (`swarm-guidance:*` ids, fenced text) because the v1 host drops
|
|
10
|
+
* role:'system' entries (#2526). The v2 host renders `event.system`
|
|
11
|
+
* natively, so those carriers are RE-HOMED here into `event.system` as
|
|
12
|
+
* text parts and removed from the message list — each guidance unit has
|
|
13
|
+
* exactly one destination.
|
|
14
|
+
* - The v1 SYSTEM transform chain then runs with a translated input and its
|
|
15
|
+
* (unfenced) strings are appended as further `event.system` text parts —
|
|
16
|
+
* exactly what the v1 system surface receives.
|
|
17
|
+
*
|
|
18
|
+
* `event.agent` is an Agent.Info-shaped object on v2; it is normalized to a
|
|
19
|
+
* name before any v1 agent comparison (frozen C4 header requirement).
|
|
20
|
+
*
|
|
21
|
+
* Part-kind mapping (R10): text parts map 1:1; non-text content kinds
|
|
22
|
+
* (media, tool-call, tool-result, reasoning, step-start, compaction, effort)
|
|
23
|
+
* are preserved untouched on their message — the v1 chain's steps only read
|
|
24
|
+
* and write `type === 'text'` parts.
|
|
25
|
+
*/
|
|
26
|
+
import type { V1HooksSubset, V2PluginContext, V2Registration, V2SessionContextEvent } from './types';
|
|
27
|
+
/** The v2 context hook body. */
|
|
28
|
+
export declare function onV2ContextEvent(event: V2SessionContextEvent, hooks: V1HooksSubset, directory: string): Promise<void>;
|
|
29
|
+
/** Register the context hook on the v2 session domain. */
|
|
30
|
+
export declare function registerV2ContextHook(ctx: V2PluginContext, hooks: V1HooksSubset, directory: string, registrations: V2Registration[]): Promise<void>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2 lifecycle hook adapters — tool execute.before/after, session compaction,
|
|
3
|
+
* session prompt (issue #3004 / #2910).
|
|
4
|
+
*
|
|
5
|
+
* Each adapter wraps the SAME v1 handler functions with payload translation:
|
|
6
|
+
*
|
|
7
|
+
* - `tool.execute.before`: v2 `{tool, sessionID, agent, messageID, id,
|
|
8
|
+
* input}` → v1 `{tool, sessionID, callID, agent}` + mutable output
|
|
9
|
+
* `{args}`; the v1 chain's `output.args` mutation is applied back onto
|
|
10
|
+
* `event.input` in place.
|
|
11
|
+
* - `tool.execute.after`: v1 `{title, output, metadata}` mutable output is
|
|
12
|
+
* fed a best-effort translation of the v2 completed/error result.
|
|
13
|
+
* (v2 has no title surface; the translation targets the fields the v1
|
|
14
|
+
* toolAfter chain reads.)
|
|
15
|
+
* - `compaction`: translated session/model identity; the v1 customizer's
|
|
16
|
+
* directive output has no v1→v2 mapping yet — the turn-generation advance
|
|
17
|
+
* and the customizer still run (inventory row).
|
|
18
|
+
* - `prompt`: the v1 `chat.message` chain (model fallback preflight,
|
|
19
|
+
* delegation ledger, cache-cohort seeding) runs against a translated
|
|
20
|
+
* envelope. The #2989 chat-boundary model override writes
|
|
21
|
+
* `output.message.model`, which the v2 SessionPrompt has no field for —
|
|
22
|
+
* v1-only for now (inventory row).
|
|
23
|
+
*
|
|
24
|
+
* Denial semantics: a v1 hook throw propagates as the v2 hook error
|
|
25
|
+
* (fail-closed preserved; documented v2 delta in the inventory).
|
|
26
|
+
*/
|
|
27
|
+
import type { V1HooksSubset, V2PluginContext, V2Registration } from './types';
|
|
28
|
+
/** Register the tool hooks (execute.before/after). */
|
|
29
|
+
export declare function registerV2ToolHooks(ctx: V2PluginContext, hooks: V1HooksSubset, directory: string, registrations: V2Registration[]): Promise<void>;
|
|
30
|
+
/** Register the compaction + prompt session hooks. */
|
|
31
|
+
export declare function registerV2SessionHooks(ctx: V2PluginContext, hooks: V1HooksSubset, directory: string, registrations: V2Registration[]): Promise<void>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode 2 (v2 plugin API) setup entrypoint — issue #3004 / #2910.
|
|
3
|
+
*
|
|
4
|
+
* The v2 host validates the plugin's default export against
|
|
5
|
+
* `{ id, setup | effect }` (sst/opencode v2 line, packages/core/src/plugin/
|
|
6
|
+
* module.ts). The v1 `server()` path stays byte-stable for OpenCode 1 hosts;
|
|
7
|
+
* this module is what `setup(ctx)` runs on OpenCode 2 hosts.
|
|
8
|
+
*
|
|
9
|
+
* Architecture (ADR-0003): the adapter reuses the SAME initialization core and
|
|
10
|
+
* the SAME v1 hook set — it only TRANSLATES registration surfaces:
|
|
11
|
+
*
|
|
12
|
+
* - tools: `hooks.tool` map → `ctx.tool.transform(editor.add)` (one source,
|
|
13
|
+
* `buildPluginToolObject`; no parallel name list — enforced by
|
|
14
|
+
* scripts/check-tool-registration.ts);
|
|
15
|
+
* - agents + commands: the v1 `config` hook is invoked against a synthetic
|
|
16
|
+
* `opencodeConfig` object, making the config hook itself the shared
|
|
17
|
+
* builder (auto-select promotions and the command table are reused
|
|
18
|
+
* verbatim — zero extraction from src/index.ts);
|
|
19
|
+
* - guidance: the v1 messages/system transform chains run against a
|
|
20
|
+
* translated session event; the #2526 USER-role guidance carriers the
|
|
21
|
+
* messages chain materializes are re-homed into `event.system` (v2 renders
|
|
22
|
+
* system natively — the user→system transport delta is recorded in
|
|
23
|
+
* docs/host/v2-hook-inventory.md);
|
|
24
|
+
* - lifecycle: tool execute.before/after, compaction, prompt hooks and the
|
|
25
|
+
* event subscription are wired with payload translation; `setup` returns
|
|
26
|
+
* a single Cleanup that disposes every Registration and runs the v1
|
|
27
|
+
* dispose teardown.
|
|
28
|
+
*
|
|
29
|
+
* Init boundedness (AGENTS.md invariant 1): every `await` in src/host/** is
|
|
30
|
+
* either on the same physical line as a `withTimeout(` call or inside a
|
|
31
|
+
* function named deferred-…/cleanup-… (the frozen C6 source-scan convention).
|
|
32
|
+
* The shared initialization wrapper (`deps.runInit`) is injected by
|
|
33
|
+
* src/index.ts so no module cycle is created and the FATAL-fail surface stays
|
|
34
|
+
* with the v1 wrapper.
|
|
35
|
+
*/
|
|
36
|
+
import type { V1HooksSubset, V2PluginContext } from './types';
|
|
37
|
+
/** Dependencies injected from src/index.ts (avoids an index↔host cycle). */
|
|
38
|
+
export interface V2SetupDependencies {
|
|
39
|
+
/** The shared server-initialization wrapper (begin-interval → init core → schedule deferred → end-interval). */
|
|
40
|
+
runInit: (input: unknown) => Promise<V1HooksSubset>;
|
|
41
|
+
}
|
|
42
|
+
/** Normalize a v2 agent reference (Agent.Info object or bare string) to a name. */
|
|
43
|
+
export declare function normalizeV2AgentRef(agent: unknown): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Register the plugin on an OpenCode 2 host. Throws propagate to the v2 host
|
|
46
|
+
* (which skips the plugin) after a FATAL stderr line from the shared wrapper —
|
|
47
|
+
* the same posture the v1 server() path has (issue #675).
|
|
48
|
+
*/
|
|
49
|
+
export declare function openCodeSwarmV2Setup(ctx: V2PluginContext, deps: V2SetupDependencies): Promise<() => Promise<void>>;
|
|
50
|
+
/**
|
|
51
|
+
* Seed the v1 session state a translated hook event implies. Shared by the
|
|
52
|
+
* guidance/prompt/tool-hook adapters so the v1 chain sees the same session
|
|
53
|
+
* identity the v1 host would have seeded via chat.message.
|
|
54
|
+
*/
|
|
55
|
+
export declare function seedV1SessionState(sessionID: string | undefined, agentRef: unknown, directory: string): string | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Convert a v1 zod args shape into the JSON-schema-ish `input` value the v2
|
|
58
|
+
* tool editor accepts. Cached per tool at registration time (transforms must
|
|
59
|
+
* be synchronous and cheap).
|
|
60
|
+
*/
|
|
61
|
+
export declare function v2ToolInputSchema(args: unknown): unknown;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2 tool registration — issue #3004 / #2910.
|
|
3
|
+
*
|
|
4
|
+
* Registers every tool from the SAME map the v1 host receives
|
|
5
|
+
* (`hooks.tool`, built by `buildPluginToolObject` from `TOOL_MANIFEST` — the
|
|
6
|
+
* single source; scripts/check-tool-registration.ts enforces that no parallel
|
|
7
|
+
* name list exists here).
|
|
8
|
+
*
|
|
9
|
+
* The execute adapter synthesizes the FULL v1 `ToolContext` (AGENTS.md
|
|
10
|
+
* invariant 4: `.swarm/` must resolve against the project root captured at
|
|
11
|
+
* setup, never `process.cwd()`): `directory`/`worktree` are injected, the v2
|
|
12
|
+
* `signal` becomes the v1 `abort`, `progress` bridges v1 `metadata({title?,
|
|
13
|
+
* metadata?})`, and `ask` bridges to the v2 permission domain when available
|
|
14
|
+
* and fails closed otherwise.
|
|
15
|
+
*
|
|
16
|
+
* Result mapping: v1 `string | {title?, output, metadata?, attachments?}` →
|
|
17
|
+
* v2 `{content, metadata}` (v2 has no title/attachment surface — inventory
|
|
18
|
+
* row in docs/host/v2-hook-inventory.md).
|
|
19
|
+
*/
|
|
20
|
+
import type { V1HooksSubset, V2PluginContext, V2Registration, V2ToolContext } from './types';
|
|
21
|
+
interface V1ToolContextShape {
|
|
22
|
+
sessionID: string;
|
|
23
|
+
messageID: string;
|
|
24
|
+
agent: string;
|
|
25
|
+
directory: string;
|
|
26
|
+
worktree: string;
|
|
27
|
+
abort: AbortSignal;
|
|
28
|
+
metadata: (input: {
|
|
29
|
+
title?: string;
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
}) => void;
|
|
32
|
+
ask: (input: unknown) => Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
/** Synthesize the v1 ToolContext the plugin's tools expect (R2 in ADR-0003). */
|
|
35
|
+
declare function synthesizeV1ToolContext(context: V2ToolContext, projectRoot: string, permissionBridge: ((input: unknown) => Promise<void>) | undefined): V1ToolContextShape;
|
|
36
|
+
/** Register all v1 tools on the v2 tool domain. */
|
|
37
|
+
export declare function registerV2Tools(ctx: V2PluginContext, hooks: V1HooksSubset, projectRoot: string, registrations: V2Registration[]): Promise<void>;
|
|
38
|
+
export declare const _internals: {
|
|
39
|
+
synthesizeV1ToolContext: typeof synthesizeV1ToolContext;
|
|
40
|
+
};
|
|
41
|
+
export {};
|