network-ai 4.5.3 → 4.6.1
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 +2 -2
- package/QUICKSTART.md +3 -3
- package/README.md +12 -10
- package/SKILL.md +4 -2
- 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/minimax-adapter.d.ts +104 -0
- package/dist/adapters/minimax-adapter.d.ts.map +1 -0
- package/dist/adapters/minimax-adapter.js +233 -0
- package/dist/adapters/minimax-adapter.js.map +1 -0
- package/package.json +2 -2
- package/socket.json +32 -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 15 adapters. Map your existing agents to the right one:
|
|
68
68
|
|
|
69
69
|
| Your Stack | Network-AI Adapter | Notes |
|
|
70
70
|
|-----------|-------------------|-------|
|
|
@@ -459,7 +459,7 @@ Run these before declaring the integration production-ready:
|
|
|
459
459
|
|----------|---------------|
|
|
460
460
|
| [QUICKSTART.md](QUICKSTART.md) | Get running in 5 minutes |
|
|
461
461
|
| [QUICKSTART.md § CLI](QUICKSTART.md) | CLI reference — bb, auth, budget, audit commands |
|
|
462
|
-
| [references/adapter-system.md](references/adapter-system.md) | All
|
|
462
|
+
| [references/adapter-system.md](references/adapter-system.md) | All 15 adapters with code examples |
|
|
463
463
|
| [references/trust-levels.md](references/trust-levels.md) | Trust scoring formula and agent roles |
|
|
464
464
|
| [references/auth-guardian.md](references/auth-guardian.md) | Permission system, justification scoring, token lifecycle |
|
|
465
465
|
| [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 15 adapters are self-contained — add framework SDKs only when you need them.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -225,7 +225,7 @@ npx ts-node test-cli.ts # 65 CLI tests
|
|
|
225
225
|
|
|
226
226
|
```bash
|
|
227
227
|
npx ts-node setup.ts --check # Verify installation
|
|
228
|
-
npx ts-node setup.ts --list # List all
|
|
228
|
+
npx ts-node setup.ts --list # List all 15 adapters
|
|
229
229
|
npx ts-node setup.ts --example # Generate example.ts
|
|
230
230
|
```
|
|
231
231
|
|
|
@@ -563,7 +563,7 @@ import SwarmOrchestrator, {
|
|
|
563
563
|
// Factory
|
|
564
564
|
import { createSwarmOrchestrator } from 'network-ai';
|
|
565
565
|
|
|
566
|
-
// All
|
|
566
|
+
// All 15 adapters
|
|
567
567
|
import {
|
|
568
568
|
AdapterRegistry, BaseAdapter,
|
|
569
569
|
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)
|
|
@@ -20,7 +20,7 @@ Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordinati
|
|
|
20
20
|
|
|
21
21
|
- **Shared blackboard with locking** — atomic `propose → validate → commit` prevents race conditions and split-brain failures across parallel agents
|
|
22
22
|
- **Guardrails and budgets** — FSM governance, per-agent token ceilings, HMAC audit trails, and permission gating
|
|
23
|
-
- **
|
|
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
24
|
- **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
25
|
|
|
26
26
|
> **The silent failure mode in multi-agent systems:** parallel agents writing to the same key
|
|
@@ -55,7 +55,7 @@ Network-AI is a TypeScript/Node.js multi-agent orchestrator that adds coordinati
|
|
|
55
55
|
| Race conditions in parallel agents | Atomic blackboard: `propose → validate → commit` with file-system mutex |
|
|
56
56
|
| Agent overspend / runaway costs | `FederatedBudget` — hard per-agent token ceilings with live spend tracking |
|
|
57
57
|
| No visibility into what agents did | HMAC-signed audit log on every write, permission grant, and FSM transition |
|
|
58
|
-
| Locked into one AI framework |
|
|
58
|
+
| Locked into one AI framework | 15 adapters — mix LangChain + AutoGen + CrewAI + Codex + MiniMax + custom in one swarm |
|
|
59
59
|
| Agents escalating beyond their scope | `AuthGuardian` — scoped permission tokens required before sensitive operations |
|
|
60
60
|
| Agents lack project context between runs | `ProjectContextManager` (Layer 3) — inject decisions, goals, stack, and milestones into every system prompt |
|
|
61
61
|
|
|
@@ -267,7 +267,7 @@ npm run demo -- --07
|
|
|
267
267
|
|
|
268
268
|
## Adapter System
|
|
269
269
|
|
|
270
|
-
|
|
270
|
+
15 adapters, zero adapter dependencies. You bring your own SDK objects.
|
|
271
271
|
|
|
272
272
|
| Adapter | Framework / Protocol | Register method |
|
|
273
273
|
|---|---|---|
|
|
@@ -285,6 +285,7 @@ npm run demo -- --07
|
|
|
285
285
|
| `OpenClawAdapter` | OpenClaw | `registerSkill(name, skillRef)` |
|
|
286
286
|
| `A2AAdapter` | Google A2A Protocol | `registerRemoteAgent(name, url)` |
|
|
287
287
|
| `CodexAdapter` | OpenAI Codex / gpt-4o / Codex CLI | `registerCodexAgent(name, config)` |
|
|
288
|
+
| `MiniMaxAdapter` | MiniMax LLM API (M2.5 / M2.5-highspeed) | `registerAgent(name, config)` |
|
|
288
289
|
|
|
289
290
|
**Streaming variants** (drop-in replacements with `.stream()` support):
|
|
290
291
|
|
|
@@ -303,7 +304,7 @@ Extend `BaseAdapter` (or `StreamingBaseAdapter` for streaming) to add your own i
|
|
|
303
304
|
|
|
304
305
|
| Capability | Network-AI | LangGraph | CrewAI | AutoGen |
|
|
305
306
|
|---|---|---|---|---|
|
|
306
|
-
| Cross-framework agents in one swarm | ✅
|
|
307
|
+
| Cross-framework agents in one swarm | ✅ 15 built-in adapters | ⚠️ Nodes can call any code; no adapter abstraction | ⚠️ Extensible via tools; CrewAI-native agents only | ⚠️ Extensible via plugins; AutoGen-native agents only |
|
|
307
308
|
| Atomic shared state (conflict-safe) | ✅ `propose → validate → commit` mutex | ⚠️ State passed between nodes; last-write-wins | ⚠️ Shared memory available; no conflict resolution | ⚠️ Shared context available; no conflict resolution |
|
|
308
309
|
| Hard token ceiling per agent | ✅ `FederatedBudget` (first-class API) | ⚠️ Via callbacks / custom middleware | ⚠️ Via callbacks / custom middleware | ⚠️ Built-in token tracking in v0.4+; no swarm-level ceiling |
|
|
309
310
|
| Permission gating before sensitive ops | ✅ `AuthGuardian` (built-in) | ⚠️ Possible via custom node logic | ⚠️ Possible via custom tools | ⚠️ Possible via custom middleware |
|
|
@@ -319,7 +320,7 @@ Extend `BaseAdapter` (or `StreamingBaseAdapter` for streaming) to add your own i
|
|
|
319
320
|
npm run test:all # All suites in sequence
|
|
320
321
|
npm test # Core orchestrator
|
|
321
322
|
npm run test:security # Security module
|
|
322
|
-
npm run test:adapters # All
|
|
323
|
+
npm run test:adapters # All 15 adapters
|
|
323
324
|
npm run test:streaming # Streaming adapters
|
|
324
325
|
npm run test:a2a # A2A protocol adapter
|
|
325
326
|
npm run test:codex # Codex adapter
|
|
@@ -327,7 +328,7 @@ npm run test:priority # Priority & preemption
|
|
|
327
328
|
npm run test:cli # CLI layer
|
|
328
329
|
```
|
|
329
330
|
|
|
330
|
-
**1,
|
|
331
|
+
**1,449 passing assertions across 18 test suites** (`npm run test:all`):
|
|
331
332
|
|
|
332
333
|
| Suite | Assertions | Covers |
|
|
333
334
|
|---|---|---|
|
|
@@ -335,12 +336,13 @@ npm run test:cli # CLI layer
|
|
|
335
336
|
| `test-phase5f.ts` | 127 | SSE transport, `McpCombinedBridge`, extended MCP tools |
|
|
336
337
|
| `test-phase5g.ts` | 121 | CRDT backend, vector clocks, bidirectional sync |
|
|
337
338
|
| `test-phase6.ts` | 121 | MCP server, control-plane tools, audit tools |
|
|
338
|
-
| `test-adapters.ts` | 140 | All
|
|
339
|
+
| `test-adapters.ts` | 140 | All 15 adapters, registry routing, integration, edge cases |
|
|
339
340
|
| `test-phase5d.ts` | 117 | Pluggable backend (Redis, CRDT, Memory) |
|
|
340
341
|
| `test-standalone.ts` | 88 | Blackboard, auth, integration, persistence, parallelisation, quality gate |
|
|
341
342
|
| `test-phase5e.ts` | 87 | Federated budget tracking |
|
|
342
343
|
| `test-phase5c.ts` | 73 | Named multi-blackboard, isolation, backend options |
|
|
343
344
|
| `test-codex.ts` | 51 | Codex adapter: chat, completion, CLI, BYOC client, error paths |
|
|
345
|
+
| `test-minimax.ts` | 50 | MiniMax adapter: lifecycle, registration, chat mode, temperature clamping |
|
|
344
346
|
| `test-priority.ts` | 64 | Priority preemption, conflict resolution, backward compat |
|
|
345
347
|
| `test-a2a.ts` | 35 | A2A protocol: register, execute, mock fetch, error paths |
|
|
346
348
|
| `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, 15 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, 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."
|
|
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:
|
|
@@ -37,6 +37,8 @@ metadata:
|
|
|
37
37
|
|
|
38
38
|
**No pip install required.** All 6 scripts use Python standard library only — zero third-party packages.
|
|
39
39
|
|
|
40
|
+
> **Note on `requirements.txt`:** The file exists for documentation purposes only — it lists the stdlib modules used and has **no required packages**. All listed deps are commented out as optional. You do not need to run `pip install -r requirements.txt`.
|
|
41
|
+
|
|
40
42
|
```bash
|
|
41
43
|
# Prerequisite: python3 (any version ≥ 3.8)
|
|
42
44
|
python3 --version
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -51,6 +51,8 @@ export { A2AAdapter } from './a2a-adapter';
|
|
|
51
51
|
export type { A2AAgentCard, A2ATask, A2ATaskResponse, A2ATaskState, A2AArtifact, A2AAdapterConfig, } from './a2a-adapter';
|
|
52
52
|
export { CodexAdapter } from './codex-adapter';
|
|
53
53
|
export type { CodexMode, CodexAgentConfig, CodexChatClient, CodexCompletionClient, CodexCLIExecutor, } from './codex-adapter';
|
|
54
|
+
export { MiniMaxAdapter } from './minimax-adapter';
|
|
55
|
+
export type { MiniMaxAgentConfig, MiniMaxChatClient } from './minimax-adapter';
|
|
54
56
|
export type { StreamingChunk, IStreamingAdapter, StreamCollector } from '../types/streaming-adapter';
|
|
55
57
|
export type { IAgentAdapter, AgentPayload, AgentContext, AgentResult, AgentInfo, AdapterConfig, AdapterCapabilities, AdapterRoute, RegistryConfig, AdapterEvent, AdapterEventHandler, AdapterEventType, } from '../types/agent-adapter';
|
|
56
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGrG,YAAY,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC"}
|
|
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.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.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; } });
|
|
@@ -67,4 +67,7 @@ Object.defineProperty(exports, "A2AAdapter", { enumerable: true, get: function (
|
|
|
67
67
|
// Codex adapter (OpenAI Codex CLI / chat / completion)
|
|
68
68
|
var codex_adapter_1 = require("./codex-adapter");
|
|
69
69
|
Object.defineProperty(exports, "CodexAdapter", { enumerable: true, get: function () { return codex_adapter_1.CodexAdapter; } });
|
|
70
|
+
// MiniMax adapter (MiniMax LLM API — MiniMax-M2.5 / MiniMax-M2.5-highspeed)
|
|
71
|
+
var minimax_adapter_1 = require("./minimax-adapter");
|
|
72
|
+
Object.defineProperty(exports, "MiniMaxAdapter", { enumerable: true, get: function () { return minimax_adapter_1.MiniMaxAdapter; } });
|
|
70
73
|
//# 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"}
|
|
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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MiniMax Adapter
|
|
3
|
+
*
|
|
4
|
+
* Integrates MiniMax LLM API (OpenAI-compatible chat completions) with
|
|
5
|
+
* the SwarmOrchestrator. Supports MiniMax-M2.5 and MiniMax-M2.5-highspeed
|
|
6
|
+
* models with 204K context window.
|
|
7
|
+
*
|
|
8
|
+
* Usage — built-in fetch:
|
|
9
|
+
* const adapter = new MiniMaxAdapter();
|
|
10
|
+
* adapter.registerAgent('analyst', {
|
|
11
|
+
* model: 'MiniMax-M2.5',
|
|
12
|
+
* apiKey: process.env.MINIMAX_API_KEY,
|
|
13
|
+
* systemPrompt: 'You are an expert analyst.',
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* Usage — bring-your-own client (any OpenAI-compatible SDK):
|
|
17
|
+
* adapter.registerAgent('fast', {
|
|
18
|
+
* model: 'MiniMax-M2.5-highspeed',
|
|
19
|
+
* client: openaiCompatibleInstance.chat.completions,
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* @module MiniMaxAdapter
|
|
23
|
+
* @version 1.0.0
|
|
24
|
+
*/
|
|
25
|
+
import { BaseAdapter } from './base-adapter';
|
|
26
|
+
import type { AdapterCapabilities, AgentPayload, AgentContext, AgentResult } from '../types/agent-adapter';
|
|
27
|
+
/**
|
|
28
|
+
* Minimal interface for an OpenAI-compatible chat completions client.
|
|
29
|
+
* Users supply their own SDK instance; no hard dependency.
|
|
30
|
+
*/
|
|
31
|
+
export interface MiniMaxChatClient {
|
|
32
|
+
create(params: {
|
|
33
|
+
model: string;
|
|
34
|
+
messages: Array<{
|
|
35
|
+
role: string;
|
|
36
|
+
content: string;
|
|
37
|
+
}>;
|
|
38
|
+
max_tokens?: number;
|
|
39
|
+
temperature?: number;
|
|
40
|
+
stop?: string[];
|
|
41
|
+
}): Promise<{
|
|
42
|
+
choices: Array<{
|
|
43
|
+
message?: {
|
|
44
|
+
content?: string | null;
|
|
45
|
+
};
|
|
46
|
+
text?: string;
|
|
47
|
+
}>;
|
|
48
|
+
usage?: {
|
|
49
|
+
prompt_tokens: number;
|
|
50
|
+
completion_tokens: number;
|
|
51
|
+
total_tokens: number;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
/** Configuration for a registered MiniMax agent */
|
|
56
|
+
export interface MiniMaxAgentConfig {
|
|
57
|
+
/** Model name — e.g. 'MiniMax-M2.5', 'MiniMax-M2.5-highspeed' */
|
|
58
|
+
model?: string;
|
|
59
|
+
/** MiniMax API key — falls back to MINIMAX_API_KEY env var */
|
|
60
|
+
apiKey?: string;
|
|
61
|
+
/** Base URL override (default: 'https://api.minimax.io/v1') */
|
|
62
|
+
baseUrl?: string;
|
|
63
|
+
/** System-level prompt prepended to every request */
|
|
64
|
+
systemPrompt?: string;
|
|
65
|
+
/** Maximum tokens in the completion */
|
|
66
|
+
maxTokens?: number;
|
|
67
|
+
/** Temperature — must be in (0.0, 1.0]. MiniMax rejects 0. Default: 0.7 */
|
|
68
|
+
temperature?: number;
|
|
69
|
+
/** Stop sequences */
|
|
70
|
+
stop?: string[];
|
|
71
|
+
/**
|
|
72
|
+
* Bring-your-own OpenAI-compatible chat completions instance.
|
|
73
|
+
* If supplied, apiKey / baseUrl are ignored and this client is used directly.
|
|
74
|
+
*/
|
|
75
|
+
client?: MiniMaxChatClient;
|
|
76
|
+
/** Additional headers to send with fetch-based requests */
|
|
77
|
+
headers?: Record<string, string>;
|
|
78
|
+
/** Request timeout in milliseconds (default: 120000) */
|
|
79
|
+
timeout?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Adapter that connects MiniMax LLM models to the SwarmOrchestrator.
|
|
83
|
+
* Uses MiniMax's OpenAI-compatible chat completions API.
|
|
84
|
+
*
|
|
85
|
+
* Available models:
|
|
86
|
+
* - MiniMax-M2.5 — flagship model with 204K context
|
|
87
|
+
* - MiniMax-M2.5-highspeed — faster variant optimised for throughput
|
|
88
|
+
*/
|
|
89
|
+
export declare class MiniMaxAdapter extends BaseAdapter {
|
|
90
|
+
readonly name = "minimax";
|
|
91
|
+
readonly version = "1.0.0";
|
|
92
|
+
private agents;
|
|
93
|
+
get capabilities(): AdapterCapabilities;
|
|
94
|
+
/**
|
|
95
|
+
* Register a MiniMax-powered agent.
|
|
96
|
+
*
|
|
97
|
+
* @param agentId Unique identifier used in `delegateTask` calls.
|
|
98
|
+
* @param config MiniMax agent configuration.
|
|
99
|
+
*/
|
|
100
|
+
registerAgent(agentId: string, config?: MiniMaxAgentConfig): void;
|
|
101
|
+
executeAgent(agentId: string, payload: AgentPayload, context: AgentContext): Promise<AgentResult>;
|
|
102
|
+
private _executeChat;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=minimax-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimax-adapter.d.ts","sourceRoot":"","sources":["../../adapters/minimax-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAEV,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAMhC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzE,KAAK,CAAC,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACpF,CAAC,CAAC;CACJ;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuDD;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,MAAM,CAA6C;IAE3D,IAAI,YAAY,IAAI,mBAAmB,CAStC;IAMD;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,kBAAuB,GAAG,IAAI;IAoB/D,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;YAoDT,YAAY;CAkF3B"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MiniMax Adapter
|
|
4
|
+
*
|
|
5
|
+
* Integrates MiniMax LLM API (OpenAI-compatible chat completions) with
|
|
6
|
+
* the SwarmOrchestrator. Supports MiniMax-M2.5 and MiniMax-M2.5-highspeed
|
|
7
|
+
* models with 204K context window.
|
|
8
|
+
*
|
|
9
|
+
* Usage — built-in fetch:
|
|
10
|
+
* const adapter = new MiniMaxAdapter();
|
|
11
|
+
* adapter.registerAgent('analyst', {
|
|
12
|
+
* model: 'MiniMax-M2.5',
|
|
13
|
+
* apiKey: process.env.MINIMAX_API_KEY,
|
|
14
|
+
* systemPrompt: 'You are an expert analyst.',
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* Usage — bring-your-own client (any OpenAI-compatible SDK):
|
|
18
|
+
* adapter.registerAgent('fast', {
|
|
19
|
+
* model: 'MiniMax-M2.5-highspeed',
|
|
20
|
+
* client: openaiCompatibleInstance.chat.completions,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* @module MiniMaxAdapter
|
|
24
|
+
* @version 1.0.0
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.MiniMaxAdapter = void 0;
|
|
28
|
+
const base_adapter_1 = require("./base-adapter");
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Helpers
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
/** Build the prompt string from an AgentPayload */
|
|
33
|
+
function buildPrompt(payload) {
|
|
34
|
+
const parts = [];
|
|
35
|
+
const instruction = payload.handoff?.instruction;
|
|
36
|
+
if (instruction)
|
|
37
|
+
parts.push(instruction);
|
|
38
|
+
if (payload.action)
|
|
39
|
+
parts.push(`Task: ${payload.action}`);
|
|
40
|
+
if (payload.params && Object.keys(payload.params).length > 0) {
|
|
41
|
+
parts.push(`Parameters: ${JSON.stringify(payload.params, null, 2)}`);
|
|
42
|
+
}
|
|
43
|
+
if (payload.blackboardSnapshot && Object.keys(payload.blackboardSnapshot).length > 0) {
|
|
44
|
+
const relevant = Object.entries(payload.blackboardSnapshot)
|
|
45
|
+
.slice(0, 10)
|
|
46
|
+
.map(([k, v]) => `${k}: ${JSON.stringify(v)}`)
|
|
47
|
+
.join('\n');
|
|
48
|
+
parts.push(`Context from blackboard:\n${relevant}`);
|
|
49
|
+
}
|
|
50
|
+
return parts.join('\n\n') || 'Complete the task.';
|
|
51
|
+
}
|
|
52
|
+
/** Resolve API key — config first, then env */
|
|
53
|
+
function resolveApiKey(config) {
|
|
54
|
+
return config.apiKey ?? process.env['MINIMAX_API_KEY'] ?? '';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clamp temperature to MiniMax's valid range (0.0, 1.0].
|
|
58
|
+
* MiniMax rejects exactly 0, so we use a small epsilon.
|
|
59
|
+
*/
|
|
60
|
+
function clampTemperature(temp) {
|
|
61
|
+
const t = temp ?? 0.7;
|
|
62
|
+
if (t <= 0)
|
|
63
|
+
return 0.01;
|
|
64
|
+
if (t > 1)
|
|
65
|
+
return 1.0;
|
|
66
|
+
return t;
|
|
67
|
+
}
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// MiniMaxAdapter
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
/**
|
|
72
|
+
* Adapter that connects MiniMax LLM models to the SwarmOrchestrator.
|
|
73
|
+
* Uses MiniMax's OpenAI-compatible chat completions API.
|
|
74
|
+
*
|
|
75
|
+
* Available models:
|
|
76
|
+
* - MiniMax-M2.5 — flagship model with 204K context
|
|
77
|
+
* - MiniMax-M2.5-highspeed — faster variant optimised for throughput
|
|
78
|
+
*/
|
|
79
|
+
class MiniMaxAdapter extends base_adapter_1.BaseAdapter {
|
|
80
|
+
name = 'minimax';
|
|
81
|
+
version = '1.0.0';
|
|
82
|
+
agents = new Map();
|
|
83
|
+
get capabilities() {
|
|
84
|
+
return {
|
|
85
|
+
streaming: false,
|
|
86
|
+
parallel: true,
|
|
87
|
+
bidirectional: false,
|
|
88
|
+
discovery: true,
|
|
89
|
+
authentication: true,
|
|
90
|
+
statefulSessions: false,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// -------------------------------------------------------------------------
|
|
94
|
+
// Registration
|
|
95
|
+
// -------------------------------------------------------------------------
|
|
96
|
+
/**
|
|
97
|
+
* Register a MiniMax-powered agent.
|
|
98
|
+
*
|
|
99
|
+
* @param agentId Unique identifier used in `delegateTask` calls.
|
|
100
|
+
* @param config MiniMax agent configuration.
|
|
101
|
+
*/
|
|
102
|
+
registerAgent(agentId, config = {}) {
|
|
103
|
+
if (!this.ready) {
|
|
104
|
+
this.ready = true;
|
|
105
|
+
}
|
|
106
|
+
this.agents.set(agentId, { config });
|
|
107
|
+
this.registeredAgents.set(agentId, {
|
|
108
|
+
id: agentId,
|
|
109
|
+
name: agentId,
|
|
110
|
+
description: `MiniMax agent (model: ${config.model ?? 'MiniMax-M2.5'})`,
|
|
111
|
+
capabilities: ['chat', 'analysis', 'code-generation', 'reasoning'],
|
|
112
|
+
adapter: this.name,
|
|
113
|
+
status: 'available',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// -------------------------------------------------------------------------
|
|
117
|
+
// Execution
|
|
118
|
+
// -------------------------------------------------------------------------
|
|
119
|
+
async executeAgent(agentId, payload, context) {
|
|
120
|
+
if (!this.ready) {
|
|
121
|
+
throw new Error('MiniMaxAdapter: adapter not initialized. Call initialize() first.');
|
|
122
|
+
}
|
|
123
|
+
const entry = this.agents.get(agentId);
|
|
124
|
+
if (!entry) {
|
|
125
|
+
return {
|
|
126
|
+
success: false,
|
|
127
|
+
error: {
|
|
128
|
+
code: 'AGENT_NOT_FOUND',
|
|
129
|
+
message: `MiniMaxAdapter: no agent registered with id "${agentId}"`,
|
|
130
|
+
recoverable: false,
|
|
131
|
+
},
|
|
132
|
+
metadata: { adapter: this.name },
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const cfg = entry.config;
|
|
136
|
+
try {
|
|
137
|
+
const { output, usage } = await this._executeChat(cfg, payload);
|
|
138
|
+
return {
|
|
139
|
+
success: true,
|
|
140
|
+
data: { output, model: cfg.model ?? 'MiniMax-M2.5' },
|
|
141
|
+
metadata: {
|
|
142
|
+
adapter: this.name,
|
|
143
|
+
trace: {
|
|
144
|
+
taskId: context.taskId,
|
|
145
|
+
...(usage ? { usage } : {}),
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
152
|
+
return {
|
|
153
|
+
success: false,
|
|
154
|
+
error: {
|
|
155
|
+
code: 'EXECUTION_ERROR',
|
|
156
|
+
message,
|
|
157
|
+
recoverable: true,
|
|
158
|
+
},
|
|
159
|
+
metadata: { adapter: this.name },
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// -------------------------------------------------------------------------
|
|
164
|
+
// Private execution
|
|
165
|
+
// -------------------------------------------------------------------------
|
|
166
|
+
async _executeChat(cfg, payload) {
|
|
167
|
+
const prompt = buildPrompt(payload);
|
|
168
|
+
const model = cfg.model ?? 'MiniMax-M2.5';
|
|
169
|
+
const temperature = clampTemperature(cfg.temperature);
|
|
170
|
+
// Bring-your-own SDK client
|
|
171
|
+
if (cfg.client) {
|
|
172
|
+
const messages = [];
|
|
173
|
+
if (cfg.systemPrompt)
|
|
174
|
+
messages.push({ role: 'system', content: cfg.systemPrompt });
|
|
175
|
+
messages.push({ role: 'user', content: prompt });
|
|
176
|
+
const resp = await cfg.client.create({
|
|
177
|
+
model,
|
|
178
|
+
messages,
|
|
179
|
+
max_tokens: cfg.maxTokens,
|
|
180
|
+
temperature,
|
|
181
|
+
stop: cfg.stop,
|
|
182
|
+
});
|
|
183
|
+
const output = resp.choices[0]?.message?.content ?? resp.choices[0]?.text ?? '';
|
|
184
|
+
return { output, usage: resp.usage };
|
|
185
|
+
}
|
|
186
|
+
// Built-in fetch path
|
|
187
|
+
const apiKey = resolveApiKey(cfg);
|
|
188
|
+
if (!apiKey) {
|
|
189
|
+
throw new Error('MiniMaxAdapter: no API key provided. Set apiKey in config or MINIMAX_API_KEY env var.');
|
|
190
|
+
}
|
|
191
|
+
const base = (cfg.baseUrl ?? 'https://api.minimax.io/v1').replace(/\/+$/, '');
|
|
192
|
+
const url = `${base}/chat/completions`;
|
|
193
|
+
const messages = [];
|
|
194
|
+
if (cfg.systemPrompt)
|
|
195
|
+
messages.push({ role: 'system', content: cfg.systemPrompt });
|
|
196
|
+
messages.push({ role: 'user', content: prompt });
|
|
197
|
+
const body = {
|
|
198
|
+
model,
|
|
199
|
+
messages,
|
|
200
|
+
...(cfg.maxTokens != null ? { max_tokens: cfg.maxTokens } : {}),
|
|
201
|
+
temperature,
|
|
202
|
+
...(cfg.stop ? { stop: cfg.stop } : {}),
|
|
203
|
+
};
|
|
204
|
+
const timeoutMs = cfg.timeout ?? 120_000;
|
|
205
|
+
const controller = new AbortController();
|
|
206
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
207
|
+
let resp;
|
|
208
|
+
try {
|
|
209
|
+
resp = await fetch(url, {
|
|
210
|
+
method: 'POST',
|
|
211
|
+
headers: {
|
|
212
|
+
'Content-Type': 'application/json',
|
|
213
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
214
|
+
...cfg.headers,
|
|
215
|
+
},
|
|
216
|
+
body: JSON.stringify(body),
|
|
217
|
+
signal: controller.signal,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
clearTimeout(timer);
|
|
222
|
+
}
|
|
223
|
+
if (!resp.ok) {
|
|
224
|
+
const text = await resp.text().catch(() => '');
|
|
225
|
+
throw new Error(`MiniMaxAdapter: HTTP ${resp.status} from MiniMax API — ${text.slice(0, 200)}`);
|
|
226
|
+
}
|
|
227
|
+
const json = await resp.json();
|
|
228
|
+
const output = json.choices[0]?.message?.content ?? '';
|
|
229
|
+
return { output, usage: json.usage };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.MiniMaxAdapter = MiniMaxAdapter;
|
|
233
|
+
//# sourceMappingURL=minimax-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimax-adapter.js","sourceRoot":"","sources":["../../adapters/minimax-adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "network-ai",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "AI agent orchestration framework for TypeScript/Node.js -
|
|
3
|
+
"version": "4.6.1",
|
|
4
|
+
"description": "AI agent orchestration framework for TypeScript/Node.js - 15 adapters (LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw, A2A, Codex, MiniMax + streaming variants). Built-in CLI, security, swarm intelligence, real-time streaming, and agentic workflow patterns.",
|
|
5
5
|
"homepage": "https://github.com/Jovancoding/Network-AI#readme",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
package/socket.json
CHANGED
|
@@ -35,6 +35,22 @@
|
|
|
35
35
|
{
|
|
36
36
|
"path": "dist/bin/mcp-server.js",
|
|
37
37
|
"reason": "Intentional — network-ai-server is an opt-in CLI binary that starts an HTTP/SSE server to expose the Network-AI tool suite over MCP. Users invoke it explicitly; it is not a background side-effect."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"path": "adapters/codex-adapter.ts",
|
|
41
|
+
"reason": "Intentional — CodexAdapter calls OpenAI's chat/completions API (or user-provided baseUrl) via fetch(). Network access is the purpose of this adapter for connecting to OpenAI/Codex endpoints."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"path": "dist/adapters/codex-adapter.js",
|
|
45
|
+
"reason": "Intentional — CodexAdapter calls OpenAI's chat/completions API (or user-provided baseUrl) via fetch(). Network access is the purpose of this adapter for connecting to OpenAI/Codex endpoints."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"path": "adapters/minimax-adapter.ts",
|
|
49
|
+
"reason": "Intentional — MiniMaxAdapter calls MiniMax's OpenAI-compatible chat/completions API via fetch(). Network access is the purpose of this adapter for connecting to MiniMax LLM endpoints."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"path": "dist/adapters/minimax-adapter.js",
|
|
53
|
+
"reason": "Intentional — MiniMaxAdapter calls MiniMax's OpenAI-compatible chat/completions API via fetch(). Network access is the purpose of this adapter for connecting to MiniMax LLM endpoints."
|
|
38
54
|
}
|
|
39
55
|
],
|
|
40
56
|
"urlStrings": [
|
|
@@ -49,6 +65,22 @@
|
|
|
49
65
|
{
|
|
50
66
|
"path": "dist/bin/mcp-server.js",
|
|
51
67
|
"reason": "Intentional — mcp-server.js is the MCP server binary; localhost URLs are for the server it starts (e.g. http://localhost:3001/sse) and are documented in help text and comments."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"path": "adapters/codex-adapter.ts",
|
|
71
|
+
"reason": "Intentional — CodexAdapter uses https://api.openai.com as default baseUrl for OpenAI API calls. Users can override via config.baseUrl."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"path": "dist/adapters/codex-adapter.js",
|
|
75
|
+
"reason": "Intentional — CodexAdapter uses https://api.openai.com as default baseUrl for OpenAI API calls. Users can override via config.baseUrl."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"path": "adapters/minimax-adapter.ts",
|
|
79
|
+
"reason": "Intentional — MiniMaxAdapter uses https://api.minimax.io/v1 as default baseUrl for MiniMax API calls. Users can override via config.baseUrl."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"path": "dist/adapters/minimax-adapter.js",
|
|
83
|
+
"reason": "Intentional — MiniMaxAdapter uses https://api.minimax.io/v1 as default baseUrl for MiniMax API calls. Users can override via config.baseUrl."
|
|
52
84
|
}
|
|
53
85
|
],
|
|
54
86
|
"envVars": [
|