network-ai 4.7.1 → 4.8.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/INTEGRATION_GUIDE.md +6 -2
- package/QUICKSTART.md +8 -3
- package/README.md +11 -9
- package/SKILL.md +3 -3
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +4 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/nemoclaw-adapter.d.ts +182 -0
- package/dist/adapters/nemoclaw-adapter.d.ts.map +1 -0
- package/dist/adapters/nemoclaw-adapter.js +465 -0
- package/dist/adapters/nemoclaw-adapter.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/socket.json +8 -0
package/INTEGRATION_GUIDE.md
CHANGED
|
@@ -64,7 +64,7 @@ Answers drive `AuthGuardian` configuration and audit log retention policy.
|
|
|
64
64
|
|
|
65
65
|
## 2. Framework Mapping
|
|
66
66
|
|
|
67
|
-
Network-AI ships
|
|
67
|
+
Network-AI ships 16 adapters. Map your existing agents to the right one:
|
|
68
68
|
|
|
69
69
|
| Your Stack | Network-AI Adapter | Notes |
|
|
70
70
|
|-----------|-------------------|-------|
|
|
@@ -79,6 +79,10 @@ Network-AI ships 15 adapters. Map your existing agents to the right one:
|
|
|
79
79
|
| Agno (ex-Phidata) | `AgnoAdapter` | Agents, teams, functions |
|
|
80
80
|
| MCP tools | `McpAdapter` | Tool serving and discovery |
|
|
81
81
|
| OpenClaw / Clawdbot / Moltbot | `OpenClawAdapter` | Native skill execution via `callSkill` |
|
|
82
|
+
| A2A protocol | `A2AAdapter` | Agent-to-Agent protocol interop |
|
|
83
|
+
| OpenAI Codex CLI | `CodexAdapter` | Codex CLI task execution |
|
|
84
|
+
| MiniMax | `MiniMaxAdapter` | MiniMax chat completions (M2.5) |
|
|
85
|
+
| NVIDIA NemoClaw | `NemoClawAdapter` | Sandboxed agent execution via OpenShell |
|
|
82
86
|
| **Anything else** | `CustomAdapter` | Wrap any async function or HTTP endpoint |
|
|
83
87
|
|
|
84
88
|
### No matching framework?
|
|
@@ -459,7 +463,7 @@ Run these before declaring the integration production-ready:
|
|
|
459
463
|
|----------|---------------|
|
|
460
464
|
| [QUICKSTART.md](QUICKSTART.md) | Get running in 5 minutes |
|
|
461
465
|
| [QUICKSTART.md § CLI](QUICKSTART.md) | CLI reference — bb, auth, budget, audit commands |
|
|
462
|
-
| [references/adapter-system.md](references/adapter-system.md) | All
|
|
466
|
+
| [references/adapter-system.md](references/adapter-system.md) | All 16 adapters with code examples |
|
|
463
467
|
| [references/trust-levels.md](references/trust-levels.md) | Trust scoring formula and agent roles |
|
|
464
468
|
| [references/auth-guardian.md](references/auth-guardian.md) | Permission system, justification scoring, token lifecycle |
|
|
465
469
|
| [references/blackboard-schema.md](references/blackboard-schema.md) | Blackboard key conventions and namespacing |
|
package/QUICKSTART.md
CHANGED
|
@@ -18,7 +18,7 @@ npm install
|
|
|
18
18
|
npx ts-node setup.ts --check
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
**Zero external AI dependencies.** All
|
|
21
|
+
**Zero external AI dependencies.** All 16 adapters are self-contained — add framework SDKs only when you need them.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -38,6 +38,11 @@ npx ts-node setup.ts --check
|
|
|
38
38
|
| `haystack` | Haystack | none | Production RAG pipelines |
|
|
39
39
|
| `dspy` | DSPy | none | Programmatic prompt optimisation |
|
|
40
40
|
| `agno` | Agno | none | Multi-agent teams |
|
|
41
|
+
| `openclaw` | OpenClaw | `openclaw-core` | OpenClaw skill ecosystem |
|
|
42
|
+
| `a2a` | A2A | none | Agent-to-Agent protocol |
|
|
43
|
+
| `codex` | Codex | `openai` | OpenAI Codex CLI |
|
|
44
|
+
| `minimax` | MiniMax | none | MiniMax chat completions |
|
|
45
|
+
| `nemoclaw` | NemoClaw | none | NVIDIA sandboxed agent execution |
|
|
41
46
|
|
|
42
47
|
---
|
|
43
48
|
|
|
@@ -225,7 +230,7 @@ npx ts-node test-cli.ts # 65 CLI tests
|
|
|
225
230
|
|
|
226
231
|
```bash
|
|
227
232
|
npx ts-node setup.ts --check # Verify installation
|
|
228
|
-
npx ts-node setup.ts --list # List all
|
|
233
|
+
npx ts-node setup.ts --list # List all 16 adapters
|
|
229
234
|
npx ts-node setup.ts --example # Generate example.ts
|
|
230
235
|
```
|
|
231
236
|
|
|
@@ -563,7 +568,7 @@ import SwarmOrchestrator, {
|
|
|
563
568
|
// Factory
|
|
564
569
|
import { createSwarmOrchestrator } from 'network-ai';
|
|
565
570
|
|
|
566
|
-
// All
|
|
571
|
+
// All 16 adapters
|
|
567
572
|
import {
|
|
568
573
|
AdapterRegistry, BaseAdapter,
|
|
569
574
|
OpenClawAdapter, LangChainAdapter, AutoGenAdapter,
|
package/README.md
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/Jovancoding/Network-AI/actions/workflows/ci.yml)
|
|
6
6
|
[](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml)
|
|
7
|
-
[](https://github.com/Jovancoding/Network-AI/releases)
|
|
8
8
|
[](https://www.npmjs.com/package/network-ai)
|
|
9
|
-
[](#testing)
|
|
10
|
+
[](#adapter-system)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
[](https://socket.dev/npm/package/network-ai/overview)
|
|
13
13
|
[](https://nodejs.org)
|
|
@@ -21,7 +21,7 @@ Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordinati
|
|
|
21
21
|
|
|
22
22
|
- **Shared blackboard with locking** — atomic `propose → validate → commit` prevents race conditions and split-brain failures across parallel agents
|
|
23
23
|
- **Guardrails and budgets** — FSM governance, per-agent token ceilings, HMAC audit trails, and permission gating
|
|
24
|
-
- **
|
|
24
|
+
- **16 adapters** — LangChain (+ streaming), AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, Custom (+ streaming), OpenClaw, A2A, Codex, MiniMax, and NemoClaw — no glue code, no lock-in
|
|
25
25
|
- **Persistent project memory (Layer 3)** — `context_manager.py` injects decisions, goals, stack, milestones, and banned patterns into every system prompt so agents always have full project context
|
|
26
26
|
|
|
27
27
|
> **The silent failure mode in multi-agent systems:** parallel agents writing to the same key
|
|
@@ -56,7 +56,7 @@ Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordinati
|
|
|
56
56
|
| Race conditions in parallel agents | Atomic blackboard: `propose → validate → commit` with file-system mutex |
|
|
57
57
|
| Agent overspend / runaway costs | `FederatedBudget` — hard per-agent token ceilings with live spend tracking |
|
|
58
58
|
| No visibility into what agents did | HMAC-signed audit log on every write, permission grant, and FSM transition |
|
|
59
|
-
| Locked into one AI framework |
|
|
59
|
+
| Locked into one AI framework | 16 adapters — mix LangChain + AutoGen + CrewAI + Codex + MiniMax + NemoClaw + custom in one swarm |
|
|
60
60
|
| Agents escalating beyond their scope | `AuthGuardian` — scoped permission tokens required before sensitive operations |
|
|
61
61
|
| Agents lack project context between runs | `ProjectContextManager` (Layer 3) — inject decisions, goals, stack, and milestones into every system prompt |
|
|
62
62
|
|
|
@@ -268,7 +268,7 @@ npm run demo -- --07
|
|
|
268
268
|
|
|
269
269
|
## Adapter System
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
16 adapters, zero adapter dependencies. You bring your own SDK objects.
|
|
272
272
|
|
|
273
273
|
| Adapter | Framework / Protocol | Register method |
|
|
274
274
|
|---|---|---|
|
|
@@ -287,6 +287,7 @@ npm run demo -- --07
|
|
|
287
287
|
| `A2AAdapter` | Google A2A Protocol | `registerRemoteAgent(name, url)` |
|
|
288
288
|
| `CodexAdapter` | OpenAI Codex / gpt-4o / Codex CLI | `registerCodexAgent(name, config)` |
|
|
289
289
|
| `MiniMaxAdapter` | MiniMax LLM API (M2.5 / M2.5-highspeed) | `registerAgent(name, config)` |
|
|
290
|
+
| `NemoClawAdapter` | NVIDIA NemoClaw (sandboxed agents via OpenShell) | `registerSandboxAgent(name, config)` |
|
|
290
291
|
|
|
291
292
|
**Streaming variants** (drop-in replacements with `.stream()` support):
|
|
292
293
|
|
|
@@ -321,7 +322,7 @@ Extend `BaseAdapter` (or `StreamingBaseAdapter` for streaming) to add your own i
|
|
|
321
322
|
npm run test:all # All suites in sequence
|
|
322
323
|
npm test # Core orchestrator
|
|
323
324
|
npm run test:security # Security module
|
|
324
|
-
npm run test:adapters # All
|
|
325
|
+
npm run test:adapters # All 16 adapters
|
|
325
326
|
npm run test:streaming # Streaming adapters
|
|
326
327
|
npm run test:a2a # A2A protocol adapter
|
|
327
328
|
npm run test:codex # Codex adapter
|
|
@@ -329,7 +330,7 @@ npm run test:priority # Priority & preemption
|
|
|
329
330
|
npm run test:cli # CLI layer
|
|
330
331
|
```
|
|
331
332
|
|
|
332
|
-
**1,
|
|
333
|
+
**1,543 passing assertions across 19 test suites** (`npm run test:all`):
|
|
333
334
|
|
|
334
335
|
| Suite | Assertions | Covers |
|
|
335
336
|
|---|---|---|
|
|
@@ -337,13 +338,14 @@ npm run test:cli # CLI layer
|
|
|
337
338
|
| `test-phase5f.ts` | 127 | SSE transport, `McpCombinedBridge`, extended MCP tools |
|
|
338
339
|
| `test-phase5g.ts` | 121 | CRDT backend, vector clocks, bidirectional sync |
|
|
339
340
|
| `test-phase6.ts` | 121 | MCP server, control-plane tools, audit tools |
|
|
340
|
-
| `test-adapters.ts` |
|
|
341
|
+
| `test-adapters.ts` | 141 | All 16 adapters, registry routing, integration, edge cases |
|
|
341
342
|
| `test-phase5d.ts` | 117 | Pluggable backend (Redis, CRDT, Memory) |
|
|
342
343
|
| `test-standalone.ts` | 88 | Blackboard, auth, integration, persistence, parallelisation, quality gate |
|
|
343
344
|
| `test-phase5e.ts` | 87 | Federated budget tracking |
|
|
344
345
|
| `test-phase5c.ts` | 73 | Named multi-blackboard, isolation, backend options |
|
|
345
346
|
| `test-codex.ts` | 51 | Codex adapter: chat, completion, CLI, BYOC client, error paths |
|
|
346
347
|
| `test-minimax.ts` | 50 | MiniMax adapter: lifecycle, registration, chat mode, temperature clamping |
|
|
348
|
+
| `test-nemoclaw.ts` | 93 | NemoClaw adapter: sandbox lifecycle, policies, blueprint, handoff, env forwarding |
|
|
347
349
|
| `test-priority.ts` | 64 | Priority preemption, conflict resolution, backward compat |
|
|
348
350
|
| `test-a2a.ts` | 35 | A2A protocol: register, execute, mock fetch, error paths |
|
|
349
351
|
| `test-streaming.ts` | 32 | Streaming adapters, chunk shapes, fallback, collectStream |
|
package/SKILL.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Network-AI
|
|
3
|
-
description: "Python orchestration skill: local multi-agent workflows via blackboard file, permission gating, and token budget scripts. All execution is local — no network calls, no Node.js required. TypeScript/Node.js features (HMAC tokens, AES-256, MCP server,
|
|
3
|
+
description: "Python orchestration skill: local multi-agent workflows via blackboard file, permission gating, and token budget scripts. All execution is local — no network calls, no Node.js required. TypeScript/Node.js features (HMAC tokens, AES-256, MCP server, 16 adapters, CLI) are in the SEPARATE companion npm package (npm install -g network-ai) and are NOT part of this skill bundle."
|
|
4
4
|
metadata:
|
|
5
5
|
openclaw:
|
|
6
6
|
emoji: "\U0001F41D"
|
|
7
7
|
homepage: https://github.com/Jovancoding/Network-AI
|
|
8
|
-
bundle_scope: "Python scripts only (scripts/*.py). The README.md in this repo describes the FULL project including the companion Node.js npm package — features documented there (HMAC tokens, AES-256 encryption, MCP server,
|
|
8
|
+
bundle_scope: "Python scripts only (scripts/*.py). The README.md in this repo describes the FULL project including the companion Node.js npm package — features documented there (HMAC tokens, AES-256 encryption, MCP server, 16 adapters, CLI) are NOT implemented in these Python scripts and are NOT part of this ClawHub skill. Install the npm package separately for those features."
|
|
9
9
|
network_calls: none
|
|
10
10
|
sessions_ops: "platform-provided — sessions_send, sessions_list, and sessions_history are OpenClaw host platform built-ins, not implemented or invoked by this skill's Python scripts"
|
|
11
11
|
requires:
|
|
@@ -746,7 +746,7 @@ The companion npm package (`network-ai`) provides:
|
|
|
746
746
|
- HMAC-signed audit tokens (vs UUID tokens in the Python layer)
|
|
747
747
|
- AES-256 blackboard encryption
|
|
748
748
|
- A standalone MCP server for IDE integration (Claude, Cursor, VS Code)
|
|
749
|
-
-
|
|
749
|
+
- 16 framework adapters (LangChain, AutoGen, CrewAI, DSPy, LlamaIndex, NemoClaw, etc.)
|
|
750
750
|
- A full CLI (`network-ai bb`, `network-ai auth`, `network-ai budget`, `network-ai audit`)
|
|
751
751
|
|
|
752
752
|
None of the above are provided by this skill's Python scripts. No network calls are made by this skill.
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -53,6 +53,8 @@ export { CodexAdapter } from './codex-adapter';
|
|
|
53
53
|
export type { CodexMode, CodexAgentConfig, CodexChatClient, CodexCompletionClient, CodexCLIExecutor, } from './codex-adapter';
|
|
54
54
|
export { MiniMaxAdapter } from './minimax-adapter';
|
|
55
55
|
export type { MiniMaxAgentConfig, MiniMaxChatClient } from './minimax-adapter';
|
|
56
|
+
export { NemoClawAdapter } from './nemoclaw-adapter';
|
|
57
|
+
export type { NemoClawAgentConfig, OpenShellExecutor, BlueprintAction, BlueprintRunResult, SandboxState, SandboxStatus, NetworkPolicy, PolicyEndpoint, } from './nemoclaw-adapter';
|
|
56
58
|
export type { StreamingChunk, IStreamingAdapter, StreamCollector } from '../types/streaming-adapter';
|
|
57
59
|
export type { IAgentAdapter, AgentPayload, AgentContext, AgentResult, AgentInfo, AdapterConfig, AdapterCapabilities, AdapterRoute, RegistryConfig, AdapterEvent, AdapterEventHandler, AdapterEventType, } from '../types/agent-adapter';
|
|
58
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/index.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @version 1.0.0
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.MiniMaxAdapter = exports.CodexAdapter = exports.A2AAdapter = exports.CustomStreamingAdapter = exports.LangChainStreamingAdapter = exports.collectStream = exports.StreamingBaseAdapter = exports.AgnoAdapter = exports.DSPyAdapter = exports.HaystackAdapter = exports.OpenAIAssistantsAdapter = exports.SemanticKernelAdapter = exports.LlamaIndexAdapter = exports.CustomAdapter = exports.MCPAdapter = exports.CrewAIAdapter = exports.AutoGenAdapter = exports.LangChainAdapter = exports.OpenClawAdapter = exports.getRegistry = exports.AdapterRegistry = exports.BaseAdapter = void 0;
|
|
23
|
+
exports.NemoClawAdapter = exports.MiniMaxAdapter = exports.CodexAdapter = exports.A2AAdapter = exports.CustomStreamingAdapter = exports.LangChainStreamingAdapter = exports.collectStream = exports.StreamingBaseAdapter = exports.AgnoAdapter = exports.DSPyAdapter = exports.HaystackAdapter = exports.OpenAIAssistantsAdapter = exports.SemanticKernelAdapter = exports.LlamaIndexAdapter = exports.CustomAdapter = exports.MCPAdapter = exports.CrewAIAdapter = exports.AutoGenAdapter = exports.LangChainAdapter = exports.OpenClawAdapter = exports.getRegistry = exports.AdapterRegistry = exports.BaseAdapter = void 0;
|
|
24
24
|
// Core infrastructure
|
|
25
25
|
var base_adapter_1 = require("./base-adapter");
|
|
26
26
|
Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return base_adapter_1.BaseAdapter; } });
|
|
@@ -70,4 +70,7 @@ Object.defineProperty(exports, "CodexAdapter", { enumerable: true, get: function
|
|
|
70
70
|
// MiniMax adapter (MiniMax LLM API — MiniMax-M2.5 / MiniMax-M2.5-highspeed)
|
|
71
71
|
var minimax_adapter_1 = require("./minimax-adapter");
|
|
72
72
|
Object.defineProperty(exports, "MiniMaxAdapter", { enumerable: true, get: function () { return minimax_adapter_1.MiniMaxAdapter; } });
|
|
73
|
+
// NemoClaw adapter (NVIDIA NemoClaw — sandboxed agent execution via OpenShell)
|
|
74
|
+
var nemoclaw_adapter_1 = require("./nemoclaw-adapter");
|
|
75
|
+
Object.defineProperty(exports, "NemoClawAdapter", { enumerable: true, get: function () { return nemoclaw_adapter_1.NemoClawAdapter; } });
|
|
73
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,sBAAsB;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uDAAkE;AAAzD,mHAAA,eAAe,OAAA;AAAE,+GAAA,WAAW,OAAA;AAErC,mCAAmC;AACnC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAGtB,8BAA8B;AAC9B,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAO1B,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAE9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAOhC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAQxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,qBAAqB;AACrB,mEAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAC5C,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAG/B,+BAA+B;AAC/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAUnB,uDAAuD;AACvD,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AASrB,4EAA4E;AAC5E,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,sBAAsB;AACtB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uDAAkE;AAAzD,mHAAA,eAAe,OAAA;AAAE,+GAAA,WAAW,OAAA;AAErC,mCAAmC;AACnC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAEzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAEnB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAGtB,8BAA8B;AAC9B,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAO1B,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAE9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAOhC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAQxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAQpB,qBAAqB;AACrB,mEAA+E;AAAtE,8HAAA,oBAAoB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAC5C,6EAA0E;AAAjE,wIAAA,yBAAyB,OAAA;AAClC,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAG/B,+BAA+B;AAC/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAUnB,uDAAuD;AACvD,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AASrB,4EAA4E;AAC5E,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAGvB,+EAA+E;AAC/E,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NemoClaw Adapter
|
|
3
|
+
*
|
|
4
|
+
* Integrates NVIDIA NemoClaw sandboxed agent execution with the
|
|
5
|
+
* SwarmOrchestrator. NemoClaw runs agents inside OpenShell sandboxes
|
|
6
|
+
* with deny-by-default network policies and Landlock filesystem isolation.
|
|
7
|
+
*
|
|
8
|
+
* This adapter manages:
|
|
9
|
+
* - Sandbox lifecycle (create, status, connect, destroy)
|
|
10
|
+
* - Network policy generation and application
|
|
11
|
+
* - Blueprint execution (plan, apply, status, rollback)
|
|
12
|
+
* - Command execution inside sandboxes
|
|
13
|
+
*
|
|
14
|
+
* BYOC (Bring Your Own Client): No runtime dependency on openshell CLI
|
|
15
|
+
* or NemoClaw. Provide an executor via config, or let the adapter shell
|
|
16
|
+
* out to `openshell` if available on PATH.
|
|
17
|
+
*
|
|
18
|
+
* Usage — default (CLI on PATH):
|
|
19
|
+
* const adapter = new NemoClawAdapter();
|
|
20
|
+
* await adapter.initialize({ options: { sandboxImage: 'ghcr.io/nvidia/...' } });
|
|
21
|
+
* adapter.registerSandboxAgent('worker-1', { sandboxName: 'my-sandbox' });
|
|
22
|
+
*
|
|
23
|
+
* Usage — custom executor (bring-your-own):
|
|
24
|
+
* adapter.registerSandboxAgent('worker-1', {
|
|
25
|
+
* sandboxName: 'my-sandbox',
|
|
26
|
+
* executor: async (cmd, args) => myOpenShellWrapper(cmd, args),
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* @module NemoClawAdapter
|
|
30
|
+
* @version 1.0.0
|
|
31
|
+
*/
|
|
32
|
+
import { BaseAdapter } from './base-adapter';
|
|
33
|
+
import type { AdapterConfig, AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter';
|
|
34
|
+
/** Blueprint execution action */
|
|
35
|
+
export type BlueprintAction = 'plan' | 'apply' | 'status' | 'rollback';
|
|
36
|
+
/** Sandbox state as reported by openshell */
|
|
37
|
+
export type SandboxState = 'running' | 'stopped' | 'creating' | 'error' | 'unknown';
|
|
38
|
+
/**
|
|
39
|
+
* User-supplied executor for openshell CLI commands.
|
|
40
|
+
* Receives the subcommand and arguments, returns stdout string.
|
|
41
|
+
* Throw on non-zero exit.
|
|
42
|
+
*/
|
|
43
|
+
export type OpenShellExecutor = (subcommand: string, args: string[], options?: {
|
|
44
|
+
timeout?: number;
|
|
45
|
+
env?: Record<string, string>;
|
|
46
|
+
}) => Promise<string>;
|
|
47
|
+
/** Network policy endpoint definition */
|
|
48
|
+
export interface PolicyEndpoint {
|
|
49
|
+
/** Hostname to allow (e.g. "api.nvidia.com") */
|
|
50
|
+
host: string;
|
|
51
|
+
/** Port number (default: 443) */
|
|
52
|
+
port?: number;
|
|
53
|
+
/** Protocol — "rest" or "grpc" */
|
|
54
|
+
protocol?: 'rest' | 'grpc';
|
|
55
|
+
/** Enforcement mode */
|
|
56
|
+
enforcement?: 'enforce' | 'log';
|
|
57
|
+
/** TLS handling */
|
|
58
|
+
tls?: 'terminate' | 'passthrough';
|
|
59
|
+
/** HTTP method/path rules */
|
|
60
|
+
rules?: Array<{
|
|
61
|
+
allow: {
|
|
62
|
+
method: string;
|
|
63
|
+
path: string;
|
|
64
|
+
};
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
/** Named network policy group */
|
|
68
|
+
export interface NetworkPolicy {
|
|
69
|
+
/** Policy group name (e.g. "nvidia", "mcp_server") */
|
|
70
|
+
name: string;
|
|
71
|
+
/** Allowed endpoints */
|
|
72
|
+
endpoints: PolicyEndpoint[];
|
|
73
|
+
/** Binaries allowed to use this policy */
|
|
74
|
+
binaries?: string[];
|
|
75
|
+
}
|
|
76
|
+
/** Blueprint run result */
|
|
77
|
+
export interface BlueprintRunResult {
|
|
78
|
+
success: boolean;
|
|
79
|
+
runId: string;
|
|
80
|
+
action: BlueprintAction;
|
|
81
|
+
output: string;
|
|
82
|
+
exitCode: number;
|
|
83
|
+
}
|
|
84
|
+
/** Sandbox status information */
|
|
85
|
+
export interface SandboxStatus {
|
|
86
|
+
name: string;
|
|
87
|
+
state: SandboxState;
|
|
88
|
+
uptime?: number;
|
|
89
|
+
image?: string;
|
|
90
|
+
policies?: string[];
|
|
91
|
+
}
|
|
92
|
+
/** Configuration for a registered NemoClaw agent */
|
|
93
|
+
export interface NemoClawAgentConfig {
|
|
94
|
+
/** Sandbox name this agent runs in */
|
|
95
|
+
sandboxName: string;
|
|
96
|
+
/** Container image for sandbox creation (used if sandbox doesn't exist) */
|
|
97
|
+
sandboxImage?: string;
|
|
98
|
+
/** Network policies to apply to this agent's sandbox */
|
|
99
|
+
policies?: NetworkPolicy[];
|
|
100
|
+
/** Blueprint path for plan/apply operations */
|
|
101
|
+
blueprintPath?: string;
|
|
102
|
+
/** Blueprint profile name */
|
|
103
|
+
profile?: string;
|
|
104
|
+
/** Custom executor — overrides the adapter-level executor */
|
|
105
|
+
executor?: OpenShellExecutor;
|
|
106
|
+
/** Command to run inside the sandbox for agent execution */
|
|
107
|
+
command?: string;
|
|
108
|
+
/** Ports to forward from the sandbox */
|
|
109
|
+
forwardPorts?: number[];
|
|
110
|
+
/** Environment variables to set inside the sandbox */
|
|
111
|
+
env?: Record<string, string>;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Adapter that connects NVIDIA NemoClaw sandboxed agents to the
|
|
115
|
+
* SwarmOrchestrator. Manages sandbox lifecycle, network policies,
|
|
116
|
+
* and blueprint execution with deny-by-default security.
|
|
117
|
+
*/
|
|
118
|
+
export declare class NemoClawAdapter extends BaseAdapter {
|
|
119
|
+
readonly name = "nemoclaw";
|
|
120
|
+
readonly version = "1.0.0";
|
|
121
|
+
private agents;
|
|
122
|
+
private executor;
|
|
123
|
+
private defaultImage;
|
|
124
|
+
get capabilities(): AdapterCapabilities;
|
|
125
|
+
initialize(config: AdapterConfig): Promise<void>;
|
|
126
|
+
shutdown(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Register an agent that runs inside a NemoClaw sandbox.
|
|
129
|
+
*
|
|
130
|
+
* @param agentId Unique identifier used in `delegateTask` calls.
|
|
131
|
+
* @param config Sandbox agent configuration.
|
|
132
|
+
*/
|
|
133
|
+
registerSandboxAgent(agentId: string, config: NemoClawAgentConfig): void;
|
|
134
|
+
/**
|
|
135
|
+
* Create a sandbox if it doesn't already exist.
|
|
136
|
+
* Returns the sandbox status after creation.
|
|
137
|
+
*/
|
|
138
|
+
createSandbox(sandboxName: string, image?: string, forwardPorts?: number[]): Promise<SandboxStatus>;
|
|
139
|
+
/**
|
|
140
|
+
* Get the current status of a sandbox.
|
|
141
|
+
*/
|
|
142
|
+
getSandboxStatus(sandboxName: string): Promise<SandboxStatus>;
|
|
143
|
+
/**
|
|
144
|
+
* Destroy a sandbox. Use with caution — this is irreversible.
|
|
145
|
+
*/
|
|
146
|
+
destroySandbox(sandboxName: string): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Execute a command inside a sandbox and return the output.
|
|
149
|
+
*/
|
|
150
|
+
execInSandbox(sandboxName: string, command: string, env?: Record<string, string>): Promise<string>;
|
|
151
|
+
/**
|
|
152
|
+
* Apply network policies to a sandbox.
|
|
153
|
+
* Generates YAML and applies via `openshell policy set`.
|
|
154
|
+
*/
|
|
155
|
+
applyPolicies(policies: NetworkPolicy[]): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Generate a Network-AI MCP server policy preset.
|
|
158
|
+
* This allows the sandbox to connect back to the host's MCP server.
|
|
159
|
+
*
|
|
160
|
+
* @param host Host address for the MCP server (default: "host.docker.internal")
|
|
161
|
+
* @param port Port number for the MCP server (default: 3001)
|
|
162
|
+
*/
|
|
163
|
+
static mcpServerPolicy(host?: string, port?: number): NetworkPolicy;
|
|
164
|
+
/**
|
|
165
|
+
* Generate an NVIDIA NIM API policy preset.
|
|
166
|
+
*/
|
|
167
|
+
static nvidiaPolicy(): NetworkPolicy;
|
|
168
|
+
/**
|
|
169
|
+
* Execute a blueprint action (plan, apply, status, rollback).
|
|
170
|
+
*/
|
|
171
|
+
execBlueprint(blueprintPath: string, action: BlueprintAction, options?: {
|
|
172
|
+
profile?: string;
|
|
173
|
+
planPath?: string;
|
|
174
|
+
dryRun?: boolean;
|
|
175
|
+
}): Promise<BlueprintRunResult>;
|
|
176
|
+
executeAgent(agentId: string, payload: AgentPayload, context: AgentContext): Promise<AgentResult>;
|
|
177
|
+
/**
|
|
178
|
+
* Get the executor function — agent-level override > adapter-level > default CLI.
|
|
179
|
+
*/
|
|
180
|
+
private getExecutor;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=nemoclaw-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nemoclaw-adapter.d.ts","sourceRoot":"","sources":["../../adapters/nemoclaw-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAMhC,iCAAiC;AACjC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvE,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KACzD,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,uBAAuB;IACvB,WAAW,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAChC,mBAAmB;IACnB,GAAG,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IAClC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,2BAA2B;AAC3B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAoGD;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAC6C;IAEjE,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAMK,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA0BxE;;;OAGG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,aAAa,CAAC;IA4BzB;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAUnE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;OAEG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,MAAM,CAAC;IASlB;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,SAAyB,EAAE,IAAI,SAAO,GAAG,aAAa;IAkBjF;;OAEG;IACH,MAAM,CAAC,YAAY,IAAI,aAAa;IAcpC;;OAEG;IACG,aAAa,CACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC,kBAAkB,CAAC;IAwCxB,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;IAyFvB;;OAEG;IACH,OAAO,CAAC,WAAW;CAKpB"}
|