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.
- package/.turbo/turbo-build.log +10 -9
- package/.turbo/turbo-test.log +319 -317
- package/CHANGELOG.md +158 -0
- package/README.md +7 -4
- package/bin/swarm.ts +388 -87
- 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/bin/swarm.ts
CHANGED
|
@@ -37,10 +37,13 @@ import {
|
|
|
37
37
|
} from "../src/hive";
|
|
38
38
|
import {
|
|
39
39
|
legacyDatabaseExists,
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
migratePGliteToLibSQL,
|
|
41
|
+
pgliteExists,
|
|
42
|
+
getLibSQLProjectTempDirName,
|
|
43
|
+
getLibSQLDatabasePath,
|
|
44
|
+
hashLibSQLProjectPath,
|
|
42
45
|
} from "swarm-mail";
|
|
43
|
-
import {
|
|
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:
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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\
|
|
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,
|
|
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"}
|
package/dist/hive.d.ts.map
CHANGED
|
@@ -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;
|
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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"}
|