agentic-flow 3.4.4 → 3.5.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.
Files changed (48) hide show
  1. package/.agents/skills/agentic-flow-ecosystem/SKILL.md +6 -1
  2. package/.claude/skills/agentic-flow-ecosystem/skill.md +7 -1
  3. package/CHANGELOG.md +19 -0
  4. package/README.md +36 -1
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/config/claudeFlow.d.ts +1 -1
  7. package/dist/core/attention-native.d.ts +45 -28
  8. package/dist/core/attention-native.d.ts.map +1 -1
  9. package/dist/core/attention-native.js +131 -84
  10. package/dist/core/attention-native.js.map +1 -1
  11. package/dist/integrations/index.d.ts +2 -0
  12. package/dist/integrations/index.d.ts.map +1 -1
  13. package/dist/integrations/index.js +1 -0
  14. package/dist/integrations/index.js.map +1 -1
  15. package/dist/integrations/task-schedule.d.ts +51 -0
  16. package/dist/integrations/task-schedule.d.ts.map +1 -0
  17. package/dist/integrations/task-schedule.js +222 -0
  18. package/dist/integrations/task-schedule.js.map +1 -0
  19. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  20. package/dist/mcp/claudeFlowSdkServer.js +2 -1
  21. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  22. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js +2 -1
  23. package/dist/mcp/fastmcp/servers/claude-flow-sdk.js.map +1 -1
  24. package/dist/mcp/fastmcp/servers/http-sse.d.ts.map +1 -1
  25. package/dist/mcp/fastmcp/servers/http-sse.js +2 -1
  26. package/dist/mcp/fastmcp/servers/http-sse.js.map +1 -1
  27. package/dist/mcp/fastmcp/servers/http-streaming-updated.js +2 -1
  28. package/dist/mcp/fastmcp/servers/http-streaming-updated.js.map +1 -1
  29. package/dist/mcp/fastmcp/servers/stdio-full.js +2 -1
  30. package/dist/mcp/fastmcp/servers/stdio-full.js.map +1 -1
  31. package/dist/mcp/mcp-policy.js +1 -1
  32. package/dist/mcp/mcp-policy.js.map +1 -1
  33. package/dist/mcp/standalone-stdio.js +2 -1
  34. package/dist/mcp/standalone-stdio.js.map +1 -1
  35. package/dist/mcp/tools/ecosystem-tools.d.ts +5 -1
  36. package/dist/mcp/tools/ecosystem-tools.d.ts.map +1 -1
  37. package/dist/mcp/tools/ecosystem-tools.js +30 -1
  38. package/dist/mcp/tools/ecosystem-tools.js.map +1 -1
  39. package/dist/optimizations/configuration-tuning.d.ts +1 -1
  40. package/dist/utils/package-version.d.ts +2 -0
  41. package/dist/utils/package-version.d.ts.map +1 -1
  42. package/dist/utils/package-version.js +4 -0
  43. package/dist/utils/package-version.js.map +1 -1
  44. package/package.json +17 -66
  45. package/dist/core/agentdb-wrapper.d.ts +0 -149
  46. package/dist/core/agentdb-wrapper.d.ts.map +0 -1
  47. package/dist/core/agentdb-wrapper.js +0 -394
  48. package/dist/core/agentdb-wrapper.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC","sourcesContent":["/**\n * agentic-flow/integrations — programmatic access to the optional ruvnet\n * package integrations (each with a built-in fallback).\n */\n\nexport { scanPromptInjection, promptInjectionEngine, getInjectionPolicy } from './prompt-injection.js';\nexport type { InjectionScan, InjectionThreat, InjectionPolicy, InjectionSeverity } from './prompt-injection.js';\nexport { partitionTaskGraph } from './task-partition.js';\nexport type { TaskDependency, TaskPartition } from './task-partition.js';\nexport { solveLinearSystem, pageRank, loadSublinearCore } from './sublinear.js';\nexport type { LinearSolveResult, PageRankResult, PageRankOptions, PageRankEdge, MatrixInput, SparseEntry, SolveMethod, SublinearEngine } from './sublinear.js';\nexport { applyAgentBoosterEdit, getAgentBoosterLibrary } from './agent-booster.js';\nexport type { BoosterEditResult } from './agent-booster.js';\nexport { OnnxWasmTextEmbedder, getOnnxWasmEmbedder, loadOnnxWasmModule, onnxWasmModelCached } from './onnx-wasm-embedder.js';\nexport { isOptionalInstalled } from './optional.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC7H,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC","sourcesContent":["/**\n * agentic-flow/integrations — programmatic access to the optional ruvnet\n * package integrations (each with a built-in fallback).\n */\n\nexport { scanPromptInjection, promptInjectionEngine, getInjectionPolicy } from './prompt-injection.js';\nexport type { InjectionScan, InjectionThreat, InjectionPolicy, InjectionSeverity } from './prompt-injection.js';\nexport { partitionTaskGraph } from './task-partition.js';\nexport type { TaskDependency, TaskPartition } from './task-partition.js';\nexport { scheduleTaskGraph } from './task-schedule.js';\nexport type { ScheduleTask, ScheduleDependency, TaskSchedule } from './task-schedule.js';\nexport { solveLinearSystem, pageRank, loadSublinearCore } from './sublinear.js';\nexport type { LinearSolveResult, PageRankResult, PageRankOptions, PageRankEdge, MatrixInput, SparseEntry, SolveMethod, SublinearEngine } from './sublinear.js';\nexport { applyAgentBoosterEdit, getAgentBoosterLibrary } from './agent-booster.js';\nexport type { BoosterEditResult } from './agent-booster.js';\nexport { OnnxWasmTextEmbedder, getOnnxWasmEmbedder, loadOnnxWasmModule, onnxWasmModelCached } from './onnx-wasm-embedder.js';\nexport { isOptionalInstalled } from './optional.js';\n"]}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Schedule a task-dependency graph: what can run now, what runs in parallel,
3
+ * and which chain of tasks bounds the total time.
4
+ *
5
+ * Input is a DAG where `{ from, to }` means `from` must finish before `to`
6
+ * starts, and each task has a cost (estimated duration, tokens, dollars — any
7
+ * additive unit). Output:
8
+ * - `order`: a dependency-respecting execution order;
9
+ * - `waves`: tasks grouped by dependency depth (input order within a wave), so
10
+ * every task in a wave can be handed to a separate agent at the same time;
11
+ * - `criticalPath`: the most expensive dependency chain. Its cost is the
12
+ * makespan with unlimited agents, and speeding up anything off this path
13
+ * does not shorten the run.
14
+ *
15
+ * Engine: `@ruvector/rudag` (optionalDependency, Rust/WASM topological sort and
16
+ * critical path) when installed; a built-in Kahn sort + longest-path DP
17
+ * otherwise. Both reject cycles and agree on the critical-path cost.
18
+ *
19
+ * Complements `partitionTaskGraph` (task-partition.ts): partition answers
20
+ * "where to split work between two teams", scheduling answers "in what order,
21
+ * how parallel, and what is the bottleneck".
22
+ */
23
+ export interface ScheduleTask {
24
+ id: string;
25
+ /** Additive cost of the task (time, tokens, ...). Default 1. Finite, >= 0. */
26
+ cost?: number;
27
+ }
28
+ export interface ScheduleDependency {
29
+ /** Must finish before `to` starts. */
30
+ from: string;
31
+ to: string;
32
+ }
33
+ export interface TaskSchedule {
34
+ order: string[];
35
+ waves: string[][];
36
+ criticalPath: {
37
+ tasks: string[];
38
+ cost: number;
39
+ };
40
+ /** Earliest start per task with unlimited parallel agents. */
41
+ earliestStart: Record<string, number>;
42
+ /** Sum of all task costs (the makespan with one agent). */
43
+ totalCost: number;
44
+ /** totalCost / criticalPath.cost: the speed-up ceiling from parallel agents. */
45
+ parallelism: number;
46
+ engine: 'rudag' | 'builtin';
47
+ }
48
+ export declare function scheduleTaskGraph(tasks: Array<string | ScheduleTask>, dependencies: ScheduleDependency[], options?: {
49
+ engine?: 'auto' | 'builtin';
50
+ }): Promise<TaskSchedule>;
51
+ //# sourceMappingURL=task-schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-schedule.d.ts","sourceRoot":"","sources":["../../src/integrations/task-schedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAClB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AA8HD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,EACnC,YAAY,EAAE,kBAAkB,EAAE,EAClC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAC5C,OAAO,CAAC,YAAY,CAAC,CAyEvB"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Schedule a task-dependency graph: what can run now, what runs in parallel,
3
+ * and which chain of tasks bounds the total time.
4
+ *
5
+ * Input is a DAG where `{ from, to }` means `from` must finish before `to`
6
+ * starts, and each task has a cost (estimated duration, tokens, dollars — any
7
+ * additive unit). Output:
8
+ * - `order`: a dependency-respecting execution order;
9
+ * - `waves`: tasks grouped by dependency depth (input order within a wave), so
10
+ * every task in a wave can be handed to a separate agent at the same time;
11
+ * - `criticalPath`: the most expensive dependency chain. Its cost is the
12
+ * makespan with unlimited agents, and speeding up anything off this path
13
+ * does not shorten the run.
14
+ *
15
+ * Engine: `@ruvector/rudag` (optionalDependency, Rust/WASM topological sort and
16
+ * critical path) when installed; a built-in Kahn sort + longest-path DP
17
+ * otherwise. Both reject cycles and agree on the critical-path cost.
18
+ *
19
+ * Complements `partitionTaskGraph` (task-partition.ts): partition answers
20
+ * "where to split work between two teams", scheduling answers "in what order,
21
+ * how parallel, and what is the bottleneck".
22
+ */
23
+ import { importOptional } from './optional.js';
24
+ /** rudag's WASM DAG takes integer operator codes; 255 is its user-defined slot. */
25
+ const RUDAG_CUSTOM_OPERATOR = 255;
26
+ function normalize(tasks, deps) {
27
+ const index = new Map();
28
+ const names = [];
29
+ const costs = [];
30
+ const add = (id, cost) => {
31
+ const key = String(id);
32
+ let i = index.get(key);
33
+ if (i === undefined) {
34
+ i = names.length;
35
+ index.set(key, i);
36
+ names.push(key);
37
+ costs.push(1);
38
+ }
39
+ if (cost !== undefined) {
40
+ if (!Number.isFinite(cost) || cost < 0)
41
+ throw new Error(`invalid cost ${cost} for task ${key}`);
42
+ costs[i] = cost;
43
+ }
44
+ return i;
45
+ };
46
+ for (const t of tasks) {
47
+ if (typeof t === 'string')
48
+ add(t);
49
+ else
50
+ add(t.id, t.cost);
51
+ }
52
+ const seen = new Set();
53
+ const edges = [];
54
+ for (const d of deps) {
55
+ const a = add(d.from);
56
+ const b = add(d.to);
57
+ if (a === b)
58
+ throw new Error(`dependency cycle: ${names[a]} -> ${names[a]}`);
59
+ const key = `${a},${b}`;
60
+ if (seen.has(key))
61
+ continue;
62
+ seen.add(key);
63
+ edges.push([a, b]);
64
+ }
65
+ return { names, costs, edges };
66
+ }
67
+ /** Find one cycle among `remaining` vertices (all of which lie on or lead into a cycle). */
68
+ function findCycle(n, edges, remaining) {
69
+ const out = Array.from({ length: n }, () => []);
70
+ for (const [a, b] of edges)
71
+ if (remaining.has(a) && remaining.has(b))
72
+ out[a].push(b);
73
+ const state = new Map();
74
+ const stack = [];
75
+ const visit = (v) => {
76
+ state.set(v, 1);
77
+ stack.push(v);
78
+ for (const w of out[v]) {
79
+ if (state.get(w) === 1)
80
+ return [...stack.slice(stack.indexOf(w)), w];
81
+ if (!state.has(w)) {
82
+ const c = visit(w);
83
+ if (c)
84
+ return c;
85
+ }
86
+ }
87
+ stack.pop();
88
+ state.set(v, 2);
89
+ return null;
90
+ };
91
+ for (const v of remaining) {
92
+ if (!state.has(v)) {
93
+ const c = visit(v);
94
+ if (c)
95
+ return c;
96
+ }
97
+ }
98
+ return [];
99
+ }
100
+ function builtinOrder(n, edges) {
101
+ const indeg = new Array(n).fill(0);
102
+ const out = Array.from({ length: n }, () => []);
103
+ for (const [a, b] of edges) {
104
+ out[a].push(b);
105
+ indeg[b]++;
106
+ }
107
+ const queue = [];
108
+ for (let i = 0; i < n; i++)
109
+ if (indeg[i] === 0)
110
+ queue.push(i);
111
+ const order = [];
112
+ for (let h = 0; h < queue.length; h++) {
113
+ const v = queue[h];
114
+ order.push(v);
115
+ for (const w of out[v])
116
+ if (--indeg[w] === 0)
117
+ queue.push(w);
118
+ }
119
+ return order;
120
+ }
121
+ /** Longest (most expensive) path over a topological order; path cost counts node costs. */
122
+ function longestPath(order, costs, edges) {
123
+ const preds = costs.map(() => []);
124
+ for (const [a, b] of edges)
125
+ preds[b].push(a);
126
+ const finish = new Array(costs.length).fill(0);
127
+ const via = new Array(costs.length).fill(-1);
128
+ for (const v of order) {
129
+ let best = 0;
130
+ let bestU = -1;
131
+ for (const u of preds[v]) {
132
+ if (bestU === -1 || finish[u] > best) {
133
+ best = finish[u];
134
+ bestU = u;
135
+ }
136
+ }
137
+ via[v] = bestU;
138
+ finish[v] = best + costs[v];
139
+ }
140
+ let end = -1;
141
+ for (const v of order)
142
+ if (end === -1 || finish[v] > finish[end])
143
+ end = v;
144
+ const path = [];
145
+ for (let v = end; v !== -1; v = via[v])
146
+ path.unshift(v);
147
+ return { path, cost: end === -1 ? 0 : finish[end] };
148
+ }
149
+ export async function scheduleTaskGraph(tasks, dependencies, options = {}) {
150
+ const { names, costs, edges } = normalize(tasks, dependencies);
151
+ const n = names.length;
152
+ let order = null;
153
+ let critical = null;
154
+ let engine = 'builtin';
155
+ if (n > 0 && options.engine !== 'builtin') {
156
+ const mod = await importOptional('@ruvector/rudag');
157
+ if (mod?.RuDag) {
158
+ // storage: null keeps rudag off IndexedDB/the filesystem; one instance per call.
159
+ const dag = await new mod.RuDag({ storage: null, autoSave: false }).init();
160
+ try {
161
+ const ids = costs.map((c) => dag.addNode(RUDAG_CUSTOM_OPERATOR, c));
162
+ let acyclic = true;
163
+ for (const [a, b] of edges) {
164
+ // rudag refuses an edge that would close a cycle.
165
+ if (!dag.addEdge(ids[a], ids[b])) {
166
+ acyclic = false;
167
+ break;
168
+ }
169
+ }
170
+ if (acyclic) {
171
+ const back = new Map(ids.map((id, i) => [id, i]));
172
+ order = dag.topoSort().map((id) => back.get(id));
173
+ const cp = dag.criticalPath();
174
+ critical = { path: cp.path.map((id) => back.get(id)), cost: cp.cost };
175
+ engine = 'rudag';
176
+ }
177
+ }
178
+ finally {
179
+ dag.dispose();
180
+ }
181
+ }
182
+ }
183
+ if (!order) {
184
+ order = builtinOrder(n, edges);
185
+ if (order.length < n) {
186
+ const placed = new Set(order);
187
+ const remaining = new Set(names.map((_, i) => i).filter((i) => !placed.has(i)));
188
+ const cycle = findCycle(n, edges, remaining);
189
+ throw new Error(`dependency cycle: ${cycle.map((i) => names[i]).join(' -> ')}`);
190
+ }
191
+ critical = longestPath(order, costs, edges);
192
+ engine = 'builtin';
193
+ }
194
+ // Earliest start and waves: the same for either engine, given a valid order.
195
+ const preds = names.map(() => []);
196
+ for (const [a, b] of edges)
197
+ preds[b].push(a);
198
+ const start = new Array(n).fill(0);
199
+ const level = new Array(n).fill(0);
200
+ for (const v of order) {
201
+ for (const u of preds[v]) {
202
+ start[v] = Math.max(start[v], start[u] + costs[u]);
203
+ level[v] = Math.max(level[v], level[u] + 1);
204
+ }
205
+ }
206
+ // Within a wave, tasks keep their input order, so both engines return identical waves.
207
+ const waves = [];
208
+ for (let v = 0; v < n; v++)
209
+ (waves[level[v]] ??= []).push(names[v]);
210
+ const totalCost = costs.reduce((s, c) => s + c, 0);
211
+ const cpCost = critical.cost;
212
+ return {
213
+ order: order.map((i) => names[i]),
214
+ waves,
215
+ criticalPath: { tasks: critical.path.map((i) => names[i]), cost: cpCost },
216
+ earliestStart: Object.fromEntries(order.map((i) => [names[i], start[i]])),
217
+ totalCost,
218
+ parallelism: cpCost > 0 ? totalCost / cpCost : n > 0 ? n : 0,
219
+ engine,
220
+ };
221
+ }
222
+ //# sourceMappingURL=task-schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-schedule.js","sourceRoot":"","sources":["../../src/integrations/task-schedule.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Schedule a task-dependency graph: what can run now, what runs in parallel,\n * and which chain of tasks bounds the total time.\n *\n * Input is a DAG where `{ from, to }` means `from` must finish before `to`\n * starts, and each task has a cost (estimated duration, tokens, dollars — any\n * additive unit). Output:\n * - `order`: a dependency-respecting execution order;\n * - `waves`: tasks grouped by dependency depth (input order within a wave), so\n * every task in a wave can be handed to a separate agent at the same time;\n * - `criticalPath`: the most expensive dependency chain. Its cost is the\n * makespan with unlimited agents, and speeding up anything off this path\n * does not shorten the run.\n *\n * Engine: `@ruvector/rudag` (optionalDependency, Rust/WASM topological sort and\n * critical path) when installed; a built-in Kahn sort + longest-path DP\n * otherwise. Both reject cycles and agree on the critical-path cost.\n *\n * Complements `partitionTaskGraph` (task-partition.ts): partition answers\n * \"where to split work between two teams\", scheduling answers \"in what order,\n * how parallel, and what is the bottleneck\".\n */\n\nimport { importOptional } from './optional.js';\n\nexport interface ScheduleTask {\n id: string;\n /** Additive cost of the task (time, tokens, ...). Default 1. Finite, >= 0. */\n cost?: number;\n}\n\nexport interface ScheduleDependency {\n /** Must finish before `to` starts. */\n from: string;\n to: string;\n}\n\nexport interface TaskSchedule {\n order: string[];\n waves: string[][];\n criticalPath: { tasks: string[]; cost: number };\n /** Earliest start per task with unlimited parallel agents. */\n earliestStart: Record<string, number>;\n /** Sum of all task costs (the makespan with one agent). */\n totalCost: number;\n /** totalCost / criticalPath.cost: the speed-up ceiling from parallel agents. */\n parallelism: number;\n engine: 'rudag' | 'builtin';\n}\n\n/** rudag's WASM DAG takes integer operator codes; 255 is its user-defined slot. */\nconst RUDAG_CUSTOM_OPERATOR = 255;\n\ninterface RuDagInstance {\n init(): Promise<RuDagInstance>;\n addNode(operator: number, cost: number): number;\n addEdge(from: number, to: number): boolean;\n topoSort(): number[];\n criticalPath(): { path: number[]; cost: number };\n dispose(): void;\n}\ninterface RuDagModule {\n RuDag: new (options: { storage: null; autoSave: false }) => RuDagInstance;\n}\n\nfunction normalize(tasks: Array<string | ScheduleTask>, deps: ScheduleDependency[]) {\n const index = new Map<string, number>();\n const names: string[] = [];\n const costs: number[] = [];\n const add = (id: string, cost?: number) => {\n const key = String(id);\n let i = index.get(key);\n if (i === undefined) {\n i = names.length;\n index.set(key, i);\n names.push(key);\n costs.push(1);\n }\n if (cost !== undefined) {\n if (!Number.isFinite(cost) || cost < 0) throw new Error(`invalid cost ${cost} for task ${key}`);\n costs[i] = cost;\n }\n return i;\n };\n for (const t of tasks) {\n if (typeof t === 'string') add(t);\n else add(t.id, t.cost);\n }\n const seen = new Set<string>();\n const edges: Array<[number, number]> = [];\n for (const d of deps) {\n const a = add(d.from);\n const b = add(d.to);\n if (a === b) throw new Error(`dependency cycle: ${names[a]} -> ${names[a]}`);\n const key = `${a},${b}`;\n if (seen.has(key)) continue;\n seen.add(key);\n edges.push([a, b]);\n }\n return { names, costs, edges };\n}\n\n/** Find one cycle among `remaining` vertices (all of which lie on or lead into a cycle). */\nfunction findCycle(n: number, edges: Array<[number, number]>, remaining: Set<number>): number[] {\n const out: number[][] = Array.from({ length: n }, () => []);\n for (const [a, b] of edges) if (remaining.has(a) && remaining.has(b)) out[a].push(b);\n const state = new Map<number, 1 | 2>();\n const stack: number[] = [];\n const visit = (v: number): number[] | null => {\n state.set(v, 1);\n stack.push(v);\n for (const w of out[v]) {\n if (state.get(w) === 1) return [...stack.slice(stack.indexOf(w)), w];\n if (!state.has(w)) {\n const c = visit(w);\n if (c) return c;\n }\n }\n stack.pop();\n state.set(v, 2);\n return null;\n };\n for (const v of remaining) {\n if (!state.has(v)) {\n const c = visit(v);\n if (c) return c;\n }\n }\n return [];\n}\n\nfunction builtinOrder(n: number, edges: Array<[number, number]>): number[] {\n const indeg = new Array(n).fill(0);\n const out: number[][] = Array.from({ length: n }, () => []);\n for (const [a, b] of edges) {\n out[a].push(b);\n indeg[b]++;\n }\n const queue: number[] = [];\n for (let i = 0; i < n; i++) if (indeg[i] === 0) queue.push(i);\n const order: number[] = [];\n for (let h = 0; h < queue.length; h++) {\n const v = queue[h];\n order.push(v);\n for (const w of out[v]) if (--indeg[w] === 0) queue.push(w);\n }\n return order;\n}\n\n/** Longest (most expensive) path over a topological order; path cost counts node costs. */\nfunction longestPath(order: number[], costs: number[], edges: Array<[number, number]>) {\n const preds: number[][] = costs.map(() => []);\n for (const [a, b] of edges) preds[b].push(a);\n const finish = new Array(costs.length).fill(0);\n const via = new Array(costs.length).fill(-1);\n for (const v of order) {\n let best = 0;\n let bestU = -1;\n for (const u of preds[v]) {\n if (bestU === -1 || finish[u] > best) {\n best = finish[u];\n bestU = u;\n }\n }\n via[v] = bestU;\n finish[v] = best + costs[v];\n }\n let end = -1;\n for (const v of order) if (end === -1 || finish[v] > finish[end]) end = v;\n const path: number[] = [];\n for (let v = end; v !== -1; v = via[v]) path.unshift(v);\n return { path, cost: end === -1 ? 0 : finish[end] };\n}\n\nexport async function scheduleTaskGraph(\n tasks: Array<string | ScheduleTask>,\n dependencies: ScheduleDependency[],\n options: { engine?: 'auto' | 'builtin' } = {},\n): Promise<TaskSchedule> {\n const { names, costs, edges } = normalize(tasks, dependencies);\n const n = names.length;\n let order: number[] | null = null;\n let critical: { path: number[]; cost: number } | null = null;\n let engine: TaskSchedule['engine'] = 'builtin';\n\n if (n > 0 && options.engine !== 'builtin') {\n const mod = await importOptional<RuDagModule>('@ruvector/rudag');\n if (mod?.RuDag) {\n // storage: null keeps rudag off IndexedDB/the filesystem; one instance per call.\n const dag = await new mod.RuDag({ storage: null, autoSave: false }).init();\n try {\n const ids = costs.map((c) => dag.addNode(RUDAG_CUSTOM_OPERATOR, c));\n let acyclic = true;\n for (const [a, b] of edges) {\n // rudag refuses an edge that would close a cycle.\n if (!dag.addEdge(ids[a], ids[b])) {\n acyclic = false;\n break;\n }\n }\n if (acyclic) {\n const back = new Map(ids.map((id, i) => [id, i]));\n order = dag.topoSort().map((id) => back.get(id)!);\n const cp = dag.criticalPath();\n critical = { path: cp.path.map((id) => back.get(id)!), cost: cp.cost };\n engine = 'rudag';\n }\n } finally {\n dag.dispose();\n }\n }\n }\n\n if (!order) {\n order = builtinOrder(n, edges);\n if (order.length < n) {\n const placed = new Set(order);\n const remaining = new Set(names.map((_, i) => i).filter((i) => !placed.has(i)));\n const cycle = findCycle(n, edges, remaining);\n throw new Error(`dependency cycle: ${cycle.map((i) => names[i]).join(' -> ')}`);\n }\n critical = longestPath(order, costs, edges);\n engine = 'builtin';\n }\n\n // Earliest start and waves: the same for either engine, given a valid order.\n const preds: number[][] = names.map(() => []);\n for (const [a, b] of edges) preds[b].push(a);\n const start = new Array(n).fill(0);\n const level = new Array(n).fill(0);\n for (const v of order) {\n for (const u of preds[v]) {\n start[v] = Math.max(start[v], start[u] + costs[u]);\n level[v] = Math.max(level[v], level[u] + 1);\n }\n }\n // Within a wave, tasks keep their input order, so both engines return identical waves.\n const waves: string[][] = [];\n for (let v = 0; v < n; v++) (waves[level[v]] ??= []).push(names[v]);\n\n const totalCost = costs.reduce((s, c) => s + c, 0);\n const cpCost = critical!.cost;\n return {\n order: order.map((i) => names[i]),\n waves,\n criticalPath: { tasks: critical!.path.map((i) => names[i]), cost: cpCost },\n earliestStart: Object.fromEntries(order.map((i) => [names[i], start[i]])),\n totalCost,\n parallelism: cpCost > 0 ? totalCost / cpCost : n > 0 ? n : 0,\n engine,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"claudeFlowSdkServer.d.ts","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"AAyEA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,yEAmc9B,CAAC"}
1
+ {"version":3,"file":"claudeFlowSdkServer.d.ts","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"AA0EA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,yEAmc9B,CAAC"}
@@ -7,6 +7,7 @@ import { resolveInsideCwd } from '../utils/path-safety.js';
7
7
  import { logger } from '../utils/logger.js';
8
8
  import { execMemoryStore, execMemoryRetrieve, execMemorySearch, execAgentSpawn, safeExecNpx, } from '../utils/safe-exec.js';
9
9
  import { withPortableDescriptions } from './sdk-tool-schema.js';
10
+ import { mcpServerVersion } from '../utils/package-version.js';
10
11
  const tool = (name, description, inputSchema, handler) => sdkTool(name, description, withPortableDescriptions(inputSchema), handler);
11
12
  let _AgentBooster = null;
12
13
  async function loadAgentBooster() {
@@ -52,7 +53,7 @@ function validateFilePath(filePath) {
52
53
  */
53
54
  export const claudeFlowSdkServer = createSdkMcpServer({
54
55
  name: 'claude-flow-sdk',
55
- version: '1.0.0',
56
+ version: mcpServerVersion(),
56
57
  tools: [
57
58
  // Memory storage tool
58
59
  tool('memory_store', 'Store a value in persistent memory with optional namespace and TTL', {
@@ -1 +1 @@
1
- {"version":3,"file":"claudeFlowSdkServer.js","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"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","sourcesContent":["// In-SDK MCP server for claude-flow tools (no subprocess required)\nimport { createSdkMcpServer, tool as sdkTool } from '@anthropic-ai/claude-agent-sdk';\nimport { z } from 'zod';\nimport { readFileSync, writeFileSync } from 'fs';\nimport { extname } from 'path';\nimport { resolveInsideCwd } from '../utils/path-safety.js';\nimport { logger } from '../utils/logger.js';\nimport {\n execMemoryStore,\n execMemoryRetrieve,\n execMemorySearch,\n execAgentSpawn,\n safeExecNpx,\n} from '../utils/safe-exec.js';\nimport { withPortableDescriptions } from './sdk-tool-schema.js';\n\nconst tool: typeof sdkTool = (name, description, inputSchema, handler) =>\n sdkTool(name, description, withPortableDescriptions(inputSchema), handler);\n\n// agent-booster is an optional sibling package — load it lazily so a missing\n// dep does not break top-level imports of agentic-flow (issue #102).\ntype AgentBoosterCtor = new (opts: { confidenceThreshold?: number }) => {\n apply(input: any): Promise<{\n success: boolean;\n output: string;\n latency: number;\n confidence: number;\n strategy: string;\n }>;\n};\n\nlet _AgentBooster: AgentBoosterCtor | null = null;\nasync function loadAgentBooster(): Promise<AgentBoosterCtor> {\n if (_AgentBooster) return _AgentBooster;\n try {\n const mod: any = await import('agent-booster');\n const ctor: AgentBoosterCtor | undefined =\n mod.AgentBooster ?? mod.default?.AgentBooster ?? mod.default;\n if (!ctor) {\n throw new Error(\"'agent-booster' loaded but does not export AgentBooster\");\n }\n _AgentBooster = ctor;\n return ctor;\n } catch (err: any) {\n throw new Error(\n `Agent Booster is unavailable (optional package 'agent-booster' not installed). ` +\n `Install it with: npm install agent-booster. Underlying: ${err?.message || err}`\n );\n }\n}\n\n/**\n * Validate a file path to prevent directory traversal.\n * Resolves to an absolute path and rejects paths that escape the working directory\n * (after following symlinks) or reference clearly sensitive locations.\n *\n * @param filePath - Caller-supplied file path\n * @returns Resolved absolute path\n * @throws Error if the path is unsafe\n */\nfunction validateFilePath(filePath: string): string {\n const resolved = resolveInsideCwd(filePath);\n\n // Block paths that are clearly sensitive system locations\n const blockedPrefixes = ['/etc/', '/proc/', '/sys/', '/dev/', '/root/'];\n for (const prefix of blockedPrefixes) {\n if (resolved.startsWith(prefix)) {\n throw new Error(`Access to path '${prefix}' is not permitted`);\n }\n }\n return resolved;\n}\n\n/**\n * Create an in-SDK MCP server that provides claude-flow memory and coordination tools\n * This runs in-process without spawning Claude Code CLI subprocess\n */\nexport const claudeFlowSdkServer = createSdkMcpServer({\n name: 'claude-flow-sdk',\n version: '1.0.0',\n\n tools: [\n // Memory storage tool\n tool(\n 'memory_store',\n 'Store a value in persistent memory with optional namespace and TTL',\n {\n key: z.string().describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().optional().describe('Time-to-live in seconds'),\n },\n async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryStore\n execMemoryStore(key, value, namespace, ttl);\n\n logger.info('Memory stored successfully', { key });\n return {\n content: [\n {\n type: 'text',\n text: `✅ Stored successfully\\n📝 Key: ${key}\\n📦 Namespace: ${namespace}\\n💾 Size: ${value.length} bytes`,\n },\n ],\n };\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to store: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory retrieval tool\n tool(\n 'memory_retrieve',\n 'Retrieve a value from persistent memory',\n {\n key: z.string().describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n },\n async ({ key, namespace }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryRetrieve\n const result = execMemoryRetrieve(key, namespace);\n\n return {\n content: [\n {\n type: 'text',\n text: `✅ Retrieved:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to retrieve: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory search tool\n tool(\n 'memory_search',\n 'Search for keys matching a pattern in memory',\n {\n pattern: z.string().describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().optional().default(10).describe('Maximum results to return'),\n },\n async ({ pattern, namespace, limit }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemorySearch\n const result = execMemorySearch(pattern, namespace, limit);\n\n return {\n content: [\n {\n type: 'text',\n text: `🔍 Search results:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Search failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm initialization tool\n tool(\n 'swarm_init',\n 'Initialize a multi-agent swarm with specified topology',\n {\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().optional().default(8).describe('Maximum number of agents'),\n strategy: z\n .enum(['balanced', 'specialized', 'adaptive'])\n .optional()\n .default('balanced')\n .describe('Agent distribution strategy'),\n },\n async ({ topology, maxAgents, strategy }) => {\n try {\n // Use safe exec — topology and strategy come from z.enum() so are\n // already allowlisted, but execSwarmInit validates them again.\n // Pass a generated swarm ID so execSwarmInit is satisfied.\n const swarmId = `swarm-${Date.now()}`;\n const result = safeExecNpx('claude-flow@alpha', [\n 'swarm', 'init',\n '--topology', topology,\n '--max-agents', String(Math.min(Math.max(1, maxAgents), 100)),\n '--strategy', strategy,\n ]);\n\n return {\n content: [\n {\n type: 'text',\n text: `🚀 Swarm initialized:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Swarm init failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent spawn tool\n tool(\n 'agent_spawn',\n 'Spawn a new agent in the swarm',\n {\n type: z\n .enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name'),\n },\n async ({ type, capabilities, name }) => {\n try {\n // Use safe exec — type comes from z.enum() but execAgentSpawn re-validates\n // against VALIDATION_PATTERNS.agentType. The optional `name` is also\n // validated against agentName pattern inside execAgentSpawn.\n const agentName = name ?? `${type}-${Date.now()}`;\n const result = execAgentSpawn(agentName, type, undefined, capabilities);\n\n return {\n content: [\n {\n type: 'text',\n text: `🤖 Agent spawned:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent spawn failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Task orchestration tool\n tool(\n 'task_orchestrate',\n 'Orchestrate a complex task across the swarm',\n {\n task: z.string().describe('Task description or instructions'),\n strategy: z\n .enum(['parallel', 'sequential', 'adaptive'])\n .optional()\n .default('adaptive')\n .describe('Execution strategy'),\n priority: z\n .enum(['low', 'medium', 'high', 'critical'])\n .optional()\n .default('medium')\n .describe('Task priority'),\n maxAgents: z.number().optional().describe('Maximum agents to use for this task'),\n },\n async ({ task, strategy, priority, maxAgents }) => {\n try {\n // Use safe exec — task is passed as an array arg (no shell interpolation).\n // strategy and priority come from z.enum() and are re-validated inside\n // execTaskOrchestrate against VALIDATION_PATTERNS.\n const args = ['task', 'orchestrate', '--task', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents !== undefined) {\n args.push('--max-agents', String(Math.min(Math.max(1, maxAgents), 100)));\n }\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `⚡ Task orchestrated:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Task orchestration failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm status tool\n tool(\n 'swarm_status',\n 'Get current swarm status and metrics',\n {\n verbose: z.boolean().optional().default(false).describe('Include detailed metrics'),\n },\n async ({ verbose }) => {\n try {\n // verbose is a boolean from schema — no user string is interpolated into the command\n const args = ['swarm', 'status'];\n if (verbose) args.push('--verbose');\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `📊 Swarm status:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Status check failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Ultra-fast code editing\n tool(\n 'agent_booster_edit_file',\n \"Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster's local WASM engine.\",\n {\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('Description of what changes to make'),\n code_edit: z.string().describe('The new code or edit to apply'),\n language: z\n .string()\n .optional()\n .describe('Programming language (auto-detected if not provided)'),\n },\n async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n // Initialize Agent Booster (lazy load to keep top-level import safe)\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n\n // Validate and resolve the path before any file I/O to prevent traversal attacks\n const safePath = validateFilePath(target_filepath);\n\n // Read original file\n const originalCode = readFileSync(safePath, 'utf8');\n\n // Auto-detect language if not provided\n const lang = language || extname(safePath).slice(1);\n\n // Apply edit - use any cast for flexible signature\n const result = await booster.apply({\n code: originalCode,\n edit: code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: code_edit,\n code_edit,\n } as any);\n\n // Write if successful\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n }\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Edit Result:\\n` +\n `📁 File: ${safePath}\\n` +\n `✅ Success: ${result.success}\\n` +\n `⏱️ Latency: ${result.latency}ms\\n` +\n `🎯 Confidence: ${(result.confidence * 100).toFixed(1)}%\\n` +\n `🔧 Strategy: ${result.strategy}\\n` +\n `📊 Speedup: ~${Math.round(352 / result.latency)}x vs cloud APIs\\n` +\n `💰 Cost: $0 (vs ~$0.01 for cloud API)\\n\\n` +\n `${result.success ? '✨ Edit applied successfully!' : '❌ Edit failed - check confidence score'}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent Booster edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Batch editing\n tool(\n 'agent_booster_batch_edit',\n 'Apply multiple code edits in parallel using Agent Booster. Perfect for multi-file refactoring.',\n {\n edits: z\n .array(\n z.object({\n target_filepath: z.string(),\n instructions: z.string(),\n code_edit: z.string(),\n language: z.string().optional(),\n })\n )\n .describe('Array of edit operations to apply'),\n },\n async ({ edits }) => {\n try {\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n let successCount = 0;\n let totalLatency = 0;\n const results: string[] = [];\n\n for (const edit of edits) {\n // Validate path for each entry before any file I/O\n const safePath = validateFilePath(edit.target_filepath);\n const originalCode = readFileSync(safePath, 'utf8');\n const lang = edit.language || extname(safePath).slice(1);\n\n const result = await booster.apply({\n code: originalCode,\n edit: edit.code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: edit.code_edit,\n code_edit: edit.code_edit,\n } as any);\n\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n successCount++;\n }\n\n totalLatency += result.latency;\n results.push(\n ` ${result.success ? '✅' : '❌'} ${safePath} (${result.latency}ms, ${(result.confidence * 100).toFixed(0)}%)`\n );\n }\n\n const avgLatency = totalLatency / edits.length;\n const avgSpeedup = Math.round(352 / avgLatency);\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Batch Edit Results:\\n\\n` +\n `📊 Summary:\\n` +\n ` Total edits: ${edits.length}\\n` +\n ` Successful: ${successCount}\\n` +\n ` Failed: ${edits.length - successCount}\\n` +\n ` Total time: ${totalLatency.toFixed(1)}ms\\n` +\n ` Avg latency: ${avgLatency.toFixed(1)}ms\\n` +\n ` Avg speedup: ~${avgSpeedup}x vs cloud APIs\\n` +\n ` Cost savings: ~$${(edits.length * 0.01).toFixed(2)}\\n\\n` +\n `📁 Results:\\n${results.join('\\n')}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Batch edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n ],\n});\n"]}
1
+ {"version":3,"file":"claudeFlowSdkServer.js","sourceRoot":"","sources":["../../src/mcp/claudeFlowSdkServer.ts"],"names":[],"mappings":"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","sourcesContent":["// In-SDK MCP server for claude-flow tools (no subprocess required)\nimport { createSdkMcpServer, tool as sdkTool } from '@anthropic-ai/claude-agent-sdk';\nimport { z } from 'zod';\nimport { readFileSync, writeFileSync } from 'fs';\nimport { extname } from 'path';\nimport { resolveInsideCwd } from '../utils/path-safety.js';\nimport { logger } from '../utils/logger.js';\nimport {\n execMemoryStore,\n execMemoryRetrieve,\n execMemorySearch,\n execAgentSpawn,\n safeExecNpx,\n} from '../utils/safe-exec.js';\nimport { withPortableDescriptions } from './sdk-tool-schema.js';\nimport { mcpServerVersion } from '../utils/package-version.js';\n\nconst tool: typeof sdkTool = (name, description, inputSchema, handler) =>\n sdkTool(name, description, withPortableDescriptions(inputSchema), handler);\n\n// agent-booster is an optional sibling package — load it lazily so a missing\n// dep does not break top-level imports of agentic-flow (issue #102).\ntype AgentBoosterCtor = new (opts: { confidenceThreshold?: number }) => {\n apply(input: any): Promise<{\n success: boolean;\n output: string;\n latency: number;\n confidence: number;\n strategy: string;\n }>;\n};\n\nlet _AgentBooster: AgentBoosterCtor | null = null;\nasync function loadAgentBooster(): Promise<AgentBoosterCtor> {\n if (_AgentBooster) return _AgentBooster;\n try {\n const mod: any = await import('agent-booster');\n const ctor: AgentBoosterCtor | undefined =\n mod.AgentBooster ?? mod.default?.AgentBooster ?? mod.default;\n if (!ctor) {\n throw new Error(\"'agent-booster' loaded but does not export AgentBooster\");\n }\n _AgentBooster = ctor;\n return ctor;\n } catch (err: any) {\n throw new Error(\n `Agent Booster is unavailable (optional package 'agent-booster' not installed). ` +\n `Install it with: npm install agent-booster. Underlying: ${err?.message || err}`\n );\n }\n}\n\n/**\n * Validate a file path to prevent directory traversal.\n * Resolves to an absolute path and rejects paths that escape the working directory\n * (after following symlinks) or reference clearly sensitive locations.\n *\n * @param filePath - Caller-supplied file path\n * @returns Resolved absolute path\n * @throws Error if the path is unsafe\n */\nfunction validateFilePath(filePath: string): string {\n const resolved = resolveInsideCwd(filePath);\n\n // Block paths that are clearly sensitive system locations\n const blockedPrefixes = ['/etc/', '/proc/', '/sys/', '/dev/', '/root/'];\n for (const prefix of blockedPrefixes) {\n if (resolved.startsWith(prefix)) {\n throw new Error(`Access to path '${prefix}' is not permitted`);\n }\n }\n return resolved;\n}\n\n/**\n * Create an in-SDK MCP server that provides claude-flow memory and coordination tools\n * This runs in-process without spawning Claude Code CLI subprocess\n */\nexport const claudeFlowSdkServer = createSdkMcpServer({\n name: 'claude-flow-sdk',\n version: mcpServerVersion(),\n\n tools: [\n // Memory storage tool\n tool(\n 'memory_store',\n 'Store a value in persistent memory with optional namespace and TTL',\n {\n key: z.string().describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().optional().describe('Time-to-live in seconds'),\n },\n async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryStore\n execMemoryStore(key, value, namespace, ttl);\n\n logger.info('Memory stored successfully', { key });\n return {\n content: [\n {\n type: 'text',\n text: `✅ Stored successfully\\n📝 Key: ${key}\\n📦 Namespace: ${namespace}\\n💾 Size: ${value.length} bytes`,\n },\n ],\n };\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to store: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory retrieval tool\n tool(\n 'memory_retrieve',\n 'Retrieve a value from persistent memory',\n {\n key: z.string().describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n },\n async ({ key, namespace }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemoryRetrieve\n const result = execMemoryRetrieve(key, namespace);\n\n return {\n content: [\n {\n type: 'text',\n text: `✅ Retrieved:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Failed to retrieve: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Memory search tool\n tool(\n 'memory_search',\n 'Search for keys matching a pattern in memory',\n {\n pattern: z.string().describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().optional().default(10).describe('Maximum results to return'),\n },\n async ({ pattern, namespace, limit }) => {\n try {\n // Use safe exec to prevent shell injection — inputs are validated inside execMemorySearch\n const result = execMemorySearch(pattern, namespace, limit);\n\n return {\n content: [\n {\n type: 'text',\n text: `🔍 Search results:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Search failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm initialization tool\n tool(\n 'swarm_init',\n 'Initialize a multi-agent swarm with specified topology',\n {\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().optional().default(8).describe('Maximum number of agents'),\n strategy: z\n .enum(['balanced', 'specialized', 'adaptive'])\n .optional()\n .default('balanced')\n .describe('Agent distribution strategy'),\n },\n async ({ topology, maxAgents, strategy }) => {\n try {\n // Use safe exec — topology and strategy come from z.enum() so are\n // already allowlisted, but execSwarmInit validates them again.\n // Pass a generated swarm ID so execSwarmInit is satisfied.\n const swarmId = `swarm-${Date.now()}`;\n const result = safeExecNpx('claude-flow@alpha', [\n 'swarm', 'init',\n '--topology', topology,\n '--max-agents', String(Math.min(Math.max(1, maxAgents), 100)),\n '--strategy', strategy,\n ]);\n\n return {\n content: [\n {\n type: 'text',\n text: `🚀 Swarm initialized:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Swarm init failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent spawn tool\n tool(\n 'agent_spawn',\n 'Spawn a new agent in the swarm',\n {\n type: z\n .enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator'])\n .describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name'),\n },\n async ({ type, capabilities, name }) => {\n try {\n // Use safe exec — type comes from z.enum() but execAgentSpawn re-validates\n // against VALIDATION_PATTERNS.agentType. The optional `name` is also\n // validated against agentName pattern inside execAgentSpawn.\n const agentName = name ?? `${type}-${Date.now()}`;\n const result = execAgentSpawn(agentName, type, undefined, capabilities);\n\n return {\n content: [\n {\n type: 'text',\n text: `🤖 Agent spawned:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent spawn failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Task orchestration tool\n tool(\n 'task_orchestrate',\n 'Orchestrate a complex task across the swarm',\n {\n task: z.string().describe('Task description or instructions'),\n strategy: z\n .enum(['parallel', 'sequential', 'adaptive'])\n .optional()\n .default('adaptive')\n .describe('Execution strategy'),\n priority: z\n .enum(['low', 'medium', 'high', 'critical'])\n .optional()\n .default('medium')\n .describe('Task priority'),\n maxAgents: z.number().optional().describe('Maximum agents to use for this task'),\n },\n async ({ task, strategy, priority, maxAgents }) => {\n try {\n // Use safe exec — task is passed as an array arg (no shell interpolation).\n // strategy and priority come from z.enum() and are re-validated inside\n // execTaskOrchestrate against VALIDATION_PATTERNS.\n const args = ['task', 'orchestrate', '--task', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents !== undefined) {\n args.push('--max-agents', String(Math.min(Math.max(1, maxAgents), 100)));\n }\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `⚡ Task orchestrated:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Task orchestration failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Swarm status tool\n tool(\n 'swarm_status',\n 'Get current swarm status and metrics',\n {\n verbose: z.boolean().optional().default(false).describe('Include detailed metrics'),\n },\n async ({ verbose }) => {\n try {\n // verbose is a boolean from schema — no user string is interpolated into the command\n const args = ['swarm', 'status'];\n if (verbose) args.push('--verbose');\n const result = safeExecNpx('claude-flow@alpha', args);\n\n return {\n content: [\n {\n type: 'text',\n text: `📊 Swarm status:\\n${result}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Status check failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Ultra-fast code editing\n tool(\n 'agent_booster_edit_file',\n \"Ultra-fast code editing (352x faster than cloud APIs, $0 cost). Apply precise code edits using Agent Booster's local WASM engine.\",\n {\n target_filepath: z.string().describe('Path of the file to modify'),\n instructions: z.string().describe('Description of what changes to make'),\n code_edit: z.string().describe('The new code or edit to apply'),\n language: z\n .string()\n .optional()\n .describe('Programming language (auto-detected if not provided)'),\n },\n async ({ target_filepath, instructions, code_edit, language }) => {\n try {\n // Initialize Agent Booster (lazy load to keep top-level import safe)\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n\n // Validate and resolve the path before any file I/O to prevent traversal attacks\n const safePath = validateFilePath(target_filepath);\n\n // Read original file\n const originalCode = readFileSync(safePath, 'utf8');\n\n // Auto-detect language if not provided\n const lang = language || extname(safePath).slice(1);\n\n // Apply edit - use any cast for flexible signature\n const result = await booster.apply({\n code: originalCode,\n edit: code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: code_edit,\n code_edit,\n } as any);\n\n // Write if successful\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n }\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Edit Result:\\n` +\n `📁 File: ${safePath}\\n` +\n `✅ Success: ${result.success}\\n` +\n `⏱️ Latency: ${result.latency}ms\\n` +\n `🎯 Confidence: ${(result.confidence * 100).toFixed(1)}%\\n` +\n `🔧 Strategy: ${result.strategy}\\n` +\n `📊 Speedup: ~${Math.round(352 / result.latency)}x vs cloud APIs\\n` +\n `💰 Cost: $0 (vs ~$0.01 for cloud API)\\n\\n` +\n `${result.success ? '✨ Edit applied successfully!' : '❌ Edit failed - check confidence score'}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Agent Booster edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n\n // Agent Booster - Batch editing\n tool(\n 'agent_booster_batch_edit',\n 'Apply multiple code edits in parallel using Agent Booster. Perfect for multi-file refactoring.',\n {\n edits: z\n .array(\n z.object({\n target_filepath: z.string(),\n instructions: z.string(),\n code_edit: z.string(),\n language: z.string().optional(),\n })\n )\n .describe('Array of edit operations to apply'),\n },\n async ({ edits }) => {\n try {\n const Ctor = await loadAgentBooster();\n const booster = new Ctor({ confidenceThreshold: 0.5 });\n let successCount = 0;\n let totalLatency = 0;\n const results: string[] = [];\n\n for (const edit of edits) {\n // Validate path for each entry before any file I/O\n const safePath = validateFilePath(edit.target_filepath);\n const originalCode = readFileSync(safePath, 'utf8');\n const lang = edit.language || extname(safePath).slice(1);\n\n const result = await booster.apply({\n code: originalCode,\n edit: edit.code_edit,\n language: lang,\n target_filepath: safePath,\n instructions: edit.code_edit,\n code_edit: edit.code_edit,\n } as any);\n\n if (result.success) {\n writeFileSync(safePath, result.output, 'utf8');\n successCount++;\n }\n\n totalLatency += result.latency;\n results.push(\n ` ${result.success ? '✅' : '❌'} ${safePath} (${result.latency}ms, ${(result.confidence * 100).toFixed(0)}%)`\n );\n }\n\n const avgLatency = totalLatency / edits.length;\n const avgSpeedup = Math.round(352 / avgLatency);\n\n return {\n content: [\n {\n type: 'text',\n text:\n `⚡ Agent Booster Batch Edit Results:\\n\\n` +\n `📊 Summary:\\n` +\n ` Total edits: ${edits.length}\\n` +\n ` Successful: ${successCount}\\n` +\n ` Failed: ${edits.length - successCount}\\n` +\n ` Total time: ${totalLatency.toFixed(1)}ms\\n` +\n ` Avg latency: ${avgLatency.toFixed(1)}ms\\n` +\n ` Avg speedup: ~${avgSpeedup}x vs cloud APIs\\n` +\n ` Cost savings: ~$${(edits.length * 0.01).toFixed(2)}\\n\\n` +\n `📁 Results:\\n${results.join('\\n')}`,\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: `❌ Batch edit failed: ${error.message}`,\n },\n ],\n isError: true,\n };\n }\n }\n ),\n ],\n});\n"]}
@@ -10,11 +10,12 @@ import { execFileSync } from 'child_process';
10
10
  // execSync with template-string interpolation here.
11
11
  const NPX_EXEC_OPTS = { shell: false };
12
12
  import { logger } from '../../../utils/logger.js';
13
+ import { mcpServerVersion } from '../../../utils/package-version.js';
13
14
  console.error('🚀 Starting FastMCP claude-flow-sdk Server...');
14
15
  // Create server
15
16
  const server = new FastMCP({
16
17
  name: 'claude-flow-sdk',
17
- version: '1.0.0'
18
+ version: mcpServerVersion()
18
19
  });
19
20
  // Tool 1: Memory Store
20
21
  server.addTool({
@@ -1 +1 @@
1
- {"version":3,"file":"claude-flow-sdk.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/claude-flow-sdk.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// FastMCP implementation of claude-flow-sdk server (in-process, 6 tools)\n// Phase 1: Migration from claudeFlowSdkServer.ts to fastmcp\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here.\nconst NPX_EXEC_OPTS = { shell: false as const };\nimport { logger } from '../../../utils/logger.js';\n\nconsole.error('🚀 Starting FastMCP claude-flow-sdk Server...');\n\n// Create server\nconst server = new FastMCP({\n name: 'claude-flow-sdk',\n version: '1.0.0'\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n logger.info('Memory stored successfully', { key });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().positive().optional().default(10).describe('Maximum results to return')\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n results: result.trim(),\n limit,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents'),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced').describe('Agent distribution strategy')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator']).describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities,\n name,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive').describe('Execution strategy'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium').describe('Task priority'),\n maxAgents: z.number().positive().optional().describe('Maximum agents to use for this task')\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\nconsole.error('📦 Registered 6 tools: memory_store, memory_retrieve, memory_search, swarm_init, agent_spawn, task_orchestrate');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP claude-flow-sdk server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
1
+ {"version":3,"file":"claude-flow-sdk.js","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/claude-flow-sdk.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n/* eslint-disable @typescript-eslint/no-explicit-any -- pre-existing catch(error: any) handlers; outside scope of CWE-78 fix */\n// FastMCP implementation of claude-flow-sdk server (in-process, 6 tools)\n// Phase 1: Migration from claudeFlowSdkServer.ts to fastmcp\nimport { FastMCP } from 'fastmcp';\nimport { z } from 'zod';\nimport { execFileSync } from 'child_process';\n\n// Security: All shell-outs use execFileSync with argv arrays (shell: false) to\n// prevent OS command injection via tool parameters (CWE-78). Do NOT reintroduce\n// execSync with template-string interpolation here.\nconst NPX_EXEC_OPTS = { shell: false as const };\nimport { logger } from '../../../utils/logger.js';\nimport { mcpServerVersion } from '../../../utils/package-version.js';\n\nconsole.error('🚀 Starting FastMCP claude-flow-sdk Server...');\n\n// Create server\nconst server = new FastMCP({\n name: 'claude-flow-sdk',\n version: mcpServerVersion()\n});\n\n// Tool 1: Memory Store\nserver.addTool({\n name: 'memory_store',\n description: 'Store a value in persistent memory with optional namespace and TTL',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n value: z.string().describe('Value to store'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n ttl: z.number().positive().optional().describe('Time-to-live in seconds')\n }),\n execute: async ({ key, value, namespace, ttl }) => {\n try {\n logger.info('Storing memory', { key, namespace });\n\n const args = ['claude-flow@alpha', 'memory', 'store', key, value, '--namespace', namespace];\n if (ttl) args.push('--ttl', String(ttl));\n\n execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n logger.info('Memory stored successfully', { key });\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n size: value.length,\n ttl,\n timestamp: new Date().toISOString(),\n message: 'Memory stored successfully'\n }, null, 2);\n } catch (error: any) {\n logger.error('Failed to store memory', { error: error.message });\n throw new Error(`Failed to store memory: ${error.message}`);\n }\n }\n});\n\n// Tool 2: Memory Retrieve\nserver.addTool({\n name: 'memory_retrieve',\n description: 'Retrieve a value from persistent memory',\n parameters: z.object({\n key: z.string().min(1).describe('Memory key'),\n namespace: z.string().optional().default('default').describe('Memory namespace')\n }),\n execute: async ({ key, namespace }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'memory', 'retrieve', key, '--namespace', namespace],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n key,\n namespace,\n value: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to retrieve memory: ${error.message}`);\n }\n }\n});\n\n// Tool 3: Memory Search\nserver.addTool({\n name: 'memory_search',\n description: 'Search for keys matching a pattern in memory',\n parameters: z.object({\n pattern: z.string().min(1).describe('Search pattern (supports wildcards)'),\n namespace: z.string().optional().describe('Memory namespace to search in'),\n limit: z.number().positive().optional().default(10).describe('Maximum results to return')\n }),\n execute: async ({ pattern, namespace, limit }) => {\n try {\n const args = ['claude-flow@alpha', 'memory', 'search', pattern];\n if (namespace) args.push('--namespace', namespace);\n args.push('--limit', String(limit));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n pattern,\n namespace: namespace || 'all',\n results: result.trim(),\n limit,\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to search memory: ${error.message}`);\n }\n }\n});\n\n// Tool 4: Swarm Init\nserver.addTool({\n name: 'swarm_init',\n description: 'Initialize a multi-agent swarm with specified topology',\n parameters: z.object({\n topology: z.enum(['mesh', 'hierarchical', 'ring', 'star']).describe('Swarm topology'),\n maxAgents: z.number().positive().optional().default(8).describe('Maximum number of agents'),\n strategy: z.enum(['balanced', 'specialized', 'adaptive']).optional().default('balanced').describe('Agent distribution strategy')\n }),\n execute: async ({ topology, maxAgents, strategy }) => {\n try {\n const result = execFileSync(\n 'npx',\n ['claude-flow@alpha', 'swarm', 'init', '--topology', topology, '--max-agents', String(maxAgents), '--strategy', strategy],\n { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 }\n );\n\n return JSON.stringify({\n success: true,\n topology,\n maxAgents,\n strategy,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to initialize swarm: ${error.message}`);\n }\n }\n});\n\n// Tool 5: Agent Spawn\nserver.addTool({\n name: 'agent_spawn',\n description: 'Spawn a new agent in the swarm',\n parameters: z.object({\n type: z.enum(['researcher', 'coder', 'analyst', 'optimizer', 'coordinator']).describe('Agent type'),\n capabilities: z.array(z.string()).optional().describe('Agent capabilities'),\n name: z.string().optional().describe('Custom agent name')\n }),\n execute: async ({ type, capabilities, name }) => {\n try {\n const args = ['claude-flow@alpha', 'agent', 'spawn', '--type', type];\n if (capabilities && capabilities.length > 0) args.push('--capabilities', capabilities.join(','));\n if (name) args.push('--name', name);\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n type,\n capabilities,\n name,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to spawn agent: ${error.message}`);\n }\n }\n});\n\n// Tool 6: Task Orchestrate\nserver.addTool({\n name: 'task_orchestrate',\n description: 'Orchestrate a complex task across the swarm',\n parameters: z.object({\n task: z.string().min(1).describe('Task description or instructions'),\n strategy: z.enum(['parallel', 'sequential', 'adaptive']).optional().default('adaptive').describe('Execution strategy'),\n priority: z.enum(['low', 'medium', 'high', 'critical']).optional().default('medium').describe('Task priority'),\n maxAgents: z.number().positive().optional().describe('Maximum agents to use for this task')\n }),\n execute: async ({ task, strategy, priority, maxAgents }) => {\n try {\n const args = ['claude-flow@alpha', 'task', 'orchestrate', task, '--strategy', strategy, '--priority', priority];\n if (maxAgents) args.push('--max-agents', String(maxAgents));\n const result = execFileSync('npx', args, { ...NPX_EXEC_OPTS, encoding: 'utf-8', maxBuffer: 10 * 1024 * 1024 });\n\n return JSON.stringify({\n success: true,\n task,\n strategy,\n priority,\n maxAgents,\n result: result.trim(),\n timestamp: new Date().toISOString()\n }, null, 2);\n } catch (error: any) {\n throw new Error(`Failed to orchestrate task: ${error.message}`);\n }\n }\n});\n\nconsole.error('📦 Registered 6 tools: memory_store, memory_retrieve, memory_search, swarm_init, agent_spawn, task_orchestrate');\nconsole.error('🔌 Starting stdio transport...');\n\n// Start with stdio transport\nserver.start({ transportType: 'stdio' }).then(() => {\n console.error('✅ FastMCP claude-flow-sdk server running on stdio');\n}).catch((error) => {\n console.error('❌ Failed to start server:', error);\n process.exit(1);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"http-sse.d.ts","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-sse.ts"],"names":[],"mappings":";AAyaA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,MAA2E,EACjF,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
1
+ {"version":3,"file":"http-sse.d.ts","sourceRoot":"","sources":["../../../../src/mcp/fastmcp/servers/http-sse.ts"],"names":[],"mappings":";AA0aA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,MAA2E,EACjF,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}