opencode-swarm-plugin 0.30.7 → 0.31.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/dist/plugin.js CHANGED
@@ -27084,7 +27084,8 @@ import {
27084
27084
  FlushManager,
27085
27085
  importFromJSONL,
27086
27086
  syncMemories,
27087
- getSwarmMail
27087
+ getSwarmMail,
27088
+ resolvePartialId
27088
27089
  } from "swarm-mail";
27089
27090
  import { existsSync, readFileSync } from "node:fs";
27090
27091
  import { join } from "node:path";
@@ -27692,6 +27693,43 @@ function ensureHiveDirectory(projectPath) {
27692
27693
  }
27693
27694
  }
27694
27695
  var adapterCache = new Map;
27696
+ var exitHookRegistered = false;
27697
+ var exitHookRunning = false;
27698
+ function registerExitHook() {
27699
+ if (exitHookRegistered) {
27700
+ return;
27701
+ }
27702
+ exitHookRegistered = true;
27703
+ process.on("beforeExit", async (code) => {
27704
+ if (exitHookRunning) {
27705
+ return;
27706
+ }
27707
+ exitHookRunning = true;
27708
+ try {
27709
+ const flushPromises = [];
27710
+ for (const [projectKey, adapter] of adapterCache.entries()) {
27711
+ const flushPromise = (async () => {
27712
+ try {
27713
+ ensureHiveDirectory(projectKey);
27714
+ const flushManager = new FlushManager({
27715
+ adapter,
27716
+ projectKey,
27717
+ outputPath: `${projectKey}/.hive/issues.jsonl`
27718
+ });
27719
+ await flushManager.flush();
27720
+ } catch (error45) {
27721
+ console.warn(`[hive exit hook] Failed to flush ${projectKey}:`, error45 instanceof Error ? error45.message : String(error45));
27722
+ }
27723
+ })();
27724
+ flushPromises.push(flushPromise);
27725
+ }
27726
+ await Promise.all(flushPromises);
27727
+ } finally {
27728
+ exitHookRunning = false;
27729
+ }
27730
+ });
27731
+ }
27732
+ registerExitHook();
27695
27733
  async function getHiveAdapter(projectKey) {
27696
27734
  if (adapterCache.has(projectKey)) {
27697
27735
  return adapterCache.get(projectKey);
@@ -27845,6 +27883,17 @@ var hive_create_epic = tool({
27845
27883
  console.warn("[hive_create_epic] Failed to emit DecompositionGeneratedEvent:", error45);
27846
27884
  }
27847
27885
  }
27886
+ try {
27887
+ ensureHiveDirectory(projectKey);
27888
+ const flushManager = new FlushManager({
27889
+ adapter,
27890
+ projectKey,
27891
+ outputPath: `${projectKey}/.hive/issues.jsonl`
27892
+ });
27893
+ await flushManager.flush();
27894
+ } catch (error45) {
27895
+ console.warn("[hive_create_epic] Failed to sync to JSONL:", error45);
27896
+ }
27848
27897
  return JSON.stringify(result, null, 2);
27849
27898
  } catch (error45) {
27850
27899
  const rollbackErrors = [];
@@ -27909,7 +27958,7 @@ var hive_query = tool({
27909
27958
  var hive_update = tool({
27910
27959
  description: "Update cell status/description",
27911
27960
  args: {
27912
- id: tool.schema.string().describe("Cell ID"),
27961
+ id: tool.schema.string().describe("Cell ID or partial hash"),
27913
27962
  status: tool.schema.enum(["open", "in_progress", "blocked", "closed"]).optional().describe("New status"),
27914
27963
  description: tool.schema.string().optional().describe("New description"),
27915
27964
  priority: tool.schema.number().min(0).max(3).optional().describe("New priority")
@@ -27919,27 +27968,34 @@ var hive_update = tool({
27919
27968
  const projectKey = getHiveWorkingDirectory();
27920
27969
  const adapter = await getHiveAdapter(projectKey);
27921
27970
  try {
27971
+ const cellId = await resolvePartialId(adapter, projectKey, validated.id) || validated.id;
27922
27972
  let cell;
27923
27973
  if (validated.status) {
27924
- cell = await adapter.changeCellStatus(projectKey, validated.id, validated.status);
27974
+ cell = await adapter.changeCellStatus(projectKey, cellId, validated.status);
27925
27975
  }
27926
27976
  if (validated.description !== undefined || validated.priority !== undefined) {
27927
- cell = await adapter.updateCell(projectKey, validated.id, {
27977
+ cell = await adapter.updateCell(projectKey, cellId, {
27928
27978
  description: validated.description,
27929
27979
  priority: validated.priority
27930
27980
  });
27931
27981
  } else if (!validated.status) {
27932
- const existingCell = await adapter.getCell(projectKey, validated.id);
27982
+ const existingCell = await adapter.getCell(projectKey, cellId);
27933
27983
  if (!existingCell) {
27934
27984
  throw new HiveError(`Cell not found: ${validated.id}`, "hive_update");
27935
27985
  }
27936
27986
  cell = existingCell;
27937
27987
  }
27938
- await adapter.markDirty(projectKey, validated.id);
27988
+ await adapter.markDirty(projectKey, cellId);
27939
27989
  const formatted = formatCellForOutput(cell);
27940
27990
  return JSON.stringify(formatted, null, 2);
27941
27991
  } catch (error45) {
27942
27992
  const message = error45 instanceof Error ? error45.message : String(error45);
27993
+ if (message.includes("Ambiguous hash")) {
27994
+ throw new HiveError(`Ambiguous ID '${validated.id}': multiple cells match. Please provide more characters.`, "hive_update");
27995
+ }
27996
+ if (message.includes("Bead not found") || message.includes("Cell not found")) {
27997
+ throw new HiveError(`No cell found matching ID '${validated.id}'`, "hive_update");
27998
+ }
27943
27999
  throw new HiveError(`Failed to update cell: ${message}`, "hive_update");
27944
28000
  }
27945
28001
  }
@@ -27947,7 +28003,7 @@ var hive_update = tool({
27947
28003
  var hive_close = tool({
27948
28004
  description: "Close a cell with reason",
27949
28005
  args: {
27950
- id: tool.schema.string().describe("Cell ID"),
28006
+ id: tool.schema.string().describe("Cell ID or partial hash"),
27951
28007
  reason: tool.schema.string().describe("Completion reason")
27952
28008
  },
27953
28009
  async execute(args, ctx) {
@@ -27955,11 +28011,18 @@ var hive_close = tool({
27955
28011
  const projectKey = getHiveWorkingDirectory();
27956
28012
  const adapter = await getHiveAdapter(projectKey);
27957
28013
  try {
27958
- const cell = await adapter.closeCell(projectKey, validated.id, validated.reason);
27959
- await adapter.markDirty(projectKey, validated.id);
28014
+ const cellId = await resolvePartialId(adapter, projectKey, validated.id) || validated.id;
28015
+ const cell = await adapter.closeCell(projectKey, cellId, validated.reason);
28016
+ await adapter.markDirty(projectKey, cellId);
27960
28017
  return `Closed ${cell.id}: ${validated.reason}`;
27961
28018
  } catch (error45) {
27962
28019
  const message = error45 instanceof Error ? error45.message : String(error45);
28020
+ if (message.includes("Ambiguous hash")) {
28021
+ throw new HiveError(`Ambiguous ID '${validated.id}': multiple cells match. Please provide more characters.`, "hive_close");
28022
+ }
28023
+ if (message.includes("Bead not found") || message.includes("Cell not found")) {
28024
+ throw new HiveError(`No cell found matching ID '${validated.id}'`, "hive_close");
28025
+ }
27963
28026
  throw new HiveError(`Failed to close cell: ${message}`, "hive_close");
27964
28027
  }
27965
28028
  }
@@ -27967,17 +28030,24 @@ var hive_close = tool({
27967
28030
  var hive_start = tool({
27968
28031
  description: "Mark a cell as in-progress (shortcut for update --status in_progress)",
27969
28032
  args: {
27970
- id: tool.schema.string().describe("Cell ID")
28033
+ id: tool.schema.string().describe("Cell ID or partial hash")
27971
28034
  },
27972
28035
  async execute(args, ctx) {
27973
28036
  const projectKey = getHiveWorkingDirectory();
27974
28037
  const adapter = await getHiveAdapter(projectKey);
27975
28038
  try {
27976
- const cell = await adapter.changeCellStatus(projectKey, args.id, "in_progress");
27977
- await adapter.markDirty(projectKey, args.id);
28039
+ const cellId = await resolvePartialId(adapter, projectKey, args.id) || args.id;
28040
+ const cell = await adapter.changeCellStatus(projectKey, cellId, "in_progress");
28041
+ await adapter.markDirty(projectKey, cellId);
27978
28042
  return `Started: ${cell.id}`;
27979
28043
  } catch (error45) {
27980
28044
  const message = error45 instanceof Error ? error45.message : String(error45);
28045
+ if (message.includes("Ambiguous hash")) {
28046
+ throw new HiveError(`Ambiguous ID '${args.id}': multiple cells match. Please provide more characters.`, "hive_start");
28047
+ }
28048
+ if (message.includes("Bead not found") || message.includes("Cell not found")) {
28049
+ throw new HiveError(`No cell found matching ID '${args.id}'`, "hive_start");
28050
+ }
27981
28051
  throw new HiveError(`Failed to start cell: ${message}`, "hive_start");
27982
28052
  }
27983
28053
  }
@@ -30303,7 +30373,7 @@ Agents MUST update their bead status as they work. No silent progress.
30303
30373
 
30304
30374
  ## Requirements
30305
30375
 
30306
- 1. **Break into 2-{max_subtasks} independent subtasks** that can run in parallel
30376
+ 1. **Break into independent subtasks** that can run in parallel (as many as needed)
30307
30377
  2. **Assign files** - each subtask must specify which files it will modify
30308
30378
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
30309
30379
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -30376,7 +30446,7 @@ Agents MUST update their bead status as they work. No silent progress.
30376
30446
 
30377
30447
  ## Requirements
30378
30448
 
30379
- 1. **Break into 2-{max_subtasks} independent subtasks** that can run in parallel
30449
+ 1. **Break into independent subtasks** that can run in parallel (as many as needed)
30380
30450
  2. **Assign files** - each subtask must specify which files it will modify
30381
30451
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
30382
30452
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -30542,10 +30612,10 @@ var swarm_decompose = tool({
30542
30612
  description: "Generate decomposition prompt for breaking task into parallelizable subtasks. Optionally queries CASS for similar past tasks.",
30543
30613
  args: {
30544
30614
  task: tool.schema.string().min(1).describe("Task description to decompose"),
30545
- max_subtasks: tool.schema.number().int().min(2).max(10).default(5).describe("Maximum number of subtasks (default: 5)"),
30615
+ max_subtasks: tool.schema.number().int().min(1).optional().describe("Suggested max subtasks (optional - LLM decides if not specified)"),
30546
30616
  context: tool.schema.string().optional().describe("Additional context (codebase info, constraints, etc.)"),
30547
30617
  query_cass: tool.schema.boolean().optional().describe("Query CASS for similar past tasks (default: true)"),
30548
- cass_limit: tool.schema.number().int().min(1).max(10).optional().describe("Max CASS results to include (default: 3)")
30618
+ cass_limit: tool.schema.number().int().min(1).optional().describe("Max CASS results to include (default: 3)")
30549
30619
  },
30550
30620
  async execute(args) {
30551
30621
  const { formatMemoryQueryForDecomposition: formatMemoryQueryForDecomposition2 } = await Promise.resolve().then(() => (init_learning(), exports_learning));
@@ -30673,7 +30743,7 @@ var swarm_delegate_planning = tool({
30673
30743
  args: {
30674
30744
  task: tool.schema.string().min(1).describe("The task to decompose"),
30675
30745
  context: tool.schema.string().optional().describe("Additional context to include"),
30676
- max_subtasks: tool.schema.number().int().min(2).max(10).optional().default(5).describe("Maximum number of subtasks (default: 5)"),
30746
+ max_subtasks: tool.schema.number().int().min(1).optional().describe("Suggested max subtasks (optional - LLM decides if not specified)"),
30677
30747
  strategy: tool.schema.enum(["auto", "file-based", "feature-based", "risk-based"]).optional().default("auto").describe("Decomposition strategy (default: auto-detect)"),
30678
30748
  query_cass: tool.schema.boolean().optional().default(true).describe("Query CASS for similar past tasks (default: true)")
30679
30749
  },
@@ -33955,6 +34025,21 @@ This will be recorded as a negative learning signal.`;
33955
34025
  }
33956
34026
  }, null, 2);
33957
34027
  }
34028
+ let syncSuccess = false;
34029
+ let syncError;
34030
+ try {
34031
+ const previousWorkingDir = getHiveWorkingDirectory();
34032
+ setHiveWorkingDirectory(args.project_key);
34033
+ try {
34034
+ const syncResult = await hive_sync.execute({ auto_pull: false }, _ctx);
34035
+ syncSuccess = !syncResult.includes("error");
34036
+ } finally {
34037
+ setHiveWorkingDirectory(previousWorkingDir);
34038
+ }
34039
+ } catch (error45) {
34040
+ syncError = error45 instanceof Error ? error45.message : String(error45);
34041
+ console.warn(`[swarm_complete] Auto-sync failed (non-fatal): ${syncError}`);
34042
+ }
33958
34043
  try {
33959
34044
  const epicId3 = args.bead_id.includes(".") ? args.bead_id.split(".")[0] : args.bead_id;
33960
34045
  const durationMs2 = args.start_time ? Date.now() - args.start_time : 0;
@@ -34040,6 +34125,8 @@ This will be recorded as a negative learning signal.`;
34040
34125
  bead_id: args.bead_id,
34041
34126
  closed: true,
34042
34127
  reservations_released: true,
34128
+ synced: syncSuccess,
34129
+ sync_error: syncError,
34043
34130
  message_sent: messageSent,
34044
34131
  message_error: messageError,
34045
34132
  agent_registration: {
@@ -34716,7 +34803,7 @@ Agents MUST update their cell status as they work. No silent progress.
34716
34803
 
34717
34804
  ## Requirements
34718
34805
 
34719
- 1. **Break into 2-{max_subtasks} independent subtasks** that can run in parallel
34806
+ 1. **Break into independent subtasks** that can run in parallel (as many as needed)
34720
34807
  2. **Assign files** - each subtask must specify which files it will modify
34721
34808
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
34722
34809
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -35344,10 +35431,10 @@ var swarm_plan_prompt = tool({
35344
35431
  args: {
35345
35432
  task: tool.schema.string().min(1).describe("Task description to decompose"),
35346
35433
  strategy: tool.schema.enum(["file-based", "feature-based", "risk-based", "auto"]).optional().describe("Decomposition strategy (default: auto-detect)"),
35347
- max_subtasks: tool.schema.number().int().min(2).max(10).default(5).describe("Maximum number of subtasks (default: 5)"),
35434
+ max_subtasks: tool.schema.number().int().min(1).optional().describe("Suggested max subtasks (optional - LLM decides if not specified)"),
35348
35435
  context: tool.schema.string().optional().describe("Additional context (codebase info, constraints, etc.)"),
35349
35436
  query_cass: tool.schema.boolean().optional().describe("Query CASS for similar past tasks (default: true)"),
35350
- cass_limit: tool.schema.number().int().min(1).max(10).optional().describe("Max CASS results to include (default: 3)"),
35437
+ cass_limit: tool.schema.number().int().min(1).optional().describe("Max CASS results to include (default: 3)"),
35351
35438
  include_skills: tool.schema.boolean().optional().describe("Include available skills in context (default: true)")
35352
35439
  },
35353
35440
  async execute(args) {
@@ -58,14 +58,14 @@ export declare const swarm_decompose: {
58
58
  description: string;
59
59
  args: {
60
60
  task: z.ZodString;
61
- max_subtasks: z.ZodDefault<z.ZodNumber>;
61
+ max_subtasks: z.ZodOptional<z.ZodNumber>;
62
62
  context: z.ZodOptional<z.ZodString>;
63
63
  query_cass: z.ZodOptional<z.ZodBoolean>;
64
64
  cass_limit: z.ZodOptional<z.ZodNumber>;
65
65
  };
66
66
  execute(args: {
67
67
  task: string;
68
- max_subtasks: number;
68
+ max_subtasks?: number | undefined;
69
69
  context?: string | undefined;
70
70
  query_cass?: boolean | undefined;
71
71
  cass_limit?: number | undefined;
@@ -122,7 +122,7 @@ export declare const swarm_delegate_planning: {
122
122
  args: {
123
123
  task: z.ZodString;
124
124
  context: z.ZodOptional<z.ZodString>;
125
- max_subtasks: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
125
+ max_subtasks: z.ZodOptional<z.ZodNumber>;
126
126
  strategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
127
127
  "file-based": "file-based";
128
128
  "feature-based": "feature-based";
@@ -133,10 +133,10 @@ export declare const swarm_delegate_planning: {
133
133
  };
134
134
  execute(args: {
135
135
  task: string;
136
- max_subtasks: number;
137
136
  strategy: "file-based" | "feature-based" | "risk-based" | "auto";
138
137
  query_cass: boolean;
139
138
  context?: string | undefined;
139
+ max_subtasks?: number | undefined;
140
140
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
141
141
  };
142
142
  export declare class SwarmError extends Error {
@@ -200,14 +200,14 @@ export declare const decomposeTools: {
200
200
  description: string;
201
201
  args: {
202
202
  task: z.ZodString;
203
- max_subtasks: z.ZodDefault<z.ZodNumber>;
203
+ max_subtasks: z.ZodOptional<z.ZodNumber>;
204
204
  context: z.ZodOptional<z.ZodString>;
205
205
  query_cass: z.ZodOptional<z.ZodBoolean>;
206
206
  cass_limit: z.ZodOptional<z.ZodNumber>;
207
207
  };
208
208
  execute(args: {
209
209
  task: string;
210
- max_subtasks: number;
210
+ max_subtasks?: number | undefined;
211
211
  context?: string | undefined;
212
212
  query_cass?: boolean | undefined;
213
213
  cass_limit?: number | undefined;
@@ -227,7 +227,7 @@ export declare const decomposeTools: {
227
227
  args: {
228
228
  task: z.ZodString;
229
229
  context: z.ZodOptional<z.ZodString>;
230
- max_subtasks: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
230
+ max_subtasks: z.ZodOptional<z.ZodNumber>;
231
231
  strategy: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
232
232
  "file-based": "file-based";
233
233
  "feature-based": "feature-based";
@@ -238,10 +238,10 @@ export declare const decomposeTools: {
238
238
  };
239
239
  execute(args: {
240
240
  task: string;
241
- max_subtasks: number;
242
241
  strategy: "file-based" | "feature-based" | "risk-based" | "auto";
243
242
  query_cass: boolean;
244
243
  context?: string | undefined;
244
+ max_subtasks?: number | undefined;
245
245
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
246
246
  };
247
247
  swarm_plan_interactive: {
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-decompose.d.ts","sourceRoot":"","sources":["../src/swarm-decompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwJxB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AA8CD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACvD,mBAAmB,EAAE,CAmDvB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACnC,MAAM,EAAE,CAgBV;AA+GD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CA0G1B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;CAkHvC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;CA6LlC,CAAC;AAMH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,SAAS,EAAE,MAAM;aACjB,OAAO,CAAC,EAAE,OAAO;gBAFjC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,YAAA;CAKpC;AAED,qBAAa,kBAAmB,SAAQ,UAAU;aAG9B,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ;gBADrC,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,YAAA;CAIxC;AAkCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0RjC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1B,CAAC"}
1
+ {"version":3,"file":"swarm-decompose.d.ts","sourceRoot":"","sources":["../src/swarm-decompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwJxB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AA8CD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACvD,mBAAmB,EAAE,CAmDvB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACnC,MAAM,EAAE,CAgBV;AA+GD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAwG1B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;CAkHvC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;CA2LlC,CAAC;AAMH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,SAAS,EAAE,MAAM;aACjB,OAAO,CAAC,EAAE,OAAO;gBAFjC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,YAAA;CAKpC;AAED,qBAAa,kBAAmB,SAAQ,UAAU;aAG9B,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ;gBADrC,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,YAAA;CAIxC;AAkCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0RjC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAmDlC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,aAAa,CA4BhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,MAAM,EAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC1C;AA8hBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CA8JrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAoFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAkHzB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CA6E1B,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8qBzB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJ/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;CA6CjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;CAmClC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;CAmB9B,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAoJ9B,CAAC;AA4BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqG3B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAsGxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMtB,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc5B,CAAC"}
1
+ {"version":3,"file":"swarm-orchestrate.d.ts","sourceRoot":"","sources":["../src/swarm-orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,0BAA0B,CAAC;AAmDlC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,aAAa,CA4BhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,MAAM,EAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC1C;AA8hBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CA8JrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAoFvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAkHzB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;CA6E1B,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwsBzB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkJ/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;CA6CjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;CAmClC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;CAmB9B,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;CAoJ9B,CAAC;AA4BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqG3B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAsGxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMtB,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc5B,CAAC"}
@@ -17,11 +17,11 @@
17
17
  * Used by swarm_decompose to instruct the agent on how to break down work.
18
18
  * The agent responds with a CellTree that gets validated.
19
19
  */
20
- export declare const DECOMPOSITION_PROMPT = "You are decomposing a task into parallelizable subtasks for a swarm of agents.\n\n## Task\n{task}\n\n{context_section}\n\n## MANDATORY: Hive Issue Tracking\n\n**Every subtask MUST become a cell.** This is non-negotiable.\n\nAfter decomposition, the coordinator will:\n1. Create an epic cell for the overall task\n2. Create child cells for each subtask\n3. Track progress through cell status updates\n4. Close cells with summaries when complete\n\nAgents MUST update their cell status as they work. No silent progress.\n\n## Requirements\n\n1. **Break into 2-{max_subtasks} independent subtasks** that can run in parallel\n2. **Assign files** - each subtask must specify which files it will modify\n3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)\n4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array\n5. **Estimate complexity** - 1 (trivial) to 5 (complex)\n6. **Plan aggressively** - break down more than you think necessary, smaller is better\n\n## Response Format\n\nRespond with a JSON object matching this schema:\n\n```typescript\n{\n epic: {\n title: string, // Epic title for the hive tracker\n description?: string // Brief description of the overall goal\n },\n subtasks: [\n {\n title: string, // What this subtask accomplishes\n description?: string, // Detailed instructions for the agent\n files: string[], // Files this subtask will modify (globs allowed)\n dependencies: number[], // Indices of subtasks this depends on (0-indexed)\n estimated_complexity: 1-5 // Effort estimate\n },\n // ... more subtasks\n ]\n}\n```\n\n## Guidelines\n\n- **Plan aggressively** - when in doubt, split further. 3 small tasks > 1 medium task\n- **Prefer smaller, focused subtasks** over large complex ones\n- **Include test files** in the same subtask as the code they test\n- **Consider shared types** - if multiple files share types, handle that first\n- **Think about imports** - changes to exported APIs affect downstream files\n- **Explicit > implicit** - spell out what each subtask should do, don't assume\n\n## File Assignment Examples\n\n- Schema change: `[\"src/schemas/user.ts\", \"src/schemas/index.ts\"]`\n- Component + test: `[\"src/components/Button.tsx\", \"src/components/Button.test.tsx\"]`\n- API route: `[\"src/app/api/users/route.ts\"]`\n\nNow decompose the task:";
20
+ export declare const DECOMPOSITION_PROMPT = "You are decomposing a task into parallelizable subtasks for a swarm of agents.\n\n## Task\n{task}\n\n{context_section}\n\n## MANDATORY: Hive Issue Tracking\n\n**Every subtask MUST become a cell.** This is non-negotiable.\n\nAfter decomposition, the coordinator will:\n1. Create an epic cell for the overall task\n2. Create child cells for each subtask\n3. Track progress through cell status updates\n4. Close cells with summaries when complete\n\nAgents MUST update their cell status as they work. No silent progress.\n\n## Requirements\n\n1. **Break into independent subtasks** that can run in parallel (as many as needed)\n2. **Assign files** - each subtask must specify which files it will modify\n3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)\n4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array\n5. **Estimate complexity** - 1 (trivial) to 5 (complex)\n6. **Plan aggressively** - break down more than you think necessary, smaller is better\n\n## Response Format\n\nRespond with a JSON object matching this schema:\n\n```typescript\n{\n epic: {\n title: string, // Epic title for the hive tracker\n description?: string // Brief description of the overall goal\n },\n subtasks: [\n {\n title: string, // What this subtask accomplishes\n description?: string, // Detailed instructions for the agent\n files: string[], // Files this subtask will modify (globs allowed)\n dependencies: number[], // Indices of subtasks this depends on (0-indexed)\n estimated_complexity: 1-5 // Effort estimate\n },\n // ... more subtasks\n ]\n}\n```\n\n## Guidelines\n\n- **Plan aggressively** - when in doubt, split further. 3 small tasks > 1 medium task\n- **Prefer smaller, focused subtasks** over large complex ones\n- **Include test files** in the same subtask as the code they test\n- **Consider shared types** - if multiple files share types, handle that first\n- **Think about imports** - changes to exported APIs affect downstream files\n- **Explicit > implicit** - spell out what each subtask should do, don't assume\n\n## File Assignment Examples\n\n- Schema change: `[\"src/schemas/user.ts\", \"src/schemas/index.ts\"]`\n- Component + test: `[\"src/components/Button.tsx\", \"src/components/Button.test.tsx\"]`\n- API route: `[\"src/app/api/users/route.ts\"]`\n\nNow decompose the task:";
21
21
  /**
22
22
  * Strategy-specific decomposition prompt template
23
23
  */
24
- export declare const STRATEGY_DECOMPOSITION_PROMPT = "You are decomposing a task into parallelizable subtasks for a swarm of agents.\n\n## Task\n{task}\n\n{strategy_guidelines}\n\n{context_section}\n\n{cass_history}\n\n{skills_context}\n\n## MANDATORY: Hive Issue Tracking\n\n**Every subtask MUST become a cell.** This is non-negotiable.\n\nAfter decomposition, the coordinator will:\n1. Create an epic cell for the overall task\n2. Create child cells for each subtask\n3. Track progress through cell status updates\n4. Close cells with summaries when complete\n\nAgents MUST update their cell status as they work. No silent progress.\n\n## Requirements\n\n1. **Break into 2-{max_subtasks} independent subtasks** that can run in parallel\n2. **Assign files** - each subtask must specify which files it will modify\n3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)\n4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array\n5. **Estimate complexity** - 1 (trivial) to 5 (complex)\n6. **Plan aggressively** - break down more than you think necessary, smaller is better\n\n## Response Format\n\nRespond with a JSON object matching this schema:\n\n```typescript\n{\n epic: {\n title: string, // Epic title for the hive tracker\n description?: string // Brief description of the overall goal\n },\n subtasks: [\n {\n title: string, // What this subtask accomplishes\n description?: string, // Detailed instructions for the agent\n files: string[], // Files this subtask will modify (globs allowed)\n dependencies: number[], // Indices of subtasks this depends on (0-indexed)\n estimated_complexity: 1-5 // Effort estimate\n },\n // ... more subtasks\n ]\n}\n```\n\nNow decompose the task:";
24
+ export declare const STRATEGY_DECOMPOSITION_PROMPT = "You are decomposing a task into parallelizable subtasks for a swarm of agents.\n\n## Task\n{task}\n\n{strategy_guidelines}\n\n{context_section}\n\n{cass_history}\n\n{skills_context}\n\n## MANDATORY: Hive Issue Tracking\n\n**Every subtask MUST become a cell.** This is non-negotiable.\n\nAfter decomposition, the coordinator will:\n1. Create an epic cell for the overall task\n2. Create child cells for each subtask\n3. Track progress through cell status updates\n4. Close cells with summaries when complete\n\nAgents MUST update their cell status as they work. No silent progress.\n\n## Requirements\n\n1. **Break into independent subtasks** that can run in parallel (as many as needed)\n2. **Assign files** - each subtask must specify which files it will modify\n3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)\n4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array\n5. **Estimate complexity** - 1 (trivial) to 5 (complex)\n6. **Plan aggressively** - break down more than you think necessary, smaller is better\n\n## Response Format\n\nRespond with a JSON object matching this schema:\n\n```typescript\n{\n epic: {\n title: string, // Epic title for the hive tracker\n description?: string // Brief description of the overall goal\n },\n subtasks: [\n {\n title: string, // What this subtask accomplishes\n description?: string, // Detailed instructions for the agent\n files: string[], // Files this subtask will modify (globs allowed)\n dependencies: number[], // Indices of subtasks this depends on (0-indexed)\n estimated_complexity: 1-5 // Effort estimate\n },\n // ... more subtasks\n ]\n}\n```\n\nNow decompose the task:";
25
25
  /**
26
26
  * Prompt template for spawned subtask agents.
27
27
  *
@@ -180,7 +180,7 @@ export declare const swarm_plan_prompt: {
180
180
  "risk-based": "risk-based";
181
181
  auto: "auto";
182
182
  }>>;
183
- max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
183
+ max_subtasks: import("zod").ZodOptional<import("zod").ZodNumber>;
184
184
  context: import("zod").ZodOptional<import("zod").ZodString>;
185
185
  query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
186
186
  cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -188,8 +188,8 @@ export declare const swarm_plan_prompt: {
188
188
  };
189
189
  execute(args: {
190
190
  task: string;
191
- max_subtasks: number;
192
191
  strategy?: "file-based" | "feature-based" | "risk-based" | "auto" | undefined;
192
+ max_subtasks?: number | undefined;
193
193
  context?: string | undefined;
194
194
  query_cass?: boolean | undefined;
195
195
  cass_limit?: number | undefined;
@@ -276,7 +276,7 @@ export declare const promptTools: {
276
276
  "risk-based": "risk-based";
277
277
  auto: "auto";
278
278
  }>>;
279
- max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
279
+ max_subtasks: import("zod").ZodOptional<import("zod").ZodNumber>;
280
280
  context: import("zod").ZodOptional<import("zod").ZodString>;
281
281
  query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
282
282
  cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -284,8 +284,8 @@ export declare const promptTools: {
284
284
  };
285
285
  execute(args: {
286
286
  task: string;
287
- max_subtasks: number;
288
287
  strategy?: "file-based" | "feature-based" | "risk-based" | "auto" | undefined;
288
+ max_subtasks?: number | undefined;
289
289
  context?: string | undefined;
290
290
  query_cass?: boolean | undefined;
291
291
  cass_limit?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-prompts.d.ts","sourceRoot":"","sources":["../src/swarm-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,m6EAkET,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,6BAA6B,gxDAyDlB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,mkFAgFK,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,mzSA0SnB,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8jCAmCU,CAAC;AAMzC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH,GAAG,MAAM,CA2ET;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAUT;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CAMT;AAMD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;CAoC/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAoClC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CA0I5B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvB,CAAC"}
1
+ {"version":3,"file":"swarm-prompts.d.ts","sourceRoot":"","sources":["../src/swarm-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,s6EAkET,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,6BAA6B,mxDAyDlB,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,mkFAgFK,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,mzSA0SnB,CAAC;AAEZ;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8jCAmCU,CAAC;AAMzC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH,GAAG,MAAM,CA2ET;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAUT;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,MAAM,CAMT;AAMD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;CAoC/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAoClC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAwI5B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvB,CAAC"}
package/dist/swarm.d.ts CHANGED
@@ -385,7 +385,7 @@ export declare const swarmTools: {
385
385
  "risk-based": "risk-based";
386
386
  auto: "auto";
387
387
  }>>;
388
- max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
388
+ max_subtasks: import("zod").ZodOptional<import("zod").ZodNumber>;
389
389
  context: import("zod").ZodOptional<import("zod").ZodString>;
390
390
  query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
391
391
  cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -393,8 +393,8 @@ export declare const swarmTools: {
393
393
  };
394
394
  execute(args: {
395
395
  task: string;
396
- max_subtasks: number;
397
396
  strategy?: "file-based" | "feature-based" | "risk-based" | "auto" | undefined;
397
+ max_subtasks?: number | undefined;
398
398
  context?: string | undefined;
399
399
  query_cass?: boolean | undefined;
400
400
  cass_limit?: number | undefined;
@@ -405,14 +405,14 @@ export declare const swarmTools: {
405
405
  description: string;
406
406
  args: {
407
407
  task: import("zod").ZodString;
408
- max_subtasks: import("zod").ZodDefault<import("zod").ZodNumber>;
408
+ max_subtasks: import("zod").ZodOptional<import("zod").ZodNumber>;
409
409
  context: import("zod").ZodOptional<import("zod").ZodString>;
410
410
  query_cass: import("zod").ZodOptional<import("zod").ZodBoolean>;
411
411
  cass_limit: import("zod").ZodOptional<import("zod").ZodNumber>;
412
412
  };
413
413
  execute(args: {
414
414
  task: string;
415
- max_subtasks: number;
415
+ max_subtasks?: number | undefined;
416
416
  context?: string | undefined;
417
417
  query_cass?: boolean | undefined;
418
418
  cass_limit?: number | undefined;
@@ -432,7 +432,7 @@ export declare const swarmTools: {
432
432
  args: {
433
433
  task: import("zod").ZodString;
434
434
  context: import("zod").ZodOptional<import("zod").ZodString>;
435
- max_subtasks: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
435
+ max_subtasks: import("zod").ZodOptional<import("zod").ZodNumber>;
436
436
  strategy: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<{
437
437
  "file-based": "file-based";
438
438
  "feature-based": "feature-based";
@@ -443,10 +443,10 @@ export declare const swarmTools: {
443
443
  };
444
444
  execute(args: {
445
445
  task: string;
446
- max_subtasks: number;
447
446
  strategy: "file-based" | "feature-based" | "risk-based" | "auto";
448
447
  query_cass: boolean;
449
448
  context?: string | undefined;
449
+ max_subtasks?: number | undefined;
450
450
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
451
451
  };
452
452
  swarm_plan_interactive: {
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm-plugin",
3
- "version": "0.30.7",
3
+ "version": "0.31.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",
@@ -39,7 +39,7 @@
39
39
  "gray-matter": "^4.0.3",
40
40
  "ioredis": "^5.4.1",
41
41
  "minimatch": "^10.1.1",
42
- "swarm-mail": "1.0.0",
42
+ "swarm-mail": "1.1.0",
43
43
  "zod": "4.1.8"
44
44
  },
45
45
  "devDependencies": {