opencode-swarm-plugin 0.31.6 → 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.
Files changed (48) hide show
  1. package/.turbo/turbo-build.log +10 -9
  2. package/.turbo/turbo-test.log +319 -317
  3. package/CHANGELOG.md +158 -0
  4. package/README.md +7 -4
  5. package/bin/swarm.ts +388 -87
  6. package/dist/compaction-hook.d.ts +1 -1
  7. package/dist/compaction-hook.d.ts.map +1 -1
  8. package/dist/hive.d.ts.map +1 -1
  9. package/dist/index.d.ts +0 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +123 -134
  12. package/dist/memory-tools.d.ts.map +1 -1
  13. package/dist/memory.d.ts +5 -4
  14. package/dist/memory.d.ts.map +1 -1
  15. package/dist/plugin.js +118 -131
  16. package/dist/swarm-orchestrate.d.ts +29 -5
  17. package/dist/swarm-orchestrate.d.ts.map +1 -1
  18. package/dist/swarm-prompts.d.ts +7 -0
  19. package/dist/swarm-prompts.d.ts.map +1 -1
  20. package/dist/swarm.d.ts +0 -2
  21. package/dist/swarm.d.ts.map +1 -1
  22. package/evals/lib/{data-loader.test.ts → data-loader.evalite-test.ts} +7 -6
  23. package/evals/lib/data-loader.ts +1 -1
  24. package/evals/scorers/{outcome-scorers.test.ts → outcome-scorers.evalite-test.ts} +1 -1
  25. package/examples/plugin-wrapper-template.ts +19 -4
  26. package/global-skills/swarm-coordination/SKILL.md +118 -8
  27. package/package.json +2 -2
  28. package/src/compaction-hook.ts +5 -3
  29. package/src/hive.integration.test.ts +83 -1
  30. package/src/hive.ts +37 -12
  31. package/src/mandate-storage.integration.test.ts +601 -0
  32. package/src/memory-tools.ts +6 -4
  33. package/src/memory.integration.test.ts +117 -49
  34. package/src/memory.test.ts +41 -217
  35. package/src/memory.ts +12 -8
  36. package/src/repo-crawl.integration.test.ts +441 -0
  37. package/src/skills.integration.test.ts +1056 -0
  38. package/src/structured.integration.test.ts +817 -0
  39. package/src/swarm-deferred.integration.test.ts +157 -0
  40. package/src/swarm-deferred.test.ts +38 -0
  41. package/src/swarm-mail.integration.test.ts +15 -19
  42. package/src/swarm-orchestrate.integration.test.ts +282 -0
  43. package/src/swarm-orchestrate.ts +96 -201
  44. package/src/swarm-prompts.test.ts +92 -0
  45. package/src/swarm-prompts.ts +69 -0
  46. package/src/swarm-review.integration.test.ts +290 -0
  47. package/src/swarm.integration.test.ts +23 -20
  48. package/src/tool-adapter.integration.test.ts +1221 -0
package/bin/swarm.ts CHANGED
@@ -37,10 +37,13 @@ import {
37
37
  } from "../src/hive";
38
38
  import {
39
39
  legacyDatabaseExists,
40
- getMigrationStatus,
41
- migrateLegacyMemories,
40
+ migratePGliteToLibSQL,
41
+ pgliteExists,
42
+ getLibSQLProjectTempDirName,
43
+ getLibSQLDatabasePath,
44
+ hashLibSQLProjectPath,
42
45
  } from "swarm-mail";
43
- import { getSwarmMail } from "swarm-mail";
46
+ import { tmpdir } from "os";
44
47
 
45
48
  const __dirname = dirname(fileURLToPath(import.meta.url));
46
49
  const pkg = JSON.parse(
@@ -708,6 +711,68 @@ function buildAgentsSemanticMemorySection(newline: string): string {
708
711
  ].join(newline);
709
712
  }
710
713
 
714
+ function buildAgentsSwarmCoordinatorSection(newline: string): string {
715
+ return [
716
+ "## Swarm Coordinator Checklist (MANDATORY)",
717
+ "",
718
+ "When coordinating a swarm, you MUST monitor workers and review their output.",
719
+ "",
720
+ "### Monitor Loop",
721
+ "",
722
+ "```",
723
+ "┌─────────────────────────────────────────────────────────────┐",
724
+ "│ COORDINATOR MONITOR LOOP │",
725
+ "├─────────────────────────────────────────────────────────────┤",
726
+ "│ │",
727
+ "│ 1. CHECK INBOX │",
728
+ "│ swarmmail_inbox() │",
729
+ "│ swarmmail_read_message(message_id=N) │",
730
+ "│ │",
731
+ "│ 2. CHECK STATUS │",
732
+ "│ swarm_status(epic_id, project_key) │",
733
+ "│ │",
734
+ "│ 3. REVIEW COMPLETED WORK │",
735
+ "│ swarm_review(project_key, epic_id, task_id, files) │",
736
+ "│ → Generates review prompt with epic context + diff │",
737
+ "│ │",
738
+ "│ 4. SEND FEEDBACK │",
739
+ "│ swarm_review_feedback( │",
740
+ "│ project_key, task_id, worker_id, │",
741
+ "│ status=\"approved|needs_changes\", │",
742
+ "│ issues=\"[{file, line, issue, suggestion}]\" │",
743
+ "│ ) │",
744
+ "│ │",
745
+ "│ 5. INTERVENE IF NEEDED │",
746
+ "│ - Blocked >5min → unblock or reassign │",
747
+ "│ - File conflicts → mediate │",
748
+ "│ - Scope creep → approve or reject │",
749
+ "│ - 3 review failures → escalate to human │",
750
+ "│ │",
751
+ "└─────────────────────────────────────────────────────────────┘",
752
+ "```",
753
+ "",
754
+ "### Review Tools",
755
+ "",
756
+ "| Tool | Purpose |",
757
+ "|------|---------|",
758
+ "| `swarm_review` | Generate review prompt with epic context, dependencies, and git diff |",
759
+ "| `swarm_review_feedback` | Send approval/rejection to worker (tracks 3-strike rule) |",
760
+ "",
761
+ "### Review Criteria",
762
+ "",
763
+ "- Does work fulfill subtask requirements?",
764
+ "- Does it serve the overall epic goal?",
765
+ "- Does it enable downstream tasks?",
766
+ "- Type safety, no obvious bugs?",
767
+ "",
768
+ "### 3-Strike Rule",
769
+ "",
770
+ "After 3 review rejections, task is marked **blocked**. This signals an architectural problem, not \"try harder.\"",
771
+ "",
772
+ "**NEVER skip the review step.** Workers complete faster when they get feedback.",
773
+ ].join(newline);
774
+ }
775
+
711
776
  function updateAgentsToolPreferencesBlock(
712
777
  content: string,
713
778
  newline: string,
@@ -739,6 +804,9 @@ function updateAgentsToolPreferencesBlock(
739
804
  const hasSemanticTools =
740
805
  /semantic-memory_find/i.test(block) &&
741
806
  /semantic-memory_store/i.test(block);
807
+ const hasSwarmReviewTools =
808
+ /swarm_review\b/i.test(block) &&
809
+ /swarm_review_feedback/i.test(block);
742
810
 
743
811
  const linesToAdd: string[] = [];
744
812
  if (!hasSkillsTools) {
@@ -756,6 +824,11 @@ function updateAgentsToolPreferencesBlock(
756
824
  "- **semantic-memory_find, semantic-memory_store, semantic-memory_validate** - Persistent learning across sessions",
757
825
  );
758
826
  }
827
+ if (!hasSwarmReviewTools) {
828
+ linesToAdd.push(
829
+ "- **swarm_review, swarm_review_feedback** - Coordinator reviews worker output (3-strike rule)",
830
+ );
831
+ }
759
832
 
760
833
  if (linesToAdd.length === 0) {
761
834
  return { content, changed: false };
@@ -819,6 +892,10 @@ function updateAgentsMdContent({
819
892
  const hasSemanticMemorySection =
820
893
  /^#{1,6}\s+Semantic Memory\b/im.test(updated) ||
821
894
  /semantic-memory_store\(/.test(updated);
895
+ const hasSwarmCoordinatorSection =
896
+ /^#{1,6}\s+Swarm Coordinator\b/im.test(updated) ||
897
+ /swarm_review\(/.test(updated) ||
898
+ /COORDINATOR MONITOR LOOP/i.test(updated);
822
899
 
823
900
  const sectionsToAppend: string[] = [];
824
901
  if (!hasSkillsSection) {
@@ -835,6 +912,10 @@ function updateAgentsMdContent({
835
912
  sectionsToAppend.push(buildAgentsSemanticMemorySection(newline));
836
913
  changes.push("Added Semantic Memory section");
837
914
  }
915
+ if (!hasSwarmCoordinatorSection) {
916
+ sectionsToAppend.push(buildAgentsSwarmCoordinatorSection(newline));
917
+ changes.push("Added Swarm Coordinator Checklist section");
918
+ }
838
919
 
839
920
  if (sectionsToAppend.length > 0) {
840
921
  const trimmed = updated.replace(/\s+$/g, "");
@@ -1052,18 +1133,45 @@ const result2 = await Task(subagent_type="swarm/worker", prompt="<from above>")
1052
1133
 
1053
1134
  **IMPORTANT:** Pass \`project_path\` to \`swarm_spawn_subtask\` so workers can call \`swarmmail_init\`.
1054
1135
 
1055
- ### Phase 7: Monitor
1056
- \`\`\`
1057
- swarm_status(epic_id, project_key)
1058
- swarmmail_inbox()
1059
- \`\`\`
1136
+ ### Phase 7: MANDATORY Review Loop (NON-NEGOTIABLE)
1137
+
1138
+ **⚠️ AFTER EVERY Task() RETURNS, YOU MUST:**
1139
+
1140
+ 1. **CHECK INBOX** - Worker may have sent messages
1141
+ \`swarmmail_inbox()\`
1142
+ \`swarmmail_read_message(message_id=N)\`
1143
+
1144
+ 2. **REVIEW WORK** - Generate review with diff
1145
+ \`swarm_review(project_key, epic_id, task_id, files_touched)\`
1146
+
1147
+ 3. **EVALUATE** - Does it meet epic goals?
1148
+ - Fulfills subtask requirements?
1149
+ - Serves overall epic goal?
1150
+ - Enables downstream tasks?
1151
+ - Type safety, no obvious bugs?
1152
+
1153
+ 4. **SEND FEEDBACK** - Approve or request changes
1154
+ \`swarm_review_feedback(project_key, task_id, worker_id, status, issues)\`
1155
+
1156
+ If approved: Close cell, spawn next worker
1157
+ If needs_changes: Worker retries (max 3 attempts)
1158
+ If 3 failures: Mark blocked, escalate to human
1060
1159
 
1061
- Intervene if: blocked >5min, file conflicts, scope creep.
1160
+ 5. **ONLY THEN** - Spawn next worker or complete
1161
+
1162
+ **DO NOT skip this. DO NOT batch reviews. Review EACH worker IMMEDIATELY after return.**
1163
+
1164
+ **Intervene if:**
1165
+ - Worker blocked >5min → unblock or reassign
1166
+ - File conflicts → mediate between workers
1167
+ - Scope creep → approve or reject expansion
1168
+ - Review fails 3x → mark task blocked, escalate to human
1062
1169
 
1063
1170
  ### Phase 8: Complete
1064
1171
  \`\`\`
1065
- swarm_complete(...)
1066
- hive_sync()
1172
+ # After all workers complete and reviews pass:
1173
+ hive_sync() # Sync all cells to git
1174
+ # Coordinator does NOT call swarm_complete - workers do that
1067
1175
  \`\`\`
1068
1176
 
1069
1177
  ## Strategy Reference
@@ -1376,9 +1484,44 @@ async function setup() {
1376
1484
 
1377
1485
  p.intro("opencode-swarm-plugin v" + VERSION);
1378
1486
 
1487
+ // Migrate legacy database if present (do this first, before config check)
1488
+ const cwd = process.cwd();
1489
+ const tempDirName = getLibSQLProjectTempDirName(cwd);
1490
+ const tempDir = join(tmpdir(), tempDirName);
1491
+ const pglitePath = join(tempDir, "streams");
1492
+ const libsqlPath = join(tempDir, "streams.db");
1493
+
1494
+ if (pgliteExists(pglitePath)) {
1495
+ const migrateSpinner = p.spinner();
1496
+ migrateSpinner.start("Migrating...");
1497
+
1498
+ try {
1499
+ const result = await migratePGliteToLibSQL({
1500
+ pglitePath,
1501
+ libsqlPath,
1502
+ dryRun: false,
1503
+ onProgress: () => {},
1504
+ });
1505
+
1506
+ const total = result.memories.migrated + result.beads.migrated;
1507
+ if (total > 0) {
1508
+ migrateSpinner.stop(`Migrated ${result.memories.migrated} memories, ${result.beads.migrated} cells`);
1509
+ } else {
1510
+ migrateSpinner.stop("Migrated");
1511
+ }
1512
+
1513
+ if (result.errors.length > 0) {
1514
+ p.log.warn(`${result.errors.length} errors during migration`);
1515
+ }
1516
+ } catch (error) {
1517
+ migrateSpinner.stop("Migration failed");
1518
+ p.log.error(error instanceof Error ? error.message : String(error));
1519
+ }
1520
+ }
1521
+
1379
1522
  let isReinstall = false;
1380
1523
 
1381
- // Check if already configured FIRST
1524
+ // Check if already configured
1382
1525
  p.log.step("Checking existing configuration...");
1383
1526
  const configDir = join(homedir(), ".config", "opencode");
1384
1527
  const pluginDir = join(configDir, "plugin");
@@ -1623,7 +1766,6 @@ async function setup() {
1623
1766
 
1624
1767
  // Check for .beads → .hive migration
1625
1768
  p.log.step("Checking for legacy .beads directory...");
1626
- const cwd = process.cwd();
1627
1769
  const migrationCheck = checkBeadsMigrationNeeded(cwd);
1628
1770
  if (migrationCheck.needed) {
1629
1771
  p.log.warn("Found legacy .beads directory");
@@ -1682,80 +1824,6 @@ async function setup() {
1682
1824
  p.log.message(dim(" No legacy .beads directory found"));
1683
1825
  }
1684
1826
 
1685
- // Check for legacy semantic-memory migration
1686
- p.log.step("Checking for legacy semantic-memory database...");
1687
- if (legacyDatabaseExists()) {
1688
- p.log.warn("Found legacy semantic-memory database");
1689
-
1690
- const migrationStatus = await getMigrationStatus();
1691
- if (migrationStatus) {
1692
- const { total, withEmbeddings } = migrationStatus;
1693
- p.log.message(dim(` Memories: ${total} total (${withEmbeddings} with embeddings)`));
1694
- p.log.message(dim(` Will migrate to swarm-mail unified database`));
1695
-
1696
- const shouldMigrate = await p.confirm({
1697
- message: "Migrate to swarm-mail database? (recommended)",
1698
- initialValue: true,
1699
- });
1700
-
1701
- if (p.isCancel(shouldMigrate)) {
1702
- p.cancel("Setup cancelled");
1703
- process.exit(0);
1704
- }
1705
-
1706
- if (shouldMigrate) {
1707
- const migrateSpinner = p.spinner();
1708
- migrateSpinner.start("Connecting to target database...");
1709
-
1710
- try {
1711
- // Get swarm-mail database for this project
1712
- const swarmMail = await getSwarmMail(cwd);
1713
- const targetDb = await swarmMail.getDatabase(cwd);
1714
- migrateSpinner.message("Migrating memories...");
1715
-
1716
- // Run migration with progress updates
1717
- const result = await migrateLegacyMemories({
1718
- targetDb,
1719
- onProgress: (msg) => {
1720
- // Update spinner message for key milestones
1721
- if (msg.includes("complete") || msg.includes("Progress:")) {
1722
- migrateSpinner.message(msg.replace("[migrate] ", ""));
1723
- }
1724
- },
1725
- });
1726
-
1727
- migrateSpinner.stop("Semantic memory migration complete");
1728
-
1729
- if (result.migrated > 0) {
1730
- p.log.success(`Migrated ${result.migrated} memories to swarm-mail`);
1731
- }
1732
- if (result.skipped > 0) {
1733
- p.log.message(dim(` Skipped ${result.skipped} (already exist)`));
1734
- }
1735
- if (result.failed > 0) {
1736
- p.log.warn(`Failed to migrate ${result.failed} memories`);
1737
- for (const error of result.errors.slice(0, 3)) {
1738
- p.log.message(dim(` ${error}`));
1739
- }
1740
- if (result.errors.length > 3) {
1741
- p.log.message(dim(` ... and ${result.errors.length - 3} more errors`));
1742
- }
1743
- }
1744
-
1745
- // Close the connection to allow process to exit
1746
- await swarmMail.close();
1747
- } catch (error) {
1748
- migrateSpinner.stop("Migration failed");
1749
- p.log.error(error instanceof Error ? error.message : String(error));
1750
- }
1751
- } else {
1752
- p.log.warn("Skipping migration - legacy semantic-memory will continue to work but is deprecated");
1753
- }
1754
- }
1755
- } else {
1756
- p.log.message(dim(" No legacy semantic-memory database found"));
1757
- }
1758
-
1759
1827
  // Check for legacy semantic-memory MCP server in OpenCode config
1760
1828
  p.log.step("Checking for legacy MCP servers...");
1761
1829
  const opencodeConfigPath = join(configDir, 'config.json');
@@ -2404,6 +2472,7 @@ ${cyan("Commands:")}
2404
2472
  swarm init Initialize beads in current project
2405
2473
  swarm config Show paths to generated config files
2406
2474
  swarm agents Update AGENTS.md with skill awareness
2475
+ swarm migrate Migrate PGlite database to libSQL
2407
2476
  swarm update Update to latest version
2408
2477
  swarm version Show version and banner
2409
2478
  swarm tool Execute a tool (for plugin wrapper)
@@ -2642,6 +2711,232 @@ async function agents() {
2642
2711
  p.outro("Done");
2643
2712
  }
2644
2713
 
2714
+ // ============================================================================
2715
+ // Migrate Command - PGlite → libSQL migration
2716
+ // ============================================================================
2717
+
2718
+ async function migrate() {
2719
+ p.intro("swarm migrate v" + VERSION);
2720
+
2721
+ const projectPath = process.cwd();
2722
+
2723
+ // Calculate the temp directory path (same logic as libsql.convenience.ts)
2724
+ const tempDirName = getLibSQLProjectTempDirName(projectPath);
2725
+ const tempDir = join(tmpdir(), tempDirName);
2726
+ const pglitePath = join(tempDir, "streams");
2727
+ const libsqlPath = join(tempDir, "streams.db");
2728
+
2729
+ // Check if PGlite exists
2730
+ if (!pgliteExists(pglitePath)) {
2731
+ p.log.success("No PGlite database found - nothing to migrate!");
2732
+ p.outro("Done");
2733
+ return;
2734
+ }
2735
+
2736
+ // Dry run to show counts
2737
+ const s = p.spinner();
2738
+ s.start("Scanning PGlite database...");
2739
+
2740
+ try {
2741
+ const dryResult = await migratePGliteToLibSQL({
2742
+ pglitePath,
2743
+ libsqlPath,
2744
+ dryRun: true,
2745
+ onProgress: () => {}, // silent during dry run
2746
+ });
2747
+
2748
+ s.stop("Scan complete");
2749
+
2750
+ // Show summary
2751
+ const totalItems =
2752
+ dryResult.memories.migrated +
2753
+ dryResult.beads.migrated +
2754
+ dryResult.messages.migrated +
2755
+ dryResult.agents.migrated +
2756
+ dryResult.events.migrated;
2757
+
2758
+ if (totalItems === 0) {
2759
+ p.log.warn("PGlite database exists but contains no data");
2760
+ p.outro("Nothing to migrate");
2761
+ return;
2762
+ }
2763
+
2764
+ p.log.step("Found data to migrate:");
2765
+ if (dryResult.memories.migrated > 0) {
2766
+ p.log.message(` 📝 ${dryResult.memories.migrated} memories`);
2767
+ }
2768
+ if (dryResult.beads.migrated > 0) {
2769
+ p.log.message(` 🐝 ${dryResult.beads.migrated} cells`);
2770
+ }
2771
+ if (dryResult.messages.migrated > 0) {
2772
+ p.log.message(` ✉️ ${dryResult.messages.migrated} messages`);
2773
+ }
2774
+ if (dryResult.agents.migrated > 0) {
2775
+ p.log.message(` 🤖 ${dryResult.agents.migrated} agents`);
2776
+ }
2777
+ if (dryResult.events.migrated > 0) {
2778
+ p.log.message(` 📋 ${dryResult.events.migrated} events`);
2779
+ }
2780
+
2781
+ // Confirm
2782
+ const confirm = await p.confirm({
2783
+ message: "Migrate this data to libSQL?",
2784
+ initialValue: true,
2785
+ });
2786
+
2787
+ if (p.isCancel(confirm) || !confirm) {
2788
+ p.outro("Migration cancelled");
2789
+ return;
2790
+ }
2791
+
2792
+ // Run actual migration
2793
+ const migrateSpinner = p.spinner();
2794
+ migrateSpinner.start("Migrating data...");
2795
+
2796
+ const result = await migratePGliteToLibSQL({
2797
+ pglitePath,
2798
+ libsqlPath,
2799
+ dryRun: false,
2800
+ onProgress: (msg) => {
2801
+ // Update spinner for key milestones
2802
+ if (msg.includes("Migrating") || msg.includes("complete")) {
2803
+ migrateSpinner.message(msg.replace("[migrate] ", ""));
2804
+ }
2805
+ },
2806
+ });
2807
+
2808
+ migrateSpinner.stop("Migration complete!");
2809
+
2810
+ // Show results
2811
+ const showStat = (label: string, stat: { migrated: number; skipped: number; failed: number }) => {
2812
+ if (stat.migrated > 0 || stat.skipped > 0 || stat.failed > 0) {
2813
+ const parts = [];
2814
+ if (stat.migrated > 0) parts.push(green(`${stat.migrated} migrated`));
2815
+ if (stat.skipped > 0) parts.push(dim(`${stat.skipped} skipped`));
2816
+ if (stat.failed > 0) parts.push(`\x1b[31m${stat.failed} failed\x1b[0m`);
2817
+ p.log.message(` ${label}: ${parts.join(", ")}`);
2818
+ }
2819
+ };
2820
+
2821
+ showStat("Memories", result.memories);
2822
+ showStat("Cells", result.beads);
2823
+ showStat("Messages", result.messages);
2824
+ showStat("Agents", result.agents);
2825
+ showStat("Events", result.events);
2826
+
2827
+ if (result.errors.length > 0) {
2828
+ p.log.warn(`${result.errors.length} errors occurred`);
2829
+ }
2830
+
2831
+ p.outro("Migration complete! 🐝");
2832
+
2833
+ } catch (error) {
2834
+ s.stop("Migration failed");
2835
+ p.log.error(error instanceof Error ? error.message : String(error));
2836
+ p.outro("Migration failed");
2837
+ process.exit(1);
2838
+ }
2839
+ }
2840
+
2841
+ // ============================================================================
2842
+ // Database Info Command
2843
+ // ============================================================================
2844
+
2845
+ /**
2846
+ * Show database location and status
2847
+ *
2848
+ * Helps debug which database is being used and its schema state.
2849
+ */
2850
+ async function db() {
2851
+ const projectPath = process.cwd();
2852
+ const projectName = basename(projectPath);
2853
+ const hash = hashLibSQLProjectPath(projectPath);
2854
+ const dbPath = getLibSQLDatabasePath(projectPath);
2855
+ const dbDir = dirname(dbPath.replace("file:", ""));
2856
+ const dbFile = dbPath.replace("file:", "");
2857
+
2858
+ console.log(yellow(BANNER));
2859
+ console.log(dim(` ${TAGLINE}\n`));
2860
+
2861
+ console.log(cyan(" Database Info\n"));
2862
+
2863
+ console.log(` ${dim("Project:")} ${projectPath}`);
2864
+ console.log(` ${dim("Project Name:")} ${projectName}`);
2865
+ console.log(` ${dim("Hash:")} ${hash}`);
2866
+ console.log(` ${dim("DB Directory:")} ${dbDir}`);
2867
+ console.log(` ${dim("DB File:")} ${dbFile}`);
2868
+ console.log();
2869
+
2870
+ // Check if database exists
2871
+ if (existsSync(dbFile)) {
2872
+ const stats = statSync(dbFile);
2873
+ const sizeKB = Math.round(stats.size / 1024);
2874
+ console.log(` ${green("✓")} Database exists (${sizeKB} KB)`);
2875
+
2876
+ // Check schema
2877
+ try {
2878
+ const { execSync } = await import("child_process");
2879
+ const schema = execSync(`sqlite3 "${dbFile}" "SELECT sql FROM sqlite_master WHERE type='table' AND name='beads'"`, { encoding: "utf-8" }).trim();
2880
+
2881
+ if (schema) {
2882
+ const hasProjectKey = schema.includes("project_key");
2883
+ if (hasProjectKey) {
2884
+ console.log(` ${green("✓")} Schema is correct (has project_key)`);
2885
+ } else {
2886
+ console.log(` \x1b[31m✗\x1b[0m Schema is OLD (missing project_key)`);
2887
+ console.log();
2888
+ console.log(dim(" To fix: delete the database and restart OpenCode"));
2889
+ console.log(dim(` rm -r "${dbDir}"`));
2890
+ }
2891
+ } else {
2892
+ console.log(` ${dim("○")} No beads table yet (will be created on first use)`);
2893
+ }
2894
+
2895
+ // Check schema_version
2896
+ try {
2897
+ const version = execSync(`sqlite3 "${dbFile}" "SELECT MAX(version) FROM schema_version"`, { encoding: "utf-8" }).trim();
2898
+ if (version && version !== "") {
2899
+ console.log(` ${dim("○")} Schema version: ${version}`);
2900
+ }
2901
+ } catch {
2902
+ console.log(` ${dim("○")} No schema_version table`);
2903
+ }
2904
+
2905
+ // Count records
2906
+ try {
2907
+ const beadCount = execSync(`sqlite3 "${dbFile}" "SELECT COUNT(*) FROM beads"`, { encoding: "utf-8" }).trim();
2908
+ console.log(` ${dim("○")} Cells: ${beadCount}`);
2909
+ } catch {
2910
+ // Table doesn't exist yet
2911
+ }
2912
+
2913
+ try {
2914
+ const memoryCount = execSync(`sqlite3 "${dbFile}" "SELECT COUNT(*) FROM memories"`, { encoding: "utf-8" }).trim();
2915
+ console.log(` ${dim("○")} Memories: ${memoryCount}`);
2916
+ } catch {
2917
+ // Table doesn't exist yet
2918
+ }
2919
+
2920
+ } catch (error) {
2921
+ console.log(` ${dim("○")} Could not inspect schema (sqlite3 not available)`);
2922
+ }
2923
+ } else {
2924
+ console.log(` ${dim("○")} Database does not exist yet`);
2925
+ console.log(dim(" Will be created on first use"));
2926
+ }
2927
+
2928
+ // Check for legacy PGLite
2929
+ console.log();
2930
+ const pglitePath = join(dbDir, "streams");
2931
+ if (existsSync(pglitePath)) {
2932
+ console.log(` \x1b[33m!\x1b[0m Legacy PGLite directory exists`);
2933
+ console.log(dim(` ${pglitePath}`));
2934
+ console.log(dim(" Run 'swarm migrate' to migrate data"));
2935
+ }
2936
+
2937
+ console.log();
2938
+ }
2939
+
2645
2940
  // ============================================================================
2646
2941
  // Main
2647
2942
  // ============================================================================
@@ -2680,6 +2975,12 @@ switch (command) {
2680
2975
  case "agents":
2681
2976
  await agents();
2682
2977
  break;
2978
+ case "migrate":
2979
+ await migrate();
2980
+ break;
2981
+ case "db":
2982
+ await db();
2983
+ break;
2683
2984
  case "version":
2684
2985
  case "--version":
2685
2986
  case "-v":
@@ -38,7 +38,7 @@
38
38
  * This is NOT about preserving state for a human - it's about the swarm continuing
39
39
  * autonomously after context compression.
40
40
  */
41
- export declare const SWARM_COMPACTION_CONTEXT = "## \uD83D\uDC1D SWARM ACTIVE - Keep Cooking\n\nYou are the **COORDINATOR** of an active swarm. Context was compacted but the swarm is still running.\n\n**YOUR JOB:** Keep orchestrating. Spawn agents. Monitor progress. Unblock work. Ship it.\n\n### Preserve in Summary\n\nExtract from session context:\n\n1. **Epic & Subtasks** - IDs, titles, status, file assignments\n2. **What's Running** - Which agents are active, what they're working on \n3. **What's Blocked** - Blockers and what's needed to unblock\n4. **What's Done** - Completed work and any follow-ups needed\n5. **What's Next** - Pending subtasks ready to spawn\n\n### Summary Format\n\n```\n## \uD83D\uDC1D Swarm State\n\n**Epic:** <bd-xxx> - <title>\n**Project:** <path>\n**Progress:** X/Y subtasks complete\n\n**Active:**\n- <bd-xxx>: <title> [in_progress] \u2192 <agent> working on <files>\n\n**Blocked:**\n- <bd-xxx>: <title> - BLOCKED: <reason>\n\n**Completed:**\n- <bd-xxx>: <title> \u2713\n\n**Ready to Spawn:**\n- <bd-xxx>: <title> (files: <...>)\n```\n\n### On Resume - IMMEDIATELY\n\n1. `swarm_status(epic_id=\"<epic>\", project_key=\"<path>\")` - Get current state\n2. `swarmmail_inbox(limit=5)` - Check for agent messages\n3. **Spawn ready subtasks** - Don't wait, fire them off\n4. **Unblock blocked work** - Resolve dependencies, reassign if needed\n5. **Collect completed work** - Close done subtasks, verify quality\n\n### Keep the Swarm Cooking\n\n- **Spawn aggressively** - If a subtask is ready and unblocked, spawn an agent\n- **Monitor actively** - Check status, read messages, respond to blockers\n- **Close the loop** - When all subtasks done, verify and close the epic\n- **Don't stop** - The swarm runs until the epic is closed\n\n**You are not waiting for instructions. You are the coordinator. Coordinate.**\n";
41
+ export declare const SWARM_COMPACTION_CONTEXT = "## \uD83D\uDC1D SWARM ACTIVE - Keep Cooking\n\nYou are the **COORDINATOR** of an active swarm. Context was compacted but the swarm is still running.\n\n**YOUR JOB:** Keep orchestrating. Spawn agents. Monitor progress. Unblock work. Ship it.\n\n### Preserve in Summary\n\nExtract from session context:\n\n1. **Epic & Subtasks** - IDs, titles, status, file assignments\n2. **What's Running** - Which agents are active, what they're working on \n3. **What's Blocked** - Blockers and what's needed to unblock\n4. **What's Done** - Completed work and any follow-ups needed\n5. **What's Next** - Pending subtasks ready to spawn\n\n### Summary Format\n\n```\n## \uD83D\uDC1D Swarm State\n\n**Epic:** <bd-xxx> - <title>\n**Project:** <path>\n**Progress:** X/Y subtasks complete\n\n**Active:**\n- <bd-xxx>: <title> [in_progress] \u2192 <agent> working on <files>\n\n**Blocked:**\n- <bd-xxx>: <title> - BLOCKED: <reason>\n\n**Completed:**\n- <bd-xxx>: <title> \u2713\n\n**Ready to Spawn:**\n- <bd-xxx>: <title> (files: <...>)\n```\n\n### On Resume - IMMEDIATELY\n\n1. `swarm_status(epic_id=\"<epic>\", project_key=\"<path>\")` - Get current state\n2. `swarmmail_inbox(limit=5)` - Check for agent messages\n3. `swarm_review(project_key, epic_id, task_id, files_touched)` - Review any completed work\n4. `swarm_review_feedback(project_key, task_id, worker_id, status, issues)` - Approve or request changes\n5. **Spawn ready subtasks** - Don't wait, fire them off\n6. **Unblock blocked work** - Resolve dependencies, reassign if needed\n7. **Collect completed work** - Close done subtasks, verify quality\n\n### Keep the Swarm Cooking\n\n- **Spawn aggressively** - If a subtask is ready and unblocked, spawn an agent\n- **Monitor actively** - Check status, read messages, respond to blockers\n- **Close the loop** - When all subtasks done, verify and close the epic\n- **Don't stop** - The swarm runs until the epic is closed\n\n**You are not waiting for instructions. You are the coordinator. Coordinate.**\n";
42
42
  /**
43
43
  * Fallback detection prompt - tells the compactor what to look for
44
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-hook.d.ts","sourceRoot":"","sources":["../src/compaction-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,2wDAsDpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0nCAiCpC,CAAC;AAoIF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,KAEhC,QAAQ;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7B,QAAQ;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,KAC5B,OAAO,CAAC,IAAI,CAAC,CAcjB"}
1
+ {"version":3,"file":"compaction-hook.d.ts","sourceRoot":"","sources":["../src/compaction-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,k9DAwDpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0nCAiCpC,CAAC;AAoIF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,KAEhC,QAAQ;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7B,QAAQ;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,KAC5B,OAAO,CAAC,IAAI,CAAC,CAcjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hive.d.ts","sourceRoot":"","sources":["../src/hive.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -684,7 +684,6 @@ export declare const allTools: {
684
684
  summary: import("zod").ZodString;
685
685
  evaluation: import("zod").ZodOptional<import("zod").ZodString>;
686
686
  files_touched: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
687
- skip_ubs_scan: import("zod").ZodOptional<import("zod").ZodBoolean>;
688
687
  skip_verification: import("zod").ZodOptional<import("zod").ZodBoolean>;
689
688
  planned_files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
690
689
  start_time: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -699,7 +698,6 @@ export declare const allTools: {
699
698
  summary: string;
700
699
  evaluation?: string | undefined;
701
700
  files_touched?: string[] | undefined;
702
- skip_ubs_scan?: boolean | undefined;
703
701
  skip_verification?: boolean | undefined;
704
702
  planned_files?: string[] | undefined;
705
703
  start_time?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}