opencode-swarm-plugin 0.30.6 → 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
@@ -27051,13 +27051,41 @@ echo "Project directory: $1"
27051
27051
  };
27052
27052
  });
27053
27053
 
27054
+ // src/model-selection.ts
27055
+ var exports_model_selection = {};
27056
+ __export(exports_model_selection, {
27057
+ selectWorkerModel: () => selectWorkerModel
27058
+ });
27059
+ function selectWorkerModel(subtask, config2) {
27060
+ if (subtask.model) {
27061
+ return subtask.model;
27062
+ }
27063
+ const files = subtask.files || [];
27064
+ if (files.length > 0) {
27065
+ const allDocs = files.every((f) => {
27066
+ const lower = f.toLowerCase();
27067
+ return lower.endsWith(".md") || lower.endsWith(".mdx");
27068
+ });
27069
+ const allTests = files.every((f) => {
27070
+ const lower = f.toLowerCase();
27071
+ return lower.includes(".test.") || lower.includes(".spec.");
27072
+ });
27073
+ if (allDocs || allTests) {
27074
+ return config2.liteModel || config2.primaryModel || "anthropic/claude-haiku-4-5";
27075
+ }
27076
+ }
27077
+ return config2.primaryModel || "anthropic/claude-haiku-4-5";
27078
+ }
27079
+
27054
27080
  // src/hive.ts
27055
27081
  init_dist();
27056
27082
  import {
27057
27083
  createHiveAdapter,
27058
27084
  FlushManager,
27059
27085
  importFromJSONL,
27060
- getSwarmMail
27086
+ syncMemories,
27087
+ getSwarmMail,
27088
+ resolvePartialId
27061
27089
  } from "swarm-mail";
27062
27090
  import { existsSync, readFileSync } from "node:fs";
27063
27091
  import { join } from "node:path";
@@ -27238,7 +27266,8 @@ var DecomposedSubtaskSchema = exports_external.object({
27238
27266
  description: exports_external.string(),
27239
27267
  files: exports_external.array(exports_external.string()),
27240
27268
  estimated_effort: EffortLevelSchema,
27241
- risks: exports_external.array(exports_external.string()).optional().default([])
27269
+ risks: exports_external.array(exports_external.string()).optional().default([]),
27270
+ model: exports_external.string().optional()
27242
27271
  });
27243
27272
  var SubtaskDependencySchema = exports_external.object({
27244
27273
  from: exports_external.number().int().min(0),
@@ -27664,6 +27693,43 @@ function ensureHiveDirectory(projectPath) {
27664
27693
  }
27665
27694
  }
27666
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();
27667
27733
  async function getHiveAdapter(projectKey) {
27668
27734
  if (adapterCache.has(projectKey)) {
27669
27735
  return adapterCache.get(projectKey);
@@ -27817,6 +27883,17 @@ var hive_create_epic = tool({
27817
27883
  console.warn("[hive_create_epic] Failed to emit DecompositionGeneratedEvent:", error45);
27818
27884
  }
27819
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
+ }
27820
27897
  return JSON.stringify(result, null, 2);
27821
27898
  } catch (error45) {
27822
27899
  const rollbackErrors = [];
@@ -27881,7 +27958,7 @@ var hive_query = tool({
27881
27958
  var hive_update = tool({
27882
27959
  description: "Update cell status/description",
27883
27960
  args: {
27884
- id: tool.schema.string().describe("Cell ID"),
27961
+ id: tool.schema.string().describe("Cell ID or partial hash"),
27885
27962
  status: tool.schema.enum(["open", "in_progress", "blocked", "closed"]).optional().describe("New status"),
27886
27963
  description: tool.schema.string().optional().describe("New description"),
27887
27964
  priority: tool.schema.number().min(0).max(3).optional().describe("New priority")
@@ -27891,27 +27968,34 @@ var hive_update = tool({
27891
27968
  const projectKey = getHiveWorkingDirectory();
27892
27969
  const adapter = await getHiveAdapter(projectKey);
27893
27970
  try {
27971
+ const cellId = await resolvePartialId(adapter, projectKey, validated.id) || validated.id;
27894
27972
  let cell;
27895
27973
  if (validated.status) {
27896
- cell = await adapter.changeCellStatus(projectKey, validated.id, validated.status);
27974
+ cell = await adapter.changeCellStatus(projectKey, cellId, validated.status);
27897
27975
  }
27898
27976
  if (validated.description !== undefined || validated.priority !== undefined) {
27899
- cell = await adapter.updateCell(projectKey, validated.id, {
27977
+ cell = await adapter.updateCell(projectKey, cellId, {
27900
27978
  description: validated.description,
27901
27979
  priority: validated.priority
27902
27980
  });
27903
27981
  } else if (!validated.status) {
27904
- const existingCell = await adapter.getCell(projectKey, validated.id);
27982
+ const existingCell = await adapter.getCell(projectKey, cellId);
27905
27983
  if (!existingCell) {
27906
27984
  throw new HiveError(`Cell not found: ${validated.id}`, "hive_update");
27907
27985
  }
27908
27986
  cell = existingCell;
27909
27987
  }
27910
- await adapter.markDirty(projectKey, validated.id);
27988
+ await adapter.markDirty(projectKey, cellId);
27911
27989
  const formatted = formatCellForOutput(cell);
27912
27990
  return JSON.stringify(formatted, null, 2);
27913
27991
  } catch (error45) {
27914
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
+ }
27915
27999
  throw new HiveError(`Failed to update cell: ${message}`, "hive_update");
27916
28000
  }
27917
28001
  }
@@ -27919,7 +28003,7 @@ var hive_update = tool({
27919
28003
  var hive_close = tool({
27920
28004
  description: "Close a cell with reason",
27921
28005
  args: {
27922
- id: tool.schema.string().describe("Cell ID"),
28006
+ id: tool.schema.string().describe("Cell ID or partial hash"),
27923
28007
  reason: tool.schema.string().describe("Completion reason")
27924
28008
  },
27925
28009
  async execute(args, ctx) {
@@ -27927,11 +28011,18 @@ var hive_close = tool({
27927
28011
  const projectKey = getHiveWorkingDirectory();
27928
28012
  const adapter = await getHiveAdapter(projectKey);
27929
28013
  try {
27930
- const cell = await adapter.closeCell(projectKey, validated.id, validated.reason);
27931
- 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);
27932
28017
  return `Closed ${cell.id}: ${validated.reason}`;
27933
28018
  } catch (error45) {
27934
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
+ }
27935
28026
  throw new HiveError(`Failed to close cell: ${message}`, "hive_close");
27936
28027
  }
27937
28028
  }
@@ -27939,17 +28030,24 @@ var hive_close = tool({
27939
28030
  var hive_start = tool({
27940
28031
  description: "Mark a cell as in-progress (shortcut for update --status in_progress)",
27941
28032
  args: {
27942
- id: tool.schema.string().describe("Cell ID")
28033
+ id: tool.schema.string().describe("Cell ID or partial hash")
27943
28034
  },
27944
28035
  async execute(args, ctx) {
27945
28036
  const projectKey = getHiveWorkingDirectory();
27946
28037
  const adapter = await getHiveAdapter(projectKey);
27947
28038
  try {
27948
- const cell = await adapter.changeCellStatus(projectKey, args.id, "in_progress");
27949
- 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);
27950
28042
  return `Started: ${cell.id}`;
27951
28043
  } catch (error45) {
27952
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
+ }
27953
28051
  throw new HiveError(`Failed to start cell: ${message}`, "hive_start");
27954
28052
  }
27955
28053
  }
@@ -28003,8 +28101,18 @@ var hive_sync = tool({
28003
28101
  outputPath: `${projectKey}/.hive/issues.jsonl`
28004
28102
  });
28005
28103
  const flushResult = await withTimeout(flushManager.flush(), TIMEOUT_MS, "flush hive");
28006
- if (flushResult.cellsExported === 0) {
28007
- return "No cells to sync";
28104
+ const swarmMail = await getSwarmMail(projectKey);
28105
+ const db = await swarmMail.getDatabase();
28106
+ const hivePath = join(projectKey, ".hive");
28107
+ let memoriesSynced = 0;
28108
+ try {
28109
+ const memoryResult = await syncMemories(db, hivePath);
28110
+ memoriesSynced = memoryResult.exported;
28111
+ } catch (err) {
28112
+ console.warn("[hive_sync] Memory sync warning:", err);
28113
+ }
28114
+ if (flushResult.cellsExported === 0 && memoriesSynced === 0) {
28115
+ return "No cells or memories to sync";
28008
28116
  }
28009
28117
  const hiveStatusResult = await runGitCommand([
28010
28118
  "status",
@@ -30265,7 +30373,7 @@ Agents MUST update their bead status as they work. No silent progress.
30265
30373
 
30266
30374
  ## Requirements
30267
30375
 
30268
- 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)
30269
30377
  2. **Assign files** - each subtask must specify which files it will modify
30270
30378
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
30271
30379
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -30338,7 +30446,7 @@ Agents MUST update their bead status as they work. No silent progress.
30338
30446
 
30339
30447
  ## Requirements
30340
30448
 
30341
- 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)
30342
30450
  2. **Assign files** - each subtask must specify which files it will modify
30343
30451
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
30344
30452
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -30504,10 +30612,10 @@ var swarm_decompose = tool({
30504
30612
  description: "Generate decomposition prompt for breaking task into parallelizable subtasks. Optionally queries CASS for similar past tasks.",
30505
30613
  args: {
30506
30614
  task: tool.schema.string().min(1).describe("Task description to decompose"),
30507
- 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)"),
30508
30616
  context: tool.schema.string().optional().describe("Additional context (codebase info, constraints, etc.)"),
30509
30617
  query_cass: tool.schema.boolean().optional().describe("Query CASS for similar past tasks (default: true)"),
30510
- 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)")
30511
30619
  },
30512
30620
  async execute(args) {
30513
30621
  const { formatMemoryQueryForDecomposition: formatMemoryQueryForDecomposition2 } = await Promise.resolve().then(() => (init_learning(), exports_learning));
@@ -30635,7 +30743,7 @@ var swarm_delegate_planning = tool({
30635
30743
  args: {
30636
30744
  task: tool.schema.string().min(1).describe("The task to decompose"),
30637
30745
  context: tool.schema.string().optional().describe("Additional context to include"),
30638
- 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)"),
30639
30747
  strategy: tool.schema.enum(["auto", "file-based", "feature-based", "risk-based"]).optional().default("auto").describe("Decomposition strategy (default: auto-detect)"),
30640
30748
  query_cass: tool.schema.boolean().optional().default(true).describe("Query CASS for similar past tasks (default: true)")
30641
30749
  },
@@ -33917,6 +34025,21 @@ This will be recorded as a negative learning signal.`;
33917
34025
  }
33918
34026
  }, null, 2);
33919
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
+ }
33920
34043
  try {
33921
34044
  const epicId3 = args.bead_id.includes(".") ? args.bead_id.split(".")[0] : args.bead_id;
33922
34045
  const durationMs2 = args.start_time ? Date.now() - args.start_time : 0;
@@ -34002,6 +34125,8 @@ This will be recorded as a negative learning signal.`;
34002
34125
  bead_id: args.bead_id,
34003
34126
  closed: true,
34004
34127
  reservations_released: true,
34128
+ synced: syncSuccess,
34129
+ sync_error: syncError,
34005
34130
  message_sent: messageSent,
34006
34131
  message_error: messageError,
34007
34132
  agent_registration: {
@@ -34678,7 +34803,7 @@ Agents MUST update their cell status as they work. No silent progress.
34678
34803
 
34679
34804
  ## Requirements
34680
34805
 
34681
- 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)
34682
34807
  2. **Assign files** - each subtask must specify which files it will modify
34683
34808
  3. **No file overlap** - files cannot appear in multiple subtasks (they get exclusive locks)
34684
34809
  4. **Order by dependency** - if subtask B needs subtask A's output, A must come first in the array
@@ -34830,18 +34955,36 @@ swarmmail_init(project_path="{project_path}", task_description="{bead_id}: {subt
34830
34955
 
34831
34956
  **If you skip this step, your work will not be tracked and swarm_complete will fail.**
34832
34957
 
34833
- ### Step 2: Query Past Learnings (BEFORE starting work)
34958
+ ### Step 2: \uD83E\uDDE0 Query Past Learnings (MANDATORY - BEFORE starting work)
34959
+
34960
+ **⚠️ CRITICAL: ALWAYS query semantic memory BEFORE writing ANY code.**
34961
+
34834
34962
  \`\`\`
34835
- semantic-memory_find(query="<keywords from your task>", limit=5)
34963
+ semantic-memory_find(query="<keywords from your task>", limit=5, expand=true)
34836
34964
  \`\`\`
34837
34965
 
34838
- **Check if past agents solved similar problems.** Search for:
34839
- - Error messages if debugging
34840
- - Domain concepts (e.g., "authentication", "caching")
34841
- - Technology stack (e.g., "Next.js", "React")
34842
- - Patterns (e.g., "event sourcing", "validation")
34966
+ **Why this is MANDATORY:**
34967
+ - Past agents may have already solved your exact problem
34968
+ - Avoids repeating mistakes that wasted 30+ minutes before
34969
+ - Discovers project-specific patterns and gotchas
34970
+ - Finds known workarounds for tool/library quirks
34971
+
34972
+ **Search Query Examples by Task Type:**
34973
+
34974
+ - **Bug fix**: Use exact error message or "<symptom> <component>"
34975
+ - **New feature**: Search "<domain concept> implementation pattern"
34976
+ - **Refactor**: Query "<pattern name> migration approach"
34977
+ - **Integration**: Look for "<library name> gotchas configuration"
34978
+ - **Testing**: Find "testing <component type> characterization tests"
34979
+ - **Performance**: Search "<technology> performance optimization"
34843
34980
 
34844
- **Past learnings save time and prevent repeating mistakes.**
34981
+ **BEFORE you start coding:**
34982
+ 1. Run semantic-memory_find with keywords from your task
34983
+ 2. Read the results with expand=true for full content
34984
+ 3. Check if any memory solves your problem or warns of pitfalls
34985
+ 4. Adjust your approach based on past learnings
34986
+
34987
+ **If you skip this step, you WILL waste time solving already-solved problems.**
34845
34988
 
34846
34989
  ### Step 3: Load Relevant Skills (if available)
34847
34990
  \`\`\`
@@ -34927,21 +35070,44 @@ swarm_checkpoint(
34927
35070
 
34928
35071
  **Checkpoints preserve context so you can recover if things go wrong.**
34929
35072
 
34930
- ### Step 8: Store Learnings (if you discovered something)
35073
+ ### Step 8: \uD83D\uDCBE STORE YOUR LEARNINGS (if you discovered something)
35074
+
35075
+ **If you learned it the hard way, STORE IT so the next agent doesn't have to.**
35076
+
34931
35077
  \`\`\`
34932
35078
  semantic-memory_store(
34933
35079
  information="<what you learned, WHY it matters, how to apply it>",
34934
- metadata="<tags: domain, tech-stack, pattern-type>"
35080
+ tags="<domain, tech-stack, pattern-type>"
34935
35081
  )
34936
35082
  \`\`\`
34937
35083
 
34938
- **Store:**
34939
- - Tricky bugs you solved (root cause + solution)
34940
- - Project-specific patterns or domain rules
34941
- - Tool/library gotchas and workarounds
34942
- - Failed approaches (anti-patterns to avoid)
35084
+ **MANDATORY Storage Triggers - Store when you:**
35085
+ - \uD83D\uDC1B **Solved a tricky bug** (>15min debugging) - include root cause + solution
35086
+ - \uD83D\uDCA1 **Discovered a project-specific pattern** - domain rules, business logic quirks
35087
+ - ⚠️ **Found a tool/library gotcha** - API quirks, version-specific bugs, workarounds
35088
+ - \uD83D\uDEAB **Tried an approach that failed** - anti-patterns to avoid, why it didn't work
35089
+ - \uD83C\uDFD7️ **Made an architectural decision** - reasoning, alternatives considered, tradeoffs
34943
35090
 
34944
- **Don't store generic knowledge.** Store the WHY, not just the WHAT.
35091
+ **What Makes a GOOD Memory:**
35092
+
35093
+ ✅ **GOOD** (actionable, explains WHY):
35094
+ \`\`\`
35095
+ "OAuth refresh tokens need 5min buffer before expiry to avoid race conditions.
35096
+ Without buffer, token refresh can fail mid-request if expiry happens between
35097
+ check and use. Implemented with: if (expiresAt - Date.now() < 300000) refresh()"
35098
+ \`\`\`
35099
+
35100
+ ❌ **BAD** (generic, no context):
35101
+ \`\`\`
35102
+ "Fixed the auth bug by adding a null check"
35103
+ \`\`\`
35104
+
35105
+ **What NOT to Store:**
35106
+ - Generic knowledge that's in official documentation
35107
+ - Implementation details that change frequently
35108
+ - Vague descriptions without context ("fixed the thing")
35109
+
35110
+ **The WHY matters more than the WHAT.** Future agents need context to apply your learning.
34945
35111
 
34946
35112
  ### Step 9: Complete (REQUIRED - releases reservations)
34947
35113
  \`\`\`
@@ -35032,17 +35198,20 @@ Other cell operations:
35032
35198
 
35033
35199
  **NON-NEGOTIABLE:**
35034
35200
  1. Step 1 (swarmmail_init) MUST be first - do it before anything else
35035
- 2. Step 2 (semantic-memory_find) MUST happen before starting work
35201
+ 2. \uD83E\uDDE0 Step 2 (semantic-memory_find) MUST happen BEFORE starting work - query first, code second
35036
35202
  3. Step 4 (swarmmail_reserve) - YOU reserve files, not coordinator
35037
35203
  4. Step 6 (swarm_progress) - Report at milestones, don't work silently
35038
- 5. Step 9 (swarm_complete) - Use this to close, NOT hive_close
35204
+ 5. \uD83D\uDCBE Step 8 (semantic-memory_store) - If you learned something hard, STORE IT
35205
+ 6. Step 9 (swarm_complete) - Use this to close, NOT hive_close
35039
35206
 
35040
35207
  **If you skip these steps:**
35041
35208
  - Your work won't be tracked (swarm_complete will fail)
35042
- - You'll waste time repeating solved problems (no semantic memory query)
35209
+ - \uD83D\uDD04 You'll waste time repeating already-solved problems (no semantic memory query)
35043
35210
  - Edit conflicts with other agents (no file reservation)
35044
35211
  - Lost work if you crash (no checkpoints)
35045
- - Future agents repeat your mistakes (no learnings stored)
35212
+ - \uD83D\uDD04 Future agents repeat YOUR mistakes (no learnings stored)
35213
+
35214
+ **Memory is the swarm's collective intelligence. Query it. Feed it.**
35046
35215
 
35047
35216
  Begin now.`;
35048
35217
  var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
@@ -35175,7 +35344,7 @@ var swarm_subtask_prompt = tool({
35175
35344
  }
35176
35345
  });
35177
35346
  var swarm_spawn_subtask = tool({
35178
- description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/hive tracking instructions. IMPORTANT: Pass project_path for swarmmail_init.",
35347
+ description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/hive tracking instructions. IMPORTANT: Pass project_path for swarmmail_init. Automatically selects appropriate model based on file types.",
35179
35348
  args: {
35180
35349
  bead_id: tool.schema.string().describe("Subtask bead ID"),
35181
35350
  epic_id: tool.schema.string().describe("Parent epic bead ID"),
@@ -35188,7 +35357,8 @@ var swarm_spawn_subtask = tool({
35188
35357
  shared_context: tool.schema.string().optional(),
35189
35358
  skills_to_load: tool.schema.array(tool.schema.string()).optional(),
35190
35359
  coordinator_notes: tool.schema.string().optional()
35191
- }).optional().describe("Recovery context from checkpoint compaction")
35360
+ }).optional().describe("Recovery context from checkpoint compaction"),
35361
+ model: tool.schema.string().optional().describe("Optional explicit model override (auto-selected if not provided)")
35192
35362
  },
35193
35363
  async execute(args) {
35194
35364
  const prompt = formatSubtaskPromptV2({
@@ -35201,13 +35371,28 @@ var swarm_spawn_subtask = tool({
35201
35371
  project_path: args.project_path,
35202
35372
  recovery_context: args.recovery_context
35203
35373
  });
35374
+ const { selectWorkerModel: selectWorkerModel2 } = await Promise.resolve().then(() => exports_model_selection);
35375
+ const subtask = {
35376
+ title: args.subtask_title,
35377
+ description: args.subtask_description || "",
35378
+ files: args.files,
35379
+ estimated_effort: "medium",
35380
+ risks: [],
35381
+ model: args.model
35382
+ };
35383
+ const config2 = {
35384
+ primaryModel: "anthropic/claude-sonnet-4-5",
35385
+ liteModel: "anthropic/claude-haiku-4-5"
35386
+ };
35387
+ const selectedModel = selectWorkerModel2(subtask, config2);
35204
35388
  return JSON.stringify({
35205
35389
  prompt,
35206
35390
  bead_id: args.bead_id,
35207
35391
  epic_id: args.epic_id,
35208
35392
  files: args.files,
35209
35393
  project_path: args.project_path,
35210
- recovery_context: args.recovery_context
35394
+ recovery_context: args.recovery_context,
35395
+ recommended_model: selectedModel
35211
35396
  }, null, 2);
35212
35397
  }
35213
35398
  });
@@ -35246,10 +35431,10 @@ var swarm_plan_prompt = tool({
35246
35431
  args: {
35247
35432
  task: tool.schema.string().min(1).describe("Task description to decompose"),
35248
35433
  strategy: tool.schema.enum(["file-based", "feature-based", "risk-based", "auto"]).optional().describe("Decomposition strategy (default: auto-detect)"),
35249
- 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)"),
35250
35435
  context: tool.schema.string().optional().describe("Additional context (codebase info, constraints, etc.)"),
35251
35436
  query_cass: tool.schema.boolean().optional().describe("Query CASS for similar past tasks (default: true)"),
35252
- 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)"),
35253
35438
  include_skills: tool.schema.boolean().optional().describe("Include available skills in context (default: true)")
35254
35439
  },
35255
35440
  async execute(args) {
@@ -49863,12 +50048,18 @@ async function createMemoryAdapter(db) {
49863
50048
  if (tags.length > 0) {
49864
50049
  metadata.tags = tags;
49865
50050
  }
50051
+ const clampConfidence = (c) => {
50052
+ if (c === undefined)
50053
+ return 0.7;
50054
+ return Math.max(0, Math.min(1, c));
50055
+ };
49866
50056
  const memory = {
49867
50057
  id,
49868
50058
  content: args2.information,
49869
50059
  metadata,
49870
50060
  collection,
49871
- createdAt: new Date
50061
+ createdAt: new Date,
50062
+ confidence: clampConfidence(args2.confidence)
49872
50063
  };
49873
50064
  const program = exports_Effect.gen(function* () {
49874
50065
  const ollama = yield* Ollama;
@@ -49975,12 +50166,13 @@ async function getMemoryAdapter(projectPath) {
49975
50166
  return cachedAdapter;
49976
50167
  }
49977
50168
  var semantic_memory_store = tool({
49978
- description: "Store a memory with semantic embedding. Memories are searchable by semantic similarity and can be organized into collections.",
50169
+ description: "Store a memory with semantic embedding. Memories are searchable by semantic similarity and can be organized into collections. Confidence affects decay rate: high confidence (1.0) = 135 day half-life, low confidence (0.0) = 45 day half-life.",
49979
50170
  args: {
49980
50171
  information: tool.schema.string().describe("The information to store (required)"),
49981
50172
  collection: tool.schema.string().optional().describe("Collection name (defaults to 'default')"),
49982
50173
  tags: tool.schema.string().optional().describe("Comma-separated tags (e.g., 'auth,tokens,oauth')"),
49983
- metadata: tool.schema.string().optional().describe("JSON string with additional metadata")
50174
+ metadata: tool.schema.string().optional().describe("JSON string with additional metadata"),
50175
+ confidence: tool.schema.number().optional().describe("Confidence level (0.0-1.0) affecting decay rate. Higher = slower decay. Default 0.7")
49984
50176
  },
49985
50177
  async execute(args2, ctx) {
49986
50178
  const adapter = await getMemoryAdapter();
@@ -44,6 +44,7 @@ export declare const DecomposedSubtaskSchema: z.ZodObject<{
44
44
  large: "large";
45
45
  }>;
46
46
  risks: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
47
+ model: z.ZodOptional<z.ZodString>;
47
48
  }, z.core.$strip>;
48
49
  export type DecomposedSubtask = z.infer<typeof DecomposedSubtaskSchema>;
49
50
  /**
@@ -78,6 +79,7 @@ export declare const TaskDecompositionSchema: z.ZodObject<{
78
79
  large: "large";
79
80
  }>;
80
81
  risks: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
82
+ model: z.ZodOptional<z.ZodString>;
81
83
  }, z.core.$strip>>;
82
84
  dependencies: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
83
85
  from: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAOlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;iBAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAe7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAe7B,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;iBAS5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/schemas/task.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAYlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;iBAMlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAe7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAe7B,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;iBAS5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -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"}