opencode-swarm 7.140.3 → 7.140.5
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/brainstorm/SKILL.md +1 -1
- package/.opencode/skills/ci-failure-batching/SKILL.md +11 -1
- package/.opencode/skills/ci-fix-monitor/SKILL.md +6 -4
- package/.opencode/skills/discover/SKILL.md +1 -1
- package/.opencode/skills/durable-session-state/SKILL.md +82 -0
- package/.opencode/skills/engineering-conventions/SKILL.md +1 -1
- package/.opencode/skills/issue-ingest/SKILL.md +13 -7
- package/.opencode/skills/issue-tracer/SKILL.md +1 -1
- package/.opencode/skills/orchestrating-subagents/SKILL.md +113 -0
- package/.opencode/skills/parallel-work-check/SKILL.md +1 -1
- package/.opencode/skills/plan/SKILL.md +40 -12
- package/.opencode/skills/swarm-ci-monitor/SKILL.md +5 -3
- package/.opencode/skills/swarm-pr-feedback/SKILL.md +30 -4
- package/.opencode/skills/writing-tests/SKILL.md +1 -1
- package/dist/agents/architect.d.ts +2 -1
- package/dist/agents/reviewer-directive-compliance.d.ts +19 -5
- package/dist/background/pending-delegations.d.ts +5 -0
- package/dist/cli/{config-doctor-fnmfd35x.js → config-doctor-5vzpq4qa.js} +3 -3
- package/dist/cli/{core-p5cyej3r.js → core-xjzdc56e.js} +2 -2
- package/dist/cli/{curation-policy-d52h4g8t.js → curation-policy-avvb56x2.js} +6 -8
- package/dist/cli/{curator-3zpdqt9r.js → curator-5nytvg7p.js} +38 -38
- package/dist/cli/curator-llm-factory-rds75zhj.js +61 -0
- package/dist/cli/{evidence-summary-service-nfdc1ht9.js → evidence-summary-service-zq4gyx6g.js} +15 -12
- package/dist/cli/gate-evidence-smn2wqft.js +51 -0
- package/dist/cli/guardrail-explain-an7jvam1.js +62 -0
- package/dist/cli/{guardrail-log-82da8y5a.js → guardrail-log-0hnd2k9v.js} +4 -4
- package/dist/cli/{hive-promoter-af5yaxvt.js → hive-promoter-qe8pqg79.js} +38 -38
- package/dist/cli/{index-qksjaxpd.js → index-01ggt2mj.js} +49 -18
- package/dist/cli/{index-j1xmren9.js → index-0r2m0vbq.js} +12 -10
- package/dist/cli/{index-pg7n141e.js → index-0rx9t9w8.js} +1 -1
- package/dist/cli/{index-brh827g0.js → index-2bg901qt.js} +73 -32
- package/dist/cli/{index-8n4c3vec.js → index-386ts4tm.js} +4 -4
- package/dist/cli/{index-898f16j9.js → index-8rp1y4ab.js} +2 -2
- package/dist/cli/{index-hfvxhk4z.js → index-912qz4y0.js} +88 -88
- package/dist/cli/index-affh1gtg.js +2554 -0
- package/dist/cli/{index-1m1ksyqt.js → index-c432knmy.js} +1 -1
- package/dist/cli/{index-jvk119ck.js → index-e0mpz2j3.js} +54 -19
- package/dist/cli/{index-ry0hgg3m.js → index-epvhf50h.js} +37 -3
- package/dist/cli/{index-95bj4kaw.js → index-ex7r16gc.js} +2 -2
- package/dist/cli/{index-7d5jseea.js → index-jm4cpp4n.js} +5 -2
- package/dist/cli/{index-n408rw7n.js → index-jqsfsqbx.js} +27 -2
- package/dist/cli/{index-7kdd75se.js → index-kb5q9v34.js} +11 -9
- package/dist/cli/{index-jfjnn408.js → index-m9xrdjn0.js} +1 -1
- package/dist/cli/{index-pj9h75cc.js → index-mm2egvdt.js} +40 -40
- package/dist/cli/{index-8bnzzv3b.js → index-nwrwy8eb.js} +70 -34
- package/dist/cli/index-nyjtzmsj.js +43 -0
- package/dist/cli/{index-h2waehqq.js → index-p8kk34am.js} +3 -3
- package/dist/cli/{index-wf35ka4z.js → index-ptn13xjn.js} +3 -3
- package/dist/cli/{index-1kyex7z2.js → index-qwm6vdyv.js} +32 -1
- package/dist/cli/{index-p9dsb0tw.js → index-qy1nq52t.js} +2 -19
- package/dist/cli/{index-b9rd29ge.js → index-s1v0wza5.js} +6 -2
- package/dist/cli/{index-yyyk63kk.js → index-t5pytnca.js} +2 -2
- package/dist/cli/index-tjqzr3jc.js +623 -0
- package/dist/cli/{index-rs1f1bh0.js → index-vh05t3w5.js} +1 -1
- package/dist/cli/{index-adyxbmt5.js → index-wkt9fj06.js} +4 -4
- package/dist/cli/{index-kbfsp07d.js → index-wrb0gykj.js} +217 -15
- package/dist/cli/{index-xz8f1n1a.js → index-z7h37d63.js} +2 -2
- package/dist/cli/{index-q1q8b85k.js → index-z90nvqj3.js} +49315 -47331
- package/dist/cli/{index-b8zgtz81.js → index-zsrtt42s.js} +34 -1
- package/dist/cli/{index-gtbmabws.js → index-ztgn70jz.js} +2 -2
- package/dist/cli/index.js +37 -37
- package/dist/cli/{knowledge-escalator-7q59skqg.js → knowledge-escalator-4pfrc902.js} +20 -8
- package/dist/cli/{knowledge-events-3nwfdpq7.js → knowledge-events-3zkfnksk.js} +19 -6
- package/dist/cli/{knowledge-link-q46k9adx.js → knowledge-link-m9p80f4r.js} +5 -5
- package/dist/cli/{knowledge-store-0d83rhh3.js → knowledge-store-dpqgvvjt.js} +6 -6
- package/dist/cli/{knowledge-validator-6mfx91a2.js → knowledge-validator-2c7w87dk.js} +8 -9
- package/dist/cli/{pending-delegations-qzrx38y9.js → pending-delegations-cxx9tezp.js} +4 -4
- package/dist/cli/{pr-subscriptions-5s59h4dd.js → pr-subscriptions-2sfnb599.js} +4 -4
- package/dist/cli/{runner-y78d7ryb.js → runner-mky3vvht.js} +6 -6
- package/dist/cli/{scan-cursor-rc8q12ss.js → scan-cursor-1z60gwrw.js} +7 -7
- package/dist/cli/{schema-n9eaxp3a.js → schema-vpnkwvez.js} +2 -2
- package/dist/cli/{scope-persistence-dr1msqxw.js → scope-persistence-p9dmprry.js} +10 -5
- package/dist/cli/{skill-generator-q7c6vadg.js → skill-generator-yx7ka1cj.js} +19 -10
- package/dist/cli/{telemetry-sc57xtb0.js → telemetry-0x6kszvk.js} +1 -1
- package/dist/cli/{worktree-collision-ownership-7a8e6gr9.js → worktree-collision-ownership-wm5pse49.js} +8 -8
- package/dist/cli/worktree-isolation-bwc6ra8e.js +102 -0
- package/dist/cli/worktree-provisioning-owner-sjh7te1h.js +22 -0
- package/dist/commands/acknowledge-spec-drift.d.ts +4 -5
- package/dist/commands/ci-simulate.d.ts +7 -3
- package/dist/commands/close.d.ts +8 -0
- package/dist/commands/registry.d.ts +2 -2
- package/dist/commands/sdd.d.ts +15 -0
- package/dist/config/bundled-skills.d.ts +1 -1
- package/dist/config/evidence-schema.d.ts +3 -3
- package/dist/config/index.d.ts +2 -2
- package/dist/config/plan-schema.d.ts +8 -0
- package/dist/config/schema.d.ts +4 -2
- package/dist/council/council-evidence-writer.d.ts +1 -1
- package/dist/gate-evidence.d.ts +117 -4
- package/dist/git/branch.d.ts +1 -1
- package/dist/hooks/delegate-ack-collector.d.ts +5 -0
- package/dist/hooks/delegation-gate.d.ts +21 -0
- package/dist/hooks/hive-promoter.d.ts +4 -4
- package/dist/hooks/issue-trace-reducer.d.ts +7 -1
- package/dist/hooks/issue-trace-state.d.ts +18 -0
- package/dist/hooks/issue-trace.d.ts +3 -1
- package/dist/hooks/knowledge-application-gate.d.ts +8 -3
- package/dist/hooks/knowledge-application.d.ts +8 -5
- package/dist/hooks/knowledge-escalator.d.ts +9 -5
- package/dist/hooks/knowledge-events.d.ts +21 -8
- package/dist/hooks/knowledge-injector.d.ts +9 -0
- package/dist/hooks/knowledge-receipt-ledger-storage.d.ts +49 -0
- package/dist/hooks/knowledge-receipt-ledger.d.ts +305 -0
- package/dist/hooks/knowledge-receipt-observability.d.ts +28 -0
- package/dist/hooks/knowledge-receipt-validator.d.ts +13 -50
- package/dist/hooks/knowledge-store.d.ts +6 -1
- package/dist/hooks/knowledge-types.d.ts +12 -0
- package/dist/hooks/phase-complete-directive-gate.d.ts +3 -1
- package/dist/hooks/phase-directives.d.ts +4 -4
- package/dist/hooks/pr-workflow-gate.d.ts +34 -1
- package/dist/hooks/promotion-evidence-store.d.ts +14 -8
- package/dist/hooks/reviewer-verdict-parser.d.ts +34 -10
- package/dist/index.js +823 -779
- package/dist/knowledge/curation-policy.d.ts +0 -2
- package/dist/observability/catalog.d.ts +5 -3
- package/dist/observability/legacy.d.ts +4 -3
- package/dist/plan/ledger.d.ts +55 -0
- package/dist/plan/manager.d.ts +9 -0
- package/dist/plan/planning-profile.d.ts +27 -0
- package/dist/services/spec-drift-recovery.d.ts +84 -0
- package/dist/session/snapshot-writer.d.ts +3 -1
- package/dist/state.d.ts +19 -17
- package/dist/summaries/schema.d.ts +2 -2
- package/dist/telemetry.d.ts +1 -1
- package/dist/tools/convene-council.d.ts +6 -6
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/manifest.d.ts +3 -0
- package/dist/tools/phase-complete.d.ts +9 -0
- package/dist/tools/rebind-pr-feedback-head.d.ts +17 -0
- package/dist/tools/record-implementation-review.d.ts +19 -0
- package/dist/tools/record-recurrence-sweep.d.ts +17 -0
- package/dist/tools/run-pr-feedback-stage-a.d.ts +8 -0
- package/dist/tools/save-plan.d.ts +8 -0
- package/dist/tools/submit-phase-council-verdicts.d.ts +6 -6
- package/dist/tools/tool-metadata.d.ts +40 -28
- package/dist/tools/update-task-status.d.ts +13 -0
- package/dist/tools/write-final-council-evidence.d.ts +6 -6
- package/dist/types/events.d.ts +29 -1
- package/dist/workflow/coder-settlement.d.ts +62 -0
- package/dist/workflow/task-repair.d.ts +30 -0
- package/dist/workflow/task-terminal.d.ts +52 -0
- package/package.json +3 -1
- package/dist/cli/curator-llm-factory-2h0xb62t.js +0 -61
- package/dist/cli/gate-evidence-46qeyfc1.js +0 -32
- package/dist/cli/guardrail-explain-yktan15c.js +0 -62
- package/dist/cli/index-d181x9zr.js +0 -71
- package/dist/cli/index-n0pja0qs.js +0 -239
- package/dist/cli/index-n8jncheh.js +0 -666
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
init_loader,
|
|
4
|
+
loadPluginConfigWithMeta
|
|
5
|
+
} from "./index-nwrwy8eb.js";
|
|
6
|
+
import {
|
|
7
|
+
init_schema
|
|
8
|
+
} from "./index-jm4cpp4n.js";
|
|
9
|
+
import {
|
|
10
|
+
DEFAULT_WORKTREE_ISOLATION_CONFIG,
|
|
11
|
+
init_constants
|
|
12
|
+
} from "./index-jqsfsqbx.js";
|
|
13
|
+
|
|
14
|
+
// src/config/index.ts
|
|
15
|
+
init_constants();
|
|
16
|
+
init_loader();
|
|
17
|
+
init_loader();
|
|
18
|
+
init_schema();
|
|
19
|
+
|
|
20
|
+
// src/config/worktree-isolation-config.ts
|
|
21
|
+
init_constants();
|
|
22
|
+
function resolveWorktreeIsolationConfig(config) {
|
|
23
|
+
if (config.worktree) {
|
|
24
|
+
return { ...DEFAULT_WORKTREE_ISOLATION_CONFIG, ...config.worktree };
|
|
25
|
+
}
|
|
26
|
+
const lean = config.turbo?.strategy === "lean" ? config.turbo.lean : undefined;
|
|
27
|
+
if (lean?.worktree_isolation) {
|
|
28
|
+
return {
|
|
29
|
+
...DEFAULT_WORKTREE_ISOLATION_CONFIG,
|
|
30
|
+
policy: "auto",
|
|
31
|
+
merge_strategy: lean.merge_strategy ?? "merge",
|
|
32
|
+
worktree_dir: lean.worktree_dir,
|
|
33
|
+
deps_strategy: lean.deps_strategy ?? "skip",
|
|
34
|
+
runtime_isolation: lean.runtime_isolation ?? DEFAULT_WORKTREE_ISOLATION_CONFIG.runtime_isolation
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return DEFAULT_WORKTREE_ISOLATION_CONFIG;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/config/index.ts
|
|
41
|
+
var _internals = { loadPluginConfigWithMeta };
|
|
42
|
+
|
|
43
|
+
export { resolveWorktreeIsolationConfig, _internals };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
+
import {
|
|
3
|
+
withEvidenceLock
|
|
4
|
+
} from "./index-912qz4y0.js";
|
|
2
5
|
import {
|
|
3
6
|
invalidateCachedArtifact
|
|
4
7
|
} from "./index-ed5ykebp.js";
|
|
5
|
-
import {
|
|
6
|
-
withEvidenceLock
|
|
7
|
-
} from "./index-hfvxhk4z.js";
|
|
8
8
|
import {
|
|
9
9
|
bunWrite
|
|
10
10
|
} from "./index-4nt52yr9.js";
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
init_schema,
|
|
17
17
|
stripKnownSwarmPrefix
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-jm4cpp4n.js";
|
|
19
19
|
import {
|
|
20
20
|
init_constants
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-jqsfsqbx.js";
|
|
22
22
|
import {
|
|
23
23
|
__commonJS,
|
|
24
24
|
__toESM
|
|
@@ -2615,4 +2615,4 @@ function redactPath(filePath) {
|
|
|
2615
2615
|
return normalized;
|
|
2616
2616
|
}
|
|
2617
2617
|
|
|
2618
|
-
export {
|
|
2618
|
+
export { classifyFile, stableCanonicalStringify, checkFileAuthority, isInDeclaredScope, redactShellCommand, redactPath };
|
|
@@ -11,6 +11,7 @@ var PROVISIONING_OWNER_DIR = "worktree-provisioning-owners";
|
|
|
11
11
|
var MAX_PROVISIONING_OWNERS = 512;
|
|
12
12
|
var MAX_PROVISIONING_OWNER_BYTES = 16 * 1024;
|
|
13
13
|
var WORKTREE_PROVISIONING_OWNER_LEASE_MS = 5 * 60 * 1000;
|
|
14
|
+
var WORKTREE_LIFECYCLE_LOCK_FILE = ".swarm/locks/init-orphan-recovery.lock";
|
|
14
15
|
function ownerDirectory(directory) {
|
|
15
16
|
return path.dirname(validateSwarmPath(directory, path.join(PROVISIONING_OWNER_DIR, ".containment-anchor")));
|
|
16
17
|
}
|
|
@@ -26,6 +27,36 @@ function isOwner(value) {
|
|
|
26
27
|
const validTaskIdentity = schemaVersion === 1 ? candidate.taskId === undefined : schemaVersion === 2 && typeof candidate.taskId === "string" && candidate.taskId.length > 0 && candidate.taskId.length <= 512;
|
|
27
28
|
return (schemaVersion === 1 || schemaVersion === 2) && validTaskIdentity && typeof candidate.callID === "string" && candidate.callID.length > 0 && candidate.callID.length <= 512 && typeof candidate.parentSessionId === "string" && candidate.parentSessionId.length > 0 && candidate.parentSessionId.length <= 512 && typeof candidate.worktreeSessionId === "string" && candidate.worktreeSessionId.length > 0 && candidate.worktreeSessionId.length <= 512 && typeof candidate.createdAt === "number" && Number.isFinite(candidate.createdAt) && candidate.createdAt >= 0;
|
|
28
29
|
}
|
|
30
|
+
function recordWorktreeProvisioningOwner(directory, input) {
|
|
31
|
+
const owner = {
|
|
32
|
+
schemaVersion: input.taskId ? 2 : 1,
|
|
33
|
+
callID: input.callID,
|
|
34
|
+
parentSessionId: input.parentSessionId,
|
|
35
|
+
worktreeSessionId: input.worktreeSessionId,
|
|
36
|
+
...input.taskId ? { taskId: input.taskId } : {},
|
|
37
|
+
createdAt: Date.now()
|
|
38
|
+
};
|
|
39
|
+
if (!isOwner(owner)) {
|
|
40
|
+
throw new Error("invalid worktree provisioning owner");
|
|
41
|
+
}
|
|
42
|
+
const absolutePath = ownerPath(directory, input.callID);
|
|
43
|
+
fs.mkdirSync(path.dirname(absolutePath), { recursive: true });
|
|
44
|
+
const tempPath = `${absolutePath}.tmp-${randomBytes(8).toString("hex")}`;
|
|
45
|
+
try {
|
|
46
|
+
fs.writeFileSync(tempPath, `${JSON.stringify(owner)}
|
|
47
|
+
`, {
|
|
48
|
+
encoding: "utf8",
|
|
49
|
+
flag: "wx"
|
|
50
|
+
});
|
|
51
|
+
fs.renameSync(tempPath, absolutePath);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
try {
|
|
54
|
+
fs.unlinkSync(tempPath);
|
|
55
|
+
} catch {}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
return owner;
|
|
59
|
+
}
|
|
29
60
|
function removeWorktreeProvisioningOwner(directory, callID) {
|
|
30
61
|
try {
|
|
31
62
|
fs.unlinkSync(ownerPath(directory, callID));
|
|
@@ -91,4 +122,4 @@ function scanWorktreeProvisioningOwnersForRecovery(directory) {
|
|
|
91
122
|
return { status: "ok", owners };
|
|
92
123
|
}
|
|
93
124
|
|
|
94
|
-
export { WORKTREE_PROVISIONING_OWNER_LEASE_MS, removeWorktreeProvisioningOwner, scanWorktreeProvisioningOwnersForRecovery };
|
|
125
|
+
export { WORKTREE_PROVISIONING_OWNER_LEASE_MS, WORKTREE_LIFECYCLE_LOCK_FILE, recordWorktreeProvisioningOwner, removeWorktreeProvisioningOwner, scanWorktreeProvisioningOwnersForRecovery };
|
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
import {
|
|
3
3
|
cohortConfigFingerprint
|
|
4
4
|
} from "./index-rtry5xyf.js";
|
|
5
|
-
import {
|
|
6
|
-
readKnowledgeEvents
|
|
7
|
-
} from "./index-n8jncheh.js";
|
|
8
5
|
import {
|
|
9
6
|
isLinked,
|
|
10
7
|
readLinkPointer,
|
|
11
8
|
resolveKnowledgeStoreDir,
|
|
12
9
|
resolveLinkDir
|
|
13
|
-
} from "./index-
|
|
10
|
+
} from "./index-vh05t3w5.js";
|
|
14
11
|
|
|
15
12
|
// src/knowledge/curation-policy.ts
|
|
16
13
|
import { appendFile, mkdir as mkdir2, readFile as readFile2 } from "fs/promises";
|
|
@@ -179,24 +176,11 @@ async function authorizeCuration(input, context, quorum = DEFAULT_QUORUM) {
|
|
|
179
176
|
};
|
|
180
177
|
}
|
|
181
178
|
if (input.evidenceScope === "cohort-wide") {
|
|
182
|
-
const events = await _internals2.readKnowledgeEvents(directory);
|
|
183
|
-
const NEGATIVE_EVENT_TYPES = new Set(["violated", "contradicted"]);
|
|
184
|
-
const entryEvents = events.filter((e) => ("type" in e) && NEGATIVE_EVENT_TYPES.has(e.type ?? "") && ("knowledge_id" in e) && e.knowledge_id === entryId);
|
|
185
|
-
const cohortEvidence = entryEvents.length;
|
|
186
|
-
if (cohortEvidence >= quorum.minCohortEvidence) {
|
|
187
|
-
return {
|
|
188
|
-
authorized: true,
|
|
189
|
-
basis: "quorum",
|
|
190
|
-
detail: `Cohort quorum met for entry ${entryId}: ${cohortEvidence} ` + `cohort-wide evidence events (\u2265 ${quorum.minCohortEvidence} required).`,
|
|
191
|
-
expectedRevision: entry.revision,
|
|
192
|
-
expectedContentHash: entry.content_hash
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
179
|
persistProposal(proposal);
|
|
196
180
|
return {
|
|
197
181
|
authorized: false,
|
|
198
182
|
basis: "quorum-insufficient",
|
|
199
|
-
detail: `Cohort
|
|
183
|
+
detail: `Cohort-wide diagnostics cannot authorize destructive action for entry ${entryId}. ` + `The project-local receipt ledger cannot prove a cross-root quorum; ` + `the producer or an explicit audited override must authorize it ` + `(configured threshold ${quorum.minCohortEvidence}).`,
|
|
200
184
|
proposal
|
|
201
185
|
};
|
|
202
186
|
}
|
|
@@ -248,7 +232,6 @@ async function readCohortConfigFingerprint(directory) {
|
|
|
248
232
|
}
|
|
249
233
|
var _internals2 = {
|
|
250
234
|
resolveWorktreeId,
|
|
251
|
-
readKnowledgeEvents,
|
|
252
235
|
cohortConfigFingerprint,
|
|
253
236
|
readCohortConfigFingerprint,
|
|
254
237
|
readFile: readFile2,
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./index-k46me75h.js";
|
|
5
5
|
import {
|
|
6
6
|
withEvidenceLock
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-912qz4y0.js";
|
|
8
8
|
import {
|
|
9
9
|
bunWrite
|
|
10
10
|
} from "./index-4nt52yr9.js";
|
|
@@ -65,7 +65,8 @@ var WorkspaceSchema = exports_external.object({
|
|
|
65
65
|
}).strict();
|
|
66
66
|
var TaskChangeContextSchema = exports_external.object({
|
|
67
67
|
declaredFiles: exports_external.array(exports_external.string()).nullable(),
|
|
68
|
-
baseline: WorkspaceSchema
|
|
68
|
+
baseline: WorkspaceSchema,
|
|
69
|
+
workflowGeneration: exports_external.number().int().nonnegative().optional()
|
|
69
70
|
}).strict();
|
|
70
71
|
var WorktreeDescriptorSchema = exports_external.object({
|
|
71
72
|
callID: exports_external.string().min(1).max(256),
|
|
@@ -260,6 +261,7 @@ var RecordSchema = exports_external.object({
|
|
|
260
261
|
promptHash: exports_external.string().optional(),
|
|
261
262
|
workspace: WorkspaceSchema.optional(),
|
|
262
263
|
taskChangeContext: TaskChangeContextSchema.optional(),
|
|
264
|
+
workflowGeneration: exports_external.number().int().nonnegative().optional(),
|
|
263
265
|
worktree: WorktreeDescriptorSchema.optional(),
|
|
264
266
|
coderReservationId: exports_external.string().min(1).max(256).optional(),
|
|
265
267
|
prompt: PromptSchema.optional(),
|
|
@@ -419,6 +421,7 @@ function buildPendingRecord(input, now) {
|
|
|
419
421
|
...input.promptHash ? { promptHash: input.promptHash } : {},
|
|
420
422
|
...input.workspace ? { workspace: input.workspace } : {},
|
|
421
423
|
...input.taskChangeContext ? { taskChangeContext: input.taskChangeContext } : {},
|
|
424
|
+
...input.workflowGeneration !== undefined ? { workflowGeneration: input.workflowGeneration } : {},
|
|
422
425
|
...input.worktree ? { worktree: input.worktree } : {},
|
|
423
426
|
...input.coderReservationId ? { coderReservationId: input.coderReservationId } : {},
|
|
424
427
|
...input.prompt ? { prompt: input.prompt } : {},
|
|
@@ -444,6 +447,7 @@ function pendingLaunchIdentity(record) {
|
|
|
444
447
|
promptHash: record.promptHash,
|
|
445
448
|
workspace: record.workspace,
|
|
446
449
|
taskChangeContext: record.taskChangeContext,
|
|
450
|
+
workflowGeneration: record.workflowGeneration,
|
|
447
451
|
worktree: record.worktree,
|
|
448
452
|
coderReservationId: record.coderReservationId,
|
|
449
453
|
prompt: record.prompt,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from "./index-y8552snf.js";
|
|
10
10
|
import {
|
|
11
11
|
atomicWriteFile
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-p8kk34am.js";
|
|
13
13
|
import {
|
|
14
14
|
assertProjectRoot,
|
|
15
15
|
withEvidenceLock
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-912qz4y0.js";
|
|
17
17
|
import {
|
|
18
18
|
exports_external,
|
|
19
19
|
init_zod
|