opencode-swarm-plugin 0.31.7 → 0.32.0
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/.turbo/turbo-build.log +10 -9
- package/.turbo/turbo-test.log +319 -317
- package/CHANGELOG.md +134 -0
- package/README.md +7 -4
- package/bin/swarm.ts +388 -128
- package/dist/compaction-hook.d.ts +1 -1
- package/dist/compaction-hook.d.ts.map +1 -1
- package/dist/hive.d.ts.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +123 -134
- package/dist/memory-tools.d.ts.map +1 -1
- package/dist/memory.d.ts +5 -4
- package/dist/memory.d.ts.map +1 -1
- package/dist/plugin.js +118 -131
- package/dist/swarm-orchestrate.d.ts +29 -5
- package/dist/swarm-orchestrate.d.ts.map +1 -1
- package/dist/swarm-prompts.d.ts +7 -0
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/dist/swarm.d.ts +0 -2
- package/dist/swarm.d.ts.map +1 -1
- package/evals/lib/{data-loader.test.ts → data-loader.evalite-test.ts} +7 -6
- package/evals/lib/data-loader.ts +1 -1
- package/evals/scorers/{outcome-scorers.test.ts → outcome-scorers.evalite-test.ts} +1 -1
- package/examples/plugin-wrapper-template.ts +19 -4
- package/global-skills/swarm-coordination/SKILL.md +118 -8
- package/package.json +2 -2
- package/src/compaction-hook.ts +5 -3
- package/src/hive.integration.test.ts +83 -1
- package/src/hive.ts +37 -12
- package/src/mandate-storage.integration.test.ts +601 -0
- package/src/memory-tools.ts +6 -4
- package/src/memory.integration.test.ts +117 -49
- package/src/memory.test.ts +41 -217
- package/src/memory.ts +12 -8
- package/src/repo-crawl.integration.test.ts +441 -0
- package/src/skills.integration.test.ts +1056 -0
- package/src/structured.integration.test.ts +817 -0
- package/src/swarm-deferred.integration.test.ts +157 -0
- package/src/swarm-deferred.test.ts +38 -0
- package/src/swarm-mail.integration.test.ts +15 -19
- package/src/swarm-orchestrate.integration.test.ts +282 -0
- package/src/swarm-orchestrate.ts +96 -201
- package/src/swarm-prompts.test.ts +92 -0
- package/src/swarm-prompts.ts +69 -0
- package/src/swarm-review.integration.test.ts +290 -0
- package/src/swarm.integration.test.ts +23 -20
- package/src/tool-adapter.integration.test.ts +1221 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAqCtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,EAAE,MAuLzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAe,WAAW,CAAC;AAM3B;;GAEG;AACH,cAAc,WAAW,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,cAAc,QAAQ,CAAC;AAEvB;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;GAMG;AACH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EAEjB,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC;AAMjB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27084,7 +27084,7 @@ import {
|
|
|
27084
27084
|
FlushManager,
|
|
27085
27085
|
importFromJSONL,
|
|
27086
27086
|
syncMemories,
|
|
27087
|
-
|
|
27087
|
+
getSwarmMailLibSQL,
|
|
27088
27088
|
resolvePartialId
|
|
27089
27089
|
} from "swarm-mail";
|
|
27090
27090
|
import { existsSync, readFileSync } from "node:fs";
|
|
@@ -27977,7 +27977,7 @@ async function getHiveAdapter(projectKey) {
|
|
|
27977
27977
|
if (adapterCache.has(projectKey)) {
|
|
27978
27978
|
return adapterCache.get(projectKey);
|
|
27979
27979
|
}
|
|
27980
|
-
const swarmMail = await
|
|
27980
|
+
const swarmMail = await getSwarmMailLibSQL(projectKey);
|
|
27981
27981
|
const db = await swarmMail.getDatabase();
|
|
27982
27982
|
const adapter = createHiveAdapter(db, projectKey);
|
|
27983
27983
|
await adapter.runMigrations();
|
|
@@ -28345,7 +28345,7 @@ var hive_sync = tool({
|
|
|
28345
28345
|
outputPath: `${projectKey}/.hive/issues.jsonl`
|
|
28346
28346
|
});
|
|
28347
28347
|
const flushResult = await withTimeout(flushManager.flush(), TIMEOUT_MS, "flush hive");
|
|
28348
|
-
const swarmMail = await
|
|
28348
|
+
const swarmMail = await getSwarmMailLibSQL(projectKey);
|
|
28349
28349
|
const db = await swarmMail.getDatabase();
|
|
28350
28350
|
const hivePath = join(projectKey, ".hive");
|
|
28351
28351
|
let memoriesSynced = 0;
|
|
@@ -28378,9 +28378,27 @@ var hive_sync = tool({
|
|
|
28378
28378
|
const remoteCheckResult2 = await runGitCommand(["remote"]);
|
|
28379
28379
|
const hasRemote2 = remoteCheckResult2.stdout.trim() !== "";
|
|
28380
28380
|
if (hasRemote2) {
|
|
28381
|
-
const
|
|
28382
|
-
|
|
28383
|
-
|
|
28381
|
+
const statusResult = await runGitCommand(["status", "--porcelain"]);
|
|
28382
|
+
const hasUnstagedChanges = statusResult.stdout.trim() !== "";
|
|
28383
|
+
let didStash = false;
|
|
28384
|
+
if (hasUnstagedChanges) {
|
|
28385
|
+
const stashResult = await runGitCommand(["stash", "push", "-u", "-m", "hive_sync: auto-stash before pull"]);
|
|
28386
|
+
if (stashResult.exitCode === 0) {
|
|
28387
|
+
didStash = true;
|
|
28388
|
+
}
|
|
28389
|
+
}
|
|
28390
|
+
try {
|
|
28391
|
+
const pullResult = await withTimeout(runGitCommand(["pull", "--rebase"]), TIMEOUT_MS, "git pull --rebase");
|
|
28392
|
+
if (pullResult.exitCode !== 0) {
|
|
28393
|
+
throw new HiveError(`Failed to pull: ${pullResult.stderr}`, "git pull --rebase", pullResult.exitCode);
|
|
28394
|
+
}
|
|
28395
|
+
} finally {
|
|
28396
|
+
if (didStash) {
|
|
28397
|
+
const popResult = await runGitCommand(["stash", "pop"]);
|
|
28398
|
+
if (popResult.exitCode !== 0) {
|
|
28399
|
+
console.warn(`[hive_sync] Warning: stash pop failed. Your changes are in 'git stash list'. Error: ${popResult.stderr}`);
|
|
28400
|
+
}
|
|
28401
|
+
}
|
|
28384
28402
|
}
|
|
28385
28403
|
}
|
|
28386
28404
|
}
|
|
@@ -32936,7 +32954,8 @@ import {
|
|
|
32936
32954
|
sendSwarmMessage as sendSwarmMessage3,
|
|
32937
32955
|
getAgent,
|
|
32938
32956
|
createEvent as createEvent2,
|
|
32939
|
-
appendEvent as appendEvent2
|
|
32957
|
+
appendEvent as appendEvent2,
|
|
32958
|
+
getSwarmMailLibSQL as getSwarmMailLibSQL2
|
|
32940
32959
|
} from "swarm-mail";
|
|
32941
32960
|
init_skills();
|
|
32942
32961
|
|
|
@@ -33740,60 +33759,6 @@ ${progress.blockers.map((b) => `- ${b}`).join(`
|
|
|
33740
33759
|
|
|
33741
33760
|
`);
|
|
33742
33761
|
}
|
|
33743
|
-
async function runUbsScan(files) {
|
|
33744
|
-
if (files.length === 0) {
|
|
33745
|
-
return null;
|
|
33746
|
-
}
|
|
33747
|
-
const ubsAvailable = await isToolAvailable("ubs");
|
|
33748
|
-
if (!ubsAvailable) {
|
|
33749
|
-
warnMissingTool("ubs");
|
|
33750
|
-
return null;
|
|
33751
|
-
}
|
|
33752
|
-
try {
|
|
33753
|
-
const result = await Bun.$`ubs scan ${files.join(" ")} --json`.quiet().nothrow();
|
|
33754
|
-
const output = result.stdout.toString();
|
|
33755
|
-
if (!output.trim()) {
|
|
33756
|
-
return {
|
|
33757
|
-
exitCode: result.exitCode,
|
|
33758
|
-
bugs: [],
|
|
33759
|
-
summary: { total: 0, critical: 0, high: 0, medium: 0, low: 0 }
|
|
33760
|
-
};
|
|
33761
|
-
}
|
|
33762
|
-
try {
|
|
33763
|
-
const parsed = JSON.parse(output);
|
|
33764
|
-
if (typeof parsed !== "object" || parsed === null) {
|
|
33765
|
-
throw new Error("UBS output is not an object");
|
|
33766
|
-
}
|
|
33767
|
-
if (!Array.isArray(parsed.bugs)) {
|
|
33768
|
-
console.warn("[swarm] UBS output missing bugs array, using empty");
|
|
33769
|
-
}
|
|
33770
|
-
if (typeof parsed.summary !== "object" || parsed.summary === null) {
|
|
33771
|
-
console.warn("[swarm] UBS output missing summary object, using empty");
|
|
33772
|
-
}
|
|
33773
|
-
return {
|
|
33774
|
-
exitCode: result.exitCode,
|
|
33775
|
-
bugs: Array.isArray(parsed.bugs) ? parsed.bugs : [],
|
|
33776
|
-
summary: parsed.summary || {
|
|
33777
|
-
total: 0,
|
|
33778
|
-
critical: 0,
|
|
33779
|
-
high: 0,
|
|
33780
|
-
medium: 0,
|
|
33781
|
-
low: 0
|
|
33782
|
-
}
|
|
33783
|
-
};
|
|
33784
|
-
} catch (error45) {
|
|
33785
|
-
console.error(`[swarm] CRITICAL: UBS scan failed to parse JSON output because output is malformed:`, error45);
|
|
33786
|
-
console.error(`[swarm] Raw output: ${output}. Try: Run 'ubs doctor' to check installation, verify UBS version with 'ubs --version' (need v1.0.0+), or check if UBS supports --json flag.`);
|
|
33787
|
-
return {
|
|
33788
|
-
exitCode: result.exitCode,
|
|
33789
|
-
bugs: [],
|
|
33790
|
-
summary: { total: 0, critical: 0, high: 0, medium: 0, low: 0 }
|
|
33791
|
-
};
|
|
33792
|
-
}
|
|
33793
|
-
} catch {
|
|
33794
|
-
return null;
|
|
33795
|
-
}
|
|
33796
|
-
}
|
|
33797
33762
|
async function runTypecheckVerification() {
|
|
33798
33763
|
const step = {
|
|
33799
33764
|
name: "typecheck",
|
|
@@ -33878,34 +33843,9 @@ async function runTestVerification(filesTouched) {
|
|
|
33878
33843
|
}
|
|
33879
33844
|
return step;
|
|
33880
33845
|
}
|
|
33881
|
-
async function runVerificationGate(filesTouched,
|
|
33846
|
+
async function runVerificationGate(filesTouched, _skipUbs = false) {
|
|
33882
33847
|
const steps = [];
|
|
33883
33848
|
const blockers = [];
|
|
33884
|
-
if (!skipUbs && filesTouched.length > 0) {
|
|
33885
|
-
const ubsResult = await runUbsScan(filesTouched);
|
|
33886
|
-
if (ubsResult) {
|
|
33887
|
-
const ubsStep = {
|
|
33888
|
-
name: "ubs_scan",
|
|
33889
|
-
command: `ubs scan ${filesTouched.join(" ")}`,
|
|
33890
|
-
passed: ubsResult.summary.critical === 0,
|
|
33891
|
-
exitCode: ubsResult.exitCode
|
|
33892
|
-
};
|
|
33893
|
-
if (!ubsStep.passed) {
|
|
33894
|
-
ubsStep.error = `Found ${ubsResult.summary.critical} critical bugs`;
|
|
33895
|
-
blockers.push(`UBS found ${ubsResult.summary.critical} critical bug(s). Try: Run 'ubs scan ${filesTouched.join(" ")}' to see details, fix critical bugs in reported files, or use skip_ubs_scan=true to bypass (not recommended).`);
|
|
33896
|
-
}
|
|
33897
|
-
steps.push(ubsStep);
|
|
33898
|
-
} else {
|
|
33899
|
-
steps.push({
|
|
33900
|
-
name: "ubs_scan",
|
|
33901
|
-
command: "ubs scan",
|
|
33902
|
-
passed: true,
|
|
33903
|
-
exitCode: 0,
|
|
33904
|
-
skipped: true,
|
|
33905
|
-
skipReason: "UBS not available"
|
|
33906
|
-
});
|
|
33907
|
-
}
|
|
33908
|
-
}
|
|
33909
33849
|
const typecheckStep = await runTypecheckVerification();
|
|
33910
33850
|
steps.push(typecheckStep);
|
|
33911
33851
|
if (!typecheckStep.passed && !typecheckStep.skipped) {
|
|
@@ -34228,16 +34168,15 @@ ${args.files_affected.map((f) => `- \`${f}\``).join(`
|
|
|
34228
34168
|
}
|
|
34229
34169
|
});
|
|
34230
34170
|
var swarm_complete = tool({
|
|
34231
|
-
description: "Mark subtask complete with Verification Gate. Runs
|
|
34171
|
+
description: "Mark subtask complete with Verification Gate. Runs typecheck and tests before allowing completion.",
|
|
34232
34172
|
args: {
|
|
34233
34173
|
project_key: tool.schema.string().describe("Project path"),
|
|
34234
34174
|
agent_name: tool.schema.string().describe("Your Agent Mail name"),
|
|
34235
34175
|
bead_id: tool.schema.string().describe("Subtask bead ID"),
|
|
34236
34176
|
summary: tool.schema.string().describe("Brief summary of work done"),
|
|
34237
34177
|
evaluation: tool.schema.string().optional().describe("Self-evaluation JSON (Evaluation schema)"),
|
|
34238
|
-
files_touched: tool.schema.array(tool.schema.string()).optional().describe("Files modified - will be verified (
|
|
34239
|
-
|
|
34240
|
-
skip_verification: tool.schema.boolean().optional().describe("Skip ALL verification (UBS, typecheck, tests). Use sparingly! (default: false)"),
|
|
34178
|
+
files_touched: tool.schema.array(tool.schema.string()).optional().describe("Files modified - will be verified (typecheck, tests)"),
|
|
34179
|
+
skip_verification: tool.schema.boolean().optional().describe("Skip ALL verification (typecheck, tests). Use sparingly! (default: false)"),
|
|
34241
34180
|
planned_files: tool.schema.array(tool.schema.string()).optional().describe("Files that were originally planned to be modified"),
|
|
34242
34181
|
start_time: tool.schema.number().optional().describe("Task start timestamp (Unix ms) for duration calculation"),
|
|
34243
34182
|
error_count: tool.schema.number().optional().describe("Number of errors encountered during task"),
|
|
@@ -34320,7 +34259,7 @@ Continuing with completion, but this should be fixed for future subtasks.`;
|
|
|
34320
34259
|
}
|
|
34321
34260
|
let verificationResult = null;
|
|
34322
34261
|
if (!args.skip_verification && args.files_touched?.length) {
|
|
34323
|
-
verificationResult = await runVerificationGate(args.files_touched,
|
|
34262
|
+
verificationResult = await runVerificationGate(args.files_touched, false);
|
|
34324
34263
|
if (!verificationResult.passed) {
|
|
34325
34264
|
return JSON.stringify({
|
|
34326
34265
|
success: false,
|
|
@@ -34342,21 +34281,6 @@ Continuing with completion, but this should be fixed for future subtasks.`;
|
|
|
34342
34281
|
}, null, 2);
|
|
34343
34282
|
}
|
|
34344
34283
|
}
|
|
34345
|
-
let ubsResult = null;
|
|
34346
|
-
if (!args.skip_verification && !verificationResult && args.files_touched?.length && !args.skip_ubs_scan) {
|
|
34347
|
-
ubsResult = await runUbsScan(args.files_touched);
|
|
34348
|
-
if (ubsResult && ubsResult.summary.critical > 0) {
|
|
34349
|
-
return JSON.stringify({
|
|
34350
|
-
success: false,
|
|
34351
|
-
error: `UBS found ${ubsResult.summary.critical} critical bug(s) that must be fixed before completing`,
|
|
34352
|
-
ubs_scan: {
|
|
34353
|
-
critical_count: ubsResult.summary.critical,
|
|
34354
|
-
bugs: ubsResult.bugs.filter((b) => b.severity === "critical")
|
|
34355
|
-
},
|
|
34356
|
-
hint: `Fix these critical bugs: ${ubsResult.bugs.filter((b) => b.severity === "critical").map((b) => `${b.file}:${b.line} - ${b.message}`).slice(0, 3).join("; ")}. Try: Run 'ubs scan ${args.files_touched?.join(" ") || "."} --json' for full report, fix reported issues, or use skip_ubs_scan=true to bypass (not recommended).`
|
|
34357
|
-
}, null, 2);
|
|
34358
|
-
}
|
|
34359
|
-
}
|
|
34360
34284
|
let contractValidation = null;
|
|
34361
34285
|
let contractWarning;
|
|
34362
34286
|
if (args.files_touched && args.files_touched.length > 0) {
|
|
@@ -34426,6 +34350,23 @@ This will be recorded as a negative learning signal.`;
|
|
|
34426
34350
|
}
|
|
34427
34351
|
}, null, 2);
|
|
34428
34352
|
}
|
|
34353
|
+
let deferredResolved = false;
|
|
34354
|
+
let deferredError;
|
|
34355
|
+
try {
|
|
34356
|
+
const swarmMail = await getSwarmMailLibSQL2(args.project_key);
|
|
34357
|
+
const db = await swarmMail.getDatabase();
|
|
34358
|
+
const deferredUrl = `deferred:${args.bead_id}`;
|
|
34359
|
+
const checkResult = await db.query(`SELECT url, resolved FROM deferred WHERE url = ? AND resolved = 0`, [deferredUrl]);
|
|
34360
|
+
if (checkResult.rows.length > 0) {
|
|
34361
|
+
await db.query(`UPDATE deferred SET resolved = 1, value = ? WHERE url = ? AND resolved = 0`, [JSON.stringify({ completed: true, summary: args.summary }), deferredUrl]);
|
|
34362
|
+
deferredResolved = true;
|
|
34363
|
+
} else {
|
|
34364
|
+
console.info(`[swarm_complete] No deferred found for ${args.bead_id} - task may not be part of active swarm`);
|
|
34365
|
+
}
|
|
34366
|
+
} catch (error45) {
|
|
34367
|
+
deferredError = error45 instanceof Error ? error45.message : String(error45);
|
|
34368
|
+
console.warn(`[swarm_complete] Failed to resolve deferred (non-fatal): ${deferredError}`);
|
|
34369
|
+
}
|
|
34429
34370
|
let syncSuccess = false;
|
|
34430
34371
|
let syncError;
|
|
34431
34372
|
try {
|
|
@@ -34530,6 +34471,8 @@ This will be recorded as a negative learning signal.`;
|
|
|
34530
34471
|
sync_error: syncError,
|
|
34531
34472
|
message_sent: messageSent,
|
|
34532
34473
|
message_error: messageError,
|
|
34474
|
+
deferred_resolved: deferredResolved,
|
|
34475
|
+
deferred_error: deferredError,
|
|
34533
34476
|
agent_registration: {
|
|
34534
34477
|
verified: agentRegistered,
|
|
34535
34478
|
warning: registrationWarning || undefined
|
|
@@ -34544,15 +34487,6 @@ This will be recorded as a negative learning signal.`;
|
|
|
34544
34487
|
skipReason: s.skipReason
|
|
34545
34488
|
}))
|
|
34546
34489
|
} : args.skip_verification ? { skipped: true, reason: "skip_verification=true" } : { skipped: true, reason: "no files_touched provided" },
|
|
34547
|
-
ubs_scan: ubsResult ? {
|
|
34548
|
-
ran: true,
|
|
34549
|
-
bugs_found: ubsResult.summary.total,
|
|
34550
|
-
summary: ubsResult.summary,
|
|
34551
|
-
warnings: ubsResult.bugs.filter((b) => b.severity !== "critical")
|
|
34552
|
-
} : verificationResult ? { ran: true, included_in_verification_gate: true } : {
|
|
34553
|
-
ran: false,
|
|
34554
|
-
reason: args.skip_ubs_scan ? "skipped" : "no files or ubs unavailable"
|
|
34555
|
-
},
|
|
34556
34490
|
learning_prompt: `## Reflection
|
|
34557
34491
|
|
|
34558
34492
|
Did you learn anything reusable during this subtask? Consider:
|
|
@@ -34590,9 +34524,7 @@ Files touched: ${args.files_touched?.join(", ") || "none recorded"}`,
|
|
|
34590
34524
|
const errorStack = error45 instanceof Error ? error45.stack : undefined;
|
|
34591
34525
|
let failedStep = "unknown";
|
|
34592
34526
|
if (errorMessage.includes("verification")) {
|
|
34593
|
-
failedStep = "Verification Gate (
|
|
34594
|
-
} else if (errorMessage.includes("UBS") || errorMessage.includes("ubs")) {
|
|
34595
|
-
failedStep = "UBS scan";
|
|
34527
|
+
failedStep = "Verification Gate (typecheck/tests)";
|
|
34596
34528
|
} else if (errorMessage.includes("evaluation")) {
|
|
34597
34529
|
failedStep = "Self-evaluation parsing";
|
|
34598
34530
|
} else if (errorMessage.includes("bead") || errorMessage.includes("close")) {
|
|
@@ -34624,7 +34556,6 @@ ${errorStack.slice(0, 1000)}
|
|
|
34624
34556
|
`### Context`,
|
|
34625
34557
|
`- **Summary**: ${args.summary}`,
|
|
34626
34558
|
`- **Files touched**: ${args.files_touched?.length ? args.files_touched.join(", ") : "none"}`,
|
|
34627
|
-
`- **Skip UBS**: ${args.skip_ubs_scan ?? false}`,
|
|
34628
34559
|
`- **Skip verification**: ${args.skip_verification ?? false}`,
|
|
34629
34560
|
"",
|
|
34630
34561
|
`### Recovery Actions`,
|
|
@@ -34662,7 +34593,6 @@ ${errorStack.slice(0, 1000)}
|
|
|
34662
34593
|
context: {
|
|
34663
34594
|
summary: args.summary,
|
|
34664
34595
|
files_touched: args.files_touched || [],
|
|
34665
|
-
skip_ubs_scan: args.skip_ubs_scan ?? false,
|
|
34666
34596
|
skip_verification: args.skip_verification ?? false
|
|
34667
34597
|
},
|
|
34668
34598
|
recovery: {
|
|
@@ -34674,7 +34604,6 @@ ${errorStack.slice(0, 1000)}
|
|
|
34674
34604
|
],
|
|
34675
34605
|
common_fixes: {
|
|
34676
34606
|
"Verification Gate": "Use skip_verification=true to bypass (not recommended)",
|
|
34677
|
-
"UBS scan": "Use skip_ubs_scan=true to bypass",
|
|
34678
34607
|
"Cell close": "Check cell status with hive_query(), may need hive_update() first",
|
|
34679
34608
|
"Self-evaluation": "Check evaluation JSON format matches EvaluationSchema"
|
|
34680
34609
|
}
|
|
@@ -34980,8 +34909,9 @@ var swarm_recover = tool({
|
|
|
34980
34909
|
},
|
|
34981
34910
|
async execute(args) {
|
|
34982
34911
|
try {
|
|
34983
|
-
const {
|
|
34984
|
-
const
|
|
34912
|
+
const { getSwarmMailLibSQL: getSwarmMailLibSQL3 } = await import("swarm-mail");
|
|
34913
|
+
const swarmMail = await getSwarmMailLibSQL3(args.project_key);
|
|
34914
|
+
const db = await swarmMail.getDatabase();
|
|
34985
34915
|
const result = await db.query(`SELECT * FROM swarm_contexts
|
|
34986
34916
|
WHERE epic_id = $1
|
|
34987
34917
|
ORDER BY updated_at DESC
|
|
@@ -35615,6 +35545,58 @@ Other cell operations:
|
|
|
35615
35545
|
**Memory is the swarm's collective intelligence. Query it. Feed it.**
|
|
35616
35546
|
|
|
35617
35547
|
Begin now.`;
|
|
35548
|
+
var COORDINATOR_POST_WORKER_CHECKLIST = `
|
|
35549
|
+
## ⚠️ MANDATORY: Post-Worker Review (DO THIS IMMEDIATELY)
|
|
35550
|
+
|
|
35551
|
+
**A worker just returned. Before doing ANYTHING else, complete this checklist:**
|
|
35552
|
+
|
|
35553
|
+
### Step 1: Check Swarm Mail
|
|
35554
|
+
\`\`\`
|
|
35555
|
+
swarmmail_inbox()
|
|
35556
|
+
swarmmail_read_message(message_id=N) // Read any messages from the worker
|
|
35557
|
+
\`\`\`
|
|
35558
|
+
|
|
35559
|
+
### Step 2: Review the Work
|
|
35560
|
+
\`\`\`
|
|
35561
|
+
swarm_review(
|
|
35562
|
+
project_key="{project_key}",
|
|
35563
|
+
epic_id="{epic_id}",
|
|
35564
|
+
task_id="{task_id}",
|
|
35565
|
+
files_touched=[{files_touched}]
|
|
35566
|
+
)
|
|
35567
|
+
\`\`\`
|
|
35568
|
+
|
|
35569
|
+
This generates a review prompt with:
|
|
35570
|
+
- Epic context (what we're trying to achieve)
|
|
35571
|
+
- Subtask requirements
|
|
35572
|
+
- Git diff of changes
|
|
35573
|
+
- Dependency status
|
|
35574
|
+
|
|
35575
|
+
### Step 3: Evaluate Against Criteria
|
|
35576
|
+
- Does the work fulfill the subtask requirements?
|
|
35577
|
+
- Does it serve the overall epic goal?
|
|
35578
|
+
- Does it enable downstream tasks?
|
|
35579
|
+
- Type safety, no obvious bugs?
|
|
35580
|
+
|
|
35581
|
+
### Step 4: Send Feedback
|
|
35582
|
+
\`\`\`
|
|
35583
|
+
swarm_review_feedback(
|
|
35584
|
+
project_key="{project_key}",
|
|
35585
|
+
task_id="{task_id}",
|
|
35586
|
+
worker_id="{worker_id}",
|
|
35587
|
+
status="approved", // or "needs_changes"
|
|
35588
|
+
summary="<brief summary>",
|
|
35589
|
+
issues="[]" // or "[{file, line, issue, suggestion}]"
|
|
35590
|
+
)
|
|
35591
|
+
\`\`\`
|
|
35592
|
+
|
|
35593
|
+
### Step 5: ONLY THEN Continue
|
|
35594
|
+
- If approved: Close the cell, spawn next worker
|
|
35595
|
+
- If needs_changes: Worker gets feedback, retries (max 3 attempts)
|
|
35596
|
+
- If 3 failures: Mark blocked, escalate to human
|
|
35597
|
+
|
|
35598
|
+
**⚠️ DO NOT spawn the next worker until review is complete.**
|
|
35599
|
+
`;
|
|
35618
35600
|
var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
|
|
35619
35601
|
|
|
35620
35602
|
## Subtask
|
|
@@ -35786,6 +35768,8 @@ var swarm_spawn_subtask = tool({
|
|
|
35786
35768
|
liteModel: "anthropic/claude-haiku-4-5"
|
|
35787
35769
|
};
|
|
35788
35770
|
const selectedModel = selectWorkerModel2(subtask, config2);
|
|
35771
|
+
const filesJoined = args.files.map((f) => `"${f}"`).join(", ");
|
|
35772
|
+
const postCompletionInstructions = COORDINATOR_POST_WORKER_CHECKLIST.replace(/{project_key}/g, args.project_path || "$PWD").replace(/{epic_id}/g, args.epic_id).replace(/{task_id}/g, args.bead_id).replace(/{files_touched}/g, filesJoined).replace(/{worker_id}/g, "worker");
|
|
35789
35773
|
return JSON.stringify({
|
|
35790
35774
|
prompt,
|
|
35791
35775
|
bead_id: args.bead_id,
|
|
@@ -35793,7 +35777,8 @@ var swarm_spawn_subtask = tool({
|
|
|
35793
35777
|
files: args.files,
|
|
35794
35778
|
project_path: args.project_path,
|
|
35795
35779
|
recovery_context: args.recovery_context,
|
|
35796
|
-
recommended_model: selectedModel
|
|
35780
|
+
recommended_model: selectedModel,
|
|
35781
|
+
post_completion_instructions: postCompletionInstructions
|
|
35797
35782
|
}, null, 2);
|
|
35798
35783
|
}
|
|
35799
35784
|
});
|
|
@@ -37006,7 +36991,7 @@ var mandateTools = {
|
|
|
37006
36991
|
|
|
37007
36992
|
// src/memory-tools.ts
|
|
37008
36993
|
init_dist();
|
|
37009
|
-
import {
|
|
36994
|
+
import { getSwarmMailLibSQL as getSwarmMailLibSQL3 } from "swarm-mail";
|
|
37010
36995
|
|
|
37011
36996
|
// ../../node_modules/.bun/effect@3.19.12/node_modules/effect/dist/esm/Function.js
|
|
37012
36997
|
var isFunction = (input) => typeof input === "function";
|
|
@@ -50427,7 +50412,8 @@ import {
|
|
|
50427
50412
|
makeOllamaLive,
|
|
50428
50413
|
Ollama,
|
|
50429
50414
|
legacyDatabaseExists,
|
|
50430
|
-
migrateLegacyMemories
|
|
50415
|
+
migrateLegacyMemories,
|
|
50416
|
+
toSwarmDb
|
|
50431
50417
|
} from "swarm-mail";
|
|
50432
50418
|
var migrationChecked = false;
|
|
50433
50419
|
async function maybeAutoMigrate(db) {
|
|
@@ -50461,7 +50447,8 @@ async function createMemoryAdapter(db) {
|
|
|
50461
50447
|
migrationChecked = true;
|
|
50462
50448
|
await maybeAutoMigrate(db);
|
|
50463
50449
|
}
|
|
50464
|
-
const
|
|
50450
|
+
const drizzleDb = toSwarmDb(db);
|
|
50451
|
+
const store = createMemoryStore(drizzleDb);
|
|
50465
50452
|
const config2 = getDefaultConfig();
|
|
50466
50453
|
const ollamaLayer = makeOllamaLive(config2);
|
|
50467
50454
|
const generateId = () => {
|
|
@@ -50606,9 +50593,9 @@ async function getMemoryAdapter(projectPath) {
|
|
|
50606
50593
|
if (cachedAdapter && cachedProjectPath === path2) {
|
|
50607
50594
|
return cachedAdapter;
|
|
50608
50595
|
}
|
|
50609
|
-
const swarmMail = await
|
|
50610
|
-
const
|
|
50611
|
-
cachedAdapter = await createMemoryAdapter(
|
|
50596
|
+
const swarmMail = await getSwarmMailLibSQL3(path2);
|
|
50597
|
+
const dbAdapter = await swarmMail.getDatabase();
|
|
50598
|
+
cachedAdapter = await createMemoryAdapter(dbAdapter);
|
|
50612
50599
|
cachedProjectPath = path2;
|
|
50613
50600
|
return cachedAdapter;
|
|
50614
50601
|
}
|
|
@@ -51472,9 +51459,11 @@ Extract from session context:
|
|
|
51472
51459
|
|
|
51473
51460
|
1. \`swarm_status(epic_id="<epic>", project_key="<path>")\` - Get current state
|
|
51474
51461
|
2. \`swarmmail_inbox(limit=5)\` - Check for agent messages
|
|
51475
|
-
3.
|
|
51476
|
-
4.
|
|
51477
|
-
5. **
|
|
51462
|
+
3. \`swarm_review(project_key, epic_id, task_id, files_touched)\` - Review any completed work
|
|
51463
|
+
4. \`swarm_review_feedback(project_key, task_id, worker_id, status, issues)\` - Approve or request changes
|
|
51464
|
+
5. **Spawn ready subtasks** - Don't wait, fire them off
|
|
51465
|
+
6. **Unblock blocked work** - Resolve dependencies, reassign if needed
|
|
51466
|
+
7. **Collect completed work** - Close done subtasks, verify quality
|
|
51478
51467
|
|
|
51479
51468
|
### Keep the Swarm Cooking
|
|
51480
51469
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../src/memory-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EACN,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,GACf,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../src/memory-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EACN,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,GACf,CAAC;AA6CF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAM/B;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;CA6BhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;CA2B/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;CAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;CAUjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAWnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;CAa/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;CAQhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;CAShC,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASd,CAAC"}
|
package/dist/memory.d.ts
CHANGED
|
@@ -107,16 +107,17 @@ export interface MemoryAdapter {
|
|
|
107
107
|
/**
|
|
108
108
|
* Create Memory Adapter
|
|
109
109
|
*
|
|
110
|
-
* @param db - DatabaseAdapter
|
|
110
|
+
* @param db - DatabaseAdapter from swarm-mail's getDatabase()
|
|
111
111
|
* @returns Memory adapter with high-level operations
|
|
112
112
|
*
|
|
113
113
|
* @example
|
|
114
114
|
* ```typescript
|
|
115
|
-
* import {
|
|
115
|
+
* import { getSwarmMailLibSQL } from 'swarm-mail';
|
|
116
116
|
* import { createMemoryAdapter } from './memory';
|
|
117
117
|
*
|
|
118
|
-
* const swarmMail = await
|
|
119
|
-
* const
|
|
118
|
+
* const swarmMail = await getSwarmMailLibSQL('/path/to/project');
|
|
119
|
+
* const db = await swarmMail.getDatabase();
|
|
120
|
+
* const adapter = await createMemoryAdapter(db);
|
|
120
121
|
*
|
|
121
122
|
* await adapter.store({ information: "Learning X" });
|
|
122
123
|
* const results = await adapter.find({ query: "X" });
|
package/dist/memory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACN,KAAK,eAAe,EAKpB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|