network-ai 4.7.0 → 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.
@@ -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 15 adapters. Map your existing agents to the right one:
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 15 adapters with code examples |
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 15 adapters are self-contained — add framework SDKs only when you need them.
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 15 adapters
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 15 adapters
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
  [![CI](https://github.com/Jovancoding/Network-AI/actions/workflows/ci.yml/badge.svg)](https://github.com/Jovancoding/Network-AI/actions/workflows/ci.yml)
6
6
  [![CodeQL](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml/badge.svg)](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml)
7
- [![Release](https://img.shields.io/badge/release-v4.7.0-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
7
+ [![Release](https://img.shields.io/badge/release-v4.8.0-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
8
8
  [![npm](https://img.shields.io/npm/dw/network-ai.svg?label=npm%20downloads)](https://www.npmjs.com/package/network-ai)
9
- [![Tests](https://img.shields.io/badge/tests-1449%20passing-brightgreen.svg)](#testing)
10
- [![Adapters](https://img.shields.io/badge/frameworks-15%20supported-blueviolet.svg)](#adapter-system)
9
+ [![Tests](https://img.shields.io/badge/tests-1543%20passing-brightgreen.svg)](#testing)
10
+ [![Adapters](https://img.shields.io/badge/frameworks-16%20supported-blueviolet.svg)](#adapter-system)
11
11
  [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE)
12
12
  [![Socket](https://socket.dev/api/badge/npm/package/network-ai)](https://socket.dev/npm/package/network-ai/overview)
13
13
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org)
@@ -15,12 +15,13 @@
15
15
  [![ClawHub](https://img.shields.io/badge/ClawHub-network--ai-orange.svg)](https://clawhub.ai/skills/network-ai)
16
16
  [![Integration Guide](https://img.shields.io/badge/docs-integration%20guide-informational.svg)](INTEGRATION_GUIDE.md)
17
17
  [![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white)](https://discord.gg/Cab5vAxc86)
18
+ [![Glama](https://glama.ai/mcp/servers/Jovancoding/network-ai/badges/score.svg)](https://glama.ai/mcp/servers/Jovancoding/network-ai)
18
19
 
19
20
  Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordination, guardrails, and governance to any AI agent stack.
20
21
 
21
22
  - **Shared blackboard with locking** — atomic `propose → validate → commit` prevents race conditions and split-brain failures across parallel agents
22
23
  - **Guardrails and budgets** — FSM governance, per-agent token ceilings, HMAC audit trails, and permission gating
23
- - **15 adapters** — LangChain (+ streaming), AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, Custom (+ streaming), OpenClaw, A2A, Codex, and MiniMax — no glue code, no lock-in
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
24
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
25
26
 
26
27
  > **The silent failure mode in multi-agent systems:** parallel agents writing to the same key
@@ -55,7 +56,7 @@ Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordinati
55
56
  | Race conditions in parallel agents | Atomic blackboard: `propose → validate → commit` with file-system mutex |
56
57
  | Agent overspend / runaway costs | `FederatedBudget` — hard per-agent token ceilings with live spend tracking |
57
58
  | No visibility into what agents did | HMAC-signed audit log on every write, permission grant, and FSM transition |
58
- | Locked into one AI framework | 15 adapters — mix LangChain + AutoGen + CrewAI + Codex + MiniMax + custom in one swarm |
59
+ | Locked into one AI framework | 16 adapters — mix LangChain + AutoGen + CrewAI + Codex + MiniMax + NemoClaw + custom in one swarm |
59
60
  | Agents escalating beyond their scope | `AuthGuardian` — scoped permission tokens required before sensitive operations |
60
61
  | Agents lack project context between runs | `ProjectContextManager` (Layer 3) — inject decisions, goals, stack, and milestones into every system prompt |
61
62
 
@@ -267,7 +268,7 @@ npm run demo -- --07
267
268
 
268
269
  ## Adapter System
269
270
 
270
- 15 adapters, zero adapter dependencies. You bring your own SDK objects.
271
+ 16 adapters, zero adapter dependencies. You bring your own SDK objects.
271
272
 
272
273
  | Adapter | Framework / Protocol | Register method |
273
274
  |---|---|---|
@@ -286,6 +287,7 @@ npm run demo -- --07
286
287
  | `A2AAdapter` | Google A2A Protocol | `registerRemoteAgent(name, url)` |
287
288
  | `CodexAdapter` | OpenAI Codex / gpt-4o / Codex CLI | `registerCodexAgent(name, config)` |
288
289
  | `MiniMaxAdapter` | MiniMax LLM API (M2.5 / M2.5-highspeed) | `registerAgent(name, config)` |
290
+ | `NemoClawAdapter` | NVIDIA NemoClaw (sandboxed agents via OpenShell) | `registerSandboxAgent(name, config)` |
289
291
 
290
292
  **Streaming variants** (drop-in replacements with `.stream()` support):
291
293
 
@@ -320,7 +322,7 @@ Extend `BaseAdapter` (or `StreamingBaseAdapter` for streaming) to add your own i
320
322
  npm run test:all # All suites in sequence
321
323
  npm test # Core orchestrator
322
324
  npm run test:security # Security module
323
- npm run test:adapters # All 15 adapters
325
+ npm run test:adapters # All 16 adapters
324
326
  npm run test:streaming # Streaming adapters
325
327
  npm run test:a2a # A2A protocol adapter
326
328
  npm run test:codex # Codex adapter
@@ -328,7 +330,7 @@ npm run test:priority # Priority & preemption
328
330
  npm run test:cli # CLI layer
329
331
  ```
330
332
 
331
- **1,449 passing assertions across 18 test suites** (`npm run test:all`):
333
+ **1,543 passing assertions across 19 test suites** (`npm run test:all`):
332
334
 
333
335
  | Suite | Assertions | Covers |
334
336
  |---|---|---|
@@ -336,13 +338,14 @@ npm run test:cli # CLI layer
336
338
  | `test-phase5f.ts` | 127 | SSE transport, `McpCombinedBridge`, extended MCP tools |
337
339
  | `test-phase5g.ts` | 121 | CRDT backend, vector clocks, bidirectional sync |
338
340
  | `test-phase6.ts` | 121 | MCP server, control-plane tools, audit tools |
339
- | `test-adapters.ts` | 140 | All 15 adapters, registry routing, integration, edge cases |
341
+ | `test-adapters.ts` | 141 | All 16 adapters, registry routing, integration, edge cases |
340
342
  | `test-phase5d.ts` | 117 | Pluggable backend (Redis, CRDT, Memory) |
341
343
  | `test-standalone.ts` | 88 | Blackboard, auth, integration, persistence, parallelisation, quality gate |
342
344
  | `test-phase5e.ts` | 87 | Federated budget tracking |
343
345
  | `test-phase5c.ts` | 73 | Named multi-blackboard, isolation, backend options |
344
346
  | `test-codex.ts` | 51 | Codex adapter: chat, completion, CLI, BYOC client, error paths |
345
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 |
346
349
  | `test-priority.ts` | 64 | Priority preemption, conflict resolution, backward compat |
347
350
  | `test-a2a.ts` | 35 | A2A protocol: register, execute, mock fetch, error paths |
348
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, 15 adapters, CLI) are in the SEPARATE companion npm package (npm install -g network-ai) and are NOT part of this skill bundle."
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, 15 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."
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
- - 14 framework adapters (LangChain, AutoGen, CrewAI, DSPy, LlamaIndex, etc.)
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.
@@ -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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"}
@@ -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":"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"}