network-ai 3.0.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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/QUICKSTART.md +260 -0
  3. package/README.md +604 -0
  4. package/SKILL.md +568 -0
  5. package/dist/adapters/adapter-registry.d.ts +94 -0
  6. package/dist/adapters/adapter-registry.d.ts.map +1 -0
  7. package/dist/adapters/adapter-registry.js +355 -0
  8. package/dist/adapters/adapter-registry.js.map +1 -0
  9. package/dist/adapters/agno-adapter.d.ts +112 -0
  10. package/dist/adapters/agno-adapter.d.ts.map +1 -0
  11. package/dist/adapters/agno-adapter.js +140 -0
  12. package/dist/adapters/agno-adapter.js.map +1 -0
  13. package/dist/adapters/autogen-adapter.d.ts +67 -0
  14. package/dist/adapters/autogen-adapter.d.ts.map +1 -0
  15. package/dist/adapters/autogen-adapter.js +141 -0
  16. package/dist/adapters/autogen-adapter.js.map +1 -0
  17. package/dist/adapters/base-adapter.d.ts +51 -0
  18. package/dist/adapters/base-adapter.d.ts.map +1 -0
  19. package/dist/adapters/base-adapter.js +103 -0
  20. package/dist/adapters/base-adapter.js.map +1 -0
  21. package/dist/adapters/crewai-adapter.d.ts +72 -0
  22. package/dist/adapters/crewai-adapter.d.ts.map +1 -0
  23. package/dist/adapters/crewai-adapter.js +148 -0
  24. package/dist/adapters/crewai-adapter.js.map +1 -0
  25. package/dist/adapters/custom-adapter.d.ts +74 -0
  26. package/dist/adapters/custom-adapter.d.ts.map +1 -0
  27. package/dist/adapters/custom-adapter.js +142 -0
  28. package/dist/adapters/custom-adapter.js.map +1 -0
  29. package/dist/adapters/dspy-adapter.d.ts +70 -0
  30. package/dist/adapters/dspy-adapter.d.ts.map +1 -0
  31. package/dist/adapters/dspy-adapter.js +127 -0
  32. package/dist/adapters/dspy-adapter.js.map +1 -0
  33. package/dist/adapters/haystack-adapter.d.ts +83 -0
  34. package/dist/adapters/haystack-adapter.d.ts.map +1 -0
  35. package/dist/adapters/haystack-adapter.js +149 -0
  36. package/dist/adapters/haystack-adapter.js.map +1 -0
  37. package/dist/adapters/index.d.ts +47 -0
  38. package/dist/adapters/index.d.ts.map +1 -0
  39. package/dist/adapters/index.js +56 -0
  40. package/dist/adapters/index.js.map +1 -0
  41. package/dist/adapters/langchain-adapter.d.ts +51 -0
  42. package/dist/adapters/langchain-adapter.d.ts.map +1 -0
  43. package/dist/adapters/langchain-adapter.js +134 -0
  44. package/dist/adapters/langchain-adapter.js.map +1 -0
  45. package/dist/adapters/llamaindex-adapter.d.ts +89 -0
  46. package/dist/adapters/llamaindex-adapter.d.ts.map +1 -0
  47. package/dist/adapters/llamaindex-adapter.js +135 -0
  48. package/dist/adapters/llamaindex-adapter.js.map +1 -0
  49. package/dist/adapters/mcp-adapter.d.ts +90 -0
  50. package/dist/adapters/mcp-adapter.d.ts.map +1 -0
  51. package/dist/adapters/mcp-adapter.js +200 -0
  52. package/dist/adapters/mcp-adapter.js.map +1 -0
  53. package/dist/adapters/openai-assistants-adapter.d.ts +94 -0
  54. package/dist/adapters/openai-assistants-adapter.d.ts.map +1 -0
  55. package/dist/adapters/openai-assistants-adapter.js +130 -0
  56. package/dist/adapters/openai-assistants-adapter.js.map +1 -0
  57. package/dist/adapters/openclaw-adapter.d.ts +21 -0
  58. package/dist/adapters/openclaw-adapter.d.ts.map +1 -0
  59. package/dist/adapters/openclaw-adapter.js +140 -0
  60. package/dist/adapters/openclaw-adapter.js.map +1 -0
  61. package/dist/adapters/semantic-kernel-adapter.d.ts +73 -0
  62. package/dist/adapters/semantic-kernel-adapter.d.ts.map +1 -0
  63. package/dist/adapters/semantic-kernel-adapter.js +123 -0
  64. package/dist/adapters/semantic-kernel-adapter.js.map +1 -0
  65. package/dist/index.d.ts +379 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +1428 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/lib/blackboard-validator.d.ts +205 -0
  70. package/dist/lib/blackboard-validator.d.ts.map +1 -0
  71. package/dist/lib/blackboard-validator.js +756 -0
  72. package/dist/lib/blackboard-validator.js.map +1 -0
  73. package/dist/lib/locked-blackboard.d.ts +174 -0
  74. package/dist/lib/locked-blackboard.d.ts.map +1 -0
  75. package/dist/lib/locked-blackboard.js +654 -0
  76. package/dist/lib/locked-blackboard.js.map +1 -0
  77. package/dist/lib/swarm-utils.d.ts +136 -0
  78. package/dist/lib/swarm-utils.d.ts.map +1 -0
  79. package/dist/lib/swarm-utils.js +510 -0
  80. package/dist/lib/swarm-utils.js.map +1 -0
  81. package/dist/security.d.ts +269 -0
  82. package/dist/security.d.ts.map +1 -0
  83. package/dist/security.js +713 -0
  84. package/dist/security.js.map +1 -0
  85. package/package.json +84 -0
  86. package/scripts/blackboard.py +819 -0
  87. package/scripts/check_permission.py +331 -0
  88. package/scripts/revoke_token.py +243 -0
  89. package/scripts/swarm_guard.py +1140 -0
  90. package/scripts/validate_token.py +97 -0
  91. package/types/agent-adapter.d.ts +244 -0
  92. package/types/openclaw-core.d.ts +52 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Custom Agent Adapter -- The simplest way to plug in any agent
3
+ *
4
+ * For agent systems that don't have a dedicated adapter, or for
5
+ * quick prototyping, this adapter lets you register plain async functions
6
+ * as agents. No framework dependency needed.
7
+ *
8
+ * Usage:
9
+ * const adapter = new CustomAdapter();
10
+ *
11
+ * // Register any async function as an agent
12
+ * adapter.registerHandler("my-agent", async (payload, context) => {
13
+ * // Your agent logic here
14
+ * return { analysis: "result data" };
15
+ * });
16
+ *
17
+ * // Register an HTTP-based agent
18
+ * adapter.registerHttpAgent("remote-agent", "https://api.example.com/agent");
19
+ *
20
+ * await registry.addAdapter(adapter);
21
+ *
22
+ * Then in the orchestrator:
23
+ * delegateTask({ targetAgent: "custom:my-agent", ... })
24
+ *
25
+ * @module CustomAdapter
26
+ * @version 1.0.0
27
+ */
28
+ import { BaseAdapter } from './base-adapter';
29
+ import type { AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter';
30
+ /**
31
+ * A simple agent handler function.
32
+ * Takes the task payload and context, returns any result.
33
+ */
34
+ export type AgentHandler = (payload: AgentPayload, context: AgentContext) => Promise<unknown>;
35
+ /**
36
+ * HTTP agent configuration
37
+ */
38
+ export interface HttpAgentConfig {
39
+ url: string;
40
+ method?: 'POST' | 'PUT';
41
+ headers?: Record<string, string>;
42
+ timeout?: number;
43
+ /** Transform the payload before sending */
44
+ transformRequest?: (payload: AgentPayload, context: AgentContext) => unknown;
45
+ /** Transform the response before returning */
46
+ transformResponse?: (response: unknown) => unknown;
47
+ }
48
+ export declare class CustomAdapter extends BaseAdapter {
49
+ readonly name = "custom";
50
+ readonly version = "1.0.0";
51
+ private handlers;
52
+ private httpAgents;
53
+ get capabilities(): AdapterCapabilities;
54
+ /**
55
+ * Register a plain async function as an agent.
56
+ * This is the simplest way to add custom agent logic.
57
+ */
58
+ registerHandler(agentId: string, handler: AgentHandler, metadata?: {
59
+ description?: string;
60
+ capabilities?: string[];
61
+ }): void;
62
+ /**
63
+ * Register an HTTP endpoint as an agent.
64
+ * The orchestrator will POST task payloads to the URL.
65
+ */
66
+ registerHttpAgent(agentId: string, urlOrConfig: string | HttpAgentConfig, metadata?: {
67
+ description?: string;
68
+ capabilities?: string[];
69
+ }): void;
70
+ executeAgent(agentId: string, payload: AgentPayload, context: AgentContext): Promise<AgentResult>;
71
+ private executeHandler;
72
+ private executeHttpAgent;
73
+ }
74
+ //# sourceMappingURL=custom-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-adapter.d.ts","sourceRoot":"","sources":["../../adapters/custom-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAEV,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC;IAC7E,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD;AAED,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,OAAO,WAAW;IAC3B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,UAAU,CAA2C;IAE7D,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAED;;;OAGG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAWP;;;OAGG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,eAAe,EACrC,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAgBD,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;YAwBT,cAAc;YAmBd,gBAAgB;CAuD/B"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * Custom Agent Adapter -- The simplest way to plug in any agent
4
+ *
5
+ * For agent systems that don't have a dedicated adapter, or for
6
+ * quick prototyping, this adapter lets you register plain async functions
7
+ * as agents. No framework dependency needed.
8
+ *
9
+ * Usage:
10
+ * const adapter = new CustomAdapter();
11
+ *
12
+ * // Register any async function as an agent
13
+ * adapter.registerHandler("my-agent", async (payload, context) => {
14
+ * // Your agent logic here
15
+ * return { analysis: "result data" };
16
+ * });
17
+ *
18
+ * // Register an HTTP-based agent
19
+ * adapter.registerHttpAgent("remote-agent", "https://api.example.com/agent");
20
+ *
21
+ * await registry.addAdapter(adapter);
22
+ *
23
+ * Then in the orchestrator:
24
+ * delegateTask({ targetAgent: "custom:my-agent", ... })
25
+ *
26
+ * @module CustomAdapter
27
+ * @version 1.0.0
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.CustomAdapter = void 0;
31
+ const base_adapter_1 = require("./base-adapter");
32
+ class CustomAdapter extends base_adapter_1.BaseAdapter {
33
+ name = 'custom';
34
+ version = '1.0.0';
35
+ handlers = new Map();
36
+ httpAgents = new Map();
37
+ get capabilities() {
38
+ return {
39
+ streaming: false,
40
+ parallel: true,
41
+ bidirectional: false,
42
+ discovery: true,
43
+ authentication: false,
44
+ statefulSessions: false,
45
+ };
46
+ }
47
+ /**
48
+ * Register a plain async function as an agent.
49
+ * This is the simplest way to add custom agent logic.
50
+ */
51
+ registerHandler(agentId, handler, metadata) {
52
+ this.handlers.set(agentId, handler);
53
+ this.registerLocalAgent({
54
+ id: agentId,
55
+ name: agentId,
56
+ description: metadata?.description ?? `Custom agent: ${agentId}`,
57
+ capabilities: metadata?.capabilities,
58
+ status: 'available',
59
+ });
60
+ }
61
+ /**
62
+ * Register an HTTP endpoint as an agent.
63
+ * The orchestrator will POST task payloads to the URL.
64
+ */
65
+ registerHttpAgent(agentId, urlOrConfig, metadata) {
66
+ const config = typeof urlOrConfig === 'string'
67
+ ? { url: urlOrConfig }
68
+ : urlOrConfig;
69
+ this.httpAgents.set(agentId, config);
70
+ this.registerLocalAgent({
71
+ id: agentId,
72
+ name: agentId,
73
+ description: metadata?.description ?? `HTTP agent at ${config.url}`,
74
+ capabilities: metadata?.capabilities,
75
+ status: 'available',
76
+ metadata: { url: config.url },
77
+ });
78
+ }
79
+ async executeAgent(agentId, payload, context) {
80
+ this.ensureReady();
81
+ const startTime = Date.now();
82
+ // Check local handlers first
83
+ const handler = this.handlers.get(agentId);
84
+ if (handler) {
85
+ return this.executeHandler(handler, payload, context, startTime);
86
+ }
87
+ // Check HTTP agents
88
+ const httpConfig = this.httpAgents.get(agentId);
89
+ if (httpConfig) {
90
+ return this.executeHttpAgent(httpConfig, payload, context, startTime);
91
+ }
92
+ return this.errorResult('AGENT_NOT_FOUND', `Custom agent "${agentId}" is not registered. Use registerHandler() or registerHttpAgent().`, false);
93
+ }
94
+ async executeHandler(handler, payload, context, startTime) {
95
+ try {
96
+ const result = await handler(payload, context);
97
+ return this.successResult(result, Date.now() - startTime);
98
+ }
99
+ catch (error) {
100
+ return this.errorResult('HANDLER_ERROR', error instanceof Error ? error.message : 'Custom handler failed', true, error);
101
+ }
102
+ }
103
+ async executeHttpAgent(config, payload, context, startTime) {
104
+ try {
105
+ const body = config.transformRequest
106
+ ? config.transformRequest(payload, context)
107
+ : { payload, context };
108
+ const controller = new AbortController();
109
+ const timeoutId = config.timeout
110
+ ? setTimeout(() => controller.abort(), config.timeout)
111
+ : null;
112
+ const response = await fetch(config.url, {
113
+ method: config.method ?? 'POST',
114
+ headers: {
115
+ 'Content-Type': 'application/json',
116
+ ...config.headers,
117
+ },
118
+ body: JSON.stringify(body),
119
+ signal: controller.signal,
120
+ });
121
+ if (timeoutId)
122
+ clearTimeout(timeoutId);
123
+ if (!response.ok) {
124
+ return this.errorResult('HTTP_ERROR', `HTTP ${response.status}: ${response.statusText}`, response.status >= 500 // Server errors are recoverable
125
+ );
126
+ }
127
+ let result = await response.json();
128
+ if (config.transformResponse) {
129
+ result = config.transformResponse(result);
130
+ }
131
+ return this.successResult(result, Date.now() - startTime);
132
+ }
133
+ catch (error) {
134
+ if (error instanceof Error && error.name === 'AbortError') {
135
+ return this.errorResult('TIMEOUT', `HTTP agent timed out after ${config.timeout}ms`, true);
136
+ }
137
+ return this.errorResult('HTTP_ERROR', error instanceof Error ? error.message : 'HTTP agent call failed', true, error);
138
+ }
139
+ }
140
+ }
141
+ exports.CustomAdapter = CustomAdapter;
142
+ //# sourceMappingURL=custom-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-adapter.js","sourceRoot":"","sources":["../../adapters/custom-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * DSPy Adapter
3
+ *
4
+ * Integrates Stanford DSPy modules and programs with the SwarmOrchestrator.
5
+ * DSPy is a framework for algorithmically optimising LM prompts and weights,
6
+ * enabling systematic prompt engineering and agent compilation.
7
+ *
8
+ * Usage:
9
+ * const adapter = new DSPyAdapter();
10
+ * adapter.registerModule("classifier", myDSPyModule);
11
+ * adapter.registerProgram("rag-pipeline", myCompiledProgram);
12
+ * await registry.addAdapter(adapter);
13
+ *
14
+ * Then in the orchestrator:
15
+ * delegateTask({ targetAgent: "dspy:classifier", ... })
16
+ *
17
+ * @module DSPyAdapter
18
+ * @version 1.0.0
19
+ */
20
+ import { BaseAdapter } from './base-adapter';
21
+ import type { AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter';
22
+ /** Matches DSPy Module (ChainOfThought, Predict, ReAct, etc.) */
23
+ export interface DSPyModule {
24
+ /** Forward pass / inference */
25
+ forward(inputs: Record<string, unknown>): Promise<DSPyPrediction>;
26
+ /** Alternative call interface */
27
+ __call__?(inputs: Record<string, unknown>): Promise<DSPyPrediction>;
28
+ }
29
+ /** Matches a compiled DSPy program */
30
+ export interface DSPyProgram {
31
+ /** Run the compiled program */
32
+ run(inputs: Record<string, unknown>): Promise<DSPyPrediction>;
33
+ /** Compile / optimise (optional) */
34
+ compile?(trainset?: unknown[], options?: Record<string, unknown>): Promise<void>;
35
+ }
36
+ /** DSPy prediction result */
37
+ export interface DSPyPrediction {
38
+ /** Named output fields */
39
+ [key: string]: unknown;
40
+ /** Common output: answer, response, output */
41
+ answer?: string;
42
+ rationale?: string;
43
+ response?: string;
44
+ /** Completion metadata */
45
+ completions?: Record<string, unknown>;
46
+ }
47
+ /** A simple function-based predictor (for lightweight usage) */
48
+ export type DSPyPredictor = (inputs: Record<string, unknown>) => Promise<DSPyPrediction>;
49
+ export declare class DSPyAdapter extends BaseAdapter {
50
+ readonly name = "dspy";
51
+ readonly version = "1.0.0";
52
+ private entries;
53
+ get capabilities(): AdapterCapabilities;
54
+ registerModule(agentId: string, module: DSPyModule, metadata?: {
55
+ description?: string;
56
+ capabilities?: string[];
57
+ }): void;
58
+ registerProgram(agentId: string, program: DSPyProgram, metadata?: {
59
+ description?: string;
60
+ capabilities?: string[];
61
+ }): void;
62
+ registerPredictor(agentId: string, predictor: DSPyPredictor, metadata?: {
63
+ description?: string;
64
+ capabilities?: string[];
65
+ }): void;
66
+ executeAgent(agentId: string, payload: AgentPayload, context: AgentContext): Promise<AgentResult>;
67
+ private buildInputs;
68
+ private normalizePrediction;
69
+ }
70
+ //# sourceMappingURL=dspy-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dspy-adapter.d.ts","sourceRoot":"","sources":["../../adapters/dspy-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAEV,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAMhC,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,iCAAiC;IACjC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACrE;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,oCAAoC;IACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAED,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,cAAc,CAAC,CAAC;AAO7B,qBAAa,WAAY,SAAQ,WAAW;IAC1C,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,OAAO,WAAW;IAC3B,OAAO,CAAC,OAAO,CAAqC;IAEpD,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAID,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAWP,eAAe,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAWP,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,EACxB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAaD,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;IAkDvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;CAc5B"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * DSPy Adapter
4
+ *
5
+ * Integrates Stanford DSPy modules and programs with the SwarmOrchestrator.
6
+ * DSPy is a framework for algorithmically optimising LM prompts and weights,
7
+ * enabling systematic prompt engineering and agent compilation.
8
+ *
9
+ * Usage:
10
+ * const adapter = new DSPyAdapter();
11
+ * adapter.registerModule("classifier", myDSPyModule);
12
+ * adapter.registerProgram("rag-pipeline", myCompiledProgram);
13
+ * await registry.addAdapter(adapter);
14
+ *
15
+ * Then in the orchestrator:
16
+ * delegateTask({ targetAgent: "dspy:classifier", ... })
17
+ *
18
+ * @module DSPyAdapter
19
+ * @version 1.0.0
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.DSPyAdapter = void 0;
23
+ const base_adapter_1 = require("./base-adapter");
24
+ class DSPyAdapter extends base_adapter_1.BaseAdapter {
25
+ name = 'dspy';
26
+ version = '1.0.0';
27
+ entries = new Map();
28
+ get capabilities() {
29
+ return {
30
+ streaming: false,
31
+ parallel: true,
32
+ bidirectional: false,
33
+ discovery: true,
34
+ authentication: false,
35
+ statefulSessions: false,
36
+ };
37
+ }
38
+ // --- Registration ---
39
+ registerModule(agentId, module, metadata) {
40
+ this.entries.set(agentId, { type: 'module', module });
41
+ this.registerLocalAgent({
42
+ id: agentId,
43
+ name: agentId,
44
+ description: metadata?.description ?? `DSPy Module: ${agentId}`,
45
+ capabilities: metadata?.capabilities ?? ['module', 'prompt-optimization'],
46
+ status: 'available',
47
+ });
48
+ }
49
+ registerProgram(agentId, program, metadata) {
50
+ this.entries.set(agentId, { type: 'program', program });
51
+ this.registerLocalAgent({
52
+ id: agentId,
53
+ name: agentId,
54
+ description: metadata?.description ?? `DSPy Program: ${agentId}`,
55
+ capabilities: metadata?.capabilities ?? ['program', 'compiled', 'optimized'],
56
+ status: 'available',
57
+ });
58
+ }
59
+ registerPredictor(agentId, predictor, metadata) {
60
+ this.entries.set(agentId, { type: 'predictor', predictor });
61
+ this.registerLocalAgent({
62
+ id: agentId,
63
+ name: agentId,
64
+ description: metadata?.description ?? `DSPy Predictor: ${agentId}`,
65
+ capabilities: metadata?.capabilities ?? ['predictor'],
66
+ status: 'available',
67
+ });
68
+ }
69
+ // --- Execution ---
70
+ async executeAgent(agentId, payload, context) {
71
+ this.ensureReady();
72
+ const entry = this.entries.get(agentId);
73
+ if (!entry) {
74
+ return this.errorResult('AGENT_NOT_FOUND', `DSPy entry "${agentId}" is not registered`, false);
75
+ }
76
+ const inputs = this.buildInputs(payload);
77
+ const startTime = Date.now();
78
+ try {
79
+ let prediction;
80
+ switch (entry.type) {
81
+ case 'module':
82
+ prediction = entry.module.__call__
83
+ ? await entry.module.__call__(inputs)
84
+ : await entry.module.forward(inputs);
85
+ break;
86
+ case 'program':
87
+ prediction = await entry.program.run(inputs);
88
+ break;
89
+ case 'predictor':
90
+ prediction = await entry.predictor(inputs);
91
+ break;
92
+ default:
93
+ return this.errorResult('UNKNOWN_TYPE', 'Unknown DSPy entry type', false);
94
+ }
95
+ return this.successResult(this.normalizePrediction(prediction), Date.now() - startTime);
96
+ }
97
+ catch (error) {
98
+ return this.errorResult('DSPY_ERROR', error instanceof Error ? error.message : 'DSPy execution failed', true, error);
99
+ }
100
+ }
101
+ // --- Private helpers ---
102
+ buildInputs(payload) {
103
+ const inputs = { ...payload.params };
104
+ if (payload.handoff?.instruction) {
105
+ inputs.question = payload.handoff.instruction;
106
+ inputs.query = payload.handoff.instruction;
107
+ }
108
+ if (payload.blackboardSnapshot) {
109
+ inputs.context = payload.blackboardSnapshot;
110
+ }
111
+ return inputs;
112
+ }
113
+ normalizePrediction(prediction) {
114
+ // DSPy predictions have named output fields
115
+ const response = prediction.answer ??
116
+ prediction.response ??
117
+ prediction.rationale ??
118
+ '';
119
+ return {
120
+ response,
121
+ prediction: { ...prediction },
122
+ rationale: prediction.rationale,
123
+ };
124
+ }
125
+ }
126
+ exports.DSPyAdapter = DSPyAdapter;
127
+ //# sourceMappingURL=dspy-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dspy-adapter.js","sourceRoot":"","sources":["../../adapters/dspy-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Haystack Adapter
3
+ *
4
+ * Integrates deepset Haystack pipelines and agents with the SwarmOrchestrator.
5
+ * Haystack is a production-grade framework for building RAG and search
6
+ * pipelines with customisable components.
7
+ *
8
+ * Usage:
9
+ * const adapter = new HaystackAdapter();
10
+ * adapter.registerPipeline("search", myPipeline);
11
+ * adapter.registerAgent("qa-agent", myHaystackAgent);
12
+ * await registry.addAdapter(adapter);
13
+ *
14
+ * Then in the orchestrator:
15
+ * delegateTask({ targetAgent: "haystack:search", ... })
16
+ *
17
+ * @module HaystackAdapter
18
+ * @version 1.0.0
19
+ */
20
+ import { BaseAdapter } from './base-adapter';
21
+ import type { AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter';
22
+ /** Matches Haystack's Pipeline.run() interface */
23
+ export interface HaystackPipeline {
24
+ /** Run the pipeline with inputs */
25
+ run(inputs: Record<string, unknown>): Promise<HaystackPipelineResult>;
26
+ /** Get pipeline metadata */
27
+ getMetadata?(): {
28
+ name?: string;
29
+ components?: string[];
30
+ };
31
+ }
32
+ /** Pipeline result */
33
+ export interface HaystackPipelineResult {
34
+ [componentName: string]: Record<string, unknown>;
35
+ }
36
+ /** Matches Haystack Agent interface */
37
+ export interface HaystackAgent {
38
+ /** Run the agent with a query */
39
+ run(query: string, params?: Record<string, unknown>): Promise<HaystackAgentResult>;
40
+ }
41
+ /** Agent result */
42
+ export interface HaystackAgentResult {
43
+ answer?: string;
44
+ transcript?: Array<{
45
+ role: string;
46
+ content: string;
47
+ }>;
48
+ documents?: Array<{
49
+ content?: string;
50
+ meta?: Record<string, unknown>;
51
+ score?: number;
52
+ }>;
53
+ }
54
+ /** Haystack component (individual node in a pipeline) */
55
+ export interface HaystackComponent {
56
+ /** Run the component */
57
+ run(inputs: Record<string, unknown>): Promise<Record<string, unknown>>;
58
+ }
59
+ export declare class HaystackAdapter extends BaseAdapter {
60
+ readonly name = "haystack";
61
+ readonly version = "1.0.0";
62
+ private entries;
63
+ get capabilities(): AdapterCapabilities;
64
+ registerPipeline(agentId: string, pipeline: HaystackPipeline, metadata?: {
65
+ description?: string;
66
+ capabilities?: string[];
67
+ }): void;
68
+ registerAgent(agentId: string, agent: HaystackAgent, metadata?: {
69
+ description?: string;
70
+ capabilities?: string[];
71
+ }): void;
72
+ registerComponent(agentId: string, component: HaystackComponent, metadata?: {
73
+ description?: string;
74
+ capabilities?: string[];
75
+ }): void;
76
+ executeAgent(agentId: string, payload: AgentPayload, context: AgentContext): Promise<AgentResult>;
77
+ private executePipeline;
78
+ private executeHaystackAgent;
79
+ private executeComponent;
80
+ private buildPipelineInputs;
81
+ private normalizePipelineResult;
82
+ }
83
+ //# sourceMappingURL=haystack-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haystack-adapter.d.ts","sourceRoot":"","sources":["../../adapters/haystack-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAEV,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAMhC,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtE,4BAA4B;IAC5B,WAAW,CAAC,IAAI;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1D;AAED,sBAAsB;AACtB,MAAM,WAAW,sBAAsB;IACrC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClD;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpF;AAED,mBAAmB;AACnB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxE;AAOD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,OAAO,WAAW;IAC3B,OAAO,CAAC,OAAO,CAAyC;IAExD,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAID,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAaP,aAAa,CACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,EACpB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAWP,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC3D,IAAI;IAaD,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;YAqCT,eAAe;YAUf,oBAAoB;YAoBpB,gBAAgB;IAU9B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,uBAAuB;CAgBhC"}