opencode-swarm 7.200.1 → 7.200.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/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/cli/{attest-task-sg8b5a5j.js → attest-task-k7b87zk8.js} +29 -29
- package/dist/cli/{auto-checkpoint-bywgxh27.js → auto-checkpoint-pzsrkk2q.js} +4 -4
- package/dist/cli/{checkpoint-k2092cbw.js → checkpoint-sb3f8jfv.js} +9 -9
- package/dist/cli/{coder-settlement-y0hkcngn.js → coder-settlement-5jh2erx1.js} +6 -6
- package/dist/cli/{config-doctor-0fnrwkga.js → config-doctor-8keyw62b.js} +8 -8
- package/dist/cli/{core-mfyaj8b4.js → core-7240e0vh.js} +2 -2
- package/dist/cli/{curator-1s64jkc3.js → curator-1jhwv0ce.js} +29 -29
- package/dist/cli/{curator-drift-famx6p6s.js → curator-drift-r4yttpe9.js} +6 -6
- package/dist/cli/{curator-llm-factory-vya4epq6.js → curator-llm-factory-wcv6x9pq.js} +29 -29
- package/dist/cli/{doctor-knowledge-receipt-phase-id-v4y6pbek.js → doctor-knowledge-receipt-phase-id-1v5fx0rk.js} +5 -5
- package/dist/cli/{evidence-summary-service-rd7y6yjq.js → evidence-summary-service-zkbzsjbf.js} +10 -10
- package/dist/cli/{gate-evidence-kama66h5.js → gate-evidence-j4jemrv7.js} +3 -3
- package/dist/cli/{guardrail-explain-8fkhq0cg.js → guardrail-explain-g95j8z79.js} +30 -30
- package/dist/cli/{guardrail-log-gdj19fq5.js → guardrail-log-0xjg12y1.js} +3 -3
- package/dist/cli/{guardrail-reset-bmg6czzk.js → guardrail-reset-rgbt0zgy.js} +29 -29
- package/dist/cli/{hive-promoter-ychygdgc.js → hive-promoter-f0rzkbww.js} +29 -29
- package/dist/cli/{index-1v277wxc.js → index-0vv7vzp8.js} +1 -1
- package/dist/cli/{index-wgf1780e.js → index-1j14kbak.js} +1 -1
- package/dist/cli/{index-nawp90n7.js → index-275w8rfx.js} +3 -3
- package/dist/cli/{index-0tygsk8b.js → index-2nq7h5cj.js} +4 -4
- package/dist/cli/{index-3exe6k66.js → index-2r6d72m6.js} +2 -2
- package/dist/cli/{index-sz67z90q.js → index-44z8mv05.js} +1 -1
- package/dist/cli/{index-bn3aa5q1.js → index-5c6zse74.js} +4 -4
- package/dist/cli/{index-rzkmg02a.js → index-5g0nrnyd.js} +4 -4
- package/dist/cli/{index-p6v544jn.js → index-5ph10kdd.js} +5 -3
- package/dist/cli/{index-xyvsdn07.js → index-5q3hg1pk.js} +19 -0
- package/dist/cli/{index-2w5grmmj.js → index-6r93sy2k.js} +2 -2
- package/dist/cli/{index-b4kdms7x.js → index-7rpcbnp8.js} +1 -1
- package/dist/cli/{index-3zspah3v.js → index-8f7wgcpz.js} +1 -1
- package/dist/cli/{index-z9mysg5m.js → index-8x90j950.js} +1 -1
- package/dist/cli/{index-2hnnkj64.js → index-95k0fkhp.js} +112 -67
- package/dist/cli/{index-s8eac99p.js → index-9cffn82s.js} +2 -2
- package/dist/cli/{index-b0d8ra32.js → index-9dbxpr2j.js} +1 -1
- package/dist/cli/{index-dgyddtje.js → index-bcn30s7q.js} +6 -6
- package/dist/cli/{index-qzakbjcg.js → index-bft3404e.js} +1 -1
- package/dist/cli/{index-w2bhrp6z.js → index-dgv5xy0b.js} +6 -6
- package/dist/cli/{index-2dm42tgp.js → index-dygkt0ne.js} +31 -31
- package/dist/cli/{index-2m740hyt.js → index-eac47j2q.js} +1 -1
- package/dist/cli/{index-parkaa70.js → index-encs4mdm.js} +3 -3
- package/dist/cli/{index-sva5swrs.js → index-j2x2ajz7.js} +2 -2
- package/dist/cli/{index-pe77h482.js → index-mff4szvk.js} +2 -2
- package/dist/cli/{index-51dw4bjc.js → index-pmcvznag.js} +2 -2
- package/dist/cli/{index-12h2rtdj.js → index-q49vqmzh.js} +2 -2
- package/dist/cli/{index-3020n6d9.js → index-tmhwpzdg.js} +1 -1
- package/dist/cli/{index-0ptf66x5.js → index-v5nh2fhv.js} +2 -2
- package/dist/cli/{index-vtkgg2qn.js → index-vyb5xf36.js} +3 -3
- package/dist/cli/{index-f6nrw8am.js → index-x48h0zsw.js} +29 -29
- package/dist/cli/{index-th667k1y.js → index-xxvman1m.js} +3 -3
- package/dist/cli/{index-qaqyq25k.js → index-y46b7a5g.js} +6 -6
- package/dist/cli/{index-c9g3hkjz.js → index-yg4923ga.js} +3 -3
- package/dist/cli/index.js +30 -30
- package/dist/cli/{knowledge-escalator-zxd76jna.js → knowledge-escalator-s25vhfrt.js} +8 -8
- package/dist/cli/{knowledge-events-z8h0wmaw.js → knowledge-events-qd39qwy1.js} +6 -6
- package/dist/cli/{knowledge-store-g2gm13s8.js → knowledge-store-y02hfxq9.js} +1 -1
- package/dist/cli/{knowledge-validator-2sech2sx.js → knowledge-validator-d7ysvdmw.js} +2 -2
- package/dist/cli/{mcp-t88363gj.js → mcp-5py3efbs.js} +1 -1
- package/dist/cli/{model-preflight-akj8g1m2.js → model-preflight-2zqrjnnh.js} +29 -29
- package/dist/cli/{pending-delegations-bqp6b6as.js → pending-delegations-9rt59skt.js} +3 -3
- package/dist/cli/{pr-subscriptions-wxjvkg56.js → pr-subscriptions-q51ze9rn.js} +3 -3
- package/dist/cli/{pr-workflow-gate-2wcrfa6g.js → pr-workflow-gate-3vj3f93g.js} +29 -29
- package/dist/cli/{scan-cursor-8br4x41t.js → scan-cursor-0fr17e5q.js} +2 -2
- package/dist/cli/{schema-mc419qh8.js → schema-10j951xn.js} +1 -1
- package/dist/cli/{scope-persistence-5gyjt70q.js → scope-persistence-jewjr6zg.js} +5 -5
- package/dist/cli/{server-bp247fqe.js → server-0s65qjx7.js} +29 -29
- package/dist/cli/{skill-generator-q4afafh3.js → skill-generator-7hxqq63r.js} +9 -9
- package/dist/cli/{snapshot-coordination-init-b4kmrgh7.js → snapshot-coordination-init-kh4dayg5.js} +29 -29
- package/dist/cli/{speckit-checkoff-1v02b2dt.js → speckit-checkoff-n8s920fs.js} +3 -3
- package/dist/cli/{workspace-snapshot-93gzfac2.js → workspace-snapshot-veqaqrjr.js} +2 -2
- package/dist/cli/{worktree-collision-ownership-84m9f5an.js → worktree-collision-ownership-7cz0a2sr.js} +4 -4
- package/dist/cli/{worktree-isolation-xwbszhja.js → worktree-isolation-4dbza44f.js} +29 -29
- package/dist/config/schema.d.ts +2 -0
- package/dist/full-auto/code-mode-program.d.ts +31 -0
- package/dist/full-auto/critic-tools.d.ts +18 -0
- package/dist/full-auto/policy.d.ts +17 -0
- package/dist/hooks/code-mode-wrapper.d.ts +28 -0
- package/dist/hooks/full-auto-intercept.d.ts +5 -0
- package/dist/hooks/full-auto-permission.d.ts +25 -0
- package/dist/hooks/pr-workflow-gate.d.ts +21 -1
- package/dist/hooks/utils.d.ts +15 -0
- package/dist/host/v2/agents-commands.d.ts +133 -7
- package/dist/host/v2/hook-budget.d.ts +37 -0
- package/dist/host/v2/hooks.d.ts +25 -2
- package/dist/host/v2/model-apply.d.ts +16 -6
- package/dist/host/v2/setup.d.ts +38 -0
- package/dist/host/v2/types.d.ts +27 -3
- package/dist/index.d.ts +15 -0
- package/dist/index.js +102 -98
- package/opencode-swarm.schema.json +8 -0
- package/package.json +1 -1
|
@@ -33,20 +33,20 @@ import {
|
|
|
33
33
|
sanitizeSlug,
|
|
34
34
|
selectCandidateEntries,
|
|
35
35
|
writeEvalStub
|
|
36
|
-
} from "./index-
|
|
36
|
+
} from "./index-xxvman1m.js";
|
|
37
37
|
import"./index-q7sjgr1y.js";
|
|
38
|
-
import"./index-
|
|
39
|
-
import"./index-
|
|
38
|
+
import"./index-v5nh2fhv.js";
|
|
39
|
+
import"./index-encs4mdm.js";
|
|
40
40
|
import"./index-m9zzj4ee.js";
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
41
|
+
import"./index-5q3hg1pk.js";
|
|
42
|
+
import"./index-44z8mv05.js";
|
|
43
43
|
import"./index-v1h70r3y.js";
|
|
44
44
|
import"./index-rtry5xyf.js";
|
|
45
|
-
import"./index-
|
|
45
|
+
import"./index-pmcvznag.js";
|
|
46
46
|
import"./index-g22dps7x.js";
|
|
47
47
|
import"./index-0725jpp7.js";
|
|
48
48
|
import"./index-ypxq0x7r.js";
|
|
49
|
-
import"./index-
|
|
49
|
+
import"./index-5c6zse74.js";
|
|
50
50
|
import"./index-vzm6zre7.js";
|
|
51
51
|
import"./index-ae75rja9.js";
|
|
52
52
|
import"./index-g57p8p1k.js";
|
|
@@ -59,11 +59,11 @@ import"./index-ejhxgyvm.js";
|
|
|
59
59
|
import"./index-7g4c7s5r.js";
|
|
60
60
|
import"./index-epzadpmm.js";
|
|
61
61
|
import"./index-3t46mez1.js";
|
|
62
|
-
import"./index-
|
|
62
|
+
import"./index-tmhwpzdg.js";
|
|
63
63
|
import"./index-sp2cxpaq.js";
|
|
64
64
|
import"./index-qbxk2rn6.js";
|
|
65
65
|
import"./index-zgwm4ryv.js";
|
|
66
|
-
import"./index-
|
|
66
|
+
import"./index-5ph10kdd.js";
|
|
67
67
|
import"./index-xfzkq1k4.js";
|
|
68
68
|
import"./index-bk5tah7q.js";
|
|
69
69
|
import"./index-gknz3bv1.js";
|
package/dist/cli/{snapshot-coordination-init-b4kmrgh7.js → snapshot-coordination-init-kh4dayg5.js}
RENAMED
|
@@ -8,51 +8,51 @@ import {
|
|
|
8
8
|
markSnapshotCoordinationClosing,
|
|
9
9
|
retrySnapshotCoordinationInitialization,
|
|
10
10
|
startSnapshotCoordinationInitialization
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-95k0fkhp.js";
|
|
12
12
|
import"./index-s3w41p1x.js";
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-
|
|
15
|
-
import"./index-
|
|
13
|
+
import"./index-bft3404e.js";
|
|
14
|
+
import"./index-yg4923ga.js";
|
|
15
|
+
import"./index-mff4szvk.js";
|
|
16
16
|
import"./index-5snwc3dz.js";
|
|
17
17
|
import"./index-axqyjreb.js";
|
|
18
18
|
import"./index-txdagbh7.js";
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
19
|
+
import"./index-bcn30s7q.js";
|
|
20
|
+
import"./index-8x90j950.js";
|
|
21
21
|
import"./index-rdec0y3z.js";
|
|
22
|
-
import"./index-
|
|
23
|
-
import"./index-
|
|
24
|
-
import"./index-
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
22
|
+
import"./index-q49vqmzh.js";
|
|
23
|
+
import"./index-y46b7a5g.js";
|
|
24
|
+
import"./index-xxvman1m.js";
|
|
25
|
+
import"./index-0vv7vzp8.js";
|
|
26
|
+
import"./index-1j14kbak.js";
|
|
27
27
|
import"./index-x5jwegqw.js";
|
|
28
|
-
import"./index-
|
|
29
|
-
import"./index-
|
|
28
|
+
import"./index-7rpcbnp8.js";
|
|
29
|
+
import"./index-2nq7h5cj.js";
|
|
30
30
|
import"./index-pt7h91zc.js";
|
|
31
31
|
import"./index-q7sjgr1y.js";
|
|
32
|
-
import"./index-
|
|
33
|
-
import"./index-
|
|
32
|
+
import"./index-5g0nrnyd.js";
|
|
33
|
+
import"./index-dgv5xy0b.js";
|
|
34
34
|
import"./index-6b295cas.js";
|
|
35
35
|
import"./index-9nyqt3kb.js";
|
|
36
|
-
import"./index-
|
|
36
|
+
import"./index-vyb5xf36.js";
|
|
37
37
|
import"./index-v3bmwmqw.js";
|
|
38
38
|
import"./index-8mrentmw.js";
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
39
|
+
import"./index-8f7wgcpz.js";
|
|
40
|
+
import"./index-j2x2ajz7.js";
|
|
41
|
+
import"./index-2r6d72m6.js";
|
|
42
42
|
import"./index-spggmr30.js";
|
|
43
|
-
import"./index-
|
|
44
|
-
import"./index-
|
|
43
|
+
import"./index-v5nh2fhv.js";
|
|
44
|
+
import"./index-encs4mdm.js";
|
|
45
45
|
import"./index-m9zzj4ee.js";
|
|
46
|
-
import"./index-
|
|
47
|
-
import"./index-
|
|
46
|
+
import"./index-5q3hg1pk.js";
|
|
47
|
+
import"./index-44z8mv05.js";
|
|
48
48
|
import"./index-v1h70r3y.js";
|
|
49
49
|
import"./index-rtry5xyf.js";
|
|
50
|
-
import"./index-
|
|
50
|
+
import"./index-pmcvznag.js";
|
|
51
51
|
import"./index-g22dps7x.js";
|
|
52
52
|
import"./index-0725jpp7.js";
|
|
53
|
-
import"./index-
|
|
53
|
+
import"./index-eac47j2q.js";
|
|
54
54
|
import"./index-s9y49avf.js";
|
|
55
|
-
import"./index-
|
|
55
|
+
import"./index-9cffn82s.js";
|
|
56
56
|
import"./index-na6ph1fp.js";
|
|
57
57
|
import"./index-ves1rtqt.js";
|
|
58
58
|
import"./index-ry16d01s.js";
|
|
@@ -61,7 +61,7 @@ import"./index-nzfq1ms2.js";
|
|
|
61
61
|
import"./index-7pmbnjvj.js";
|
|
62
62
|
import"./index-9rwhas09.js";
|
|
63
63
|
import"./index-ypxq0x7r.js";
|
|
64
|
-
import"./index-
|
|
64
|
+
import"./index-5c6zse74.js";
|
|
65
65
|
import"./index-vzm6zre7.js";
|
|
66
66
|
import"./index-ae75rja9.js";
|
|
67
67
|
import"./index-g57p8p1k.js";
|
|
@@ -74,11 +74,11 @@ import"./index-ejhxgyvm.js";
|
|
|
74
74
|
import"./index-7g4c7s5r.js";
|
|
75
75
|
import"./index-epzadpmm.js";
|
|
76
76
|
import"./index-3t46mez1.js";
|
|
77
|
-
import"./index-
|
|
77
|
+
import"./index-tmhwpzdg.js";
|
|
78
78
|
import"./index-sp2cxpaq.js";
|
|
79
79
|
import"./index-qbxk2rn6.js";
|
|
80
80
|
import"./index-zgwm4ryv.js";
|
|
81
|
-
import"./index-
|
|
81
|
+
import"./index-5ph10kdd.js";
|
|
82
82
|
import"./index-xfzkq1k4.js";
|
|
83
83
|
import"./index-bk5tah7q.js";
|
|
84
84
|
import"./index-gknz3bv1.js";
|
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
parseSpeckitTasksContent,
|
|
8
8
|
propagateSpeckitCheckoff,
|
|
9
9
|
writeSpeckitCheckoffLedger
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-8f7wgcpz.js";
|
|
11
11
|
import"./index-ejhxgyvm.js";
|
|
12
12
|
import"./index-7g4c7s5r.js";
|
|
13
13
|
import"./index-epzadpmm.js";
|
|
14
|
-
import"./index-
|
|
14
|
+
import"./index-tmhwpzdg.js";
|
|
15
15
|
import"./index-sp2cxpaq.js";
|
|
16
16
|
import"./index-qbxk2rn6.js";
|
|
17
17
|
import"./index-zgwm4ryv.js";
|
|
18
|
-
import"./index-
|
|
18
|
+
import"./index-5ph10kdd.js";
|
|
19
19
|
import"./index-xfzkq1k4.js";
|
|
20
20
|
import"./index-bk5tah7q.js";
|
|
21
21
|
import"./index-gknz3bv1.js";
|
|
@@ -52,8 +52,8 @@ import {
|
|
|
52
52
|
shouldSkipSnapshot,
|
|
53
53
|
switchPrFeedbackTrackingCandidateAsync,
|
|
54
54
|
workspaceSnapshotMatches
|
|
55
|
-
} from "./index-
|
|
56
|
-
import"./index-
|
|
55
|
+
} from "./index-0vv7vzp8.js";
|
|
56
|
+
import"./index-5q3hg1pk.js";
|
|
57
57
|
import"./index-te9hq2f4.js";
|
|
58
58
|
import"./index-epzadpmm.js";
|
|
59
59
|
import"./index-sp2cxpaq.js";
|
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
WORKTREE_PROVISIONING_OWNER_LEASE_MS,
|
|
7
7
|
removeWorktreeProvisioningOwner,
|
|
8
8
|
scanWorktreeProvisioningOwnersForRecovery
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-7rpcbnp8.js";
|
|
10
10
|
import {
|
|
11
11
|
scanDelegationFallbacksForRecovery,
|
|
12
12
|
scanDelegationsForRecovery
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-2nq7h5cj.js";
|
|
14
14
|
import {
|
|
15
15
|
scanWorktreeMergeFailuresForRecovery
|
|
16
16
|
} from "./index-v3bmwmqw.js";
|
|
17
|
-
import"./index-
|
|
17
|
+
import"./index-5q3hg1pk.js";
|
|
18
18
|
import"./index-s9y49avf.js";
|
|
19
19
|
import"./index-na6ph1fp.js";
|
|
20
20
|
import"./index-ves1rtqt.js";
|
|
@@ -23,7 +23,7 @@ import"./index-rdm3px0g.js";
|
|
|
23
23
|
import"./index-nzfq1ms2.js";
|
|
24
24
|
import"./index-7pmbnjvj.js";
|
|
25
25
|
import"./index-ypxq0x7r.js";
|
|
26
|
-
import"./index-
|
|
26
|
+
import"./index-5c6zse74.js";
|
|
27
27
|
import"./index-vzm6zre7.js";
|
|
28
28
|
import"./index-ae75rja9.js";
|
|
29
29
|
import"./index-g57p8p1k.js";
|
|
@@ -25,53 +25,53 @@ import {
|
|
|
25
25
|
sanitizeWorktreeTaskId,
|
|
26
26
|
standardWorktreeByCallID,
|
|
27
27
|
standardWorktreeSerializationSessions
|
|
28
|
-
} from "./index-
|
|
28
|
+
} from "./index-95k0fkhp.js";
|
|
29
29
|
import"./index-s3w41p1x.js";
|
|
30
|
-
import"./index-
|
|
31
|
-
import"./index-
|
|
32
|
-
import"./index-
|
|
30
|
+
import"./index-bft3404e.js";
|
|
31
|
+
import"./index-yg4923ga.js";
|
|
32
|
+
import"./index-mff4szvk.js";
|
|
33
33
|
import"./index-5snwc3dz.js";
|
|
34
34
|
import"./index-axqyjreb.js";
|
|
35
35
|
import"./index-txdagbh7.js";
|
|
36
|
-
import"./index-
|
|
37
|
-
import"./index-
|
|
36
|
+
import"./index-bcn30s7q.js";
|
|
37
|
+
import"./index-8x90j950.js";
|
|
38
38
|
import"./index-rdec0y3z.js";
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-
|
|
39
|
+
import"./index-q49vqmzh.js";
|
|
40
|
+
import"./index-y46b7a5g.js";
|
|
41
|
+
import"./index-xxvman1m.js";
|
|
42
|
+
import"./index-0vv7vzp8.js";
|
|
43
|
+
import"./index-1j14kbak.js";
|
|
44
44
|
import"./index-x5jwegqw.js";
|
|
45
|
-
import"./index-
|
|
46
|
-
import"./index-
|
|
45
|
+
import"./index-7rpcbnp8.js";
|
|
46
|
+
import"./index-2nq7h5cj.js";
|
|
47
47
|
import"./index-pt7h91zc.js";
|
|
48
48
|
import"./index-q7sjgr1y.js";
|
|
49
|
-
import"./index-
|
|
50
|
-
import"./index-
|
|
49
|
+
import"./index-5g0nrnyd.js";
|
|
50
|
+
import"./index-dgv5xy0b.js";
|
|
51
51
|
import"./index-6b295cas.js";
|
|
52
52
|
import"./index-9nyqt3kb.js";
|
|
53
|
-
import"./index-
|
|
53
|
+
import"./index-vyb5xf36.js";
|
|
54
54
|
import"./index-v3bmwmqw.js";
|
|
55
55
|
import"./index-8mrentmw.js";
|
|
56
|
-
import"./index-
|
|
57
|
-
import"./index-
|
|
58
|
-
import"./index-
|
|
56
|
+
import"./index-8f7wgcpz.js";
|
|
57
|
+
import"./index-j2x2ajz7.js";
|
|
58
|
+
import"./index-2r6d72m6.js";
|
|
59
59
|
import"./index-spggmr30.js";
|
|
60
|
-
import"./index-
|
|
61
|
-
import"./index-
|
|
60
|
+
import"./index-v5nh2fhv.js";
|
|
61
|
+
import"./index-encs4mdm.js";
|
|
62
62
|
import"./index-m9zzj4ee.js";
|
|
63
|
-
import"./index-
|
|
64
|
-
import"./index-
|
|
63
|
+
import"./index-5q3hg1pk.js";
|
|
64
|
+
import"./index-44z8mv05.js";
|
|
65
65
|
import"./index-v1h70r3y.js";
|
|
66
66
|
import"./index-rtry5xyf.js";
|
|
67
67
|
import {
|
|
68
68
|
resolveWorktreeIsolationConfig
|
|
69
|
-
} from "./index-
|
|
69
|
+
} from "./index-pmcvznag.js";
|
|
70
70
|
import"./index-g22dps7x.js";
|
|
71
71
|
import"./index-0725jpp7.js";
|
|
72
|
-
import"./index-
|
|
72
|
+
import"./index-eac47j2q.js";
|
|
73
73
|
import"./index-s9y49avf.js";
|
|
74
|
-
import"./index-
|
|
74
|
+
import"./index-9cffn82s.js";
|
|
75
75
|
import"./index-na6ph1fp.js";
|
|
76
76
|
import"./index-ves1rtqt.js";
|
|
77
77
|
import"./index-ry16d01s.js";
|
|
@@ -80,7 +80,7 @@ import"./index-nzfq1ms2.js";
|
|
|
80
80
|
import"./index-7pmbnjvj.js";
|
|
81
81
|
import"./index-9rwhas09.js";
|
|
82
82
|
import"./index-ypxq0x7r.js";
|
|
83
|
-
import"./index-
|
|
83
|
+
import"./index-5c6zse74.js";
|
|
84
84
|
import"./index-vzm6zre7.js";
|
|
85
85
|
import"./index-ae75rja9.js";
|
|
86
86
|
import"./index-g57p8p1k.js";
|
|
@@ -93,11 +93,11 @@ import"./index-ejhxgyvm.js";
|
|
|
93
93
|
import"./index-7g4c7s5r.js";
|
|
94
94
|
import"./index-epzadpmm.js";
|
|
95
95
|
import"./index-3t46mez1.js";
|
|
96
|
-
import"./index-
|
|
96
|
+
import"./index-tmhwpzdg.js";
|
|
97
97
|
import"./index-sp2cxpaq.js";
|
|
98
98
|
import"./index-qbxk2rn6.js";
|
|
99
99
|
import"./index-zgwm4ryv.js";
|
|
100
|
-
import"./index-
|
|
100
|
+
import"./index-5ph10kdd.js";
|
|
101
101
|
import"./index-xfzkq1k4.js";
|
|
102
102
|
import"./index-bk5tah7q.js";
|
|
103
103
|
import"./index-gknz3bv1.js";
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -3380,6 +3380,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
3380
3380
|
trusted_domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
3381
3381
|
protected_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
3382
3382
|
allow_defaults: z.ZodDefault<z.ZodBoolean>;
|
|
3383
|
+
trust_code_mode_wrapper: z.ZodOptional<z.ZodBoolean>;
|
|
3383
3384
|
}, z.core.$strip>>;
|
|
3384
3385
|
denials: z.ZodDefault<z.ZodObject<{
|
|
3385
3386
|
max_consecutive: z.ZodDefault<z.ZodNumber>;
|
|
@@ -3402,6 +3403,7 @@ export declare const PluginConfigSchema: z.ZodObject<{
|
|
|
3402
3403
|
max_consecutive_dispatch_failures: z.ZodDefault<z.ZodNumber>;
|
|
3403
3404
|
total_timeout_ms: z.ZodDefault<z.ZodNumber>;
|
|
3404
3405
|
cleanup_timeout_ms: z.ZodDefault<z.ZodNumber>;
|
|
3406
|
+
hook_timeout_ms: z.ZodOptional<z.ZodNumber>;
|
|
3405
3407
|
}, z.core.$strip>>;
|
|
3406
3408
|
}, z.core.$strip>>>;
|
|
3407
3409
|
pr_feedback_loop: z.ZodOptional<z.ZodObject<{
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strict recogniser for the only OpenCode v2 Code Mode programs Full-Auto may
|
|
3
|
+
* pass through without a critic (#3446).
|
|
4
|
+
*
|
|
5
|
+
* The Code Mode sandbox is not limited to hooked tools: it also exposes
|
|
6
|
+
* `fetch`, `Function`, `crypto`, `URL`, `Promise`, `JSON`, `Math` and `Date`
|
|
7
|
+
* (observed on OpenCode 2.1.4), so "the wrapper only routes nested tool calls"
|
|
8
|
+
* is false in general. A denylist over arbitrary JS cannot be made safe
|
|
9
|
+
* (`Function(...)`, computed member access, string concatenation). Instead,
|
|
10
|
+
* this module ACCEPTS a tiny grammar and rejects everything else:
|
|
11
|
+
*
|
|
12
|
+
* program := ws [`return` ws] [`await` ws] callee ws `(` ws [value] ws `)` ws [`;`] ws
|
|
13
|
+
* callee := `search` | `tools` segment+
|
|
14
|
+
* segment := `.` ident | `[` ws string ws `]`
|
|
15
|
+
* value := string | number | `true` | `false` | `null` | object | array
|
|
16
|
+
* object := `{` ws [pair (ws `,` ws pair)* [ws `,`]] ws `}`
|
|
17
|
+
* pair := (ident | string) ws `:` ws value
|
|
18
|
+
*
|
|
19
|
+
* That is exactly one tool call whose argument is plain data: no identifiers
|
|
20
|
+
* other than the callee path and object keys, so no other call, no member
|
|
21
|
+
* access on a value, no computed keys, no templates, comments, regexes or
|
|
22
|
+
* functions can appear. The nested call itself is still dispatched through the
|
|
23
|
+
* same tool.execute.before chain under its own name and classified there.
|
|
24
|
+
* Anything else (multi-statement, loops, variables, `fetch`, ...) returns
|
|
25
|
+
* false and Full-Auto keeps escalating it to the critic.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* True only when `code` is exactly one `tools.<path>(<plain data>)` or
|
|
29
|
+
* `search(<plain data>)` call, optionally prefixed by `return` and/or `await`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isSingleToolCallProgram(code: unknown): boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools denied to the Full-Auto critic agent (#3446).
|
|
3
|
+
*
|
|
4
|
+
* The critic's task is "verify using read-only tools only", but `shell`/`bash`
|
|
5
|
+
* are not read-only and — worse for latency — let the critic wander: on
|
|
6
|
+
* OpenCode 2 every observed critic session ran `grep -rl` / `find ~` over the
|
|
7
|
+
* user's home directory until the oversight deadline killed it, so no verdict
|
|
8
|
+
* was ever produced and Full-Auto paused. Shell is denied alongside the
|
|
9
|
+
* mutating tools; the critic keeps read/grep/glob and the swarm's own
|
|
10
|
+
* read-only verification tools (diff, evidence, test_impact, symbols).
|
|
11
|
+
*
|
|
12
|
+
* Limit, stated plainly: `execute` (OpenCode 2 Code Mode, which reaches plugin
|
|
13
|
+
* tools such as diff/evidence/test_impact) stays available to the critic by
|
|
14
|
+
* design, and its sandbox also exposes `fetch`/`Function`, which no hook sees.
|
|
15
|
+
* This denial list therefore bounds shell and mutating tools only; it is not a
|
|
16
|
+
* sandbox. A restricted critic Code Mode surface is a follow-up.
|
|
17
|
+
*/
|
|
18
|
+
export declare const FULL_AUTO_CRITIC_DENIED_TOOLS: Readonly<Record<string, false>>;
|
|
@@ -31,6 +31,8 @@ export interface FullAutoPolicyConfig {
|
|
|
31
31
|
trusted_domains?: string[];
|
|
32
32
|
protected_paths?: string[];
|
|
33
33
|
allow_defaults?: boolean;
|
|
34
|
+
/** Opt in to passing the marked OpenCode 2 Code Mode wrapper (#3446). */
|
|
35
|
+
trust_code_mode_wrapper?: boolean;
|
|
34
36
|
};
|
|
35
37
|
oversight?: {
|
|
36
38
|
on_high_risk_action?: boolean;
|
|
@@ -52,6 +54,21 @@ export interface FullAutoClassifierInput {
|
|
|
52
54
|
planSummary?: string;
|
|
53
55
|
changedFiles?: string[];
|
|
54
56
|
fullAutoConfig: FullAutoPolicyConfig | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* True for a call the OpenCode v2 adapter marked as the host's Code Mode
|
|
59
|
+
* `execute` wrapper (see `src/hooks/code-mode-wrapper.ts`). The mark is not
|
|
60
|
+
* proof of provenance (a same-named third-party tool is marked too), so it
|
|
61
|
+
* is only honoured with the operator opt-in `trust_code_mode_wrapper`.
|
|
62
|
+
*/
|
|
63
|
+
hostCodeModeWrapper?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* True when this `swarm_command` is on the explicit read-only allowlist
|
|
66
|
+
* (`READ_ONLY_SWARM_COMMANDS`) AND the tool's own policy allows it. Computed
|
|
67
|
+
* by the permission hook so this module stays free of the command
|
|
68
|
+
* registry's import graph. Absent or false means the call is escalated like
|
|
69
|
+
* any unclassified tool.
|
|
70
|
+
*/
|
|
71
|
+
swarmCommandReadOnly?: boolean;
|
|
55
72
|
pluginConfig?: {
|
|
56
73
|
memory?: {
|
|
57
74
|
enabled?: boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-call marker for the OpenCode v2 Code Mode `execute` wrapper (#3446).
|
|
3
|
+
*
|
|
4
|
+
* OpenCode v2 reaches plugin and MCP tools through one host-owned `execute`
|
|
5
|
+
* tool whose input is a JS program (`{ code }`); every nested `tools.<name>()`
|
|
6
|
+
* call is dispatched through the tool.execute.before chain under its own name.
|
|
7
|
+
* Only the v2 adapter sees the host's real tool id, so only the adapter can
|
|
8
|
+
* mark a call. The mark is NOT proof of provenance: a v2 tool event is just
|
|
9
|
+
* {tool, sessionID, agent, messageID, id, input}, so a plugin- or MCP-provided
|
|
10
|
+
* tool that shares the name `execute` and takes a string `code` is marked too.
|
|
11
|
+
* That is why the Full-Auto classifier only honours the mark when the operator
|
|
12
|
+
* opts in (`permission_policy.trust_code_mode_wrapper`, default false) and the
|
|
13
|
+
* program is exactly one plain-data tool call. On a v1 host nothing is marked.
|
|
14
|
+
*
|
|
15
|
+
* Side-channel shape mirrors `src/sandbox/skip-state.ts` (keyed by
|
|
16
|
+
* session + call, bounded, FIFO-evicted) so session state stays bounded
|
|
17
|
+
* (invariant 8).
|
|
18
|
+
*/
|
|
19
|
+
/** Hard cap on retained marks; oldest are evicted first. */
|
|
20
|
+
export declare const MAX_CODE_MODE_WRAPPER_MARKS = 256;
|
|
21
|
+
/** Record that this exact call is the host's Code Mode `execute` wrapper. */
|
|
22
|
+
export declare function recordCodeModeWrapperCall(sessionID: string, callID: string): void;
|
|
23
|
+
/** True only for a call the v2 adapter marked as the Code Mode wrapper. */
|
|
24
|
+
export declare function isCodeModeWrapperCall(sessionID: string, callID: string | undefined): boolean;
|
|
25
|
+
/** Drop a mark once the call has completed. */
|
|
26
|
+
export declare function clearCodeModeWrapperCall(sessionID: string, callID: string): void;
|
|
27
|
+
/** Test seam: drop every mark. */
|
|
28
|
+
export declare function resetCodeModeWrapperCalls(): void;
|
|
@@ -69,4 +69,9 @@ export declare function createFullAutoInterceptHook(config: PluginConfig, direct
|
|
|
69
69
|
messages?: MessageWithParts[];
|
|
70
70
|
}) => Promise<void>;
|
|
71
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* Builds additional context to append to the autonomous oversight prompt.
|
|
74
|
+
* This provides the architect's question/output for the critic to evaluate.
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildCriticContext(architectOutput: string, escalationType: 'phase_completion' | 'question'): string;
|
|
72
77
|
export {};
|
|
@@ -35,6 +35,31 @@ export interface FullAutoPermissionHookOptions {
|
|
|
35
35
|
config: PluginConfig;
|
|
36
36
|
directory: string;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* `/swarm` commands that only read and display state. Deliberately SEPARATE from
|
|
40
|
+
* the tool policy's agent allowlist, which also contains state-changing and
|
|
41
|
+
* process-spawning commands (`auto-proceed`, `guardrail reset`, `attest`,
|
|
42
|
+
* `ci-simulate`, `gate-audit`, `review`, `post-mortem`, `pr subscribe`,
|
|
43
|
+
* `sdd project`, `*-opt` runs, ...). Canonical keys.
|
|
44
|
+
*
|
|
45
|
+
* The invariant is: no change to source, plan, gates or any operator-visible
|
|
46
|
+
* state, and no process spawn or network egress. Some of these commands do
|
|
47
|
+
* refresh bookkeeping under `.swarm/` (e.g. `report` writes `.swarm/swarm.db`
|
|
48
|
+
* and a cohort manifest, `memory *` create `.swarm/memory/memory.db`, and
|
|
49
|
+
* commands that load the plan may regenerate `plan.md`): writes are confined
|
|
50
|
+
* to `.swarm/`, which `tests/unit/hooks/full-auto-swarm-command-policy-3446.test.ts`
|
|
51
|
+
* pins by running every key and diffing the tree outside `.swarm/`. Keys that
|
|
52
|
+
* were shown to spawn processes (`diagnose`, `doctor tools`) or contact
|
|
53
|
+
* GitHub (`pr status`) are NOT in this set.
|
|
54
|
+
*/
|
|
55
|
+
export declare const READ_ONLY_SWARM_COMMANDS: ReadonlySet<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Is this `swarm_command` call on the read-only allowlist AND permitted by the
|
|
58
|
+
* tool's own policy for this exact command + args? Anything else (unknown,
|
|
59
|
+
* human-only, restricted, bad args, or any state-changing command) returns
|
|
60
|
+
* false and falls through to the normal escalation.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isSwarmCommandReadOnly(args: unknown): boolean;
|
|
38
63
|
export declare function createFullAutoPermissionHook(options: FullAutoPermissionHookOptions): {
|
|
39
64
|
toolBefore: (input: {
|
|
40
65
|
tool: string;
|
|
@@ -31,7 +31,7 @@ export { PR_REVIEW_BASE_DIMENSION_IDS };
|
|
|
31
31
|
export declare const PR_REVIEW_REQUIRED_MICRO_LANE_IDS: ("auth-identity-secrets" | "untrusted-input-boundaries" | "subprocess-platform" | "concurrency-state" | "dependencies-build-release" | "api-schema-migrations" | "test-infrastructure" | "ui-accessibility-i18n" | "privacy-observability" | "generated-provenance" | "unclassified-risk")[];
|
|
32
32
|
export type PrReviewBaseDimensionId = (typeof PR_REVIEW_BASE_DIMENSION_IDS)[number];
|
|
33
33
|
export type PrWorkflowMode = 'PR_REVIEW' | 'PR_FEEDBACK';
|
|
34
|
-
export type PrReviewLaneValidationPredicate = 'batch.validated_at' | 'batch.expected_lane_unique' | 'record.missing' | 'record.duplicate_lane' | 'record.subagent_session_id' | 'record.duplicate_subagent_session_id' | 'record.forbidden_subagent_session_id' | 'record.created_at' | 'record.workflow_lane' | 'record.owned_workflow_lanes' | 'record.mode' | 'record.pr_head_sha' | 'record.git_head' | 'record.status' | 'result.output_degraded' | 'result.transcript_incomplete' | 'result.chars' | 'result.digest' | 'result.output_ref' | 'artifact.readable' | 'artifact.ref' | 'artifact.batch_id' | 'artifact.lane_id' | 'artifact.mode' | 'artifact.session_id' | 'artifact.parent_session_id' | 'artifact.agent' | 'artifact.role' | 'artifact.source' | 'artifact.workflow_lane_record' | 'artifact.workflow_lane_expected' | 'artifact.pr_head_sha' | 'artifact.git_head' | 'artifact.revision_digest' | 'record.scope' | 'artifact.scope' | 'artifact.digest' | 'artifact.chars' | 'discovery.header' | 'discovery.row' | 'discovery.coverage' | 'discovery.duplicate_evidence' | 'reviewer.verdict_rows' | 'critic.verdict_rows';
|
|
34
|
+
export type PrReviewLaneValidationPredicate = 'batch.validated_at' | 'batch.expected_lane_unique' | 'record.missing' | 'record.duplicate_lane' | 'record.subagent_session_id' | 'record.duplicate_subagent_session_id' | 'record.forbidden_subagent_session_id' | 'record.created_at' | 'record.workflow_lane' | 'record.owned_workflow_lanes' | 'record.mode' | 'record.normalized_agent' | 'record.pr_head_sha' | 'record.git_head' | 'record.status' | 'result.output_degraded' | 'result.transcript_incomplete' | 'result.chars' | 'result.digest' | 'result.output_ref' | 'artifact.readable' | 'artifact.ref' | 'artifact.batch_id' | 'artifact.lane_id' | 'artifact.mode' | 'artifact.session_id' | 'artifact.parent_session_id' | 'artifact.agent' | 'artifact.role' | 'artifact.source' | 'artifact.workflow_lane_record' | 'artifact.workflow_lane_expected' | 'artifact.pr_head_sha' | 'artifact.git_head' | 'artifact.revision_digest' | 'record.scope' | 'artifact.scope' | 'artifact.digest' | 'artifact.chars' | 'discovery.header' | 'discovery.row' | 'discovery.coverage' | 'discovery.duplicate_evidence' | 'reviewer.verdict_rows' | 'critic.verdict_rows';
|
|
35
35
|
export interface PrReviewLaneValidationFailure {
|
|
36
36
|
predicate: PrReviewLaneValidationPredicate;
|
|
37
37
|
expected: string;
|
|
@@ -182,6 +182,15 @@ export interface PrWorkflowLaneSpec {
|
|
|
182
182
|
laneId?: string;
|
|
183
183
|
workflowLane?: string;
|
|
184
184
|
reviewItemIds?: string[];
|
|
185
|
+
/**
|
|
186
|
+
* The agent this lane declares it will run (threaded from the dispatch
|
|
187
|
+
* lane's `agent`). The critic-phase recorder asserts its canonical role
|
|
188
|
+
* (issue #3340 AC1): PR_REVIEW critic batches are refused unless every
|
|
189
|
+
* lane declares an agent whose resolved role is exactly `critic`, so the
|
|
190
|
+
* role rule holds at the persisting boundary instead of only at the
|
|
191
|
+
* dispatch call site (#3310). Persisted on the batch record for audit.
|
|
192
|
+
*/
|
|
193
|
+
agent?: string;
|
|
185
194
|
/**
|
|
186
195
|
* Complete dimension/family set this lane covers under a consolidated depth
|
|
187
196
|
* tier. Must contain workflowLane. Absent means the singleton [workflowLane].
|
|
@@ -425,6 +434,8 @@ interface PrReviewValidationBatchRecord {
|
|
|
425
434
|
laneId: string;
|
|
426
435
|
workflowLane: string;
|
|
427
436
|
reviewItemIds?: string[];
|
|
437
|
+
/** Declared lane agent (issue #3340 audit trail; critic batches refuse non-critic roles at record time). */
|
|
438
|
+
agent?: string;
|
|
428
439
|
}>;
|
|
429
440
|
validatedAt: string;
|
|
430
441
|
}
|
|
@@ -1357,6 +1368,14 @@ export declare function recordPrReviewValidationBatch(directory: string, session
|
|
|
1357
1368
|
* closed so the prompt can never misrepresent the stamped receipt.
|
|
1358
1369
|
*/
|
|
1359
1370
|
expectedPresentationOrder?: 'A' | 'B';
|
|
1371
|
+
/**
|
|
1372
|
+
* Issue #3340 AC1: the generated-agent-name registry the dispatch
|
|
1373
|
+
* caller resolves lane roles against. When supplied, the critic-phase
|
|
1374
|
+
* admission below resolves declared agents through the identical
|
|
1375
|
+
* strict resolver, so the gate verdict matches the dispatch verdict
|
|
1376
|
+
* for prefixed generated names (e.g. `mega_critic`).
|
|
1377
|
+
*/
|
|
1378
|
+
generatedAgentNames?: readonly string[];
|
|
1360
1379
|
}): Promise<PrWorkflowGateState>;
|
|
1361
1380
|
/**
|
|
1362
1381
|
* Validate that every declared council obligation has a successful retry, and
|
|
@@ -1835,6 +1854,7 @@ export declare const _test_exports: {
|
|
|
1835
1854
|
laneId: string;
|
|
1836
1855
|
workflowLane: string;
|
|
1837
1856
|
reviewItemIds?: string[] | undefined;
|
|
1857
|
+
agent?: string | undefined;
|
|
1838
1858
|
}[];
|
|
1839
1859
|
validatedAt: string;
|
|
1840
1860
|
}[] | undefined;
|
package/dist/hooks/utils.d.ts
CHANGED
|
@@ -25,6 +25,21 @@ type HookHandler<I, O> = (input: I, output: O) => Promise<void>;
|
|
|
25
25
|
export declare function markFailClosed<I, O>(fn: HookHandler<I, O>): HookHandler<I, O> & {
|
|
26
26
|
__failClosed?: true;
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Read-once accessor for the swallowed-command-error registry (#3318 AC6):
|
|
30
|
+
* returns the recorded error message for the exact (sessionID, command) pair
|
|
31
|
+
* and consumes the entry, or undefined when nothing is recorded (a miss
|
|
32
|
+
* consumes nothing). The v2 command dispatcher is the sole designed reader.
|
|
33
|
+
*
|
|
34
|
+
* `sinceMs` (#2910 W6 / review PRR-006): when provided, a record OLDER than
|
|
35
|
+
* this timestamp is STALE timeout residue (a timed-out dispatch's handler
|
|
36
|
+
* throwing after its dispatch already returned) — it is consumed and ignored
|
|
37
|
+
* (undefined) so it cannot poison this dispatch. Records created at or after
|
|
38
|
+
* `sinceMs` are fresh failures of THIS dispatch.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getLastSwallowedCommandError(sessionID: string, command: string, sinceMs?: number): string | undefined;
|
|
41
|
+
/** Empty the swallowed-command-error registry (v2 setup cleanup / tests). */
|
|
42
|
+
export declare function clearSwallowedCommandErrorRegistry(): void;
|
|
28
43
|
export declare function safeHook<I, O>(fn: HookHandler<I, O>): HookHandler<I, O>;
|
|
29
44
|
/**
|
|
30
45
|
* `composeHandlers` runs handlers sequentially, wrapping EACH handler in
|