network-ai 4.10.0 → 4.10.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/QUICKSTART.md CHANGED
@@ -524,14 +524,14 @@ const pillars = ['reliability', 'security', 'cost', 'operations', 'performance']
524
524
 
525
525
  // Fan-out: each agent writes to its own section independently
526
526
  for (const pillar of pillars) {
527
- const id = board.propose(`eval:${pillar}`, { score: Math.random(), findings: [] }, pillar);
527
+ const id = board.propose(`review:${pillar}`, { score: Math.random(), findings: [] }, pillar);
528
528
  board.validate(id, 'orchestrator');
529
529
  board.commit(id);
530
530
  }
531
531
 
532
532
  // Fan-in: orchestrator reads all results and synthesises
533
- const results = pillars.map(p => ({ pillar: p, ...board.read(`eval:${p}`) }));
534
- const id = board.propose('eval:summary', {
533
+ const results = pillars.map(p => ({ pillar: p, ...board.read(`review:${p}`) }));
534
+ const id = board.propose('review:summary', {
535
535
  overall: results.reduce((s, r) => s + r.score, 0) / results.length,
536
536
  pillars: results,
537
537
  }, 'orchestrator');
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![Website](https://img.shields.io/badge/website-jovancoding.github.io/Network--AI-4b9df2?style=flat&logo=github-pages&logoColor=white)](https://jovancoding.github.io/Network-AI/)
6
6
  [![CI](https://github.com/Jovancoding/Network-AI/actions/workflows/ci.yml/badge.svg)](https://github.com/Jovancoding/Network-AI/actions/workflows/ci.yml)
7
7
  [![CodeQL](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml/badge.svg)](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml)
8
- [![Release](https://img.shields.io/badge/release-v4.10.0-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
8
+ [![Release](https://img.shields.io/badge/release-v4.10.1-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
9
9
  [![npm](https://img.shields.io/npm/dw/network-ai.svg?label=npm%20downloads)](https://www.npmjs.com/package/network-ai)
10
10
  [![Tests](https://img.shields.io/badge/tests-1617%20passing-brightgreen.svg)](#testing)
11
11
  [![Adapters](https://img.shields.io/badge/frameworks-17%20supported-blueviolet.svg)](#adapter-system)
@@ -15,6 +15,7 @@
15
15
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6.svg)](https://typescriptlang.org)
16
16
  [![ClawHub](https://img.shields.io/badge/ClawHub-network--ai-orange.svg)](https://clawhub.ai/skills/network-ai)
17
17
  [![Integration Guide](https://img.shields.io/badge/docs-integration%20guide-informational.svg)](INTEGRATION_GUIDE.md)
18
+ [![Sponsor](https://img.shields.io/badge/sponsor-support%20the%20project-f15bb5.svg)](https://github.com/sponsors/Jovancoding)
18
19
  [![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white)](https://discord.gg/Cab5vAxc86)
19
20
  [![Glama](https://glama.ai/mcp/servers/Jovancoding/network-ai/badges/score.svg)](https://glama.ai/mcp/servers/Jovancoding/network-ai)
20
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "network-ai",
3
- "version": "4.10.0",
3
+ "version": "4.10.1",
4
4
  "description": "AI agent orchestration framework for TypeScript/Node.js - 17 adapters (LangChain, AutoGen, CrewAI, OpenAI Assistants, LlamaIndex, Semantic Kernel, Haystack, DSPy, Agno, MCP, OpenClaw, A2A, Codex, MiniMax, NemoClaw, APS + 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",
@@ -80,6 +80,10 @@
80
80
  ],
81
81
  "author": "OpenClaw Community",
82
82
  "license": "MIT",
83
+ "funding": {
84
+ "type": "github",
85
+ "url": "https://github.com/sponsors/Jovancoding"
86
+ },
83
87
  "repository": {
84
88
  "type": "git",
85
89
  "url": "https://github.com/Jovancoding/Network-AI.git"
@@ -104,8 +108,7 @@
104
108
  "QUICKSTART.md",
105
109
  "INTEGRATION_GUIDE.md",
106
110
  "SKILL.md",
107
- "LICENSE",
108
- "socket.json"
111
+ "LICENSE"
109
112
  ],
110
113
  "dependencies": {
111
114
  "commander": "^14.0.3"
package/socket.json DELETED
@@ -1,169 +0,0 @@
1
- {
2
- "version": 2,
3
- "ignore": {
4
- "evalDynamicCodeExecution": [
5
- {
6
- "path": "lib/blackboard-validator.ts",
7
- "reason": "False positive — /\\beval\\s*\\(/ is a security detection regex that scans for eval() usage in untrusted agent code submitted to the blackboard. It is not dynamic code execution."
8
- },
9
- {
10
- "path": "dist/lib/blackboard-validator.js",
11
- "reason": "False positive — this is a security detection pattern that scans for eval() usage in untrusted agent code. It is not dynamic code execution."
12
- }
13
- ],
14
- "networkAccess": [
15
- {
16
- "path": "adapters/a2a-adapter.ts",
17
- "reason": "Intentional — A2AAdapter implements the Google Agent-to-Agent protocol; fetch() calls are made to remote agent endpoints that users explicitly register via registerRemoteAgent(). Network access is the purpose of this adapter."
18
- },
19
- {
20
- "path": "dist/adapters/a2a-adapter.js",
21
- "reason": "Intentional — A2AAdapter implements the Google Agent-to-Agent protocol; fetch() calls are made to remote agent endpoints that users explicitly register via registerRemoteAgent(). Network access is the purpose of this adapter."
22
- },
23
- {
24
- "path": "dist/adapters/custom-adapter.js",
25
- "reason": "Intentional — CustomAdapter is a user-configured HTTP adapter that calls a user-supplied URL (config.url) to connect to external AI endpoints. Network access is the explicit purpose of this adapter."
26
- },
27
- {
28
- "path": "lib/mcp-transport-sse.ts",
29
- "reason": "Intentional — McpSseTransport is an HTTP/SSE transport layer for the MCP protocol. Both the server (createServer) and client (http.request) directions are the explicit purpose of this module."
30
- },
31
- {
32
- "path": "dist/lib/mcp-transport-sse.js",
33
- "reason": "Intentional — McpSseTransport is an HTTP/SSE transport layer for the MCP protocol. Both the server (createServer) and client (http.request) directions are the explicit purpose of this module."
34
- },
35
- {
36
- "path": "dist/bin/mcp-server.js",
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."
54
- }
55
- ],
56
- "urlStrings": [
57
- {
58
- "path": "dist/adapters/custom-adapter.js",
59
- "reason": "Intentional — CustomAdapter accepts user-supplied endpoint URLs (config.url) as its core function. URLs are provided by the caller at runtime, not hard-coded."
60
- },
61
- {
62
- "path": "dist/adapters/mcp-adapter.js",
63
- "reason": "Intentional — MCPAdapter documents example MCP endpoint URL patterns in comments. No runtime URL is hard-coded."
64
- },
65
- {
66
- "path": "dist/bin/mcp-server.js",
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."
84
- }
85
- ],
86
- "envVars": [
87
- {
88
- "path": "security.ts",
89
- "reason": "Intentional — reads SWARM_TOKEN_SECRET and SWARM_ENCRYPTION_KEY env vars as an opt-in mechanism for users to supply secrets without hard-coding them."
90
- },
91
- {
92
- "path": "dist/security.js",
93
- "reason": "Intentional — compiled output of security.ts. Reads SWARM_TOKEN_SECRET and SWARM_ENCRYPTION_KEY env vars."
94
- },
95
- {
96
- "path": "adapters/codex-adapter.ts",
97
- "reason": "Intentional — CodexAdapter reads OPENAI_API_KEY env var as a fallback when no API key is provided via config. Declared in skill.json env section."
98
- },
99
- {
100
- "path": "dist/adapters/codex-adapter.js",
101
- "reason": "Intentional — compiled output of codex-adapter.ts. Reads OPENAI_API_KEY env var."
102
- },
103
- {
104
- "path": "adapters/minimax-adapter.ts",
105
- "reason": "Intentional — MiniMaxAdapter reads MINIMAX_API_KEY env var as a fallback when no API key is provided via config. Declared in skill.json env section."
106
- },
107
- {
108
- "path": "dist/adapters/minimax-adapter.js",
109
- "reason": "Intentional — compiled output of minimax-adapter.ts. Reads MINIMAX_API_KEY env var."
110
- },
111
- {
112
- "path": "setup.ts",
113
- "reason": "Intentional — setup module checks for OPENAI_API_KEY env var to provide helpful configuration guidance. Declared in skill.json env section."
114
- },
115
- {
116
- "path": "dist/setup.js",
117
- "reason": "Intentional — compiled output of setup.ts. Checks for OPENAI_API_KEY env var."
118
- }
119
- ],
120
- "shellExec": [
121
- {
122
- "path": "adapters/nemoclaw-adapter.ts",
123
- "reason": "Intentional — NemoClawAdapter's default executor uses child_process.execFile to invoke the openshell CLI for sandbox management. This is the fallback when no custom executor is provided. Users are expected to bring their own executor in production."
124
- },
125
- {
126
- "path": "dist/adapters/nemoclaw-adapter.js",
127
- "reason": "Intentional — compiled output of nemoclaw-adapter.ts. Uses child_process.execFile to invoke the openshell CLI."
128
- },
129
- {
130
- "path": "examples/05-code-review-swarm.ts",
131
- "reason": "Intentional — example script uses execSync('npx tsc --noEmit') to demonstrate automated TypeScript type-checking in a code review pipeline. Not part of the core library."
132
- },
133
- {
134
- "path": "examples/demo-runner.ts",
135
- "reason": "Intentional — demo runner uses spawn('npx', ['ts-node', file]) to execute example scripts. This is a developer convenience script, not part of the core library."
136
- }
137
- ],
138
- "filesystemAccess": [
139
- {
140
- "path": "dist/index.js",
141
- "reason": "Intentional — the blackboard uses a file-backed store (data/ directory) as its persistence layer. Filesystem access is the explicit purpose of the local-first architecture."
142
- },
143
- {
144
- "path": "dist/run.js",
145
- "reason": "Intentional — run.ts bootstraps the local blackboard and reads/writes the data directory. File I/O is the core mechanism."
146
- },
147
- {
148
- "path": "dist/security.js",
149
- "reason": "Intentional — security module writes the HMAC-signed audit log to data/audit_log.jsonl. Append-only filesystem writes are the audit trail mechanism."
150
- },
151
- {
152
- "path": "dist/lib/locked-blackboard.js",
153
- "reason": "Intentional — LockedBlackboard uses atomic file rename + fsync for its mutex. Filesystem access is the locking primitive."
154
- },
155
- {
156
- "path": "dist/lib/mcp-tools-extended.js",
157
- "reason": "Intentional — extended MCP tools expose blackboard snapshot and audit log query over MCP; these read from the data/ directory."
158
- },
159
- {
160
- "path": "dist/lib/mcp-transport-sse.js",
161
- "reason": "Intentional — SSE transport reads config from the filesystem. File access is for configuration loading only."
162
- },
163
- {
164
- "path": "dist/lib/swarm-utils.js",
165
- "reason": "Intentional — swarm-utils reads/writes the shared blackboard file and audit log. Filesystem I/O is the persistence layer."
166
- }
167
- ]
168
- }
169
- }