You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

network-ai

Package Overview
Dependencies
Maintainers
1
Versions
95
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

network-ai - npm Package Compare versions

Comparing version
4.10.0
to
4.10.1
+6
-3
package.json
{
"name": "network-ai",
"version": "4.10.0",
"version": "4.10.1",
"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.",

@@ -83,2 +83,6 @@ "homepage": "https://github.com/Jovancoding/Network-AI#readme",

"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Jovancoding"
},
"repository": {

@@ -108,4 +112,3 @@ "type": "git",

"SKILL.md",
"LICENSE",
"socket.json"
"LICENSE"
],

@@ -112,0 +115,0 @@ "dependencies": {

@@ -527,3 +527,3 @@ # Network-AI Quick Start Guide

for (const pillar of pillars) {
const id = board.propose(`eval:${pillar}`, { score: Math.random(), findings: [] }, pillar);
const id = board.propose(`review:${pillar}`, { score: Math.random(), findings: [] }, pillar);
board.validate(id, 'orchestrator');

@@ -534,4 +534,4 @@ board.commit(id);

// Fan-in: orchestrator reads all results and synthesises
const results = pillars.map(p => ({ pillar: p, ...board.read(`eval:${p}`) }));
const id = board.propose('eval:summary', {
const results = pillars.map(p => ({ pillar: p, ...board.read(`review:${p}`) }));
const id = board.propose('review:summary', {
overall: results.reduce((s, r) => s + r.score, 0) / results.length,

@@ -538,0 +538,0 @@ pillars: results,

@@ -8,3 +8,3 @@ # Network-AI

[![CodeQL](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml/badge.svg)](https://github.com/Jovancoding/Network-AI/actions/workflows/codeql.yml)
[![Release](https://img.shields.io/badge/release-v4.10.0-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
[![Release](https://img.shields.io/badge/release-v4.10.1-blue.svg)](https://github.com/Jovancoding/Network-AI/releases)
[![npm](https://img.shields.io/npm/dw/network-ai.svg?label=npm%20downloads)](https://www.npmjs.com/package/network-ai)

@@ -19,2 +19,3 @@ [![Tests](https://img.shields.io/badge/tests-1617%20passing-brightgreen.svg)](#testing)

[![Integration Guide](https://img.shields.io/badge/docs-integration%20guide-informational.svg)](INTEGRATION_GUIDE.md)
[![Sponsor](https://img.shields.io/badge/sponsor-support%20the%20project-f15bb5.svg)](https://github.com/sponsors/Jovancoding)
[![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?logo=discord&logoColor=white)](https://discord.gg/Cab5vAxc86)

@@ -21,0 +22,0 @@ [![Glama](https://glama.ai/mcp/servers/Jovancoding/network-ai/badges/score.svg)](https://glama.ai/mcp/servers/Jovancoding/network-ai)

{
"version": 2,
"ignore": {
"evalDynamicCodeExecution": [
{
"path": "lib/blackboard-validator.ts",
"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."
},
{
"path": "dist/lib/blackboard-validator.js",
"reason": "False positive — this is a security detection pattern that scans for eval() usage in untrusted agent code. It is not dynamic code execution."
}
],
"networkAccess": [
{
"path": "adapters/a2a-adapter.ts",
"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."
},
{
"path": "dist/adapters/a2a-adapter.js",
"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."
},
{
"path": "dist/adapters/custom-adapter.js",
"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."
},
{
"path": "lib/mcp-transport-sse.ts",
"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."
},
{
"path": "dist/lib/mcp-transport-sse.js",
"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."
},
{
"path": "dist/bin/mcp-server.js",
"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."
},
{
"path": "adapters/codex-adapter.ts",
"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."
},
{
"path": "dist/adapters/codex-adapter.js",
"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."
},
{
"path": "adapters/minimax-adapter.ts",
"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."
},
{
"path": "dist/adapters/minimax-adapter.js",
"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."
}
],
"urlStrings": [
{
"path": "dist/adapters/custom-adapter.js",
"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."
},
{
"path": "dist/adapters/mcp-adapter.js",
"reason": "Intentional — MCPAdapter documents example MCP endpoint URL patterns in comments. No runtime URL is hard-coded."
},
{
"path": "dist/bin/mcp-server.js",
"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."
},
{
"path": "adapters/codex-adapter.ts",
"reason": "Intentional — CodexAdapter uses https://api.openai.com as default baseUrl for OpenAI API calls. Users can override via config.baseUrl."
},
{
"path": "dist/adapters/codex-adapter.js",
"reason": "Intentional — CodexAdapter uses https://api.openai.com as default baseUrl for OpenAI API calls. Users can override via config.baseUrl."
},
{
"path": "adapters/minimax-adapter.ts",
"reason": "Intentional — MiniMaxAdapter uses https://api.minimax.io/v1 as default baseUrl for MiniMax API calls. Users can override via config.baseUrl."
},
{
"path": "dist/adapters/minimax-adapter.js",
"reason": "Intentional — MiniMaxAdapter uses https://api.minimax.io/v1 as default baseUrl for MiniMax API calls. Users can override via config.baseUrl."
}
],
"envVars": [
{
"path": "security.ts",
"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."
},
{
"path": "dist/security.js",
"reason": "Intentional — compiled output of security.ts. Reads SWARM_TOKEN_SECRET and SWARM_ENCRYPTION_KEY env vars."
},
{
"path": "adapters/codex-adapter.ts",
"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."
},
{
"path": "dist/adapters/codex-adapter.js",
"reason": "Intentional — compiled output of codex-adapter.ts. Reads OPENAI_API_KEY env var."
},
{
"path": "adapters/minimax-adapter.ts",
"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."
},
{
"path": "dist/adapters/minimax-adapter.js",
"reason": "Intentional — compiled output of minimax-adapter.ts. Reads MINIMAX_API_KEY env var."
},
{
"path": "setup.ts",
"reason": "Intentional — setup module checks for OPENAI_API_KEY env var to provide helpful configuration guidance. Declared in skill.json env section."
},
{
"path": "dist/setup.js",
"reason": "Intentional — compiled output of setup.ts. Checks for OPENAI_API_KEY env var."
}
],
"shellExec": [
{
"path": "adapters/nemoclaw-adapter.ts",
"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."
},
{
"path": "dist/adapters/nemoclaw-adapter.js",
"reason": "Intentional — compiled output of nemoclaw-adapter.ts. Uses child_process.execFile to invoke the openshell CLI."
},
{
"path": "examples/05-code-review-swarm.ts",
"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."
},
{
"path": "examples/demo-runner.ts",
"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."
}
],
"filesystemAccess": [
{
"path": "dist/index.js",
"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."
},
{
"path": "dist/run.js",
"reason": "Intentional — run.ts bootstraps the local blackboard and reads/writes the data directory. File I/O is the core mechanism."
},
{
"path": "dist/security.js",
"reason": "Intentional — security module writes the HMAC-signed audit log to data/audit_log.jsonl. Append-only filesystem writes are the audit trail mechanism."
},
{
"path": "dist/lib/locked-blackboard.js",
"reason": "Intentional — LockedBlackboard uses atomic file rename + fsync for its mutex. Filesystem access is the locking primitive."
},
{
"path": "dist/lib/mcp-tools-extended.js",
"reason": "Intentional — extended MCP tools expose blackboard snapshot and audit log query over MCP; these read from the data/ directory."
},
{
"path": "dist/lib/mcp-transport-sse.js",
"reason": "Intentional — SSE transport reads config from the filesystem. File access is for configuration loading only."
},
{
"path": "dist/lib/swarm-utils.js",
"reason": "Intentional — swarm-utils reads/writes the shared blackboard file and audit log. Filesystem I/O is the persistence layer."
}
]
}
}