agentic-flow 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/config/claudeFlow.d.ts +1 -1
- package/dist/intelligence/RuVectorIntelligence.d.ts +4 -2
- package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.js +35 -10
- package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +3 -1
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.d.ts +29 -121
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.js +1 -1
- package/dist/mcp/fastmcp/tools/swarm/p2p-swarm-tools.js.map +1 -1
- package/dist/mcp/sdk-tool-schema.d.ts +20 -0
- package/dist/mcp/sdk-tool-schema.d.ts.map +1 -0
- package/dist/mcp/sdk-tool-schema.js +31 -0
- package/dist/mcp/sdk-tool-schema.js.map +1 -0
- package/dist/optimizations/configuration-tuning.d.ts +1 -1
- package/dist/utils/agentdb-runtime-patch.js +2 -2
- package/dist/utils/agentdb-runtime-patch.js.map +1 -1
- package/package.json +9 -6
|
@@ -23,15 +23,7 @@ export declare const p2pSwarmConnectTool: {
|
|
|
23
23
|
agentId: z.ZodOptional<z.ZodString>;
|
|
24
24
|
swarmKey: z.ZodOptional<z.ZodString>;
|
|
25
25
|
enableExecutor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
-
},
|
|
27
|
-
agentId?: string;
|
|
28
|
-
swarmKey?: string;
|
|
29
|
-
enableExecutor?: boolean;
|
|
30
|
-
}, {
|
|
31
|
-
agentId?: string;
|
|
32
|
-
swarmKey?: string;
|
|
33
|
-
enableExecutor?: boolean;
|
|
34
|
-
}>;
|
|
26
|
+
}, z.core.$strip>;
|
|
35
27
|
execute: (params: {
|
|
36
28
|
agentId?: string;
|
|
37
29
|
swarmKey?: string;
|
|
@@ -66,7 +58,7 @@ export declare const p2pSwarmConnectTool: {
|
|
|
66
58
|
export declare const p2pSwarmStatusTool: {
|
|
67
59
|
name: string;
|
|
68
60
|
description: string;
|
|
69
|
-
schema: z.ZodObject<{},
|
|
61
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
70
62
|
execute: () => Promise<{
|
|
71
63
|
success: boolean;
|
|
72
64
|
error: string;
|
|
@@ -99,11 +91,7 @@ export declare const p2pSwarmMembersTool: {
|
|
|
99
91
|
description: string;
|
|
100
92
|
schema: z.ZodObject<{
|
|
101
93
|
includeOffline: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
102
|
-
},
|
|
103
|
-
includeOffline?: boolean;
|
|
104
|
-
}, {
|
|
105
|
-
includeOffline?: boolean;
|
|
106
|
-
}>;
|
|
94
|
+
}, z.core.$strip>;
|
|
107
95
|
execute: (params: {
|
|
108
96
|
includeOffline?: boolean;
|
|
109
97
|
}) => Promise<{
|
|
@@ -133,14 +121,8 @@ export declare const p2pSwarmPublishTool: {
|
|
|
133
121
|
description: string;
|
|
134
122
|
schema: z.ZodObject<{
|
|
135
123
|
topic: z.ZodString;
|
|
136
|
-
payload: z.ZodAny
|
|
137
|
-
},
|
|
138
|
-
topic?: string;
|
|
139
|
-
payload?: any;
|
|
140
|
-
}, {
|
|
141
|
-
topic?: string;
|
|
142
|
-
payload?: any;
|
|
143
|
-
}>;
|
|
124
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
125
|
+
}, z.core.$strip>;
|
|
144
126
|
execute: (params: {
|
|
145
127
|
topic: string;
|
|
146
128
|
payload: any;
|
|
@@ -164,11 +146,7 @@ export declare const p2pSwarmSubscribeTool: {
|
|
|
164
146
|
description: string;
|
|
165
147
|
schema: z.ZodObject<{
|
|
166
148
|
topic: z.ZodString;
|
|
167
|
-
},
|
|
168
|
-
topic?: string;
|
|
169
|
-
}, {
|
|
170
|
-
topic?: string;
|
|
171
|
-
}>;
|
|
149
|
+
}, z.core.$strip>;
|
|
172
150
|
execute: (params: {
|
|
173
151
|
topic: string;
|
|
174
152
|
}) => Promise<{
|
|
@@ -190,12 +168,8 @@ export declare const p2pSwarmSyncQTableTool: {
|
|
|
190
168
|
name: string;
|
|
191
169
|
description: string;
|
|
192
170
|
schema: z.ZodObject<{
|
|
193
|
-
qTable: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
194
|
-
},
|
|
195
|
-
qTable?: number[][];
|
|
196
|
-
}, {
|
|
197
|
-
qTable?: number[][];
|
|
198
|
-
}>;
|
|
171
|
+
qTable: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
172
|
+
}, z.core.$strip>;
|
|
199
173
|
execute: (params: {
|
|
200
174
|
qTable: number[][];
|
|
201
175
|
}) => Promise<{
|
|
@@ -221,15 +195,9 @@ export declare const p2pSwarmSyncMemoryTool: {
|
|
|
221
195
|
name: string;
|
|
222
196
|
description: string;
|
|
223
197
|
schema: z.ZodObject<{
|
|
224
|
-
vectors: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
198
|
+
vectors: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
225
199
|
namespace: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
226
|
-
},
|
|
227
|
-
namespace?: string;
|
|
228
|
-
vectors?: number[][];
|
|
229
|
-
}, {
|
|
230
|
-
namespace?: string;
|
|
231
|
-
vectors?: number[][];
|
|
232
|
-
}>;
|
|
200
|
+
}, z.core.$strip>;
|
|
233
201
|
execute: (params: {
|
|
234
202
|
vectors: number[][];
|
|
235
203
|
namespace?: string;
|
|
@@ -262,21 +230,7 @@ export declare const p2pSwarmSubmitTaskTool: {
|
|
|
262
230
|
fuelLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
263
231
|
memoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
264
232
|
timeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
265
|
-
},
|
|
266
|
-
moduleCID?: string;
|
|
267
|
-
entrypoint?: string;
|
|
268
|
-
inputCID?: string;
|
|
269
|
-
fuelLimit?: number;
|
|
270
|
-
memoryMB?: number;
|
|
271
|
-
timeoutMs?: number;
|
|
272
|
-
}, {
|
|
273
|
-
moduleCID?: string;
|
|
274
|
-
entrypoint?: string;
|
|
275
|
-
inputCID?: string;
|
|
276
|
-
fuelLimit?: number;
|
|
277
|
-
memoryMB?: number;
|
|
278
|
-
timeoutMs?: number;
|
|
279
|
-
}>;
|
|
233
|
+
}, z.core.$strip>;
|
|
280
234
|
execute: (params: {
|
|
281
235
|
moduleCID: string;
|
|
282
236
|
inputCID: string;
|
|
@@ -306,7 +260,7 @@ export declare const p2pSwarmSubmitTaskTool: {
|
|
|
306
260
|
export declare const p2pSwarmStartExecutorTool: {
|
|
307
261
|
name: string;
|
|
308
262
|
description: string;
|
|
309
|
-
schema: z.ZodObject<{},
|
|
263
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
310
264
|
execute: () => Promise<{
|
|
311
265
|
success: boolean;
|
|
312
266
|
error: string;
|
|
@@ -323,7 +277,7 @@ export declare const p2pSwarmStartExecutorTool: {
|
|
|
323
277
|
export declare const p2pSwarmStopExecutorTool: {
|
|
324
278
|
name: string;
|
|
325
279
|
description: string;
|
|
326
|
-
schema: z.ZodObject<{},
|
|
280
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
327
281
|
execute: () => Promise<{
|
|
328
282
|
success: boolean;
|
|
329
283
|
error: string;
|
|
@@ -340,7 +294,7 @@ export declare const p2pSwarmStopExecutorTool: {
|
|
|
340
294
|
export declare const p2pSwarmDisconnectTool: {
|
|
341
295
|
name: string;
|
|
342
296
|
description: string;
|
|
343
|
-
schema: z.ZodObject<{},
|
|
297
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
344
298
|
execute: () => Promise<{
|
|
345
299
|
success: boolean;
|
|
346
300
|
message: string;
|
|
@@ -352,7 +306,7 @@ export declare const p2pSwarmDisconnectTool: {
|
|
|
352
306
|
export declare const p2pSwarmKeygenTool: {
|
|
353
307
|
name: string;
|
|
354
308
|
description: string;
|
|
355
|
-
schema: z.ZodObject<{},
|
|
309
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
356
310
|
execute: () => Promise<{
|
|
357
311
|
success: boolean;
|
|
358
312
|
swarmKey: string;
|
|
@@ -366,15 +320,7 @@ export declare const p2pSwarmTools: ({
|
|
|
366
320
|
agentId: z.ZodOptional<z.ZodString>;
|
|
367
321
|
swarmKey: z.ZodOptional<z.ZodString>;
|
|
368
322
|
enableExecutor: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
369
|
-
},
|
|
370
|
-
agentId?: string;
|
|
371
|
-
swarmKey?: string;
|
|
372
|
-
enableExecutor?: boolean;
|
|
373
|
-
}, {
|
|
374
|
-
agentId?: string;
|
|
375
|
-
swarmKey?: string;
|
|
376
|
-
enableExecutor?: boolean;
|
|
377
|
-
}>;
|
|
323
|
+
}, z.core.$strip>;
|
|
378
324
|
execute: (params: {
|
|
379
325
|
agentId?: string;
|
|
380
326
|
swarmKey?: string;
|
|
@@ -405,7 +351,7 @@ export declare const p2pSwarmTools: ({
|
|
|
405
351
|
} | {
|
|
406
352
|
name: string;
|
|
407
353
|
description: string;
|
|
408
|
-
schema: z.ZodObject<{},
|
|
354
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
409
355
|
execute: () => Promise<{
|
|
410
356
|
success: boolean;
|
|
411
357
|
error: string;
|
|
@@ -434,11 +380,7 @@ export declare const p2pSwarmTools: ({
|
|
|
434
380
|
description: string;
|
|
435
381
|
schema: z.ZodObject<{
|
|
436
382
|
includeOffline: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
437
|
-
},
|
|
438
|
-
includeOffline?: boolean;
|
|
439
|
-
}, {
|
|
440
|
-
includeOffline?: boolean;
|
|
441
|
-
}>;
|
|
383
|
+
}, z.core.$strip>;
|
|
442
384
|
execute: (params: {
|
|
443
385
|
includeOffline?: boolean;
|
|
444
386
|
}) => Promise<{
|
|
@@ -464,14 +406,8 @@ export declare const p2pSwarmTools: ({
|
|
|
464
406
|
description: string;
|
|
465
407
|
schema: z.ZodObject<{
|
|
466
408
|
topic: z.ZodString;
|
|
467
|
-
payload: z.ZodAny
|
|
468
|
-
},
|
|
469
|
-
topic?: string;
|
|
470
|
-
payload?: any;
|
|
471
|
-
}, {
|
|
472
|
-
topic?: string;
|
|
473
|
-
payload?: any;
|
|
474
|
-
}>;
|
|
409
|
+
payload: z.ZodOptional<z.ZodAny>;
|
|
410
|
+
}, z.core.$strip>;
|
|
475
411
|
execute: (params: {
|
|
476
412
|
topic: string;
|
|
477
413
|
payload: any;
|
|
@@ -491,11 +427,7 @@ export declare const p2pSwarmTools: ({
|
|
|
491
427
|
description: string;
|
|
492
428
|
schema: z.ZodObject<{
|
|
493
429
|
topic: z.ZodString;
|
|
494
|
-
},
|
|
495
|
-
topic?: string;
|
|
496
|
-
}, {
|
|
497
|
-
topic?: string;
|
|
498
|
-
}>;
|
|
430
|
+
}, z.core.$strip>;
|
|
499
431
|
execute: (params: {
|
|
500
432
|
topic: string;
|
|
501
433
|
}) => Promise<{
|
|
@@ -513,12 +445,8 @@ export declare const p2pSwarmTools: ({
|
|
|
513
445
|
name: string;
|
|
514
446
|
description: string;
|
|
515
447
|
schema: z.ZodObject<{
|
|
516
|
-
qTable: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
517
|
-
},
|
|
518
|
-
qTable?: number[][];
|
|
519
|
-
}, {
|
|
520
|
-
qTable?: number[][];
|
|
521
|
-
}>;
|
|
448
|
+
qTable: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
449
|
+
}, z.core.$strip>;
|
|
522
450
|
execute: (params: {
|
|
523
451
|
qTable: number[][];
|
|
524
452
|
}) => Promise<{
|
|
@@ -540,15 +468,9 @@ export declare const p2pSwarmTools: ({
|
|
|
540
468
|
name: string;
|
|
541
469
|
description: string;
|
|
542
470
|
schema: z.ZodObject<{
|
|
543
|
-
vectors: z.ZodArray<z.ZodArray<z.ZodNumber
|
|
471
|
+
vectors: z.ZodArray<z.ZodArray<z.ZodNumber>>;
|
|
544
472
|
namespace: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
545
|
-
},
|
|
546
|
-
namespace?: string;
|
|
547
|
-
vectors?: number[][];
|
|
548
|
-
}, {
|
|
549
|
-
namespace?: string;
|
|
550
|
-
vectors?: number[][];
|
|
551
|
-
}>;
|
|
473
|
+
}, z.core.$strip>;
|
|
552
474
|
execute: (params: {
|
|
553
475
|
vectors: number[][];
|
|
554
476
|
namespace?: string;
|
|
@@ -577,21 +499,7 @@ export declare const p2pSwarmTools: ({
|
|
|
577
499
|
fuelLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
578
500
|
memoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
579
501
|
timeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
580
|
-
},
|
|
581
|
-
moduleCID?: string;
|
|
582
|
-
entrypoint?: string;
|
|
583
|
-
inputCID?: string;
|
|
584
|
-
fuelLimit?: number;
|
|
585
|
-
memoryMB?: number;
|
|
586
|
-
timeoutMs?: number;
|
|
587
|
-
}, {
|
|
588
|
-
moduleCID?: string;
|
|
589
|
-
entrypoint?: string;
|
|
590
|
-
inputCID?: string;
|
|
591
|
-
fuelLimit?: number;
|
|
592
|
-
memoryMB?: number;
|
|
593
|
-
timeoutMs?: number;
|
|
594
|
-
}>;
|
|
502
|
+
}, z.core.$strip>;
|
|
595
503
|
execute: (params: {
|
|
596
504
|
moduleCID: string;
|
|
597
505
|
inputCID: string;
|
|
@@ -617,7 +525,7 @@ export declare const p2pSwarmTools: ({
|
|
|
617
525
|
} | {
|
|
618
526
|
name: string;
|
|
619
527
|
description: string;
|
|
620
|
-
schema: z.ZodObject<{},
|
|
528
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
621
529
|
execute: () => Promise<{
|
|
622
530
|
success: boolean;
|
|
623
531
|
error: string;
|
|
@@ -630,7 +538,7 @@ export declare const p2pSwarmTools: ({
|
|
|
630
538
|
} | {
|
|
631
539
|
name: string;
|
|
632
540
|
description: string;
|
|
633
|
-
schema: z.ZodObject<{},
|
|
541
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
634
542
|
execute: () => Promise<{
|
|
635
543
|
success: boolean;
|
|
636
544
|
message: string;
|
|
@@ -638,7 +546,7 @@ export declare const p2pSwarmTools: ({
|
|
|
638
546
|
} | {
|
|
639
547
|
name: string;
|
|
640
548
|
description: string;
|
|
641
|
-
schema: z.ZodObject<{},
|
|
549
|
+
schema: z.ZodObject<{}, z.core.$strip>;
|
|
642
550
|
execute: () => Promise<{
|
|
643
551
|
success: boolean;
|
|
644
552
|
swarmKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-swarm-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAoB,MAAM,mCAAmC,CAAC;AAiBjF;;GAEG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"p2p-swarm-tools.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ export const p2pSwarmPublishTool = {
|
|
|
126
126
|
description: 'Publish a signed and encrypted message to a swarm topic',
|
|
127
127
|
schema: z.object({
|
|
128
128
|
topic: z.string().describe('Topic to publish to'),
|
|
129
|
-
payload: z.any().describe('Message payload (will be JSON serialized)'),
|
|
129
|
+
payload: z.any().optional().describe('Message payload (will be JSON serialized)'),
|
|
130
130
|
}),
|
|
131
131
|
execute: async (params) => {
|
|
132
132
|
if (!swarmInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p-swarm-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAc,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,sCAAsC;AACtC,IAAI,aAAa,GAAsB,IAAI,CAAC;AAE5C;;GAEG;AACH,KAAK,UAAU,QAAQ,CAAC,OAAgB,EAAE,QAAiB;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,OAAO,IAAI,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,aAAa,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,uDAAuD;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC5E,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACvF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAIf,EAAE,EAAE;QACH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE9D,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAEjC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,eAAe,EAAE,MAAM,CAAC,cAAc,IAAI,KAAK;aAChD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QAEnD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,GAAG,MAAM;YACT,WAAW;YACX,eAAe,EAAE,aAAa,CAAC,kBAAkB,EAAE;SACpD,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,yDAAyD;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAC1F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAoC,EAAE,EAAE;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAElF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;YACjD,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;aAC1D,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,yDAAyD;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACjD,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KACvE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAuC,EAAE,EAAE;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS;gBACT,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8DAA8D;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACpD,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAyB,EAAE,EAAE;QAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,8EAA8E;QAC9E,0DAA0D;QAC1D,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACnD,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAM,CAAC,KAAK;YACxB,IAAI,EAAE,0EAA0E;SACjF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,sDAAsD;IACnE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAClE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAA8B,EAAE,EAAE;QAChD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,kCAAkC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACjF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAmD,EAAE,EAAE;QACrE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;YAC9F,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;gBACxC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,yCAAyC;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACjF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC1E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC1E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAOf,EAAE,EAAE;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC;gBAC/C,MAAM;gBACN,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM;gBACvC,gBAAgB,EAAE,EAAE;gBACpB,OAAO,EAAE;oBACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO;oBACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;iBACrC;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,SAAS;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,sDAAsD;IACnE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sDAAsD;aAC9D,CAAC;QACJ,CAAC;QAED,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,6CAA6C;SACvD,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EAAE,wBAAwB;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB;aACjC,CAAC;QACJ,CAAC;QAED,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,wBAAwB;SAClC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,+BAA+B;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0BAA0B;aACpC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,yBAAyB;SACnC,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,mDAAmD;IAChE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,4CAA4C,GAAG,KAAK;SAC5D,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,yBAAyB;IACzB,wBAAwB;IACxB,sBAAsB;IACtB,kBAAkB;CACnB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,UAAU,mBAAmB;IACjC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAoB;IACtD,aAAa,GAAG,QAAQ,CAAC;AAC3B,CAAC","sourcesContent":["/**\n * P2P Swarm V2 MCP Tools\n *\n * Production-grade P2P swarm coordination exposed as MCP tools.\n * Provides decentralized coordination, task execution, and learning sync.\n *\n * Features:\n * - Ed25519/X25519 cryptography\n * - GunDB relay coordination\n * - Task execution with claim resolution\n * - Heartbeat-based liveness\n * - Verified member registry\n */\n\nimport { z } from 'zod';\nimport { P2PSwarmV2, createP2PSwarmV2 } from '../../../../swarm/p2p-swarm-v2.js';\nimport { logger } from '../../../../utils/logger.js';\n\n// Global swarm instance for MCP tools\nlet swarmInstance: P2PSwarmV2 | null = null;\n\n/**\n * Get or create swarm instance\n */\nasync function getSwarm(agentId?: string, swarmKey?: string): Promise<P2PSwarmV2> {\n if (!swarmInstance) {\n const id = agentId || `mcp-agent-${Date.now().toString(36)}`;\n swarmInstance = await createP2PSwarmV2(id, swarmKey);\n }\n return swarmInstance;\n}\n\n/**\n * P2P Swarm Connect Tool\n */\nexport const p2pSwarmConnectTool = {\n name: 'p2p_swarm_connect',\n description: 'Connect to a P2P swarm for decentralized coordination',\n schema: z.object({\n agentId: z.string().optional().describe('Agent ID (auto-generated if not provided)'),\n swarmKey: z.string().optional().describe('Swarm key to join existing swarm'),\n enableExecutor: z.boolean().optional().default(false).describe('Enable task executor'),\n }),\n execute: async (params: {\n agentId?: string;\n swarmKey?: string;\n enableExecutor?: boolean;\n }) => {\n try {\n const swarm = await getSwarm(params.agentId, params.swarmKey);\n\n if (params.enableExecutor) {\n swarm.startTaskExecutor();\n }\n\n const status = swarm.getStatus();\n\n return {\n success: true,\n connected: status.connected,\n agentId: status.agentId,\n swarmId: status.swarmId,\n swarmKey: swarm.getSwarmKey(),\n relays: status.relays,\n executorEnabled: params.enableExecutor || false,\n };\n } catch (error) {\n logger.error('Failed to connect to swarm', { error });\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Status Tool\n */\nexport const p2pSwarmStatusTool = {\n name: 'p2p_swarm_status',\n description: 'Get current P2P swarm status including live members',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const status = swarmInstance.getStatus();\n const liveMembers = swarmInstance.getLiveMembers();\n\n return {\n success: true,\n ...status,\n liveMembers,\n liveMemberCount: swarmInstance.getLiveMemberCount(),\n };\n },\n};\n\n/**\n * P2P Swarm Members Tool\n */\nexport const p2pSwarmMembersTool = {\n name: 'p2p_swarm_members',\n description: 'List swarm members with their capabilities and liveness',\n schema: z.object({\n includeOffline: z.boolean().optional().default(false).describe('Include offline members'),\n }),\n execute: async (params: { includeOffline?: boolean }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const members = swarmInstance.getLiveMembers();\n const filtered = params.includeOffline ? members : members.filter(m => m.isAlive);\n\n return {\n success: true,\n count: filtered.length,\n liveCount: filtered.filter(m => m.isAlive).length,\n members: filtered.map(m => ({\n agentId: m.agentId,\n capabilities: m.capabilities,\n isAlive: m.isAlive,\n lastSeenAgo: Math.round((Date.now() - m.lastSeen) / 1000),\n })),\n };\n },\n};\n\n/**\n * P2P Swarm Publish Tool\n */\nexport const p2pSwarmPublishTool = {\n name: 'p2p_swarm_publish',\n description: 'Publish a signed and encrypted message to a swarm topic',\n schema: z.object({\n topic: z.string().describe('Topic to publish to'),\n payload: z.any().describe('Message payload (will be JSON serialized)'),\n }),\n execute: async (params: { topic: string; payload: any }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const messageId = await swarmInstance.publish(params.topic, params.payload);\n return {\n success: true,\n messageId,\n topic: params.topic,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Subscribe Tool\n */\nexport const p2pSwarmSubscribeTool = {\n name: 'p2p_swarm_subscribe',\n description: 'Subscribe to a swarm topic (messages delivered via callback)',\n schema: z.object({\n topic: z.string().describe('Topic to subscribe to'),\n }),\n execute: async (params: { topic: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n // Note: In MCP context, we return success but messages are handled internally\n // For real-time messages, use the streaming MCP transport\n swarmInstance.subscribe(params.topic, (data, from) => {\n logger.info('Swarm message received', { topic: params.topic, from, data });\n });\n\n return {\n success: true,\n subscribed: params.topic,\n note: 'Messages will be logged. Use streaming transport for real-time delivery.',\n };\n },\n};\n\n/**\n * P2P Swarm Sync Q-Table Tool\n */\nexport const p2pSwarmSyncQTableTool = {\n name: 'p2p_swarm_sync_qtable',\n description: 'Sync a Q-table to the swarm for distributed learning',\n schema: z.object({\n qTable: z.array(z.array(z.number())).describe('2D array Q-table'),\n }),\n execute: async (params: { qTable: number[][] }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncQTable(params.qTable);\n return {\n success: true,\n cid: pointer.cid,\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n timestamp: pointer.timestamp,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Sync Memory Tool\n */\nexport const p2pSwarmSyncMemoryTool = {\n name: 'p2p_swarm_sync_memory',\n description: 'Sync memory vectors to the swarm',\n schema: z.object({\n vectors: z.array(z.array(z.number())).describe('2D array of vectors'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n }),\n execute: async (params: { vectors: number[][]; namespace?: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncMemory(params.vectors, params.namespace || 'default');\n return {\n success: true,\n cid: pointer.cid,\n namespace: params.namespace || 'default',\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Submit Task Tool\n */\nexport const p2pSwarmSubmitTaskTool = {\n name: 'p2p_swarm_submit_task',\n description: 'Submit a task for distributed execution',\n schema: z.object({\n moduleCID: z.string().describe('CID of WASM module'),\n inputCID: z.string().describe('CID of input data'),\n entrypoint: z.string().optional().default('main').describe('Entrypoint function'),\n fuelLimit: z.number().optional().default(1000000).describe('Fuel limit'),\n memoryMB: z.number().optional().default(64).describe('Memory limit in MB'),\n timeoutMs: z.number().optional().default(30000).describe('Timeout in ms'),\n }),\n execute: async (params: {\n moduleCID: string;\n inputCID: string;\n entrypoint?: string;\n fuelLimit?: number;\n memoryMB?: number;\n timeoutMs?: number;\n }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const taskId = `task-${Date.now().toString(36)}`;\n const messageId = await swarmInstance.submitTask({\n taskId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n entrypoint: params.entrypoint || 'main',\n outputSchemaHash: '',\n budgets: {\n fuelLimit: params.fuelLimit || 1000000,\n memoryMB: params.memoryMB || 64,\n timeoutMs: params.timeoutMs || 30000,\n },\n });\n\n return {\n success: true,\n taskId,\n messageId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Start Executor Tool\n */\nexport const p2pSwarmStartExecutorTool = {\n name: 'p2p_swarm_start_executor',\n description: 'Start the task executor to process distributed tasks',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n swarmInstance.startTaskExecutor();\n return {\n success: true,\n message: 'Task executor started. Listening for tasks.',\n };\n },\n};\n\n/**\n * P2P Swarm Stop Executor Tool\n */\nexport const p2pSwarmStopExecutorTool = {\n name: 'p2p_swarm_stop_executor',\n description: 'Stop the task executor',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm.',\n };\n }\n\n swarmInstance.stopTaskExecutor();\n return {\n success: true,\n message: 'Task executor stopped.',\n };\n },\n};\n\n/**\n * P2P Swarm Disconnect Tool\n */\nexport const p2pSwarmDisconnectTool = {\n name: 'p2p_swarm_disconnect',\n description: 'Disconnect from the P2P swarm',\n schema: z.object({}),\n execute: async () => {\n if (swarmInstance) {\n swarmInstance.disconnect();\n swarmInstance = null;\n return {\n success: true,\n message: 'Disconnected from swarm.',\n };\n }\n return {\n success: true,\n message: 'Not connected to swarm.',\n };\n },\n};\n\n/**\n * P2P Swarm Keygen Tool\n */\nexport const p2pSwarmKeygenTool = {\n name: 'p2p_swarm_keygen',\n description: 'Generate a new swarm key for creating a new swarm',\n schema: z.object({}),\n execute: async () => {\n const crypto = await import('crypto');\n const key = crypto.randomBytes(32).toString('base64');\n return {\n success: true,\n swarmKey: key,\n usage: `Use with p2p_swarm_connect: { swarmKey: \"${key}\" }`,\n };\n },\n};\n\n// Export all tools as array for MCP registration\nexport const p2pSwarmTools = [\n p2pSwarmConnectTool,\n p2pSwarmStatusTool,\n p2pSwarmMembersTool,\n p2pSwarmPublishTool,\n p2pSwarmSubscribeTool,\n p2pSwarmSyncQTableTool,\n p2pSwarmSyncMemoryTool,\n p2pSwarmSubmitTaskTool,\n p2pSwarmStartExecutorTool,\n p2pSwarmStopExecutorTool,\n p2pSwarmDisconnectTool,\n p2pSwarmKeygenTool,\n];\n\n// Export singleton accessor\nexport function getP2PSwarmInstance(): P2PSwarmV2 | null {\n return swarmInstance;\n}\n\nexport function setP2PSwarmInstance(instance: P2PSwarmV2): void {\n swarmInstance = instance;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"p2p-swarm-tools.js","sourceRoot":"","sources":["../../../../../src/mcp/fastmcp/tools/swarm/p2p-swarm-tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * P2P Swarm V2 MCP Tools\n *\n * Production-grade P2P swarm coordination exposed as MCP tools.\n * Provides decentralized coordination, task execution, and learning sync.\n *\n * Features:\n * - Ed25519/X25519 cryptography\n * - GunDB relay coordination\n * - Task execution with claim resolution\n * - Heartbeat-based liveness\n * - Verified member registry\n */\n\nimport { z } from 'zod';\nimport { P2PSwarmV2, createP2PSwarmV2 } from '../../../../swarm/p2p-swarm-v2.js';\nimport { logger } from '../../../../utils/logger.js';\n\n// Global swarm instance for MCP tools\nlet swarmInstance: P2PSwarmV2 | null = null;\n\n/**\n * Get or create swarm instance\n */\nasync function getSwarm(agentId?: string, swarmKey?: string): Promise<P2PSwarmV2> {\n if (!swarmInstance) {\n const id = agentId || `mcp-agent-${Date.now().toString(36)}`;\n swarmInstance = await createP2PSwarmV2(id, swarmKey);\n }\n return swarmInstance;\n}\n\n/**\n * P2P Swarm Connect Tool\n */\nexport const p2pSwarmConnectTool = {\n name: 'p2p_swarm_connect',\n description: 'Connect to a P2P swarm for decentralized coordination',\n schema: z.object({\n agentId: z.string().optional().describe('Agent ID (auto-generated if not provided)'),\n swarmKey: z.string().optional().describe('Swarm key to join existing swarm'),\n enableExecutor: z.boolean().optional().default(false).describe('Enable task executor'),\n }),\n execute: async (params: {\n agentId?: string;\n swarmKey?: string;\n enableExecutor?: boolean;\n }) => {\n try {\n const swarm = await getSwarm(params.agentId, params.swarmKey);\n\n if (params.enableExecutor) {\n swarm.startTaskExecutor();\n }\n\n const status = swarm.getStatus();\n\n return {\n success: true,\n connected: status.connected,\n agentId: status.agentId,\n swarmId: status.swarmId,\n swarmKey: swarm.getSwarmKey(),\n relays: status.relays,\n executorEnabled: params.enableExecutor || false,\n };\n } catch (error) {\n logger.error('Failed to connect to swarm', { error });\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Status Tool\n */\nexport const p2pSwarmStatusTool = {\n name: 'p2p_swarm_status',\n description: 'Get current P2P swarm status including live members',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const status = swarmInstance.getStatus();\n const liveMembers = swarmInstance.getLiveMembers();\n\n return {\n success: true,\n ...status,\n liveMembers,\n liveMemberCount: swarmInstance.getLiveMemberCount(),\n };\n },\n};\n\n/**\n * P2P Swarm Members Tool\n */\nexport const p2pSwarmMembersTool = {\n name: 'p2p_swarm_members',\n description: 'List swarm members with their capabilities and liveness',\n schema: z.object({\n includeOffline: z.boolean().optional().default(false).describe('Include offline members'),\n }),\n execute: async (params: { includeOffline?: boolean }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n const members = swarmInstance.getLiveMembers();\n const filtered = params.includeOffline ? members : members.filter(m => m.isAlive);\n\n return {\n success: true,\n count: filtered.length,\n liveCount: filtered.filter(m => m.isAlive).length,\n members: filtered.map(m => ({\n agentId: m.agentId,\n capabilities: m.capabilities,\n isAlive: m.isAlive,\n lastSeenAgo: Math.round((Date.now() - m.lastSeen) / 1000),\n })),\n };\n },\n};\n\n/**\n * P2P Swarm Publish Tool\n */\nexport const p2pSwarmPublishTool = {\n name: 'p2p_swarm_publish',\n description: 'Publish a signed and encrypted message to a swarm topic',\n schema: z.object({\n topic: z.string().describe('Topic to publish to'),\n payload: z.any().optional().describe('Message payload (will be JSON serialized)'),\n }),\n execute: async (params: { topic: string; payload: any }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const messageId = await swarmInstance.publish(params.topic, params.payload);\n return {\n success: true,\n messageId,\n topic: params.topic,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Subscribe Tool\n */\nexport const p2pSwarmSubscribeTool = {\n name: 'p2p_swarm_subscribe',\n description: 'Subscribe to a swarm topic (messages delivered via callback)',\n schema: z.object({\n topic: z.string().describe('Topic to subscribe to'),\n }),\n execute: async (params: { topic: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n // Note: In MCP context, we return success but messages are handled internally\n // For real-time messages, use the streaming MCP transport\n swarmInstance.subscribe(params.topic, (data, from) => {\n logger.info('Swarm message received', { topic: params.topic, from, data });\n });\n\n return {\n success: true,\n subscribed: params.topic,\n note: 'Messages will be logged. Use streaming transport for real-time delivery.',\n };\n },\n};\n\n/**\n * P2P Swarm Sync Q-Table Tool\n */\nexport const p2pSwarmSyncQTableTool = {\n name: 'p2p_swarm_sync_qtable',\n description: 'Sync a Q-table to the swarm for distributed learning',\n schema: z.object({\n qTable: z.array(z.array(z.number())).describe('2D array Q-table'),\n }),\n execute: async (params: { qTable: number[][] }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncQTable(params.qTable);\n return {\n success: true,\n cid: pointer.cid,\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n timestamp: pointer.timestamp,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Sync Memory Tool\n */\nexport const p2pSwarmSyncMemoryTool = {\n name: 'p2p_swarm_sync_memory',\n description: 'Sync memory vectors to the swarm',\n schema: z.object({\n vectors: z.array(z.array(z.number())).describe('2D array of vectors'),\n namespace: z.string().optional().default('default').describe('Memory namespace'),\n }),\n execute: async (params: { vectors: number[][]; namespace?: string }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const pointer = await swarmInstance.syncMemory(params.vectors, params.namespace || 'default');\n return {\n success: true,\n cid: pointer.cid,\n namespace: params.namespace || 'default',\n dimensions: pointer.dimensions,\n checksum: pointer.checksum,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Submit Task Tool\n */\nexport const p2pSwarmSubmitTaskTool = {\n name: 'p2p_swarm_submit_task',\n description: 'Submit a task for distributed execution',\n schema: z.object({\n moduleCID: z.string().describe('CID of WASM module'),\n inputCID: z.string().describe('CID of input data'),\n entrypoint: z.string().optional().default('main').describe('Entrypoint function'),\n fuelLimit: z.number().optional().default(1000000).describe('Fuel limit'),\n memoryMB: z.number().optional().default(64).describe('Memory limit in MB'),\n timeoutMs: z.number().optional().default(30000).describe('Timeout in ms'),\n }),\n execute: async (params: {\n moduleCID: string;\n inputCID: string;\n entrypoint?: string;\n fuelLimit?: number;\n memoryMB?: number;\n timeoutMs?: number;\n }) => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n try {\n const taskId = `task-${Date.now().toString(36)}`;\n const messageId = await swarmInstance.submitTask({\n taskId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n entrypoint: params.entrypoint || 'main',\n outputSchemaHash: '',\n budgets: {\n fuelLimit: params.fuelLimit || 1000000,\n memoryMB: params.memoryMB || 64,\n timeoutMs: params.timeoutMs || 30000,\n },\n });\n\n return {\n success: true,\n taskId,\n messageId,\n moduleCID: params.moduleCID,\n inputCID: params.inputCID,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n};\n\n/**\n * P2P Swarm Start Executor Tool\n */\nexport const p2pSwarmStartExecutorTool = {\n name: 'p2p_swarm_start_executor',\n description: 'Start the task executor to process distributed tasks',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm. Use p2p_swarm_connect first.',\n };\n }\n\n swarmInstance.startTaskExecutor();\n return {\n success: true,\n message: 'Task executor started. Listening for tasks.',\n };\n },\n};\n\n/**\n * P2P Swarm Stop Executor Tool\n */\nexport const p2pSwarmStopExecutorTool = {\n name: 'p2p_swarm_stop_executor',\n description: 'Stop the task executor',\n schema: z.object({}),\n execute: async () => {\n if (!swarmInstance) {\n return {\n success: false,\n error: 'Not connected to swarm.',\n };\n }\n\n swarmInstance.stopTaskExecutor();\n return {\n success: true,\n message: 'Task executor stopped.',\n };\n },\n};\n\n/**\n * P2P Swarm Disconnect Tool\n */\nexport const p2pSwarmDisconnectTool = {\n name: 'p2p_swarm_disconnect',\n description: 'Disconnect from the P2P swarm',\n schema: z.object({}),\n execute: async () => {\n if (swarmInstance) {\n swarmInstance.disconnect();\n swarmInstance = null;\n return {\n success: true,\n message: 'Disconnected from swarm.',\n };\n }\n return {\n success: true,\n message: 'Not connected to swarm.',\n };\n },\n};\n\n/**\n * P2P Swarm Keygen Tool\n */\nexport const p2pSwarmKeygenTool = {\n name: 'p2p_swarm_keygen',\n description: 'Generate a new swarm key for creating a new swarm',\n schema: z.object({}),\n execute: async () => {\n const crypto = await import('crypto');\n const key = crypto.randomBytes(32).toString('base64');\n return {\n success: true,\n swarmKey: key,\n usage: `Use with p2p_swarm_connect: { swarmKey: \"${key}\" }`,\n };\n },\n};\n\n// Export all tools as array for MCP registration\nexport const p2pSwarmTools = [\n p2pSwarmConnectTool,\n p2pSwarmStatusTool,\n p2pSwarmMembersTool,\n p2pSwarmPublishTool,\n p2pSwarmSubscribeTool,\n p2pSwarmSyncQTableTool,\n p2pSwarmSyncMemoryTool,\n p2pSwarmSubmitTaskTool,\n p2pSwarmStartExecutorTool,\n p2pSwarmStopExecutorTool,\n p2pSwarmDisconnectTool,\n p2pSwarmKeygenTool,\n];\n\n// Export singleton accessor\nexport function getP2PSwarmInstance(): P2PSwarmV2 | null {\n return swarmInstance;\n}\n\nexport function setP2PSwarmInstance(instance: P2PSwarmV2): void {\n swarmInstance = instance;\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Keep `.describe()` text visible in tool schemas served through
|
|
4
|
+
* `@anthropic-ai/claude-agent-sdk` 0.1.x.
|
|
5
|
+
*
|
|
6
|
+
* That SDK bundles its own copy of zod 4 core with a private metadata
|
|
7
|
+
* registry. Zod 4 stores descriptions in a registry (not on the schema), so
|
|
8
|
+
* the SDK's JSON Schema generator cannot see descriptions written by this
|
|
9
|
+
* package's zod and every tool parameter loses its description. Zod's
|
|
10
|
+
* generator consults `_zod.toJSONSchema` before anything else, so each
|
|
11
|
+
* field's schema is rendered here, by the zod that owns the registry, and
|
|
12
|
+
* pinned through that override on a detached clone (no `_zod.parent`, so the
|
|
13
|
+
* generator never walks back to the described original). The caller's schemas
|
|
14
|
+
* are not touched, and validation is unchanged: the clone shares the
|
|
15
|
+
* original's definition, checks and defaults.
|
|
16
|
+
*
|
|
17
|
+
* Remove once the SDK shares zod's global registry (0.3.x does).
|
|
18
|
+
*/
|
|
19
|
+
export declare function withPortableDescriptions<T extends z.ZodRawShape>(shape: T): T;
|
|
20
|
+
//# sourceMappingURL=sdk-tool-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-tool-schema.d.ts","sourceRoot":"","sources":["../../src/mcp/sdk-tool-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAc7E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Keep `.describe()` text visible in tool schemas served through
|
|
4
|
+
* `@anthropic-ai/claude-agent-sdk` 0.1.x.
|
|
5
|
+
*
|
|
6
|
+
* That SDK bundles its own copy of zod 4 core with a private metadata
|
|
7
|
+
* registry. Zod 4 stores descriptions in a registry (not on the schema), so
|
|
8
|
+
* the SDK's JSON Schema generator cannot see descriptions written by this
|
|
9
|
+
* package's zod and every tool parameter loses its description. Zod's
|
|
10
|
+
* generator consults `_zod.toJSONSchema` before anything else, so each
|
|
11
|
+
* field's schema is rendered here, by the zod that owns the registry, and
|
|
12
|
+
* pinned through that override on a detached clone (no `_zod.parent`, so the
|
|
13
|
+
* generator never walks back to the described original). The caller's schemas
|
|
14
|
+
* are not touched, and validation is unchanged: the clone shares the
|
|
15
|
+
* original's definition, checks and defaults.
|
|
16
|
+
*
|
|
17
|
+
* Remove once the SDK shares zod's global registry (0.3.x does).
|
|
18
|
+
*/
|
|
19
|
+
export function withPortableDescriptions(shape) {
|
|
20
|
+
const portable = {};
|
|
21
|
+
for (const [key, field] of Object.entries(shape)) {
|
|
22
|
+
const json = z.toJSONSchema(field, { target: 'draft-7', io: 'input', unrepresentable: 'any' });
|
|
23
|
+
delete json.$schema;
|
|
24
|
+
const detached = z.core.clone(field);
|
|
25
|
+
delete detached._zod.parent;
|
|
26
|
+
detached._zod.toJSONSchema = () => json;
|
|
27
|
+
portable[key] = detached;
|
|
28
|
+
}
|
|
29
|
+
return portable;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sdk-tool-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-tool-schema.js","sourceRoot":"","sources":["../../src/mcp/sdk-tool-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,wBAAwB,CAA0B,KAAQ;IACxE,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAG5F,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,QAAwB,CAAC;AAClC,CAAC","sourcesContent":["import { z } from 'zod';\n\n/**\n * Keep `.describe()` text visible in tool schemas served through\n * `@anthropic-ai/claude-agent-sdk` 0.1.x.\n *\n * That SDK bundles its own copy of zod 4 core with a private metadata\n * registry. Zod 4 stores descriptions in a registry (not on the schema), so\n * the SDK's JSON Schema generator cannot see descriptions written by this\n * package's zod and every tool parameter loses its description. Zod's\n * generator consults `_zod.toJSONSchema` before anything else, so each\n * field's schema is rendered here, by the zod that owns the registry, and\n * pinned through that override on a detached clone (no `_zod.parent`, so the\n * generator never walks back to the described original). The caller's schemas\n * are not touched, and validation is unchanged: the clone shares the\n * original's definition, checks and defaults.\n *\n * Remove once the SDK shares zod's global registry (0.3.x does).\n */\nexport function withPortableDescriptions<T extends z.ZodRawShape>(shape: T): T {\n const portable: Record<string, z.core.$ZodType> = {};\n for (const [key, field] of Object.entries(shape)) {\n const json = z.toJSONSchema(field, { target: 'draft-7', io: 'input', unrepresentable: 'any' }) as Record<\n string,\n unknown\n >;\n delete json.$schema;\n const detached = z.core.clone(field);\n delete detached._zod.parent;\n detached._zod.toJSONSchema = () => json;\n portable[key] = detached;\n }\n return portable as unknown as T;\n}\n"]}
|
|
@@ -122,7 +122,7 @@ export declare class ConfigurationTuning {
|
|
|
122
122
|
entries: number;
|
|
123
123
|
};
|
|
124
124
|
topology: {
|
|
125
|
-
mode: "
|
|
125
|
+
mode: "auto" | "mesh" | "hierarchical" | "ring" | "star";
|
|
126
126
|
changes: number;
|
|
127
127
|
improvement: string;
|
|
128
128
|
};
|
|
@@ -29,7 +29,7 @@ export function applyAgentDBPatch() {
|
|
|
29
29
|
console.warn('[AgentDB Patch] Could not locate agentdb installation');
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
32
|
-
const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');
|
|
32
|
+
const controllerIndexPath = join(agentdbPath, 'dist', 'src', 'controllers', 'index.js');
|
|
33
33
|
if (!existsSync(controllerIndexPath)) {
|
|
34
34
|
console.warn(`[AgentDB Patch] Controller index not found: ${controllerIndexPath}`);
|
|
35
35
|
return false;
|
|
@@ -143,7 +143,7 @@ export function isAgentDBPatchNeeded() {
|
|
|
143
143
|
const agentdbPath = findAgentDBPath();
|
|
144
144
|
if (!agentdbPath)
|
|
145
145
|
return false;
|
|
146
|
-
const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');
|
|
146
|
+
const controllerIndexPath = join(agentdbPath, 'dist', 'src', 'controllers', 'index.js');
|
|
147
147
|
if (!existsSync(controllerIndexPath))
|
|
148
148
|
return false;
|
|
149
149
|
const content = readFileSync(controllerIndexPath, 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentdb-runtime-patch.js","sourceRoot":"","sources":["../../src/utils/agentdb-runtime-patch.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentDB Runtime Patch\n *\n * Automatically fixes AgentDB v1.3.9 import resolution issues at runtime.\n * This patch works in all contexts: npm install, npm install -g, and npx.\n *\n * Issue: agentdb v1.3.9 missing .js extensions in ESM exports\n * Solution: Patch the controller index.js file at runtime before first import\n */\n\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nlet patched = false;\nlet patchAttempted = false;\n\n/**\n * Apply AgentDB import fix at runtime\n * Safe to call multiple times - only patches once\n */\nexport function applyAgentDBPatch(): boolean {\n // Only attempt once per process\n if (patchAttempted) {\n return patched;\n }\n patchAttempted = true;\n\n try {\n // Find agentdb installation\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) {\n console.warn('[AgentDB Patch] Could not locate agentdb installation');\n return false;\n }\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');\n\n if (!existsSync(controllerIndexPath)) {\n console.warn(`[AgentDB Patch] Controller index not found: ${controllerIndexPath}`);\n return false;\n }\n\n // Read current content\n let content = readFileSync(controllerIndexPath, 'utf8');\n\n // Check if already patched\n if (content.includes(\"from './ReflexionMemory.js'\")) {\n patched = true;\n return true;\n }\n\n // Apply patches\n const patches = [\n { from: \"from './ReflexionMemory'\", to: \"from './ReflexionMemory.js'\" },\n { from: \"from './SkillLibrary'\", to: \"from './SkillLibrary.js'\" },\n { from: \"from './EmbeddingService'\", to: \"from './EmbeddingService.js'\" },\n { from: \"from './CausalMemoryGraph'\", to: \"from './CausalMemoryGraph.js'\" },\n { from: \"from './CausalRecall'\", to: \"from './CausalRecall.js'\" },\n { from: \"from './NightlyLearner'\", to: \"from './NightlyLearner.js'\" }\n ];\n\n let modified = false;\n for (const patch of patches) {\n if (content.includes(patch.from) && !content.includes(patch.to)) {\n content = content.replace(new RegExp(patch.from, 'g'), patch.to);\n modified = true;\n }\n }\n\n if (modified) {\n try {\n writeFileSync(controllerIndexPath, content, 'utf8');\n patched = true;\n console.log('[AgentDB Patch] ✅ Successfully patched AgentDB imports');\n return true;\n } catch (writeError: any) {\n // If we can't write (npx temp dir permissions), that's OK - imports will fail gracefully\n console.warn('[AgentDB Patch] ⚠️ Could not write patch (read-only):', writeError.message);\n return false;\n }\n }\n\n return false;\n } catch (error: any) {\n console.warn('[AgentDB Patch] Error applying patch:', error.message);\n return false;\n }\n}\n\n/**\n * Find AgentDB installation directory\n * Checks multiple possible locations\n */\nfunction findAgentDBPath(): string | null {\n const possiblePaths = [\n // Local node_modules (most common)\n join(process.cwd(), 'node_modules', 'agentdb'),\n\n // Parent directory node_modules (monorepo)\n join(process.cwd(), '..', 'node_modules', 'agentdb'),\n\n // Global npm installation\n join(process.execPath, '..', '..', 'lib', 'node_modules', 'agentdb'),\n\n // Relative to this file (for bundled installations)\n ...(typeof __dirname !== 'undefined'\n ? [\n join(__dirname, '..', '..', 'node_modules', 'agentdb'),\n join(__dirname, '..', '..', '..', 'agentdb')\n ]\n : []),\n\n // Using import.meta.url (ESM)\n ...(typeof import.meta !== 'undefined' && import.meta.url\n ? (() => {\n try {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n return [\n join(currentDir, '..', '..', 'node_modules', 'agentdb'),\n join(currentDir, '..', '..', '..', 'agentdb')\n ];\n } catch {\n return [];\n }\n })()\n : [])\n ];\n\n // Try each path\n for (const path of possiblePaths) {\n if (existsSync(join(path, 'package.json'))) {\n try {\n const pkg = JSON.parse(readFileSync(join(path, 'package.json'), 'utf8'));\n if (pkg.name === 'agentdb') {\n return path;\n }\n } catch {\n continue;\n }\n }\n }\n\n // Try require.resolve as fallback\n try {\n const resolved = require.resolve('agentdb/package.json');\n return dirname(resolved);\n } catch {\n // Not found via require.resolve\n }\n\n return null;\n}\n\n/**\n * Check if AgentDB patch is needed\n */\nexport function isAgentDBPatchNeeded(): boolean {\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) return false;\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'controllers', 'index.js');\n if (!existsSync(controllerIndexPath)) return false;\n\n const content = readFileSync(controllerIndexPath, 'utf8');\n return !content.includes(\"from './ReflexionMemory.js'\");\n}\n\n/**\n * Get patch status information\n */\nexport function getAgentDBPatchStatus(): {\n needed: boolean;\n applied: boolean;\n attempted: boolean;\n location: string | null;\n} {\n return {\n needed: isAgentDBPatchNeeded(),\n applied: patched,\n attempted: patchAttempted,\n location: findAgentDBPath()\n };\n}\n\n// Auto-apply patch on module load (SYNCHRONOUS - must happen before any AgentDB imports)\n// This ensures the patch is applied before any imports\nif (typeof process !== 'undefined' && !process.env.SKIP_AGENTDB_PATCH) {\n // MUST be synchronous - async won't work because imports happen immediately\n try {\n applyAgentDBPatch();\n } catch (error) {\n // Silently fail - patch will be attempted again on explicit call\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agentdb-runtime-patch.js","sourceRoot":"","sources":["../../src/utils/agentdb-runtime-patch.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AgentDB Runtime Patch\n *\n * Automatically fixes AgentDB v1.3.9 import resolution issues at runtime.\n * This patch works in all contexts: npm install, npm install -g, and npx.\n *\n * Issue: agentdb v1.3.9 missing .js extensions in ESM exports\n * Solution: Patch the controller index.js file at runtime before first import\n */\n\nimport { readFileSync, writeFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nlet patched = false;\nlet patchAttempted = false;\n\n/**\n * Apply AgentDB import fix at runtime\n * Safe to call multiple times - only patches once\n */\nexport function applyAgentDBPatch(): boolean {\n // Only attempt once per process\n if (patchAttempted) {\n return patched;\n }\n patchAttempted = true;\n\n try {\n // Find agentdb installation\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) {\n console.warn('[AgentDB Patch] Could not locate agentdb installation');\n return false;\n }\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'src', 'controllers', 'index.js');\n\n if (!existsSync(controllerIndexPath)) {\n console.warn(`[AgentDB Patch] Controller index not found: ${controllerIndexPath}`);\n return false;\n }\n\n // Read current content\n let content = readFileSync(controllerIndexPath, 'utf8');\n\n // Check if already patched\n if (content.includes(\"from './ReflexionMemory.js'\")) {\n patched = true;\n return true;\n }\n\n // Apply patches\n const patches = [\n { from: \"from './ReflexionMemory'\", to: \"from './ReflexionMemory.js'\" },\n { from: \"from './SkillLibrary'\", to: \"from './SkillLibrary.js'\" },\n { from: \"from './EmbeddingService'\", to: \"from './EmbeddingService.js'\" },\n { from: \"from './CausalMemoryGraph'\", to: \"from './CausalMemoryGraph.js'\" },\n { from: \"from './CausalRecall'\", to: \"from './CausalRecall.js'\" },\n { from: \"from './NightlyLearner'\", to: \"from './NightlyLearner.js'\" }\n ];\n\n let modified = false;\n for (const patch of patches) {\n if (content.includes(patch.from) && !content.includes(patch.to)) {\n content = content.replace(new RegExp(patch.from, 'g'), patch.to);\n modified = true;\n }\n }\n\n if (modified) {\n try {\n writeFileSync(controllerIndexPath, content, 'utf8');\n patched = true;\n console.log('[AgentDB Patch] ✅ Successfully patched AgentDB imports');\n return true;\n } catch (writeError: any) {\n // If we can't write (npx temp dir permissions), that's OK - imports will fail gracefully\n console.warn('[AgentDB Patch] ⚠️ Could not write patch (read-only):', writeError.message);\n return false;\n }\n }\n\n return false;\n } catch (error: any) {\n console.warn('[AgentDB Patch] Error applying patch:', error.message);\n return false;\n }\n}\n\n/**\n * Find AgentDB installation directory\n * Checks multiple possible locations\n */\nfunction findAgentDBPath(): string | null {\n const possiblePaths = [\n // Local node_modules (most common)\n join(process.cwd(), 'node_modules', 'agentdb'),\n\n // Parent directory node_modules (monorepo)\n join(process.cwd(), '..', 'node_modules', 'agentdb'),\n\n // Global npm installation\n join(process.execPath, '..', '..', 'lib', 'node_modules', 'agentdb'),\n\n // Relative to this file (for bundled installations)\n ...(typeof __dirname !== 'undefined'\n ? [\n join(__dirname, '..', '..', 'node_modules', 'agentdb'),\n join(__dirname, '..', '..', '..', 'agentdb')\n ]\n : []),\n\n // Using import.meta.url (ESM)\n ...(typeof import.meta !== 'undefined' && import.meta.url\n ? (() => {\n try {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n return [\n join(currentDir, '..', '..', 'node_modules', 'agentdb'),\n join(currentDir, '..', '..', '..', 'agentdb')\n ];\n } catch {\n return [];\n }\n })()\n : [])\n ];\n\n // Try each path\n for (const path of possiblePaths) {\n if (existsSync(join(path, 'package.json'))) {\n try {\n const pkg = JSON.parse(readFileSync(join(path, 'package.json'), 'utf8'));\n if (pkg.name === 'agentdb') {\n return path;\n }\n } catch {\n continue;\n }\n }\n }\n\n // Try require.resolve as fallback\n try {\n const resolved = require.resolve('agentdb/package.json');\n return dirname(resolved);\n } catch {\n // Not found via require.resolve\n }\n\n return null;\n}\n\n/**\n * Check if AgentDB patch is needed\n */\nexport function isAgentDBPatchNeeded(): boolean {\n const agentdbPath = findAgentDBPath();\n if (!agentdbPath) return false;\n\n const controllerIndexPath = join(agentdbPath, 'dist', 'src', 'controllers', 'index.js');\n if (!existsSync(controllerIndexPath)) return false;\n\n const content = readFileSync(controllerIndexPath, 'utf8');\n return !content.includes(\"from './ReflexionMemory.js'\");\n}\n\n/**\n * Get patch status information\n */\nexport function getAgentDBPatchStatus(): {\n needed: boolean;\n applied: boolean;\n attempted: boolean;\n location: string | null;\n} {\n return {\n needed: isAgentDBPatchNeeded(),\n applied: patched,\n attempted: patchAttempted,\n location: findAgentDBPath()\n };\n}\n\n// Auto-apply patch on module load (SYNCHRONOUS - must happen before any AgentDB imports)\n// This ensures the patch is applied before any imports\nif (typeof process !== 'undefined' && !process.env.SKIP_AGENTDB_PATCH) {\n // MUST be synchronous - async won't work because imports happen immediately\n try {\n applyAgentDBPatch();\n } catch (error) {\n // Silently fail - patch will be attempted again on explicit call\n }\n}\n"]}
|