network-ai 3.2.10 → 3.3.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.
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Blackboard Tool Bindings — Phase 4: Behavioral Control Plane
4
+ *
5
+ * Exposes the shared blackboard as MCP-compatible tool definitions so any
6
+ * LLM agent can interact with shared state via standard tool calls.
7
+ *
8
+ * Tools exposed:
9
+ * - blackboard_read — read a single entry by key
10
+ * - blackboard_write — write a value to the blackboard
11
+ * - blackboard_list — list all keys (optionally filtered by prefix)
12
+ * - blackboard_delete — delete an entry by key
13
+ * - blackboard_exists — check whether a key is present and not expired
14
+ *
15
+ * @module mcp-blackboard-tools
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.BlackboardMCPTools = exports.BLACKBOARD_TOOL_DEFINITIONS = void 0;
19
+ exports.registerBlackboardTools = registerBlackboardTools;
20
+ // ============================================================================
21
+ // TOOL DEFINITIONS
22
+ // ============================================================================
23
+ /** MCP tool definitions for all five blackboard operations. */
24
+ exports.BLACKBOARD_TOOL_DEFINITIONS = [
25
+ {
26
+ name: 'blackboard_read',
27
+ description: 'Read a single entry from the shared blackboard by key. Returns the value, source agent, and timestamp, or null if not found.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ key: {
32
+ type: 'string',
33
+ description: 'The blackboard key to read (e.g. "task:analysis:q3")',
34
+ },
35
+ agent_id: {
36
+ type: 'string',
37
+ description: 'The agent performing the read (used for scoped access checks)',
38
+ },
39
+ },
40
+ required: ['key', 'agent_id'],
41
+ },
42
+ },
43
+ {
44
+ name: 'blackboard_write',
45
+ description: 'Write a value to the shared blackboard. Requires agent identity verification. Returns the written entry.',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {
49
+ key: {
50
+ type: 'string',
51
+ description: 'The key to write (e.g. "task:result:q3")',
52
+ },
53
+ value: {
54
+ type: 'string',
55
+ description: 'JSON-encoded value to store',
56
+ },
57
+ agent_id: {
58
+ type: 'string',
59
+ description: 'The agent performing the write',
60
+ },
61
+ agent_token: {
62
+ type: 'string',
63
+ description: 'Optional verification token for authenticated writes',
64
+ },
65
+ ttl: {
66
+ type: 'string',
67
+ description: 'Optional TTL in seconds (e.g. "3600" for 1 hour)',
68
+ },
69
+ },
70
+ required: ['key', 'value', 'agent_id'],
71
+ },
72
+ },
73
+ {
74
+ name: 'blackboard_list',
75
+ description: 'List all keys currently on the blackboard. Optionally filter by key prefix.',
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {
79
+ agent_id: {
80
+ type: 'string',
81
+ description: 'The agent requesting the list (used for scoped access)',
82
+ },
83
+ prefix: {
84
+ type: 'string',
85
+ description: 'Optional key prefix filter (e.g. "task:" to list only task entries)',
86
+ },
87
+ },
88
+ required: ['agent_id'],
89
+ },
90
+ },
91
+ {
92
+ name: 'blackboard_delete',
93
+ description: 'Delete an entry from the blackboard by key. Agent must have write access to the key.',
94
+ inputSchema: {
95
+ type: 'object',
96
+ properties: {
97
+ key: {
98
+ type: 'string',
99
+ description: 'The key to delete',
100
+ },
101
+ agent_id: {
102
+ type: 'string',
103
+ description: 'The agent requesting deletion',
104
+ },
105
+ agent_token: {
106
+ type: 'string',
107
+ description: 'Optional verification token',
108
+ },
109
+ },
110
+ required: ['key', 'agent_id'],
111
+ },
112
+ },
113
+ {
114
+ name: 'blackboard_exists',
115
+ description: 'Check whether a key exists on the blackboard (and has not expired).',
116
+ inputSchema: {
117
+ type: 'object',
118
+ properties: {
119
+ key: {
120
+ type: 'string',
121
+ description: 'The key to check',
122
+ },
123
+ agent_id: {
124
+ type: 'string',
125
+ description: 'The agent performing the check',
126
+ },
127
+ },
128
+ required: ['key', 'agent_id'],
129
+ },
130
+ },
131
+ ];
132
+ // ============================================================================
133
+ // BLACKBOARD MCP TOOLS
134
+ // ============================================================================
135
+ /**
136
+ * MCP-compatible tool handler wrapping a {@link IBlackboard} instance.
137
+ *
138
+ * Register it with any MCP adapter to expose shared blackboard operations
139
+ * as callable tools for LLM agents.
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * import { BlackboardMCPTools } from 'network-ai';
144
+ *
145
+ * const tools = new BlackboardMCPTools(orchestrator.blackboard);
146
+ *
147
+ * // Register with the MCP adapter
148
+ * for (const def of tools.getDefinitions()) {
149
+ * mcpAdapter.registerTool(def.name, (args) => tools.call(def.name, args), def);
150
+ * }
151
+ *
152
+ * // Or call directly for testing
153
+ * const result = await tools.call('blackboard_read', {
154
+ * key: 'task:q3_analysis',
155
+ * agent_id: 'data_analyst',
156
+ * });
157
+ * ```
158
+ */
159
+ class BlackboardMCPTools {
160
+ blackboard;
161
+ constructor(blackboard) {
162
+ this.blackboard = blackboard;
163
+ }
164
+ /** Returns all MCP tool definitions for this blackboard instance. */
165
+ getDefinitions() {
166
+ return exports.BLACKBOARD_TOOL_DEFINITIONS;
167
+ }
168
+ /**
169
+ * Dispatch a tool call by name. `args` should match the tool's inputSchema.
170
+ * All errors are caught and returned as `{ ok: false, error }`.
171
+ */
172
+ async call(toolName, args) {
173
+ try {
174
+ switch (toolName) {
175
+ case 'blackboard_read': return this._read(args);
176
+ case 'blackboard_write': return this._write(args);
177
+ case 'blackboard_list': return this._list(args);
178
+ case 'blackboard_delete': return this._delete(args);
179
+ case 'blackboard_exists': return this._exists(args);
180
+ default:
181
+ return { ok: false, tool: toolName, error: `Unknown tool: "${toolName}"` };
182
+ }
183
+ }
184
+ catch (err) {
185
+ return {
186
+ ok: false,
187
+ tool: toolName,
188
+ error: err instanceof Error ? err.message : String(err),
189
+ };
190
+ }
191
+ }
192
+ // --------------------------------------------------------------------------
193
+ // Tool implementations
194
+ // --------------------------------------------------------------------------
195
+ _read(args) {
196
+ const key = this._requireString(args, 'key');
197
+ const agentId = this._requireString(args, 'agent_id');
198
+ // Use scoped snapshot if available for access control
199
+ if (this.blackboard.getScopedSnapshot) {
200
+ const scoped = this.blackboard.getScopedSnapshot(agentId);
201
+ const entry = scoped[key] ?? null;
202
+ return { ok: true, tool: 'blackboard_read', data: entry };
203
+ }
204
+ const entry = this.blackboard.read(key);
205
+ return { ok: true, tool: 'blackboard_read', data: entry };
206
+ }
207
+ _write(args) {
208
+ const key = this._requireString(args, 'key');
209
+ const rawValue = this._requireString(args, 'value');
210
+ const agentId = this._requireString(args, 'agent_id');
211
+ const agentToken = typeof args['agent_token'] === 'string' ? args['agent_token'] : undefined;
212
+ const ttlRaw = typeof args['ttl'] === 'string' ? parseInt(args['ttl'], 10) : undefined;
213
+ const ttl = (ttlRaw !== undefined && !isNaN(ttlRaw)) ? ttlRaw : undefined;
214
+ // Parse value: try JSON first, fall back to raw string
215
+ let value;
216
+ try {
217
+ value = JSON.parse(rawValue);
218
+ }
219
+ catch {
220
+ value = rawValue;
221
+ }
222
+ const entry = this.blackboard.write(key, value, agentId, ttl, agentToken);
223
+ return { ok: true, tool: 'blackboard_write', data: entry };
224
+ }
225
+ _list(args) {
226
+ const agentId = this._requireString(args, 'agent_id');
227
+ const prefix = typeof args['prefix'] === 'string' ? args['prefix'] : '';
228
+ let snapshot;
229
+ if (this.blackboard.getScopedSnapshot) {
230
+ snapshot = this.blackboard.getScopedSnapshot(agentId);
231
+ }
232
+ else {
233
+ snapshot = this.blackboard.getSnapshot();
234
+ }
235
+ let keys = Object.keys(snapshot);
236
+ if (prefix)
237
+ keys = keys.filter(k => k.startsWith(prefix));
238
+ return {
239
+ ok: true,
240
+ tool: 'blackboard_list',
241
+ data: {
242
+ keys,
243
+ count: keys.length,
244
+ entries: Object.fromEntries(keys.map(k => [k, snapshot[k]])),
245
+ },
246
+ };
247
+ }
248
+ _delete(args) {
249
+ const key = this._requireString(args, 'key');
250
+ if (!this.blackboard.delete) {
251
+ return { ok: false, tool: 'blackboard_delete', error: 'Delete operation not supported by this blackboard instance' };
252
+ }
253
+ const existed = this.blackboard.exists(key);
254
+ if (!existed) {
255
+ return { ok: false, tool: 'blackboard_delete', error: `Key "${key}" not found` };
256
+ }
257
+ this.blackboard.delete(key);
258
+ return { ok: true, tool: 'blackboard_delete', data: { deleted: key } };
259
+ }
260
+ _exists(args) {
261
+ const key = this._requireString(args, 'key');
262
+ const exists = this.blackboard.exists(key);
263
+ return { ok: true, tool: 'blackboard_exists', data: { key, exists } };
264
+ }
265
+ // --------------------------------------------------------------------------
266
+ // Helpers
267
+ // --------------------------------------------------------------------------
268
+ _requireString(args, field) {
269
+ const val = args[field];
270
+ if (typeof val !== 'string' || val.trim() === '') {
271
+ throw new Error(`Missing required field "${field}" (must be a non-empty string)`);
272
+ }
273
+ return val;
274
+ }
275
+ }
276
+ exports.BlackboardMCPTools = BlackboardMCPTools;
277
+ // ============================================================================
278
+ // FACTORY
279
+ // ============================================================================
280
+ /**
281
+ * Convenience factory: create a `BlackboardMCPTools` instance and register
282
+ * all tools on an MCPAdapter in one call.
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * import { registerBlackboardTools } from 'network-ai';
287
+ *
288
+ * registerBlackboardTools(mcpAdapter, orchestrator.getBlackboard());
289
+ * ```
290
+ */
291
+ function registerBlackboardTools(mcpAdapter, blackboard) {
292
+ const tools = new BlackboardMCPTools(blackboard);
293
+ for (const def of tools.getDefinitions()) {
294
+ mcpAdapter.registerTool(def.name, (args) => tools.call(def.name, args), { description: def.description, inputSchema: def.inputSchema });
295
+ }
296
+ return tools;
297
+ }
298
+ //# sourceMappingURL=mcp-blackboard-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-blackboard-tools.js","sourceRoot":"","sources":["../../lib/mcp-blackboard-tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "network-ai",
3
- "version": "3.2.10",
3
+ "version": "3.3.0",
4
4
  "description": "AI agent orchestration framework for TypeScript/Node.js - plug-and-play multi-agent coordination with 12 frameworks (LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw). Built-in security, swarm intelligence, and agentic workflow patterns.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",