opencode-swarm 7.192.1 → 7.192.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/skills/critic-gate/SKILL.md +2 -1
- package/.opencode/skills/execute/SKILL.md +1 -1
- package/README.md +5 -3
- package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
- package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
- package/dist/agents/critic.d.ts +2 -2
- package/dist/cli/{auto-checkpoint-kkakqktp.js → auto-checkpoint-735m8sz7.js} +8 -8
- package/dist/cli/{capability-probe-3mgxcfr9.js → capability-probe-rty1315z.js} +1 -1
- package/dist/cli/{checkpoint-cefw75xe.js → checkpoint-ptzc5jev.js} +16 -16
- package/dist/cli/{coder-settlement-tgdjczyp.js → coder-settlement-hh5165m1.js} +12 -12
- package/dist/cli/{config-doctor-sns7gbj2.js → config-doctor-wzzvhpcr.js} +15 -15
- package/dist/cli/{core-q8xvp8bw.js → core-0jarm64k.js} +3 -3
- package/dist/cli/{curation-policy-2q5xs0xg.js → curation-policy-yzdznz4z.js} +6 -6
- package/dist/cli/{curator-drift-1n3akmda.js → curator-drift-f4aqxz9e.js} +8 -8
- package/dist/cli/{curator-mgdsxrpv.js → curator-f7crssw2.js} +43 -43
- package/dist/cli/curator-llm-factory-kxnzvhje.js +82 -0
- package/dist/cli/{doctor-knowledge-receipt-phase-id-33bp8fcs.js → doctor-knowledge-receipt-phase-id-qvp1h3xv.js} +8 -8
- package/dist/cli/{evidence-summary-service-sb888pg8.js → evidence-summary-service-379skych.js} +19 -19
- package/dist/cli/{gate-evidence-rmk87c6m.js → gate-evidence-b4cfrrgn.js} +7 -7
- package/dist/cli/guardrail-explain-tcnfc3te.js +83 -0
- package/dist/cli/{guardrail-log-d18dcweh.js → guardrail-log-xe1evybk.js} +7 -7
- package/dist/cli/{guardrail-reset-1xeeetk7.js → guardrail-reset-jwx5hsgp.js} +43 -43
- package/dist/cli/{hive-promoter-44grgbq4.js → hive-promoter-nks9a9s8.js} +43 -43
- package/dist/cli/{index-xjqa26fs.js → index-0e1nxkte.js} +1 -1
- package/dist/cli/{index-63v3gmgr.js → index-1n7sf9gz.js} +2 -2
- package/dist/cli/{index-ajp4dabz.js → index-25zjz6kv.js} +5 -5
- package/dist/cli/{index-af3nmk6c.js → index-29z0w323.js} +7 -7
- package/dist/cli/{index-fsm9gv1p.js → index-2y7y0bxf.js} +43 -43
- package/dist/cli/{index-advcaree.js → index-4qreeddq.js} +4 -4
- package/dist/cli/{index-nb1c3342.js → index-4tfr4j1a.js} +7 -7
- package/dist/cli/{index-k6h66zm3.js → index-4twjbsfw.js} +2 -2
- package/dist/cli/{index-xw19x0t7.js → index-5dws7eyb.js} +1 -1
- package/dist/cli/{index-t0se5zwe.js → index-5gy5dc2n.js} +2 -2
- package/dist/cli/{index-pkgbrrn7.js → index-5s74qd5b.js} +1 -1
- package/dist/cli/{index-f32hs2vt.js → index-7a92gwbg.js} +4 -4
- package/dist/cli/{index-3txrbsa1.js → index-7bppy3ve.js} +4 -4
- package/dist/cli/{index-km4x7yfb.js → index-878ksabw.js} +11 -11
- package/dist/cli/{index-6shk3n43.js → index-89826pb5.js} +2 -2
- package/dist/cli/{index-ga1pcs49.js → index-8zj647hc.js} +1 -1
- package/dist/cli/{index-w52xyp9v.js → index-914wsfyy.js} +2 -2
- package/dist/cli/{index-b79a8pc2.js → index-a83gmv2e.js} +2 -2
- package/dist/cli/{index-d4cjbm4p.js → index-a9m7h5v0.js} +2 -2
- package/dist/cli/{index-50b8f6qz.js → index-asm2r4g2.js} +4 -4
- package/dist/cli/{index-yfmgbhwz.js → index-ba87gkb4.js} +20 -6
- package/dist/cli/{index-kvtwwj8b.js → index-bgzpw6ge.js} +1 -1
- package/dist/cli/{index-2wps5fec.js → index-br28jc6d.js} +3 -3
- package/dist/cli/{index-sgxbqba0.js → index-bzfn85kq.js} +119 -55
- package/dist/cli/{index-ysazjncb.js → index-cf003krm.js} +6 -6
- package/dist/cli/{index-4cm1p2kj.js → index-dt4cjxbz.js} +1 -1
- package/dist/cli/{index-f6e44xh2.js → index-dtet46e6.js} +7 -7
- package/dist/cli/{index-8bx6vhzk.js → index-e8k0v19e.js} +1 -1
- package/dist/cli/{index-mhqh2dc9.js → index-eaess7dm.js} +1 -1
- package/dist/cli/{index-r3gphy10.js → index-ejq082zj.js} +5 -5
- package/dist/cli/{index-ejfmgkt0.js → index-f54stv77.js} +3 -3
- package/dist/cli/{index-t433r606.js → index-fzqn2kk8.js} +2 -2
- package/dist/cli/{index-28zgn6sm.js → index-g8jd3h4r.js} +2 -2
- package/dist/cli/{index-s81tvz98.js → index-hcsz7bhg.js} +3 -3
- package/dist/cli/{index-jdw63xyd.js → index-k96fx4yw.js} +2 -2
- package/dist/cli/{index-9b6bxe9b.js → index-mbn4vn3z.js} +1 -1
- package/dist/cli/{index-7vnr5cmp.js → index-mtqwyjrg.js} +1 -1
- package/dist/cli/{index-025wg2re.js → index-nwswxes7.js} +3 -3
- package/dist/cli/{index-cje7tt58.js → index-q0bctx7k.js} +1 -1
- package/dist/cli/{index-vf6pqke0.js → index-qp3twbdz.js} +45 -45
- package/dist/cli/{index-vt8hk0pt.js → index-qta3x82z.js} +244 -106
- package/dist/cli/{index-v3bmeqqh.js → index-w8e73tp0.js} +12 -7
- package/dist/cli/{index-0yrsvwdf.js → index-w917g452.js} +6 -6
- package/dist/cli/{index-ney8qpg3.js → index-w9y482mp.js} +1 -1
- package/dist/cli/{index-edk2sgse.js → index-xen0j48x.js} +2 -2
- package/dist/cli/{index-867d9dhf.js → index-xf5v44qh.js} +3 -3
- package/dist/cli/{index-bwh9196c.js → index-ypvz2c60.js} +7 -7
- package/dist/cli/{index-95hc7xn4.js → index-yte4hqhv.js} +3 -3
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +60 -54
- package/dist/cli/{knowledge-escalator-naq700x5.js → knowledge-escalator-gzzr7cy2.js} +14 -14
- package/dist/cli/{knowledge-events-mmh5cya6.js → knowledge-events-b16yc189.js} +12 -12
- package/dist/cli/{knowledge-link-76egdqc9.js → knowledge-link-a5tvjqdt.js} +5 -5
- package/dist/cli/{knowledge-store-9dxr9jb9.js → knowledge-store-arj3by4h.js} +6 -6
- package/dist/cli/{knowledge-validator-eze3s6fn.js → knowledge-validator-b3qhjg0t.js} +8 -8
- package/dist/cli/{mcp-1x2tpk71.js → mcp-972t0jt0.js} +1 -1
- package/dist/cli/{model-preflight-hgb7kf5d.js → model-preflight-f1xvxk6e.js} +43 -43
- package/dist/cli/{pending-delegations-zg4q1k5q.js → pending-delegations-fv5xz799.js} +12 -12
- package/dist/cli/{pr-subscriptions-zw8aev5s.js → pr-subscriptions-4mcwj33s.js} +12 -12
- package/dist/cli/{pr-workflow-gate-dcbpd451.js → pr-workflow-gate-ap5cp211.js} +43 -43
- package/dist/cli/{runner-y529qa4d.js → runner-8qybgy4n.js} +6 -6
- package/dist/cli/{scan-cursor-pdxmndd0.js → scan-cursor-tceyckdx.js} +7 -7
- package/dist/cli/{schema-hzz32642.js → schema-pqevpe3m.js} +1 -1
- package/dist/cli/{scope-persistence-h4b6p951.js → scope-persistence-ta6ydymv.js} +15 -15
- package/dist/cli/{server-7gd7tqt5.js → server-s9bfax7h.js} +43 -43
- package/dist/cli/{skill-generator-7g7sca90.js → skill-generator-xdg4626x.js} +16 -16
- package/dist/cli/{snapshot-coordination-init-4q5ykq22.js → snapshot-coordination-init-wn0hnwyv.js} +43 -43
- package/dist/cli/{speckit-checkoff-5bfxs8r7.js → speckit-checkoff-8x139jpf.js} +4 -4
- package/dist/cli/{telemetry-9szfdfqv.js → telemetry-qaymh4gg.js} +1 -1
- package/dist/cli/{workspace-snapshot-nre732xt.js → workspace-snapshot-vfpnxjsp.js} +3 -3
- package/dist/cli/{worktree-collision-ownership-327d06qw.js → worktree-collision-ownership-as8hnnff.js} +13 -13
- package/dist/cli/{worktree-isolation-zqzs3wkk.js → worktree-isolation-7vrs8t9b.js} +49 -43
- package/dist/commands/turbo.d.ts +4 -3
- package/dist/config/constants.d.ts +2 -2
- package/dist/config/plan-schema.d.ts +16 -0
- package/dist/epic/phase-readiness.d.ts +4 -2
- package/dist/evaluation/ephemeral-agent-dispatcher.d.ts +11 -0
- package/dist/failures/provider-message-error.d.ts +32 -0
- package/dist/hooks/delegation-gate/worktree-isolation.d.ts +40 -0
- package/dist/hooks/delegation-gate.d.ts +13 -0
- package/dist/hooks/extractors.d.ts +2 -0
- package/dist/hooks/guardrails/index.d.ts +2 -0
- package/dist/hooks/guardrails/parallel-gate-attribution.d.ts +10 -0
- package/dist/index.js +415 -412
- package/dist/plan/ledger.d.ts +21 -3
- package/dist/sandbox/linux/bubblewrap-executor.d.ts +24 -0
- package/dist/services/skill-optimizer/store.d.ts +2 -2
- package/dist/tools/phase-complete.d.ts +4 -0
- package/opencode-swarm.schema.json +1 -1
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-tfn0cp68.js +0 -82
- package/dist/cli/guardrail-explain-n9ndp99q.js +0 -83
|
@@ -138,6 +138,14 @@ export interface AwaitingMergeRecord {
|
|
|
138
138
|
export declare const awaitingMergeByCallID: Map<string, AwaitingMergeRecord>;
|
|
139
139
|
export declare const standardWorktreeByCallID: Map<string, StandardWorktreeDispatch>;
|
|
140
140
|
export declare const standardWorktreeSerializationSessions: Set<string>;
|
|
141
|
+
export declare const laneChildSessionAgents: Map<string, string>;
|
|
142
|
+
export declare function recordLaneChildSession(sessionId: string, agent: string): void;
|
|
143
|
+
/**
|
|
144
|
+
* Refuse a Task dispatch whose `task_id` resumes a lane child session the
|
|
145
|
+
* plugin created for a DIFFERENT agent. Resuming the same agent's session
|
|
146
|
+
* stays allowed; ids the plugin did not create are not judged here.
|
|
147
|
+
*/
|
|
148
|
+
export declare function assertTaskIdNotForeignLaneSession(args: Record<string, unknown> | undefined): void;
|
|
141
149
|
/**
|
|
142
150
|
* FR-104 SC-111/SC-112: Per-session state tracking for serialization release.
|
|
143
151
|
* Maps sessionID → serialization state for that session.
|
|
@@ -167,6 +175,33 @@ interface CleanupStandardWorktreeResult {
|
|
|
167
175
|
cleanedBranch: boolean;
|
|
168
176
|
preservedRecoveryLane: boolean;
|
|
169
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* How long a lane dispatch waits for the worktree lifecycle lock.
|
|
180
|
+
*
|
|
181
|
+
* A holder can keep the lock across a recovery-lane session.create, bounded by
|
|
182
|
+
* `worktree.session_create_timeout_ms` (plus the settle grace), and the
|
|
183
|
+
* stale-lane cleanup after it. The wait therefore follows that budget plus a
|
|
184
|
+
* margin. Up to a 30s session.create budget (the default) it is capped so
|
|
185
|
+
* that the wait, this dispatch's own session.create, its settle grace and the
|
|
186
|
+
* provisioning work still fit in the host hook budget (10s at the default):
|
|
187
|
+
* a dispatch that overruns the hook is abandoned mid-provisioning, while a
|
|
188
|
+
* dispatch that stops here fails cleanly with STANDARD_WORKTREE_LIFECYCLE_BUSY.
|
|
189
|
+
* Above 30s there is no room left and the wait stays at its 10s floor, so the
|
|
190
|
+
* worst case exceeds the hook budget (61s at a 31s budget, 90s at 60s): a
|
|
191
|
+
* session.create budget that long is itself what overruns the hook.
|
|
192
|
+
*/
|
|
193
|
+
declare function resolveWorktreeLifecycleLockWaitMs(sessionCreateTimeoutMs: number): number;
|
|
194
|
+
/**
|
|
195
|
+
* Acquire the worktree lifecycle lock, retrying within `waitMs`.
|
|
196
|
+
*
|
|
197
|
+
* The lock is held across the collision check (a git spawn) and the owner
|
|
198
|
+
* write, by every lane being provisioned and by init orphan recovery.
|
|
199
|
+
* `tryAcquireLock` alone gives up after about 310ms (5 retries, 10ms→500ms
|
|
200
|
+
* backoff, no jitter), so parallel coder dispatches that provision lanes at
|
|
201
|
+
* the same moment hard-stopped each other. Retry with jitter until the lock
|
|
202
|
+
* is free or the bounded wait is spent.
|
|
203
|
+
*/
|
|
204
|
+
declare function acquireWorktreeLifecycleLockWithin(directory: string, taskId: string, waitMs: number): ReturnType<typeof tryAcquireLock>;
|
|
170
205
|
export declare function getStandardWorktreeDegradationReason(sessionID: string): {
|
|
171
206
|
reason: string;
|
|
172
207
|
at: number;
|
|
@@ -411,6 +446,11 @@ export declare const _internals: {
|
|
|
411
446
|
/** Background launch durability fallback: tag ownership without racing the child. */
|
|
412
447
|
preserveBackgroundWorktreeOwnershipForCallId: typeof preserveBackgroundWorktreeOwnershipForCallId;
|
|
413
448
|
tryAcquireWorktreeLifecycleLock: typeof tryAcquireLock;
|
|
449
|
+
acquireWorktreeLifecycleLockWithin: typeof acquireWorktreeLifecycleLockWithin;
|
|
450
|
+
/** Bounded wait for the lifecycle lock, derived from the session-create budget. */
|
|
451
|
+
resolveWorktreeLifecycleLockWaitMs: typeof resolveWorktreeLifecycleLockWaitMs;
|
|
452
|
+
now: () => number;
|
|
453
|
+
sleep: (ms: number) => Promise<void>;
|
|
414
454
|
recordWorktreeProvisioningOwner: typeof recordWorktreeProvisioningOwner;
|
|
415
455
|
removeWorktreeProvisioningOwner: typeof removeWorktreeProvisioningOwner;
|
|
416
456
|
lookupWorktreeRecoveryAuthoritiesByTask: typeof lookupWorktreeRecoveryAuthoritiesByTask;
|
|
@@ -51,6 +51,18 @@ export declare function getPendingCoderScope(directory: string, taskId: string):
|
|
|
51
51
|
* circular import `state.ts ↔ delegation-gate.ts`. Called by `resetSwarmState`.
|
|
52
52
|
*/
|
|
53
53
|
export declare function clearPendingCoderScope(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Whether Turbo may skip the Stage A re-delegation block for `taskId`.
|
|
56
|
+
*
|
|
57
|
+
* Tier 3 is defined by the files a task touches (security-sensitive paths,
|
|
58
|
+
* src/parallel/tier3-classifier.ts), the rule update_task_status already
|
|
59
|
+
* applies to Turbo's Stage B bypass. The gate used to guess it from the task
|
|
60
|
+
* id (`startsWith('3.')`): every phase-3 task was treated as Tier 3 and a
|
|
61
|
+
* security-sensitive task in any other phase was bypassed. Only a task whose
|
|
62
|
+
* planned `files_touched` are known and contain no Tier 3 path is bypassable;
|
|
63
|
+
* an unknown task, an empty file list or an unreadable plan is not.
|
|
64
|
+
*/
|
|
65
|
+
declare function turboMayBypassTask(directory: string, taskId: string): Promise<boolean>;
|
|
54
66
|
/**
|
|
55
67
|
* Issue #1151: OpenCode v1.16.2 background subagents.
|
|
56
68
|
*
|
|
@@ -539,6 +551,7 @@ export declare const _internals: {
|
|
|
539
551
|
buildParallelExecutionGuidance: typeof buildParallelExecutionGuidance;
|
|
540
552
|
extractTaskFileDirectives: typeof extractTaskFileDirectives;
|
|
541
553
|
loadPlanJsonOnly: typeof loadPlanJsonOnly;
|
|
554
|
+
turboMayBypassTask: typeof turboMayBypassTask;
|
|
542
555
|
recordPendingDelegationForBackground: typeof import("../background/pending-delegations.js").recordPendingDelegationDetailed;
|
|
543
556
|
writeDelegationFallbackForBackground: typeof import("../background/pending-delegations.js").writeDelegationFallback;
|
|
544
557
|
reserveBackgroundCoderSlotForDispatch: typeof import("../background/pending-delegations.js").reserveBackgroundCoderSlot;
|
|
@@ -63,6 +63,8 @@ export declare function extractPatterns(contextContent: string, maxChars?: numbe
|
|
|
63
63
|
* never suppress the summary — the honest active phase is reported instead.
|
|
64
64
|
*/
|
|
65
65
|
export declare function extractCurrentPhaseFromPlan(plan: Plan): string | null;
|
|
66
|
+
/** The sanitized `Phase N: name [STATUS]` label for one phase of the plan. */
|
|
67
|
+
export declare function extractPhaseLabelFromPlan(plan: Plan, phaseId: number): string | null;
|
|
66
68
|
/**
|
|
67
69
|
* Parse the stable numeric phase id embedded in a stored phase label.
|
|
68
70
|
*
|
|
@@ -12,7 +12,9 @@ import { resolveEpicGateTaskAttribution } from '../../epic/gate-policy';
|
|
|
12
12
|
import { assessSandboxEnforcement, getExecutor } from '../../sandbox/executor';
|
|
13
13
|
import { dcCheckJunctionCreation } from './destructive-command';
|
|
14
14
|
import { getMostRecentAssistantText, getProviderFailureFingerprint, isTransientProviderFailureText } from './messages-transform';
|
|
15
|
+
import { resolveParallelGateTaskAttribution } from './parallel-gate-attribution';
|
|
15
16
|
export declare const _internals: {
|
|
17
|
+
resolveParallelGateTaskAttribution: typeof resolveParallelGateTaskAttribution;
|
|
16
18
|
extractSwarmIdFromAgentName: typeof extractSwarmIdFromAgentName;
|
|
17
19
|
getSwarmAgents: typeof getSwarmAgents;
|
|
18
20
|
getMostRecentAssistantText: typeof getMostRecentAssistantText;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ParallelGateAttribution = {
|
|
2
|
+
kind: 'none';
|
|
3
|
+
} | {
|
|
4
|
+
kind: 'task';
|
|
5
|
+
taskId: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'unattributable';
|
|
8
|
+
message: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function resolveParallelGateTaskAttribution(directory: string, sessionID: string, files: readonly string[] | null): Promise<ParallelGateAttribution>;
|