opencode-swarm-plugin 0.54.2 → 0.56.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 (45) hide show
  1. package/README.md +23 -12
  2. package/bin/swarm.ts +561 -16
  3. package/claude-plugin/.claude-plugin/plugin.json +14 -0
  4. package/claude-plugin/.lsp.json +1 -0
  5. package/claude-plugin/.mcp.json +10 -0
  6. package/claude-plugin/agents/background-worker.md +36 -0
  7. package/claude-plugin/agents/coordinator.md +39 -0
  8. package/claude-plugin/agents/worker.md +42 -0
  9. package/claude-plugin/bin/swarm-mcp-server.ts +103 -0
  10. package/claude-plugin/commands/handoff.md +17 -0
  11. package/claude-plugin/commands/hive.md +19 -0
  12. package/claude-plugin/commands/inbox.md +15 -0
  13. package/claude-plugin/commands/status.md +15 -0
  14. package/claude-plugin/commands/swarm.md +19 -0
  15. package/claude-plugin/hooks/hooks.json +48 -0
  16. package/claude-plugin/skills/swarm-coordination/SKILL.md +76 -0
  17. package/dist/bin/swarm.js +584 -93
  18. package/dist/examples/plugin-wrapper-template.ts +18 -3
  19. package/dist/hooks/atomic-write.d.ts +21 -0
  20. package/dist/hooks/atomic-write.d.ts.map +1 -0
  21. package/dist/hooks/constants.d.ts +28 -0
  22. package/dist/hooks/constants.d.ts.map +1 -0
  23. package/dist/hooks/index.d.ts +16 -0
  24. package/dist/hooks/index.d.ts.map +1 -0
  25. package/dist/hooks/session-start.d.ts +30 -0
  26. package/dist/hooks/session-start.d.ts.map +1 -0
  27. package/dist/hooks/tool-complete.d.ts +54 -0
  28. package/dist/hooks/tool-complete.d.ts.map +1 -0
  29. package/dist/index.d.ts +32 -18
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +69 -30
  32. package/dist/output-guardrails.d.ts.map +1 -1
  33. package/dist/plugin.js +69 -30
  34. package/dist/swarm-mail.d.ts +34 -0
  35. package/dist/swarm-mail.d.ts.map +1 -1
  36. package/dist/swarm-orchestrate.d.ts +1 -1
  37. package/dist/swarm-orchestrate.d.ts.map +1 -1
  38. package/dist/swarm-prompts.d.ts +1 -1
  39. package/dist/swarm-prompts.d.ts.map +1 -1
  40. package/dist/swarm-prompts.js +1 -30
  41. package/dist/tool-availability.d.ts +1 -2
  42. package/dist/tool-availability.d.ts.map +1 -1
  43. package/examples/plugin-wrapper-template.ts +18 -3
  44. package/global-skills/swarm-coordination/SKILL.md +1 -1
  45. package/package.json +4 -2
package/dist/plugin.js CHANGED
@@ -59746,29 +59746,6 @@ var toolCheckers = {
59746
59746
  };
59747
59747
  }
59748
59748
  },
59749
- ubs: async () => {
59750
- const exists = await commandExists("ubs");
59751
- if (!exists) {
59752
- return {
59753
- available: false,
59754
- checkedAt: new Date().toISOString(),
59755
- error: "ubs command not found"
59756
- };
59757
- }
59758
- try {
59759
- const result = await Bun.$`ubs doctor`.quiet().nothrow();
59760
- return {
59761
- available: result.exitCode === 0,
59762
- checkedAt: new Date().toISOString()
59763
- };
59764
- } catch (e) {
59765
- return {
59766
- available: false,
59767
- checkedAt: new Date().toISOString(),
59768
- error: String(e)
59769
- };
59770
- }
59771
- },
59772
59749
  hive: async () => {
59773
59750
  const exists = await commandExists("hive");
59774
59751
  if (!exists) {
@@ -59829,7 +59806,6 @@ var fallbackBehaviors = {
59829
59806
  "semantic-memory": "Learning data stored in-memory only (lost on session end)",
59830
59807
  cass: "Decomposition proceeds without historical context from past sessions",
59831
59808
  hivemind: "Unified memory unavailable - learnings stored in-memory only, no session history search",
59832
- ubs: "Subtask completion skips bug scanning - manual review recommended",
59833
59809
  hive: "Swarm cannot track issues - task coordination will be less reliable",
59834
59810
  beads: "DEPRECATED: Use hive instead. Swarm cannot track issues - task coordination will be less reliable",
59835
59811
  "swarm-mail": "Multi-agent coordination disabled - file conflicts possible if multiple agents active",
@@ -59862,7 +59838,6 @@ async function checkAllTools() {
59862
59838
  "semantic-memory",
59863
59839
  "cass",
59864
59840
  "hivemind",
59865
- "ubs",
59866
59841
  "hive",
59867
59842
  "beads",
59868
59843
  "swarm-mail",
@@ -60954,6 +60929,8 @@ import {
60954
60929
  readSwarmMessage,
60955
60930
  reserveSwarmFiles,
60956
60931
  releaseSwarmFiles,
60932
+ releaseAllSwarmFiles,
60933
+ releaseSwarmFilesForAgent,
60957
60934
  acknowledgeSwarmMessage,
60958
60935
  checkSwarmHealth as checkSwarmHealth2,
60959
60936
  getActiveReservations
@@ -61250,6 +61227,67 @@ var swarmmail_release = tool({
61250
61227
  }
61251
61228
  }
61252
61229
  });
61230
+ var swarmmail_release_all = tool({
61231
+ description: "Release all file reservations in the project (coordinator override)",
61232
+ args: {},
61233
+ async execute(_args, ctx) {
61234
+ const sessionID = ctx.sessionID || "default";
61235
+ const state = loadSessionState2(sessionID);
61236
+ if (!state) {
61237
+ return JSON.stringify({ error: "Session not initialized. Call swarmmail_init first." }, null, 2);
61238
+ }
61239
+ try {
61240
+ const result = await releaseAllSwarmFiles({
61241
+ projectPath: state.projectKey,
61242
+ actorName: state.agentName
61243
+ });
61244
+ state.reservations = [];
61245
+ saveSessionState2(sessionID, state);
61246
+ return JSON.stringify({
61247
+ released: result.released,
61248
+ released_at: result.releasedAt,
61249
+ release_all: true
61250
+ }, null, 2);
61251
+ } catch (error45) {
61252
+ return JSON.stringify({
61253
+ error: `Failed to release all files: ${error45 instanceof Error ? error45.message : String(error45)}`
61254
+ }, null, 2);
61255
+ }
61256
+ }
61257
+ });
61258
+ var swarmmail_release_agent = tool({
61259
+ description: "Release all file reservations for a specific agent (coordinator override)",
61260
+ args: {
61261
+ agent_name: tool.schema.string().describe("Target agent name")
61262
+ },
61263
+ async execute(args, ctx) {
61264
+ const sessionID = ctx.sessionID || "default";
61265
+ const state = loadSessionState2(sessionID);
61266
+ if (!state) {
61267
+ return JSON.stringify({ error: "Session not initialized. Call swarmmail_init first." }, null, 2);
61268
+ }
61269
+ try {
61270
+ const result = await releaseSwarmFilesForAgent({
61271
+ projectPath: state.projectKey,
61272
+ actorName: state.agentName,
61273
+ targetAgent: args.agent_name
61274
+ });
61275
+ if (args.agent_name === state.agentName) {
61276
+ state.reservations = [];
61277
+ saveSessionState2(sessionID, state);
61278
+ }
61279
+ return JSON.stringify({
61280
+ released: result.released,
61281
+ released_at: result.releasedAt,
61282
+ target_agent: args.agent_name
61283
+ }, null, 2);
61284
+ } catch (error45) {
61285
+ return JSON.stringify({
61286
+ error: `Failed to release files for agent: ${error45 instanceof Error ? error45.message : String(error45)}`
61287
+ }, null, 2);
61288
+ }
61289
+ }
61290
+ });
61253
61291
  var swarmmail_ack = tool({
61254
61292
  description: "Acknowledge a message (for messages that require acknowledgement)",
61255
61293
  args: {
@@ -61312,6 +61350,8 @@ var swarmMailTools = {
61312
61350
  swarmmail_read_message,
61313
61351
  swarmmail_reserve,
61314
61352
  swarmmail_release,
61353
+ swarmmail_release_all,
61354
+ swarmmail_release_agent,
61315
61355
  swarmmail_ack,
61316
61356
  swarmmail_health
61317
61357
  };
@@ -65146,9 +65186,6 @@ var swarm_init = tool({
65146
65186
  if (!availability.get("cass")?.status.available) {
65147
65187
  degradedFeatures.push("historical context from past sessions");
65148
65188
  }
65149
- if (!availability.get("ubs")?.status.available) {
65150
- degradedFeatures.push("pre-completion bug scanning");
65151
- }
65152
65189
  if (!availability.get("hivemind")?.status.available) {
65153
65190
  degradedFeatures.push("persistent learning (using in-memory fallback)");
65154
65191
  }
@@ -65962,7 +65999,7 @@ ${errorStack.slice(0, 1000)}
65962
65999
  "",
65963
66000
  `### Recovery Actions`,
65964
66001
  "1. Check error message for specific issue",
65965
- "2. Review failed step (UBS scan, typecheck, cell close, etc.)",
66002
+ "2. Review failed step (typecheck, tests, cell close, etc.)",
65966
66003
  "3. Fix underlying issue or use skip flags if appropriate",
65967
66004
  "4. Retry swarm_complete after fixing"
65968
66005
  ].filter(Boolean).join(`
@@ -66973,7 +67010,6 @@ swarm_complete(
66973
67010
  \`\`\`
66974
67011
 
66975
67012
  **This automatically:**
66976
- - Runs UBS bug scan
66977
67013
  - Releases file reservations
66978
67014
  - Records learning signals
66979
67015
  - Notifies coordinator
@@ -70148,6 +70184,8 @@ var DEFAULT_GUARDRAIL_CONFIG = {
70148
70184
  "swarmmail_read_message",
70149
70185
  "swarmmail_reserve",
70150
70186
  "swarmmail_release",
70187
+ "swarmmail_release_all",
70188
+ "swarmmail_release_agent",
70151
70189
  "swarmmail_ack",
70152
70190
  "structured_extract_json",
70153
70191
  "structured_validate",
@@ -72136,6 +72174,7 @@ var allTools = {
72136
72174
  ...mandateTools,
72137
72175
  ...hivemindTools,
72138
72176
  ...observabilityTools,
72177
+ ...researchTools,
72139
72178
  ...contributorTools
72140
72179
  };
72141
72180
 
@@ -118,6 +118,26 @@ export declare const swarmmail_release: {
118
118
  reservation_ids?: number[] | undefined;
119
119
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
120
120
  };
121
+ /**
122
+ * Release all reservations in the project (coordinator override)
123
+ */
124
+ export declare const swarmmail_release_all: {
125
+ description: string;
126
+ args: {};
127
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
128
+ };
129
+ /**
130
+ * Release all reservations for a specific agent (coordinator override)
131
+ */
132
+ export declare const swarmmail_release_agent: {
133
+ description: string;
134
+ args: {
135
+ agent_name: import("zod").ZodString;
136
+ };
137
+ execute(args: {
138
+ agent_name: string;
139
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
140
+ };
121
141
  /**
122
142
  * Acknowledge a message
123
143
  */
@@ -222,6 +242,20 @@ export declare const swarmMailTools: {
222
242
  reservation_ids?: number[] | undefined;
223
243
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
224
244
  };
245
+ swarmmail_release_all: {
246
+ description: string;
247
+ args: {};
248
+ execute(args: Record<string, never>, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
249
+ };
250
+ swarmmail_release_agent: {
251
+ description: string;
252
+ args: {
253
+ agent_name: import("zod").ZodString;
254
+ };
255
+ execute(args: {
256
+ agent_name: string;
257
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
258
+ };
225
259
  swarmmail_ack: {
226
260
  description: string;
227
261
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-mail.d.ts","sourceRoot":"","sources":["../src/swarm-mail.ts"],"names":[],"mappings":"AAmBA,OAAO,EAUL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAoBpB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC;AA+D9C;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,SAAS,CAEjE;AAyCD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CASzD;AAMD;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAyEzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAiEzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;CA6D1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;CAyDjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CA8E5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CA6E5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;CA2CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;CA0C3B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC"}
1
+ {"version":3,"file":"swarm-mail.d.ts","sourceRoot":"","sources":["../src/swarm-mail.ts"],"names":[],"mappings":"AAmBA,OAAO,EAYL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAoBpB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAoE9C;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,GAAG,SAAS,CAEjE;AAyCD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CASzD;AAMD;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAyEzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAiEzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;CA6D1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;CAyDjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CA8E5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CA6E5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;CA2ChC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;CAgDlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;CA2CxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;CA0C3B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW1B,CAAC"}
@@ -178,7 +178,7 @@ export declare const swarm_broadcast: {
178
178
  *
179
179
  * Implements the Verification Gate (from superpowers):
180
180
  * 1. IDENTIFY: What commands prove this claim?
181
- * 2. RUN: Execute verification (UBS, typecheck, tests)
181
+ * 2. RUN: Execute verification (typecheck, tests)
182
182
  * 3. READ: Check exit codes and output
183
183
  * 4. VERIFY: All checks must pass
184
184
  * 5. ONLY THEN: Close the cell
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ export declare const SUBTASK_PROMPT = "You are a swarm agent working on a subtas
37
37
  *
38
38
  * Supports {error_context} placeholder for retry prompts.
39
39
  */
40
- export declare const SUBTASK_PROMPT_V2 = "You are a swarm agent working on: **{subtask_title}**\n\n## [IDENTITY]\nAgent: (assigned at spawn)\nCell: {bead_id}\nEpic: {epic_id}\n\n## [TASK]\n{subtask_description}\n\n## [FILES]\nReserved (exclusive):\n{file_list}\n\nOnly modify these files. Need others? Message the coordinator.\n\n## [CONTEXT]\n{shared_context}\n\n{compressed_context}\n\n{error_context}\n\n## [MANDATORY SURVIVAL CHECKLIST]\n\n**CRITICAL: Follow this checklist IN ORDER. Each step builds on the previous.**\n\n### Step 1: Initialize Coordination (REQUIRED - DO THIS FIRST)\n```\nswarmmail_init(project_path=\"{project_path}\", task_description=\"{bead_id}: {subtask_title}\")\n```\n\n**This registers you with the coordination system and enables:**\n- File reservation tracking\n- Inter-agent communication\n- Progress monitoring\n- Conflict detection\n\n**If you skip this step, your work will not be tracked and swarm_complete will fail.**\n\n### Step 2: \uD83E\uDDE0 Query Past Learnings (MANDATORY - BEFORE starting work)\n\n**\u26A0\uFE0F CRITICAL: ALWAYS query hivemind BEFORE writing ANY code.**\n\n```\nhivemind_find(query=\"<keywords from your task>\", limit=5, expand=true)\n```\n\n**Why this is MANDATORY:**\n- Past agents may have already solved your exact problem\n- Avoids repeating mistakes that wasted 30+ minutes before\n- Discovers project-specific patterns and gotchas\n- Finds known workarounds for tool/library quirks\n\n**Search Query Examples by Task Type:**\n\n- **Bug fix**: Use exact error message or \"<symptom> <component>\"\n- **New feature**: Search \"<domain concept> implementation pattern\"\n- **Refactor**: Query \"<pattern name> migration approach\"\n- **Integration**: Look for \"<library name> gotchas configuration\"\n- **Testing**: Find \"testing <component type> characterization tests\"\n- **Performance**: Search \"<technology> performance optimization\"\n\n**BEFORE you start coding:**\n1. Run hivemind_find with keywords from your task\n2. Read the results with expand=true for full content\n3. Check if any memory solves your problem or warns of pitfalls\n4. Adjust your approach based on past learnings\n\n**If you skip this step, you WILL waste time solving already-solved problems.**\n\n### Step 3: Load Relevant Skills (if available)\n```\nskills_list() # See what skills exist\nskills_use(name=\"<relevant-skill>\", context=\"<your task>\") # Load skill\n```\n\n**Common skill triggers:**\n- Writing tests? \u2192 `skills_use(name=\"testing-patterns\")`\n- Breaking dependencies? \u2192 `skills_use(name=\"testing-patterns\")`\n- Multi-agent coordination? \u2192 `skills_use(name=\"swarm-coordination\")`\n- Building a CLI? \u2192 `skills_use(name=\"cli-builder\")`\n\n### Step 4: Reserve Your Files (YOU reserve, not coordinator)\n```\nswarmmail_reserve(\n paths=[{file_list}],\n reason=\"{bead_id}: {subtask_title}\",\n exclusive=true\n)\n```\n\n**Workers reserve their own files.** This prevents edit conflicts with other agents.\n\n### Step 5: Do the Work (TDD MANDATORY)\n\n**Follow RED \u2192 GREEN \u2192 REFACTOR. No exceptions.**\n\n1. **RED**: Write a failing test that describes the expected behavior\n - Test MUST fail before you write implementation\n - If test passes immediately, your test is wrong\n \n2. **GREEN**: Write minimal code to make the test pass\n - Don't over-engineer - just make it green\n - Hardcode if needed, refactor later\n \n3. **REFACTOR**: Clean up while tests stay green\n - Run tests after every change\n - If tests break, undo and try again\n\n```bash\n# Run tests continuously\nbun test <your-test-file> --watch\n```\n\n**Why TDD?**\n- Catches bugs before they exist\n- Documents expected behavior\n- Enables fearless refactoring\n- Proves your code works\n\n### Step 6: Report Progress at Milestones\n```\nswarm_progress(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\",\n status=\"in_progress\",\n progress_percent=25, # or 50, 75\n message=\"<what you just completed>\"\n)\n```\n\n**Report at 25%, 50%, 75% completion.** This:\n- Triggers auto-checkpoint (saves context)\n- Keeps coordinator informed\n- Prevents silent failures\n\n### Step 7: Manual Checkpoint BEFORE Risky Operations\n```\nswarm_checkpoint(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\"\n)\n```\n\n**Call BEFORE:**\n- Large refactors\n- File deletions\n- Breaking API changes\n- Anything that might fail catastrophically\n\n**Checkpoints preserve context so you can recover if things go wrong.**\n\n### Step 8: \uD83D\uDCBE STORE YOUR LEARNINGS (if you discovered something)\n\n**If you learned it the hard way, STORE IT so the next agent doesn't have to.**\n\n```\nhivemind_store(\n information=\"<what you learned, WHY it matters, how to apply it>\",\n tags=\"<domain, tech-stack, pattern-type>\"\n)\n```\n\n**MANDATORY Storage Triggers - Store when you:**\n- \uD83D\uDC1B **Solved a tricky bug** (>15min debugging) - include root cause + solution\n- \uD83D\uDCA1 **Discovered a project-specific pattern** - domain rules, business logic quirks\n- \u26A0\uFE0F **Found a tool/library gotcha** - API quirks, version-specific bugs, workarounds\n- \uD83D\uDEAB **Tried an approach that failed** - anti-patterns to avoid, why it didn't work\n- \uD83C\uDFD7\uFE0F **Made an architectural decision** - reasoning, alternatives considered, tradeoffs\n\n**What Makes a GOOD Memory:**\n\n\u2705 **GOOD** (actionable, explains WHY):\n```\n\"OAuth refresh tokens need 5min buffer before expiry to avoid race conditions.\nWithout buffer, token refresh can fail mid-request if expiry happens between\ncheck and use. Implemented with: if (expiresAt - Date.now() < 300000) refresh()\"\n```\n\n\u274C **BAD** (generic, no context):\n```\n\"Fixed the auth bug by adding a null check\"\n```\n\n**What NOT to Store:**\n- Generic knowledge that's in official documentation\n- Implementation details that change frequently\n- Vague descriptions without context (\"fixed the thing\")\n\n**The WHY matters more than the WHAT.** Future agents need context to apply your learning.\n\n### Step 9: Complete (REQUIRED - releases reservations)\n```\nswarm_complete(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\",\n summary=\"<what you accomplished>\",\n files_touched=[\"list\", \"of\", \"files\"]\n)\n```\n\n**This automatically:**\n- Runs UBS bug scan\n- Releases file reservations\n- Records learning signals\n- Notifies coordinator\n\n**DO NOT manually close the cell with hive_close.** Use swarm_complete.\n\n## [ON-DEMAND RESEARCH]\n\nIf you encounter unknown API behavior or version-specific issues:\n\n1. **Check hivemind first:**\n `hivemind_find(query=\"<library> <version> <topic>\", limit=3, expand=true)`\n\n2. **If not found, spawn researcher:**\n `swarm_spawn_researcher(research_id=\"{bead_id}-research\", epic_id=\"{epic_id}\", tech_stack=[\"<library>\"], project_path=\"{project_path}\")`\n Then spawn with Task tool: `Task(subagent_type=\"swarm-researcher\", prompt=\"<from above>\")`\n\n3. **Wait for research, then continue**\n\n**Research triggers:**\n- \"I'm not sure how this API works in version X\"\n- \"This might have breaking changes\"\n- \"The docs I remember might be outdated\"\n\n**Don't research:**\n- Standard patterns you're confident about\n- Well-documented, stable APIs\n- Obvious implementations\n\n## [SWARM MAIL COMMUNICATION]\n\n### Check Inbox Regularly\n```\nswarmmail_inbox() # Check for coordinator messages\nswarmmail_read_message(message_id=N) # Read specific message\n```\n\n### When Blocked\n```\nswarmmail_send(\n to=[\"coordinator\"],\n subject=\"BLOCKED: {bead_id}\",\n body=\"<blocker description, what you need>\",\n importance=\"high\",\n thread_id=\"{epic_id}\"\n)\nhive_update(id=\"{bead_id}\", status=\"blocked\")\n```\n\n### Report Issues to Other Agents\n```\nswarmmail_send(\n to=[\"OtherAgent\", \"coordinator\"],\n subject=\"Issue in {bead_id}\",\n body=\"<describe problem, don't fix their code>\",\n thread_id=\"{epic_id}\"\n)\n```\n\n### Manual Release (if needed)\n```\nswarmmail_release() # Manually release reservations\n```\n\n**Note:** `swarm_complete` automatically releases reservations. Only use manual release if aborting work.\n\n## [OTHER TOOLS]\n### Hive - You Have Autonomy to File Issues\nYou can create new cells against this epic when you discover:\n- **Bugs**: Found a bug while working? File it.\n- **Tech debt**: Spotted something that needs cleanup? File it.\n- **Follow-up work**: Task needs more work than scoped? File a follow-up.\n- **Dependencies**: Need something from another agent? File and link it.\n\n```\nhive_create(\n title=\"<descriptive title>\",\n type=\"bug\", # or \"task\", \"chore\"\n priority=2,\n parent_id=\"{epic_id}\", # Links to this epic\n description=\"Found while working on {bead_id}: <details>\"\n)\n```\n\n**Don't silently ignore issues.** File them so they get tracked and addressed.\n\nOther cell operations:\n- hive_update(id, status) - Mark blocked if stuck\n- hive_query(status=\"open\") - See what else needs work\n\n### Skills\n- skills_list() - Discover available skills\n- skills_use(name) - Activate skill for specialized guidance\n- skills_create(name) - Create new skill (if you found a reusable pattern)\n\n## [CRITICAL REQUIREMENTS]\n\n**NON-NEGOTIABLE:**\n1. Step 1 (swarmmail_init) MUST be first - do it before anything else\n2. \uD83E\uDDE0 Step 2 (hivemind_find) MUST happen BEFORE starting work - query first, code second\n3. Step 4 (swarmmail_reserve) - YOU reserve files, not coordinator\n4. Step 6 (swarm_progress) - Report at milestones, don't work silently\n5. \uD83D\uDCBE Step 8 (hivemind_store) - If you learned something hard, STORE IT\n6. Step 9 (swarm_complete) - Use this to close, NOT hive_close\n\n**If you skip these steps:**\n- Your work won't be tracked (swarm_complete will fail)\n- \uD83D\uDD04 You'll waste time repeating already-solved problems (no hivemind query)\n- Edit conflicts with other agents (no file reservation)\n- Lost work if you crash (no checkpoints)\n- \uD83D\uDD04 Future agents repeat YOUR mistakes (no learnings stored)\n\n**Hivemind is the swarm's collective intelligence. Query it. Feed it.**\n\nBegin now.";
40
+ export declare const SUBTASK_PROMPT_V2 = "You are a swarm agent working on: **{subtask_title}**\n\n## [IDENTITY]\nAgent: (assigned at spawn)\nCell: {bead_id}\nEpic: {epic_id}\n\n## [TASK]\n{subtask_description}\n\n## [FILES]\nReserved (exclusive):\n{file_list}\n\nOnly modify these files. Need others? Message the coordinator.\n\n## [CONTEXT]\n{shared_context}\n\n{compressed_context}\n\n{error_context}\n\n## [MANDATORY SURVIVAL CHECKLIST]\n\n**CRITICAL: Follow this checklist IN ORDER. Each step builds on the previous.**\n\n### Step 1: Initialize Coordination (REQUIRED - DO THIS FIRST)\n```\nswarmmail_init(project_path=\"{project_path}\", task_description=\"{bead_id}: {subtask_title}\")\n```\n\n**This registers you with the coordination system and enables:**\n- File reservation tracking\n- Inter-agent communication\n- Progress monitoring\n- Conflict detection\n\n**If you skip this step, your work will not be tracked and swarm_complete will fail.**\n\n### Step 2: \uD83E\uDDE0 Query Past Learnings (MANDATORY - BEFORE starting work)\n\n**\u26A0\uFE0F CRITICAL: ALWAYS query hivemind BEFORE writing ANY code.**\n\n```\nhivemind_find(query=\"<keywords from your task>\", limit=5, expand=true)\n```\n\n**Why this is MANDATORY:**\n- Past agents may have already solved your exact problem\n- Avoids repeating mistakes that wasted 30+ minutes before\n- Discovers project-specific patterns and gotchas\n- Finds known workarounds for tool/library quirks\n\n**Search Query Examples by Task Type:**\n\n- **Bug fix**: Use exact error message or \"<symptom> <component>\"\n- **New feature**: Search \"<domain concept> implementation pattern\"\n- **Refactor**: Query \"<pattern name> migration approach\"\n- **Integration**: Look for \"<library name> gotchas configuration\"\n- **Testing**: Find \"testing <component type> characterization tests\"\n- **Performance**: Search \"<technology> performance optimization\"\n\n**BEFORE you start coding:**\n1. Run hivemind_find with keywords from your task\n2. Read the results with expand=true for full content\n3. Check if any memory solves your problem or warns of pitfalls\n4. Adjust your approach based on past learnings\n\n**If you skip this step, you WILL waste time solving already-solved problems.**\n\n### Step 3: Load Relevant Skills (if available)\n```\nskills_list() # See what skills exist\nskills_use(name=\"<relevant-skill>\", context=\"<your task>\") # Load skill\n```\n\n**Common skill triggers:**\n- Writing tests? \u2192 `skills_use(name=\"testing-patterns\")`\n- Breaking dependencies? \u2192 `skills_use(name=\"testing-patterns\")`\n- Multi-agent coordination? \u2192 `skills_use(name=\"swarm-coordination\")`\n- Building a CLI? \u2192 `skills_use(name=\"cli-builder\")`\n\n### Step 4: Reserve Your Files (YOU reserve, not coordinator)\n```\nswarmmail_reserve(\n paths=[{file_list}],\n reason=\"{bead_id}: {subtask_title}\",\n exclusive=true\n)\n```\n\n**Workers reserve their own files.** This prevents edit conflicts with other agents.\n\n### Step 5: Do the Work (TDD MANDATORY)\n\n**Follow RED \u2192 GREEN \u2192 REFACTOR. No exceptions.**\n\n1. **RED**: Write a failing test that describes the expected behavior\n - Test MUST fail before you write implementation\n - If test passes immediately, your test is wrong\n \n2. **GREEN**: Write minimal code to make the test pass\n - Don't over-engineer - just make it green\n - Hardcode if needed, refactor later\n \n3. **REFACTOR**: Clean up while tests stay green\n - Run tests after every change\n - If tests break, undo and try again\n\n```bash\n# Run tests continuously\nbun test <your-test-file> --watch\n```\n\n**Why TDD?**\n- Catches bugs before they exist\n- Documents expected behavior\n- Enables fearless refactoring\n- Proves your code works\n\n### Step 6: Report Progress at Milestones\n```\nswarm_progress(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\",\n status=\"in_progress\",\n progress_percent=25, # or 50, 75\n message=\"<what you just completed>\"\n)\n```\n\n**Report at 25%, 50%, 75% completion.** This:\n- Triggers auto-checkpoint (saves context)\n- Keeps coordinator informed\n- Prevents silent failures\n\n### Step 7: Manual Checkpoint BEFORE Risky Operations\n```\nswarm_checkpoint(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\"\n)\n```\n\n**Call BEFORE:**\n- Large refactors\n- File deletions\n- Breaking API changes\n- Anything that might fail catastrophically\n\n**Checkpoints preserve context so you can recover if things go wrong.**\n\n### Step 8: \uD83D\uDCBE STORE YOUR LEARNINGS (if you discovered something)\n\n**If you learned it the hard way, STORE IT so the next agent doesn't have to.**\n\n```\nhivemind_store(\n information=\"<what you learned, WHY it matters, how to apply it>\",\n tags=\"<domain, tech-stack, pattern-type>\"\n)\n```\n\n**MANDATORY Storage Triggers - Store when you:**\n- \uD83D\uDC1B **Solved a tricky bug** (>15min debugging) - include root cause + solution\n- \uD83D\uDCA1 **Discovered a project-specific pattern** - domain rules, business logic quirks\n- \u26A0\uFE0F **Found a tool/library gotcha** - API quirks, version-specific bugs, workarounds\n- \uD83D\uDEAB **Tried an approach that failed** - anti-patterns to avoid, why it didn't work\n- \uD83C\uDFD7\uFE0F **Made an architectural decision** - reasoning, alternatives considered, tradeoffs\n\n**What Makes a GOOD Memory:**\n\n\u2705 **GOOD** (actionable, explains WHY):\n```\n\"OAuth refresh tokens need 5min buffer before expiry to avoid race conditions.\nWithout buffer, token refresh can fail mid-request if expiry happens between\ncheck and use. Implemented with: if (expiresAt - Date.now() < 300000) refresh()\"\n```\n\n\u274C **BAD** (generic, no context):\n```\n\"Fixed the auth bug by adding a null check\"\n```\n\n**What NOT to Store:**\n- Generic knowledge that's in official documentation\n- Implementation details that change frequently\n- Vague descriptions without context (\"fixed the thing\")\n\n**The WHY matters more than the WHAT.** Future agents need context to apply your learning.\n\n### Step 9: Complete (REQUIRED - releases reservations)\n```\nswarm_complete(\n project_key=\"{project_path}\",\n agent_name=\"<your-agent-name>\",\n bead_id=\"{bead_id}\",\n summary=\"<what you accomplished>\",\n files_touched=[\"list\", \"of\", \"files\"]\n)\n```\n\n**This automatically:**\n- Releases file reservations\n- Records learning signals\n- Notifies coordinator\n\n**DO NOT manually close the cell with hive_close.** Use swarm_complete.\n\n## [ON-DEMAND RESEARCH]\n\nIf you encounter unknown API behavior or version-specific issues:\n\n1. **Check hivemind first:**\n `hivemind_find(query=\"<library> <version> <topic>\", limit=3, expand=true)`\n\n2. **If not found, spawn researcher:**\n `swarm_spawn_researcher(research_id=\"{bead_id}-research\", epic_id=\"{epic_id}\", tech_stack=[\"<library>\"], project_path=\"{project_path}\")`\n Then spawn with Task tool: `Task(subagent_type=\"swarm-researcher\", prompt=\"<from above>\")`\n\n3. **Wait for research, then continue**\n\n**Research triggers:**\n- \"I'm not sure how this API works in version X\"\n- \"This might have breaking changes\"\n- \"The docs I remember might be outdated\"\n\n**Don't research:**\n- Standard patterns you're confident about\n- Well-documented, stable APIs\n- Obvious implementations\n\n## [SWARM MAIL COMMUNICATION]\n\n### Check Inbox Regularly\n```\nswarmmail_inbox() # Check for coordinator messages\nswarmmail_read_message(message_id=N) # Read specific message\n```\n\n### When Blocked\n```\nswarmmail_send(\n to=[\"coordinator\"],\n subject=\"BLOCKED: {bead_id}\",\n body=\"<blocker description, what you need>\",\n importance=\"high\",\n thread_id=\"{epic_id}\"\n)\nhive_update(id=\"{bead_id}\", status=\"blocked\")\n```\n\n### Report Issues to Other Agents\n```\nswarmmail_send(\n to=[\"OtherAgent\", \"coordinator\"],\n subject=\"Issue in {bead_id}\",\n body=\"<describe problem, don't fix their code>\",\n thread_id=\"{epic_id}\"\n)\n```\n\n### Manual Release (if needed)\n```\nswarmmail_release() # Manually release reservations\n```\n\n**Note:** `swarm_complete` automatically releases reservations. Only use manual release if aborting work.\n\n## [OTHER TOOLS]\n### Hive - You Have Autonomy to File Issues\nYou can create new cells against this epic when you discover:\n- **Bugs**: Found a bug while working? File it.\n- **Tech debt**: Spotted something that needs cleanup? File it.\n- **Follow-up work**: Task needs more work than scoped? File a follow-up.\n- **Dependencies**: Need something from another agent? File and link it.\n\n```\nhive_create(\n title=\"<descriptive title>\",\n type=\"bug\", # or \"task\", \"chore\"\n priority=2,\n parent_id=\"{epic_id}\", # Links to this epic\n description=\"Found while working on {bead_id}: <details>\"\n)\n```\n\n**Don't silently ignore issues.** File them so they get tracked and addressed.\n\nOther cell operations:\n- hive_update(id, status) - Mark blocked if stuck\n- hive_query(status=\"open\") - See what else needs work\n\n### Skills\n- skills_list() - Discover available skills\n- skills_use(name) - Activate skill for specialized guidance\n- skills_create(name) - Create new skill (if you found a reusable pattern)\n\n## [CRITICAL REQUIREMENTS]\n\n**NON-NEGOTIABLE:**\n1. Step 1 (swarmmail_init) MUST be first - do it before anything else\n2. \uD83E\uDDE0 Step 2 (hivemind_find) MUST happen BEFORE starting work - query first, code second\n3. Step 4 (swarmmail_reserve) - YOU reserve files, not coordinator\n4. Step 6 (swarm_progress) - Report at milestones, don't work silently\n5. \uD83D\uDCBE Step 8 (hivemind_store) - If you learned something hard, STORE IT\n6. Step 9 (swarm_complete) - Use this to close, NOT hive_close\n\n**If you skip these steps:**\n- Your work won't be tracked (swarm_complete will fail)\n- \uD83D\uDD04 You'll waste time repeating already-solved problems (no hivemind query)\n- Edit conflicts with other agents (no file reservation)\n- Lost work if you crash (no checkpoints)\n- \uD83D\uDD04 Future agents repeat YOUR mistakes (no learnings stored)\n\n**Hivemind is the swarm's collective intelligence. Query it. Feed it.**\n\nBegin now.";
41
41
  /**
42
42
  * Coordinator Agent Prompt Template
43
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-prompts.d.ts","sourceRoot":"","sources":["../src/swarm-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swarm-prompts.d.ts","sourceRoot":"","sources":["../src/swarm-prompts.ts"],"names":[],"mappings":"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"}
@@ -39811,29 +39811,6 @@ var toolCheckers = {
39811
39811
  };
39812
39812
  }
39813
39813
  },
39814
- ubs: async () => {
39815
- const exists = await commandExists("ubs");
39816
- if (!exists) {
39817
- return {
39818
- available: false,
39819
- checkedAt: new Date().toISOString(),
39820
- error: "ubs command not found"
39821
- };
39822
- }
39823
- try {
39824
- const result = await Bun.$`ubs doctor`.quiet().nothrow();
39825
- return {
39826
- available: result.exitCode === 0,
39827
- checkedAt: new Date().toISOString()
39828
- };
39829
- } catch (e) {
39830
- return {
39831
- available: false,
39832
- checkedAt: new Date().toISOString(),
39833
- error: String(e)
39834
- };
39835
- }
39836
- },
39837
39814
  hive: async () => {
39838
39815
  const exists = await commandExists("hive");
39839
39816
  if (!exists) {
@@ -39894,7 +39871,6 @@ var fallbackBehaviors = {
39894
39871
  "semantic-memory": "Learning data stored in-memory only (lost on session end)",
39895
39872
  cass: "Decomposition proceeds without historical context from past sessions",
39896
39873
  hivemind: "Unified memory unavailable - learnings stored in-memory only, no session history search",
39897
- ubs: "Subtask completion skips bug scanning - manual review recommended",
39898
39874
  hive: "Swarm cannot track issues - task coordination will be less reliable",
39899
39875
  beads: "DEPRECATED: Use hive instead. Swarm cannot track issues - task coordination will be less reliable",
39900
39876
  "swarm-mail": "Multi-agent coordination disabled - file conflicts possible if multiple agents active",
@@ -39927,7 +39903,6 @@ async function checkAllTools() {
39927
39903
  "semantic-memory",
39928
39904
  "cass",
39929
39905
  "hivemind",
39930
- "ubs",
39931
39906
  "hive",
39932
39907
  "beads",
39933
39908
  "swarm-mail",
@@ -42032,9 +42007,6 @@ var swarm_init = tool({
42032
42007
  if (!availability.get("cass")?.status.available) {
42033
42008
  degradedFeatures.push("historical context from past sessions");
42034
42009
  }
42035
- if (!availability.get("ubs")?.status.available) {
42036
- degradedFeatures.push("pre-completion bug scanning");
42037
- }
42038
42010
  if (!availability.get("hivemind")?.status.available) {
42039
42011
  degradedFeatures.push("persistent learning (using in-memory fallback)");
42040
42012
  }
@@ -42848,7 +42820,7 @@ ${errorStack.slice(0, 1000)}
42848
42820
  "",
42849
42821
  `### Recovery Actions`,
42850
42822
  "1. Check error message for specific issue",
42851
- "2. Review failed step (UBS scan, typecheck, cell close, etc.)",
42823
+ "2. Review failed step (typecheck, tests, cell close, etc.)",
42852
42824
  "3. Fix underlying issue or use skip flags if appropriate",
42853
42825
  "4. Retry swarm_complete after fixing"
42854
42826
  ].filter(Boolean).join(`
@@ -43910,7 +43882,6 @@ swarm_complete(
43910
43882
  \`\`\`
43911
43883
 
43912
43884
  **This automatically:**
43913
- - Runs UBS bug scan
43914
43885
  - Releases file reservations
43915
43886
  - Records learning signals
43916
43887
  - Notifies coordinator
@@ -7,13 +7,12 @@
7
7
  * Supported tools:
8
8
  * - semantic-memory: Learning persistence with semantic search
9
9
  * - cass: Cross-agent session search for historical context
10
- * - ubs: Universal bug scanner for pre-commit checks
11
10
  * - hive: Git-backed issue tracking (primary)
12
11
  * - beads (bd): DEPRECATED - Use hive instead (kept for backward compatibility)
13
12
  * - swarm-mail: Embedded multi-agent coordination (PGLite-based)
14
13
  * - agent-mail: DEPRECATED - Legacy MCP server (use swarm-mail instead)
15
14
  */
16
- export type ToolName = "semantic-memory" | "cass" | "hivemind" | "ubs" | "hive" | "beads" | "swarm-mail" | "agent-mail";
15
+ export type ToolName = "semantic-memory" | "cass" | "hivemind" | "hive" | "beads" | "swarm-mail" | "agent-mail";
17
16
  export interface ToolStatus {
18
17
  available: boolean;
19
18
  checkedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-availability.d.ts","sourceRoot":"","sources":["../src/tool-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,MAAM,QAAQ,GAChB,iBAAiB,GACjB,MAAM,GACN,UAAU,GACV,KAAK,GACL,MAAM,GACN,OAAO,GACP,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAiTD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAWnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAC5C,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAChC,CA2BA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAQpD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CASZ;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAC5C,MAAM,CAWR"}
1
+ {"version":3,"file":"tool-availability.d.ts","sourceRoot":"","sources":["../src/tool-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,MAAM,MAAM,QAAQ,GAChB,iBAAiB,GACjB,MAAM,GACN,UAAU,GACV,MAAM,GACN,OAAO,GACP,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuRD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAWnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAC5C,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAChC,CA0BA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAQpD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CASZ;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAC5C,MAAM,CAWR"}
@@ -981,6 +981,20 @@ const swarmmail_release = tool({
981
981
  execute: (args, ctx) => execTool("swarmmail_release", args, ctx),
982
982
  });
983
983
 
984
+ const swarmmail_release_all = tool({
985
+ description: "Release all file reservations in the project (coordinator override)",
986
+ args: {},
987
+ execute: (args, ctx) => execTool("swarmmail_release_all", args, ctx),
988
+ });
989
+
990
+ const swarmmail_release_agent = tool({
991
+ description: "Release all file reservations for a specific agent (coordinator override)",
992
+ args: {
993
+ agent_name: tool.schema.string().describe("Target agent name"),
994
+ },
995
+ execute: (args, ctx) => execTool("swarmmail_release_agent", args, ctx),
996
+ });
997
+
984
998
  const swarmmail_ack = tool({
985
999
  description: "Acknowledge a message",
986
1000
  args: {
@@ -1176,7 +1190,7 @@ const swarm_progress = tool({
1176
1190
 
1177
1191
  const swarm_complete = tool({
1178
1192
  description:
1179
- "Mark subtask complete with Verification Gate. Runs UBS scan, typecheck, and tests before allowing completion.",
1193
+ "Mark subtask complete with Verification Gate. Runs typecheck and tests before allowing completion.",
1180
1194
  args: {
1181
1195
  project_key: tool.schema.string().describe("Project key"),
1182
1196
  agent_name: tool.schema.string().describe("Agent name"),
@@ -1187,11 +1201,10 @@ const swarm_complete = tool({
1187
1201
  .array(tool.schema.string())
1188
1202
  .optional()
1189
1203
  .describe("Files modified - will be verified"),
1190
- skip_ubs_scan: tool.schema.boolean().optional().describe("Skip UBS scan"),
1191
1204
  skip_verification: tool.schema
1192
1205
  .boolean()
1193
1206
  .optional()
1194
- .describe("Skip ALL verification (UBS, typecheck, tests)"),
1207
+ .describe("Skip ALL verification (typecheck, tests)"),
1195
1208
  skip_review: tool.schema
1196
1209
  .boolean()
1197
1210
  .optional()
@@ -2832,6 +2845,8 @@ const SwarmPlugin: Plugin = async (
2832
2845
  swarmmail_read_message,
2833
2846
  swarmmail_reserve,
2834
2847
  swarmmail_release,
2848
+ swarmmail_release_all,
2849
+ swarmmail_release_agent,
2835
2850
  swarmmail_ack,
2836
2851
  swarmmail_health,
2837
2852
  // Structured
@@ -119,7 +119,7 @@ semantic_memory_store({
119
119
  metadata: "auth, oauth, tokens"
120
120
  });
121
121
 
122
- // 9. COMPLETE - Auto-releases, runs UBS, records outcome
122
+ // 9. COMPLETE - Auto-releases, records outcome
123
123
  swarm_complete({
124
124
  project_key: "/abs/path/to/project",
125
125
  agent_name: "WorkerName",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm-plugin",
3
- "version": "0.54.2",
3
+ "version": "0.56.0",
4
4
  "description": "Multi-agent swarm coordination for OpenCode with learning capabilities, beads integration, and Agent Mail",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,6 +29,7 @@
29
29
  "files": [
30
30
  "dist",
31
31
  "bin",
32
+ "claude-plugin",
32
33
  "examples",
33
34
  "global-skills",
34
35
  "README.md"
@@ -57,6 +58,7 @@
57
58
  },
58
59
  "dependencies": {
59
60
  "@clack/prompts": "^0.11.0",
61
+ "@modelcontextprotocol/sdk": "1.25.2",
60
62
  "@opencode-ai/plugin": "^1.0.134",
61
63
  "effect": "^3.19.12",
62
64
  "gray-matter": "^4.0.3",
@@ -64,7 +66,7 @@
64
66
  "minimatch": "^10.1.1",
65
67
  "pino": "^9.6.0",
66
68
  "pino-roll": "^1.3.0",
67
- "swarm-mail": "1.9.3",
69
+ "swarm-mail": "1.10.0",
68
70
  "yaml": "^2.8.2",
69
71
  "zod": "4.1.8"
70
72
  },