opencode-swarm 7.199.6 → 7.200.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2209 -0
- package/dist/cli/{auto-checkpoint-gv21fb1h.js → auto-checkpoint-bywgxh27.js} +9 -9
- package/dist/cli/{checkpoint-rd1bt793.js → checkpoint-k2092cbw.js} +20 -18
- package/dist/cli/{coder-settlement-21zd1g3a.js → coder-settlement-y0hkcngn.js} +12 -12
- package/dist/cli/{config-doctor-mxe9nr78.js → config-doctor-0fnrwkga.js} +16 -16
- package/dist/cli/{core-7bd1sd36.js → core-mfyaj8b4.js} +3 -3
- package/dist/cli/{curation-policy-w9y0db1n.js → curation-policy-fth5n93x.js} +6 -6
- package/dist/cli/{curator-7rf98h3k.js → curator-1s64jkc3.js} +44 -44
- package/dist/cli/{curator-drift-21y19fnz.js → curator-drift-famx6p6s.js} +8 -8
- package/dist/cli/curator-llm-factory-vya4epq6.js +82 -0
- package/dist/cli/{doctor-knowledge-receipt-phase-id-6pdjxgfa.js → doctor-knowledge-receipt-phase-id-v4y6pbek.js} +9 -9
- package/dist/cli/{evidence-summary-service-vdcx7fqd.js → evidence-summary-service-rd7y6yjq.js} +20 -20
- package/dist/cli/{gate-evidence-ernx9gck.js → gate-evidence-kama66h5.js} +15 -7
- package/dist/cli/guardrail-explain-8fkhq0cg.js +83 -0
- package/dist/cli/{guardrail-log-jr6b9rt3.js → guardrail-log-gdj19fq5.js} +7 -7
- package/dist/cli/{guardrail-reset-0qyt8vpd.js → guardrail-reset-bmg6czzk.js} +44 -44
- package/dist/cli/{hive-promoter-2qwxrrsc.js → hive-promoter-ychygdgc.js} +44 -44
- package/dist/cli/{index-s4wbe96z.js → index-0ptf66x5.js} +4 -4
- package/dist/cli/{index-cyp3r8ar.js → index-0tygsk8b.js} +10 -10
- package/dist/cli/{index-b9f2j9bx.js → index-12h2rtdj.js} +3 -3
- package/dist/cli/{index-eyq1q1xn.js → index-1v277wxc.js} +2 -2
- package/dist/cli/{index-syaa76vg.js → index-2dm42tgp.js} +48 -46
- package/dist/cli/{index-exj9yb0x.js → index-2hnnkj64.js} +1979 -1945
- package/dist/cli/{index-7m2gcmm7.js → index-2m740hyt.js} +6 -6
- package/dist/cli/{index-cs1d9e03.js → index-2w5grmmj.js} +2 -2
- package/dist/cli/{index-88d5kpjj.js → index-3020n6d9.js} +1 -1
- package/dist/cli/{index-vgb679vr.js → index-3exe6k66.js} +3 -3
- package/dist/cli/{index-gx2vp8gx.js → index-3t46mez1.js} +27 -1
- package/dist/cli/{index-38fgg593.js → index-3zspah3v.js} +2 -2
- package/dist/cli/{index-f02p4yn4.js → index-51dw4bjc.js} +2 -2
- package/dist/cli/{index-hx2f3j9w.js → index-5snwc3dz.js} +2 -2
- package/dist/cli/{index-eqw5vq9r.js → index-b0d8ra32.js} +1 -1
- package/dist/cli/{index-tsg61z0r.js → index-b4kdms7x.js} +2 -2
- package/dist/cli/{index-cwg99gea.js → index-bn3aa5q1.js} +7 -7
- package/dist/cli/{index-dtwj4hsk.js → index-c2k7q723.js} +2 -2
- package/dist/cli/{index-tqtfjzb0.js → index-c9g3hkjz.js} +3 -3
- package/dist/cli/{index-r227g76y.js → index-dgyddtje.js} +6 -6
- package/dist/cli/{index-270zfq1f.js → index-epzadpmm.js} +7 -7
- package/dist/cli/{index-txh6dtnj.js → index-f6nrw8am.js} +44 -44
- package/dist/cli/{index-n1ddn12j.js → index-g57p8p1k.js} +1 -1
- package/dist/cli/{index-9y6yk1n0.js → index-na6ph1fp.js} +1 -1
- package/dist/cli/{index-bef4nhtj.js → index-nawp90n7.js} +4 -4
- package/dist/cli/{index-3mzc5rqc.js → index-nzfq1ms2.js} +3 -3
- package/dist/cli/{index-0bw1jyen.js → index-p6v544jn.js} +1 -1
- package/dist/cli/{index-s5tgnsmh.js → index-parkaa70.js} +6 -6
- package/dist/cli/{index-exr153j1.js → index-pe77h482.js} +5 -5
- package/dist/cli/{index-dz15f98h.js → index-q8vfw61p.js} +1 -1
- package/dist/cli/{index-s9hekeej.js → index-qaqyq25k.js} +7 -7
- package/dist/cli/{index-jhjmf5sn.js → index-qzakbjcg.js} +3 -3
- package/dist/cli/{index-2cb644vj.js → index-rzkmg02a.js} +918 -154
- package/dist/cli/{index-0je0mees.js → index-s3w41p1x.js} +1 -1
- package/dist/cli/{index-zzpy5cx3.js → index-s8eac99p.js} +12 -8
- package/dist/cli/{index-j3rfbs45.js → index-s9y49avf.js} +2 -2
- package/dist/cli/{index-dqkr60bw.js → index-sva5swrs.js} +172 -14
- package/dist/cli/{index-3ct8kgfj.js → index-sz67z90q.js} +4 -4
- package/dist/cli/{index-gdyqdhz1.js → index-th667k1y.js} +4 -4
- package/dist/cli/{index-jmhn6ab5.js → index-traz987v.js} +2 -2
- package/dist/cli/{index-0veqvgny.js → index-v1h70r3y.js} +1 -1
- package/dist/cli/{index-snx2vb1x.js → index-ves1rtqt.js} +1 -1
- package/dist/cli/{index-qbhjey8k.js → index-vtkgg2qn.js} +3 -3
- package/dist/cli/{index-x6rv0e00.js → index-w2bhrp6z.js} +21 -14
- package/dist/cli/{index-4cyc18bc.js → index-wgf1780e.js} +7 -7
- package/dist/cli/{index-b3ws03kp.js → index-xyvsdn07.js} +1 -1
- package/dist/cli/{index-zbygz217.js → index-ypxq0x7r.js} +2 -2
- package/dist/cli/{index-t67n8jhb.js → index-z9mysg5m.js} +2 -2
- package/dist/cli/index.js +45 -45
- package/dist/cli/{knowledge-escalator-rsj9nqqt.js → knowledge-escalator-zxd76jna.js} +15 -15
- package/dist/cli/{knowledge-events-appww5kb.js → knowledge-events-z8h0wmaw.js} +13 -13
- package/dist/cli/{knowledge-link-t0ce3mw7.js → knowledge-link-wfhsfyn2.js} +5 -5
- package/dist/cli/{knowledge-store-n76rzv27.js → knowledge-store-g2gm13s8.js} +6 -6
- package/dist/cli/{knowledge-validator-ycxvjasa.js → knowledge-validator-2sech2sx.js} +8 -8
- package/dist/cli/{mcp-jy0gk3c8.js → mcp-t88363gj.js} +1 -1
- package/dist/cli/{model-preflight-rg0mppzf.js → model-preflight-akj8g1m2.js} +44 -44
- package/dist/cli/{pending-delegations-e6brjxp2.js → pending-delegations-bqp6b6as.js} +13 -13
- package/dist/cli/{pr-subscriptions-vjsb5ydq.js → pr-subscriptions-wxjvkg56.js} +12 -12
- package/dist/cli/{pr-workflow-gate-bj66aa9k.js → pr-workflow-gate-2wcrfa6g.js} +44 -44
- package/dist/cli/{runner-wq954cda.js → runner-s1a73y5h.js} +6 -6
- package/dist/cli/{scan-cursor-kkg94g0t.js → scan-cursor-8br4x41t.js} +7 -7
- package/dist/cli/{schema-d1exxwv8.js → schema-mc419qh8.js} +1 -1
- package/dist/cli/{scope-persistence-3v9hce7b.js → scope-persistence-5gyjt70q.js} +16 -16
- package/dist/cli/{server-jkcwkh8t.js → server-bp247fqe.js} +46 -46
- package/dist/cli/{skill-generator-wg8qfdm8.js → skill-generator-q4afafh3.js} +17 -17
- package/dist/cli/{snapshot-coordination-init-xyffgya9.js → snapshot-coordination-init-b4kmrgh7.js} +44 -44
- package/dist/cli/{speckit-checkoff-61xn2c2v.js → speckit-checkoff-1v02b2dt.js} +4 -4
- package/dist/cli/{telemetry-gena5typ.js → telemetry-cr8q16wk.js} +1 -1
- package/dist/cli/{workspace-snapshot-hzhz0rxw.js → workspace-snapshot-93gzfac2.js} +3 -3
- package/dist/cli/{worktree-collision-ownership-gsv009xc.js → worktree-collision-ownership-84m9f5an.js} +14 -14
- package/dist/cli/{worktree-isolation-3sdvs69a.js → worktree-isolation-xwbszhja.js} +44 -44
- package/dist/commands/attest.d.ts +10 -0
- package/dist/commands/close/internals.d.ts +1 -1
- package/dist/commands/close/orchestrator.d.ts +7 -0
- package/dist/commands/destructive-purge.d.ts +15 -0
- package/dist/commands/git-status-read.d.ts +23 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/registry.d.ts +9 -1
- package/dist/commands/rollback-gate.d.ts +77 -10
- package/dist/config/plan-schema.d.ts +44 -0
- package/dist/gate-evidence.d.ts +138 -1
- package/dist/git/branch.d.ts +22 -0
- package/dist/index.js +570 -562
- package/dist/session/snapshot-coordination-init.d.ts +34 -0
- package/dist/session/snapshot-writer.d.ts +5 -1
- package/dist/tools/attest-task.d.ts +67 -0
- package/dist/tools/checkpoint.d.ts +17 -0
- package/dist/tools/phase-complete.d.ts +12 -0
- package/dist/tools/save-plan.d.ts +16 -0
- package/dist/tools/update-task-status.d.ts +1 -1
- package/dist/workflow/task-terminal.d.ts +1 -0
- package/dist/workflow/workflow-wal-schema.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-ab821je6.js +0 -82
- package/dist/cli/guardrail-explain-7jef0dhs.js +0 -83
|
@@ -6,37 +6,37 @@ import {
|
|
|
6
6
|
WORKTREE_PROVISIONING_OWNER_LEASE_MS,
|
|
7
7
|
removeWorktreeProvisioningOwner,
|
|
8
8
|
scanWorktreeProvisioningOwnersForRecovery
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-b4kdms7x.js";
|
|
10
10
|
import {
|
|
11
11
|
scanDelegationFallbacksForRecovery,
|
|
12
12
|
scanDelegationsForRecovery
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-0tygsk8b.js";
|
|
14
14
|
import {
|
|
15
15
|
scanWorktreeMergeFailuresForRecovery
|
|
16
16
|
} from "./index-v3bmwmqw.js";
|
|
17
|
-
import"./index-
|
|
18
|
-
import"./index-
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
17
|
+
import"./index-xyvsdn07.js";
|
|
18
|
+
import"./index-s9y49avf.js";
|
|
19
|
+
import"./index-na6ph1fp.js";
|
|
20
|
+
import"./index-ves1rtqt.js";
|
|
21
21
|
import"./index-ry16d01s.js";
|
|
22
22
|
import"./index-rdm3px0g.js";
|
|
23
|
-
import"./index-
|
|
23
|
+
import"./index-nzfq1ms2.js";
|
|
24
24
|
import"./index-7pmbnjvj.js";
|
|
25
|
-
import"./index-
|
|
26
|
-
import"./index-
|
|
25
|
+
import"./index-ypxq0x7r.js";
|
|
26
|
+
import"./index-bn3aa5q1.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-g57p8p1k.js";
|
|
30
|
+
import"./index-traz987v.js";
|
|
31
|
+
import"./index-q8vfw61p.js";
|
|
32
32
|
import"./index-t7hmqgjy.js";
|
|
33
|
-
import"./index-
|
|
33
|
+
import"./index-c2k7q723.js";
|
|
34
34
|
import {
|
|
35
35
|
canonicalRootKeyFresh
|
|
36
36
|
} from "./index-te9hq2f4.js";
|
|
37
37
|
import"./index-ejhxgyvm.js";
|
|
38
38
|
import"./index-7g4c7s5r.js";
|
|
39
|
-
import"./index-
|
|
39
|
+
import"./index-epzadpmm.js";
|
|
40
40
|
import"./index-sp2cxpaq.js";
|
|
41
41
|
import"./index-qbxk2rn6.js";
|
|
42
42
|
import"./index-zgwm4ryv.js";
|
|
@@ -25,79 +25,79 @@ 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-2hnnkj64.js";
|
|
29
|
+
import"./index-s3w41p1x.js";
|
|
30
|
+
import"./index-qzakbjcg.js";
|
|
31
|
+
import"./index-c9g3hkjz.js";
|
|
32
|
+
import"./index-pe77h482.js";
|
|
33
|
+
import"./index-5snwc3dz.js";
|
|
32
34
|
import"./index-axqyjreb.js";
|
|
33
|
-
import"./index-0je0mees.js";
|
|
34
|
-
import"./index-hx2f3j9w.js";
|
|
35
35
|
import"./index-txdagbh7.js";
|
|
36
|
-
import"./index-
|
|
36
|
+
import"./index-dgyddtje.js";
|
|
37
|
+
import"./index-z9mysg5m.js";
|
|
37
38
|
import"./index-rdec0y3z.js";
|
|
38
|
-
import"./index-
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-4cyc18bc.js";
|
|
39
|
+
import"./index-12h2rtdj.js";
|
|
40
|
+
import"./index-qaqyq25k.js";
|
|
41
|
+
import"./index-th667k1y.js";
|
|
42
|
+
import"./index-1v277wxc.js";
|
|
43
|
+
import"./index-wgf1780e.js";
|
|
44
44
|
import"./index-x5jwegqw.js";
|
|
45
|
-
import"./index-
|
|
46
|
-
import"./index-
|
|
47
|
-
import"./index-8mrentmw.js";
|
|
45
|
+
import"./index-b4kdms7x.js";
|
|
46
|
+
import"./index-0tygsk8b.js";
|
|
48
47
|
import"./index-pt7h91zc.js";
|
|
49
48
|
import"./index-q7sjgr1y.js";
|
|
50
|
-
import"./index-
|
|
51
|
-
import"./index-
|
|
49
|
+
import"./index-rzkmg02a.js";
|
|
50
|
+
import"./index-w2bhrp6z.js";
|
|
52
51
|
import"./index-6b295cas.js";
|
|
53
52
|
import"./index-9nyqt3kb.js";
|
|
54
|
-
import"./index-
|
|
53
|
+
import"./index-vtkgg2qn.js";
|
|
55
54
|
import"./index-v3bmwmqw.js";
|
|
56
|
-
import"./index-
|
|
57
|
-
import"./index-
|
|
58
|
-
import"./index-
|
|
55
|
+
import"./index-8mrentmw.js";
|
|
56
|
+
import"./index-3zspah3v.js";
|
|
57
|
+
import"./index-sva5swrs.js";
|
|
58
|
+
import"./index-3exe6k66.js";
|
|
59
59
|
import"./index-spggmr30.js";
|
|
60
|
-
import"./index-
|
|
61
|
-
import"./index-
|
|
60
|
+
import"./index-0ptf66x5.js";
|
|
61
|
+
import"./index-parkaa70.js";
|
|
62
62
|
import"./index-m9zzj4ee.js";
|
|
63
|
-
import"./index-
|
|
64
|
-
import"./index-
|
|
65
|
-
import"./index-
|
|
63
|
+
import"./index-xyvsdn07.js";
|
|
64
|
+
import"./index-sz67z90q.js";
|
|
65
|
+
import"./index-v1h70r3y.js";
|
|
66
66
|
import"./index-rtry5xyf.js";
|
|
67
67
|
import {
|
|
68
68
|
resolveWorktreeIsolationConfig
|
|
69
|
-
} from "./index-
|
|
69
|
+
} from "./index-51dw4bjc.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-
|
|
72
|
+
import"./index-2m740hyt.js";
|
|
73
|
+
import"./index-s9y49avf.js";
|
|
74
|
+
import"./index-s8eac99p.js";
|
|
75
|
+
import"./index-na6ph1fp.js";
|
|
76
|
+
import"./index-ves1rtqt.js";
|
|
77
77
|
import"./index-ry16d01s.js";
|
|
78
78
|
import"./index-rdm3px0g.js";
|
|
79
|
-
import"./index-
|
|
79
|
+
import"./index-nzfq1ms2.js";
|
|
80
80
|
import"./index-7pmbnjvj.js";
|
|
81
81
|
import"./index-9rwhas09.js";
|
|
82
|
-
import"./index-
|
|
83
|
-
import"./index-
|
|
82
|
+
import"./index-ypxq0x7r.js";
|
|
83
|
+
import"./index-bn3aa5q1.js";
|
|
84
84
|
import"./index-vzm6zre7.js";
|
|
85
85
|
import"./index-ae75rja9.js";
|
|
86
|
-
import"./index-
|
|
87
|
-
import"./index-
|
|
88
|
-
import"./index-
|
|
86
|
+
import"./index-g57p8p1k.js";
|
|
87
|
+
import"./index-traz987v.js";
|
|
88
|
+
import"./index-q8vfw61p.js";
|
|
89
89
|
import"./index-t7hmqgjy.js";
|
|
90
|
-
import"./index-
|
|
90
|
+
import"./index-c2k7q723.js";
|
|
91
91
|
import"./index-te9hq2f4.js";
|
|
92
92
|
import"./index-ejhxgyvm.js";
|
|
93
93
|
import"./index-7g4c7s5r.js";
|
|
94
|
-
import"./index-
|
|
95
|
-
import"./index-
|
|
96
|
-
import"./index-
|
|
94
|
+
import"./index-epzadpmm.js";
|
|
95
|
+
import"./index-3t46mez1.js";
|
|
96
|
+
import"./index-3020n6d9.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-p6v544jn.js";
|
|
101
101
|
import"./index-xfzkq1k4.js";
|
|
102
102
|
import"./index-bk5tah7q.js";
|
|
103
103
|
import"./index-gknz3bv1.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `/swarm attest <task_id>` (issue #3422): verify a git-external deliverable
|
|
3
|
+
* with the task's pinned read-only git anchors and record the durable
|
|
4
|
+
* external-evidence bundle that admits completion — the in-machine exit for
|
|
5
|
+
* tasks whose deliverable (commit/push, gh ops) can never produce a coder
|
|
6
|
+
* settlement. Human- or agent-invoked; everything fails closed exactly as
|
|
7
|
+
* the underlying executor does (undeclared tasks, non-read-only commands,
|
|
8
|
+
* mismatched anchors, oversized output all refuse).
|
|
9
|
+
*/
|
|
10
|
+
export declare function handleAttestCommand(directory: string, args: string[], sessionID?: string): Promise<string>;
|
|
@@ -26,7 +26,7 @@ export declare const _internals: {
|
|
|
26
26
|
CLOSE_REFLECTION_TIMEOUT_MS: number;
|
|
27
27
|
detectFullAuto: typeof import("./orchestrator.js").detectFullAuto;
|
|
28
28
|
guaranteeAllPlansComplete: typeof import("./finalize-stage.js").guaranteeAllPlansComplete;
|
|
29
|
-
getGitRepositoryStatus: typeof import("../../git
|
|
29
|
+
getGitRepositoryStatus: typeof import("../../commands/git-status-read.js").readGitRepositoryStatusDetailedAsync;
|
|
30
30
|
resetToMainAfterMerge: (cwd: string, options?: import("./align-stage.js").GuardedResetToMainOptions) => Promise<import("./align-stage.js").GuardedResetToMainResult>;
|
|
31
31
|
resetToRemoteBranch: typeof import("../../git/branch.js").resetToRemoteBranch;
|
|
32
32
|
copyDirRecursive: typeof import("./fs-helpers.js").copyDirRecursive;
|
|
@@ -36,6 +36,13 @@ export interface ClosePurgeGate {
|
|
|
36
36
|
status: number | null;
|
|
37
37
|
stderrTail: string;
|
|
38
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* #3434: porcelain records whose path normalized outside the project
|
|
41
|
+
* root — excluded from `dirtyPaths`/`candidates` (and therefore from the
|
|
42
|
+
* confirm-token digest) and surfaced as a bounded warning instead of
|
|
43
|
+
* being joined into the scope unvalidated.
|
|
44
|
+
*/
|
|
45
|
+
excludedOutOfRoot: string[];
|
|
39
46
|
}
|
|
40
47
|
/** Test seam for the #2508 gate (simulate git-status read failures). The
|
|
41
48
|
* default routes through the #3317 async reader; legacy sync stubs returning
|
|
@@ -84,6 +84,18 @@ export declare const GIT_STATUS_ARGS: readonly ["--no-optional-locks", "status",
|
|
|
84
84
|
* `src/commands/rollback-gate.ts` exports a same-named parser for
|
|
85
85
|
* NUL-terminated `--porcelain -z` output (J1/#2946); the two are deliberately
|
|
86
86
|
* not consolidated in this PR.
|
|
87
|
+
*
|
|
88
|
+
* #3434: `../`-bearing (or absolute) records are excluded from the dirty
|
|
89
|
+
* set and recorded in `excludedOutOfRoot` — the legacy `string[]` export
|
|
90
|
+
* below returns only the in-root paths. The containment predicate itself is
|
|
91
|
+
* the rollback-gate module's `isOutOfRootRelativePath` (single shared
|
|
92
|
+
* definition; the parsers stay separate by design).
|
|
93
|
+
*/
|
|
94
|
+
export declare function parseTrackedDirtyPathsWithExclusions(statusOutput: string): import('./rollback-gate.js').TrackedDirtyParseResult;
|
|
95
|
+
/**
|
|
96
|
+
* Legacy `string[]` view of the newline-form parser (in-root paths only) —
|
|
97
|
+
* the export existing suites pin. New consumers that need the exclusion
|
|
98
|
+
* diagnostic use `parseTrackedDirtyPathsWithExclusions`.
|
|
87
99
|
*/
|
|
88
100
|
export declare function parseTrackedDirtyPaths(statusOutput: string): string[];
|
|
89
101
|
/**
|
|
@@ -94,10 +106,13 @@ export declare function parseTrackedDirtyPaths(statusOutput: string): string[];
|
|
|
94
106
|
* helper, so its existing #2508 fail-closed tests keep their injection point.
|
|
95
107
|
* #3317: async — the read is bounded and killable, and legacy sync stubs
|
|
96
108
|
* keep working (awaiting a plain value is a no-op).
|
|
109
|
+
* #3434: the ok arm carries `excludedOutOfRoot` so the #2953 re-check
|
|
110
|
+
* compares against the SAME filtered set the operator confirmed.
|
|
97
111
|
*/
|
|
98
112
|
export declare function readTrackedDirtyPaths(directory: string): Promise<{
|
|
99
113
|
ok: true;
|
|
100
114
|
dirtyPaths: string[];
|
|
115
|
+
excludedOutOfRoot: string[];
|
|
101
116
|
} | {
|
|
102
117
|
ok: false;
|
|
103
118
|
/** Structured cause when the reader could tell (absent for legacy `null` stubs). */
|
|
@@ -74,3 +74,26 @@ export declare function readGitStatusAsync(args: readonly string[], cwd: string,
|
|
|
74
74
|
* non-blocking preview, with no transient-retry chain.
|
|
75
75
|
*/
|
|
76
76
|
export declare function readGitRepositoryStatusAsync(cwd: string): Promise<boolean>;
|
|
77
|
+
/**
|
|
78
|
+
* Detailed twin of `readGitRepositoryStatusAsync` (issue #3427): the same
|
|
79
|
+
* single-attempt `rev-parse --git-dir` read, mapped to the SAME
|
|
80
|
+
* `GitRepositoryStatus` vocabulary the sync `branch.getGitRepositoryStatus`
|
|
81
|
+
* produces — `{isRepo:true}` / `not_git_repo` / `git_unavailable` /
|
|
82
|
+
* `git_error` with a message — so the finalize align stage can move off the
|
|
83
|
+
* blocking sync probe without losing its reason-specific skip diagnostics.
|
|
84
|
+
*
|
|
85
|
+
* Classification parity with `src/git/branch.ts`:
|
|
86
|
+
* - ENOENT goes through the shared #2236 `classifySpawnFailure` split — a
|
|
87
|
+
* cwd fault is `git_error` NAMING the cwd (never `git_unavailable`);
|
|
88
|
+
* binary-missing keeps the full `gitBinaryMissingMessage` remediation text.
|
|
89
|
+
* - A nonzero child exit is `not_git_repo` only when the bounded stderr
|
|
90
|
+
* matches the shared `isNotGitRepositoryMessage` vocabulary; every other
|
|
91
|
+
* nonzero exit is `git_error` carrying the status.
|
|
92
|
+
* - Spawn-class failures (ETIMEDOUT/ESIGNAL/…) are `git_error` with the
|
|
93
|
+
* failure code ALWAYS carried in the message — empty stderr never
|
|
94
|
+
* discards the class.
|
|
95
|
+
*
|
|
96
|
+
* `ignoreOutput` is deliberately NOT set: the bounded stderr feeds the
|
|
97
|
+
* repo-detection classification.
|
|
98
|
+
*/
|
|
99
|
+
export declare function readGitRepositoryStatusDetailedAsync(cwd: string): Promise<import('../git/branch.js').GitRepositoryStatus>;
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { handleAgentsCommand } from './agents';
|
|
|
8
8
|
export { handleAnalyzeCommand } from './analyze';
|
|
9
9
|
export { handleApproveWriteCommand } from './approve-write';
|
|
10
10
|
export { handleArchiveCommand } from './archive';
|
|
11
|
+
export { handleAttestCommand } from './attest';
|
|
11
12
|
export { handleAutoProceedCommand } from './auto-proceed';
|
|
12
13
|
export { handleBenchmarkCommand } from './benchmark';
|
|
13
14
|
export { handleBrainstormCommand } from './brainstorm';
|
|
@@ -1077,11 +1077,19 @@ export declare const COMMAND_REGISTRY: {
|
|
|
1077
1077
|
readonly 'reset-session': {
|
|
1078
1078
|
readonly handler: (ctx: CommandContext) => Promise<string>;
|
|
1079
1079
|
readonly description: "Clear session state while preserving plan, evidence, and knowledge";
|
|
1080
|
-
readonly details: "Deletes
|
|
1080
|
+
readonly details: "Deletes .swarm/session/state.json plus other session files; clears in-memory sessions, chains, and active-agent maps. Preserves plan, evidence, and knowledge; releases this session's pending knowledge-gate obligations (#2398); recovers coder settlements wedged on CODER_DISPATCH_IN_PROGRESS (#2268); backs up to .swarm/reset-backups/ (newest 5 kept). If a cleanup step fails, the closing guard stays closed by design, writes pause (an advisory says why), and a reset re-run or restart recovers.";
|
|
1081
1081
|
readonly args: "--confirm=<token> (purge dirty/live lanes)";
|
|
1082
1082
|
readonly category: "utility";
|
|
1083
1083
|
readonly toolPolicy: "restricted";
|
|
1084
1084
|
};
|
|
1085
|
+
readonly attest: {
|
|
1086
|
+
readonly handler: (ctx: CommandContext) => Promise<string>;
|
|
1087
|
+
readonly description: "Verify a git-external deliverable with pinned anchors <task_id>";
|
|
1088
|
+
readonly details: "Runs the task's pinned read-only git evidence_anchors (issue #3422) inside the project root and records the durable external-evidence bundle that admits completion — the in-machine exit for tasks whose deliverable (commit/push, gh ops) can never produce a coder settlement. Fail-closed: the plan task must declare evidence_class external_git with 1..16 anchors (expect exact / expect_prefix non-empty), every anchor runs as a bounded no-shell argv spawn (stdin ignored, 10s per anchor, 30s total; output over the 4096-char evidence bound refuses the anchor rather than truncating it), and only positively-known read-only git subcommands/flags (rev-list, log, rev-parse, show, diff) are admitted. Undeclared tasks, mismatched anchors, and non-read-only commands refuse exactly as the completion gate does. Declaration changes revoke stale proofs (a fresh attest is then required). See docs/commands.md and docs/plan-durability.md.";
|
|
1089
|
+
readonly args: "<task_id>";
|
|
1090
|
+
readonly category: "utility";
|
|
1091
|
+
readonly toolPolicy: "agent";
|
|
1092
|
+
};
|
|
1085
1093
|
readonly recover: {
|
|
1086
1094
|
readonly handler: (ctx: CommandContext) => Promise<string>;
|
|
1087
1095
|
readonly description: "Recover wedged coder settlements [task_id] [--force]";
|
|
@@ -23,6 +23,18 @@ export declare const _rollbackGateInternals: {
|
|
|
23
23
|
* repositories; git tracks nothing there.
|
|
24
24
|
*/
|
|
25
25
|
export declare function isRealGitRepository(directory: string): boolean;
|
|
26
|
+
/** #3434: a parsed porcelain record whose path normalizes outside the repo root. */
|
|
27
|
+
export declare function isOutOfRootRelativePath(rel: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* The NUL-form parser's result contract (#3434): the in-root dirty paths that
|
|
30
|
+
* feed the destroy scope, plus any records whose path normalized outside the
|
|
31
|
+
* project root — excluded from the scope and surfaced for the diagnostic
|
|
32
|
+
* instead of being joined into the confirm-token digest unvalidated.
|
|
33
|
+
*/
|
|
34
|
+
export interface TrackedDirtyParseResult {
|
|
35
|
+
dirtyPaths: string[];
|
|
36
|
+
excludedOutOfRoot: string[];
|
|
37
|
+
}
|
|
26
38
|
/**
|
|
27
39
|
* Parse `git status --porcelain -z` output into repo-relative tracked-dirty
|
|
28
40
|
* paths. The -z form is NUL-terminated and NEVER quotes paths (core.quotepath
|
|
@@ -36,6 +48,16 @@ export declare function isRealGitRepository(directory: string): boolean;
|
|
|
36
48
|
* (intent-to-add) — so the test must not anchor to the first column, or the
|
|
37
49
|
* ORIG_PATH token of an R/C-initial file (README.md, CHANGELOG.md, …) is
|
|
38
50
|
* misread as the start of a new record and swallows the next real entry.
|
|
51
|
+
*
|
|
52
|
+
* #3434: `../`-bearing (or absolute) records are excluded from the dirty
|
|
53
|
+
* set and recorded in `excludedOutOfRoot` — the legacy `string[]` export
|
|
54
|
+
* below returns only the in-root paths.
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseTrackedDirtyPathsWithExclusions(statusOutput: string): TrackedDirtyParseResult;
|
|
57
|
+
/**
|
|
58
|
+
* Legacy `string[]` view of the NUL-form parser (in-root paths only) — the
|
|
59
|
+
* export existing suites pin. New consumers that need the exclusion
|
|
60
|
+
* diagnostic use `parseTrackedDirtyPathsWithExclusions`.
|
|
39
61
|
*/
|
|
40
62
|
export declare function parseTrackedDirtyPaths(statusOutput: string): string[];
|
|
41
63
|
/**
|
|
@@ -43,11 +65,23 @@ export declare function parseTrackedDirtyPaths(statusOutput: string): string[];
|
|
|
43
65
|
* index while a file sits on disk at that path. `git reset --hard` silently
|
|
44
66
|
* overwrites exactly these untracked (or since-ignored) files when it
|
|
45
67
|
* materializes the target tree, so they belong in the destruction scope
|
|
46
|
-
* alongside tracked-dirty paths (#2976 review F-1).
|
|
47
|
-
*
|
|
48
|
-
*
|
|
68
|
+
* alongside tracked-dirty paths (#2976 review F-1).
|
|
69
|
+
*
|
|
70
|
+
* #3434 fail-closed contract: `failure` is set when either listing cannot
|
|
71
|
+
* be read, carrying the reader's structured cause when it could tell. The
|
|
72
|
+
* caller must REFUSE on it — an unreadable enumeration may not read as a
|
|
73
|
+
* measured "nothing in the way" (the same class #3317 closed for the status
|
|
74
|
+
* reads). A non-git or bare-marker root returns empty paths with NO failure:
|
|
75
|
+
* nothing tracked can be in the way there (#2127 convention).
|
|
49
76
|
*/
|
|
50
|
-
export declare function untrackedPathsInTargetTree(directory: string, targetSha: string): Promise<
|
|
77
|
+
export declare function untrackedPathsInTargetTree(directory: string, targetSha: string): Promise<{
|
|
78
|
+
paths: string[];
|
|
79
|
+
failure: {
|
|
80
|
+
code: string | null;
|
|
81
|
+
status: number | null;
|
|
82
|
+
stderrTail: string;
|
|
83
|
+
} | null;
|
|
84
|
+
}>;
|
|
51
85
|
/**
|
|
52
86
|
* The git-kind candidate set: the absolute paths of tracked-dirty files that
|
|
53
87
|
* `git reset --hard` would destroy. This is the ONLY derivation for
|
|
@@ -63,30 +97,63 @@ export declare function swarmOverwriteCandidates(directory: string, overwriteRel
|
|
|
63
97
|
/**
|
|
64
98
|
* #3317: cause-matched wording for an unreadable destruction measurement —
|
|
65
99
|
* single source shared by the /swarm rollback command and the checkpoint
|
|
66
|
-
* tool sink so the two refusal texts cannot drift.
|
|
100
|
+
* tool sink so the two refusal texts cannot drift. `source` (#3434
|
|
101
|
+
* feedback round) names WHICH read failed: the default 'status' keeps the
|
|
102
|
+
* historical wording BYTE-IDENTICAL (pinned by the #3317 round-2 trace
|
|
103
|
+
* suite checkpoint-restore-cause-3275); 'enumeration' rewords the arms to
|
|
104
|
+
* name the ls-tree/ls-files listing so the operator is pointed at the read
|
|
105
|
+
* that actually failed.
|
|
67
106
|
*/
|
|
68
107
|
export declare function describeUnreadableCause(measurement: {
|
|
69
108
|
code?: string | null;
|
|
70
109
|
status?: number | null;
|
|
71
110
|
stderrTail?: string;
|
|
72
|
-
}): string;
|
|
111
|
+
}, source?: 'status' | 'enumeration'): string;
|
|
112
|
+
/**
|
|
113
|
+
* Sanitize a repo-controlled porcelain record for operator/agent-facing
|
|
114
|
+
* diagnostic text (#3434 feedback round): collapse control characters
|
|
115
|
+
* (ANSI/CR/LF/NUL cannot smuggle terminal escapes or forged lines) and
|
|
116
|
+
* bound the excerpt — the same house discipline as the reader's
|
|
117
|
+
* `stderrTail` and `excerptProbeOutput`. Excluded records never enter the
|
|
118
|
+
* scope digest, so the digest's own NUL/newline rejection does not cover
|
|
119
|
+
* the one place their bytes are rendered.
|
|
120
|
+
*/
|
|
121
|
+
export declare function formatExcludedRecord(rel: string): string;
|
|
73
122
|
/**
|
|
74
123
|
* Measure the destruction scope for a git checkpoint restore. When
|
|
75
124
|
* `targetSha` is provided, files that are untracked (or since-ignored) on
|
|
76
125
|
* disk but tracked in the TARGET tree are included: `git reset --hard`
|
|
77
126
|
* overwrites them silently, so they are part of the destruction set
|
|
78
|
-
* (#2976 review F-1). `unreadable` means git status
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
127
|
+
* (#2976 review F-1). `unreadable` means git status — or, #3434, the
|
|
128
|
+
* ls-tree/ls-files enumeration of the target tree — could not be read
|
|
129
|
+
* inside a real repository; callers must fail closed on it (never treat it
|
|
130
|
+
* as a clean tree, and never let a failed enumeration shrink the measured
|
|
131
|
+
* scope). A non-git or bare-marker root returns an empty dirty set: nothing
|
|
132
|
+
* tracked to destroy. `excludedOutOfRoot` carries porcelain records whose
|
|
133
|
+
* path normalized outside the project root (#3434) — excluded from the
|
|
134
|
+
* scope and surfaced for the preview diagnostic.
|
|
82
135
|
*/
|
|
83
136
|
export declare function measureGitDestruction(directory: string, targetSha?: string): Promise<{
|
|
84
137
|
kind: 'ok';
|
|
85
138
|
dirtyRelPaths: string[];
|
|
139
|
+
/** #3434: out-of-root porcelain records excluded from the scope. */
|
|
140
|
+
excludedOutOfRoot: string[];
|
|
86
141
|
} | {
|
|
87
142
|
kind: 'unreadable';
|
|
88
143
|
/** #3317: why the read failed, when the async reader could tell. */
|
|
89
144
|
code?: string | null;
|
|
90
145
|
status?: number | null;
|
|
91
146
|
stderrTail?: string;
|
|
147
|
+
/**
|
|
148
|
+
* #3434 feedback: WHICH read failed — the status read or the
|
|
149
|
+
* ls-tree/ls-files enumeration. Consumers word the refusal
|
|
150
|
+
* accordingly instead of always blaming git status.
|
|
151
|
+
*/
|
|
152
|
+
source: 'status' | 'enumeration';
|
|
153
|
+
/**
|
|
154
|
+
* Out-of-root records already parsed from a SUCCESSFUL status
|
|
155
|
+
* read before the enumeration failed — carried so the refusal
|
|
156
|
+
* can still disclose them instead of dropping them silently.
|
|
157
|
+
*/
|
|
158
|
+
excludedOutOfRoot?: string[];
|
|
92
159
|
}>;
|
|
@@ -53,6 +53,23 @@ export declare const MigrationStatusSchema: z.ZodEnum<{
|
|
|
53
53
|
migration_failed: "migration_failed";
|
|
54
54
|
}>;
|
|
55
55
|
export type MigrationStatus = z.infer<typeof MigrationStatusSchema>;
|
|
56
|
+
/**
|
|
57
|
+
* External-evidence anchor (issue #3422): a pinned read-only git assertion a
|
|
58
|
+
* task declares so `/swarm attest` can verify a git-external deliverable
|
|
59
|
+
* (commit/push, gh ops) without a coder settlement.
|
|
60
|
+
*
|
|
61
|
+
* `expect` matches the trimmed stdout exactly; `expect_prefix` requires a
|
|
62
|
+
* NON-EMPTY prefix of it (an empty prefix would match everything and attest
|
|
63
|
+
* nothing). At least one of the two must be present per anchor; both bounds
|
|
64
|
+
* mirror the durable-evidence storage cap so an anchor is never accepted with
|
|
65
|
+
* output that cannot be persisted verbatim.
|
|
66
|
+
*/
|
|
67
|
+
export declare const ExternalEvidenceAnchorSchema: z.ZodObject<{
|
|
68
|
+
command: z.ZodString;
|
|
69
|
+
expect: z.ZodOptional<z.ZodString>;
|
|
70
|
+
expect_prefix: z.ZodOptional<z.ZodString>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
export type ExternalEvidenceAnchor = z.infer<typeof ExternalEvidenceAnchorSchema>;
|
|
56
73
|
export declare const TaskSchema: z.ZodObject<{
|
|
57
74
|
id: z.ZodString;
|
|
58
75
|
phase: z.ZodNumber;
|
|
@@ -75,6 +92,15 @@ export declare const TaskSchema: z.ZodObject<{
|
|
|
75
92
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
76
93
|
blocked_reason: z.ZodOptional<z.ZodString>;
|
|
77
94
|
fr_refs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
95
|
+
evidence_class: z.ZodOptional<z.ZodEnum<{
|
|
96
|
+
coder_mutation: "coder_mutation";
|
|
97
|
+
external_git: "external_git";
|
|
98
|
+
}>>;
|
|
99
|
+
evidence_anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
100
|
+
command: z.ZodString;
|
|
101
|
+
expect: z.ZodOptional<z.ZodString>;
|
|
102
|
+
expect_prefix: z.ZodOptional<z.ZodString>;
|
|
103
|
+
}, z.core.$strip>>>;
|
|
78
104
|
}, z.core.$strip>;
|
|
79
105
|
export type Task = z.infer<typeof TaskSchema>;
|
|
80
106
|
export declare const PhaseSchema: z.ZodObject<{
|
|
@@ -110,6 +136,15 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
110
136
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
111
137
|
blocked_reason: z.ZodOptional<z.ZodString>;
|
|
112
138
|
fr_refs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
139
|
+
evidence_class: z.ZodOptional<z.ZodEnum<{
|
|
140
|
+
coder_mutation: "coder_mutation";
|
|
141
|
+
external_git: "external_git";
|
|
142
|
+
}>>;
|
|
143
|
+
evidence_anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
144
|
+
command: z.ZodString;
|
|
145
|
+
expect: z.ZodOptional<z.ZodString>;
|
|
146
|
+
expect_prefix: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, z.core.$strip>>>;
|
|
113
148
|
}, z.core.$strip>>>;
|
|
114
149
|
type: z.ZodOptional<z.ZodEnum<{
|
|
115
150
|
code: "code";
|
|
@@ -156,6 +191,15 @@ export declare const PlanSchema: z.ZodObject<{
|
|
|
156
191
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
157
192
|
blocked_reason: z.ZodOptional<z.ZodString>;
|
|
158
193
|
fr_refs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
194
|
+
evidence_class: z.ZodOptional<z.ZodEnum<{
|
|
195
|
+
coder_mutation: "coder_mutation";
|
|
196
|
+
external_git: "external_git";
|
|
197
|
+
}>>;
|
|
198
|
+
evidence_anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
199
|
+
command: z.ZodString;
|
|
200
|
+
expect: z.ZodOptional<z.ZodString>;
|
|
201
|
+
expect_prefix: z.ZodOptional<z.ZodString>;
|
|
202
|
+
}, z.core.$strip>>>;
|
|
159
203
|
}, z.core.$strip>>>;
|
|
160
204
|
type: z.ZodOptional<z.ZodEnum<{
|
|
161
205
|
code: "code";
|