opencode-swarm-plugin 0.30.7 → 0.31.1
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/.hive/memories.jsonl +10 -0
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +319 -319
- package/CHANGELOG.md +130 -0
- package/dist/hive.d.ts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +110 -23
- package/dist/plugin.js +110 -23
- package/dist/swarm-decompose.d.ts +8 -8
- package/dist/swarm-decompose.d.ts.map +1 -1
- package/dist/swarm-orchestrate.d.ts.map +1 -1
- package/dist/swarm-prompts.d.ts +6 -6
- package/dist/swarm-prompts.d.ts.map +1 -1
- package/dist/swarm.d.ts +6 -6
- package/opencode-swarm-plugin-0.30.7.tgz +0 -0
- package/opencode-swarm-plugin-0.31.0.tgz +0 -0
- package/package.json +2 -2
- package/src/hive.integration.test.ts +423 -3
- package/src/hive.ts +158 -14
- package/src/swarm-decompose.ts +7 -11
- package/src/swarm-orchestrate.ts +27 -1
- package/src/swarm-prompts.ts +5 -7
- package/src/swarm.integration.test.ts +70 -0
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);
|
|
@@ -27736,9 +27774,9 @@ function formatCellForOutput(adapterCell) {
|
|
|
27736
27774
|
status: adapterCell.status,
|
|
27737
27775
|
priority: adapterCell.priority,
|
|
27738
27776
|
issue_type: adapterCell.type,
|
|
27739
|
-
created_at: new Date(adapterCell.created_at).toISOString(),
|
|
27740
|
-
updated_at: new Date(adapterCell.updated_at).toISOString(),
|
|
27741
|
-
closed_at: adapterCell.closed_at ? new Date(adapterCell.closed_at).toISOString() : undefined,
|
|
27777
|
+
created_at: new Date(Number(adapterCell.created_at)).toISOString(),
|
|
27778
|
+
updated_at: new Date(Number(adapterCell.updated_at)).toISOString(),
|
|
27779
|
+
closed_at: adapterCell.closed_at ? new Date(Number(adapterCell.closed_at)).toISOString() : undefined,
|
|
27742
27780
|
parent_id: adapterCell.parent_id || undefined,
|
|
27743
27781
|
dependencies: [],
|
|
27744
27782
|
metadata: {}
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
27959
|
-
await adapter.
|
|
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
|
|
27977
|
-
await adapter.
|
|
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
|
|
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
|
|
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(
|
|
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).
|
|
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(
|
|
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
|
|
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(
|
|
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).
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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;;;;;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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"}
|
package/dist/swarm-prompts.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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").
|
|
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").
|
|
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,
|
|
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").
|
|
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").
|
|
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
|
|
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").
|
|
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
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-swarm-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.1",
|
|
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.
|
|
42
|
+
"swarm-mail": "1.1.1",
|
|
43
43
|
"zod": "4.1.8"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|