{
  "version": 2,
  "ignore": {
    "gptSecurity": [
      {
        "path": "bin/console.ts",
        "reason": "Intentional — `--pipe` mode is an opt-in LOCAL control surface. It reads newline-delimited JSON only from this process's own stdin (no network listener is opened) and writes JSON to stdout. `exec`/`spawn` are gated by the same AgentRuntime SandboxPolicy (command allow-list, audit log, approval gate); approval-required operations are denied in pipe mode unless the operator passes --auto-approve. Anyone able to write to the process stdin already controls the process, so no privilege boundary is crossed. Operators bridging pipe mode to a network transport must add their own authentication."
      },
      {
        "path": "dist/bin/console.js",
        "reason": "Intentional — compiled output of bin/console.ts. `--pipe` mode reads JSON only from this process's own stdin (no network listener); exec/spawn are SandboxPolicy-gated and approval-required ops are denied unless --auto-approve is set. No privilege boundary is crossed by local stdin input."
      }
    ],
    "evalDynamicCodeExecution": [
      {
        "path": "lib/blackboard-validator.ts",
        "reason": "False positive — this pattern is part of dangerous-code detection for untrusted agent content written to the blackboard. It does not execute code."
      },
      {
        "path": "dist/lib/blackboard-validator.js",
        "reason": "False positive — compiled output of the dangerous-code detector. It matches risky input patterns and does not execute code."
      }
    ],
    "networkAccess": [
      {
        "path": "adapters/a2a-adapter.ts",
        "reason": "Intentional — A2AAdapter implements the Google Agent-to-Agent protocol and sends outbound HTTP requests only to agent endpoints explicitly registered by the user."
      },
      {
        "path": "dist/adapters/a2a-adapter.js",
        "reason": "Intentional — compiled output of A2AAdapter. It talks only to agent endpoints explicitly registered by the user."
      },
      {
        "path": "adapters/custom-adapter.ts",
        "reason": "Intentional — CustomAdapter can call a caller-supplied HTTP endpoint as part of its documented bring-your-own-client behavior."
      },
      {
        "path": "dist/adapters/custom-adapter.js",
        "reason": "Intentional — compiled output of CustomAdapter. It calls a caller-supplied endpoint as part of documented adapter behavior."
      },
      {
        "path": "adapters/aps-adapter.ts",
        "reason": "Intentional — APSAdapter can verify delegation chains through a configured remote verifier endpoint when that mode is enabled by the caller."
      },
      {
        "path": "dist/adapters/aps-adapter.js",
        "reason": "Intentional — compiled output of APSAdapter. It talks only to a caller-configured verifier endpoint when that verification mode is enabled."
      },
      {
        "path": "lib/mcp-transport-sse.ts",
        "reason": "Intentional — McpSseTransport is the HTTP and SSE transport layer for MCP. Serving and connecting over HTTP is its documented role."
      },
      {
        "path": "dist/lib/mcp-transport-sse.js",
        "reason": "Intentional — compiled output of the MCP HTTP and SSE transport layer."
      },
      {
        "path": "dist/bin/mcp-server.js",
        "reason": "Intentional — network-ai-server is an opt-in CLI binary that starts an MCP HTTP and SSE server only when the user invokes it explicitly."
      },
      {
        "path": "adapters/codex-adapter.ts",
        "reason": "Intentional — CodexAdapter sends outbound requests to OpenAI or a caller-provided base URL as part of its documented adapter behavior."
      },
      {
        "path": "dist/adapters/codex-adapter.js",
        "reason": "Intentional — compiled output of CodexAdapter. It talks to OpenAI or a caller-provided base URL."
      },
      {
        "path": "adapters/minimax-adapter.ts",
        "reason": "Intentional — MiniMaxAdapter sends outbound requests to MiniMax's API as part of its documented adapter behavior."
      },
      {
        "path": "dist/adapters/minimax-adapter.js",
        "reason": "Intentional — compiled output of MiniMaxAdapter. It talks to MiniMax endpoints as configured by the caller."
      },
      {
        "path": "adapters/hermes-adapter.ts",
        "reason": "Intentional — HermesAdapter includes a built-in fetch-based transport for OpenAI-compatible completion endpoints. Users may substitute their own client; the built-in transport calls only the URL supplied by the caller."
      },
      {
        "path": "dist/adapters/hermes-adapter.js",
        "reason": "Intentional — compiled output of HermesAdapter. Uses fetch for its built-in OpenAI-compatible completion transport; calls only the URL supplied by the caller."
      },
      {
        "path": "adapters/pydantic-ai-adapter.ts",
        "reason": "Intentional — PydanticAIAdapter uses fetch to call PydanticAI-compatible HTTP endpoints as part of its BYOC adapter behavior. The URL is supplied by the caller."
      },
      {
        "path": "dist/adapters/pydantic-ai-adapter.js",
        "reason": "Intentional — compiled output of PydanticAIAdapter. Uses fetch for outbound HTTP calls to caller-supplied PydanticAI endpoints."
      },
      {
        "path": "adapters/rlm-adapter.ts",
        "reason": "Intentional — RLMAdapter uses fetch to call RLM-compatible HTTP endpoints as part of its BYOC adapter behavior. The URL is supplied by the caller."
      },
      {
        "path": "dist/adapters/rlm-adapter.js",
        "reason": "Intentional — compiled output of RLMAdapter. Uses fetch for outbound HTTP calls to caller-supplied RLM endpoints."
      },
      {
        "path": "lib/swarm-transport.ts",
        "reason": "Intentional — SwarmTransport uses fetch to relay messages between swarm nodes over HTTP. Network transport is the documented purpose of this module; the endpoint URL is configured by the caller."
      },
      {
        "path": "dist/lib/swarm-transport.js",
        "reason": "Intentional — compiled output of SwarmTransport. Uses fetch to relay messages to a caller-configured HTTP endpoint."
      },
      {
        "path": "lib/mcp-tool-consumer.ts",
        "reason": "Intentional — McpToolConsumer uses fetch for HTTP-based MCP server communication (SSE/HTTP transport mode). Outbound requests go only to the MCP server URL configured by the caller."
      },
      {
        "path": "dist/lib/mcp-tool-consumer.js",
        "reason": "Intentional — compiled output of McpToolConsumer. Uses fetch for HTTP/SSE MCP transport to a caller-configured MCP server URL."
      },
      {
        "path": "lib/auth-guardian.ts",
        "reason": "False positive — the word 'fetch' appears only in a JSDoc example string and a capability-detection regex pattern. AuthGuardian does not make any outbound HTTP calls."
      },
      {
        "path": "dist/lib/auth-guardian.js",
        "reason": "False positive — 'fetch' appears only in a JSDoc example string and a capability-detection regex. AuthGuardian does not make any outbound HTTP calls."
      },
      {
        "path": "adapters/adapter-registry.ts",
        "reason": "Intentional — adapter-registry re-exports all 32 adapters; Socket.dev's import-graph analysis flags it because it transitively references adapters that use fetch. No direct HTTP calls are made here."
      },
      {
        "path": "dist/adapters/adapter-registry.js",
        "reason": "Intentional — compiled adapter-registry re-exports all adapters; flagged transitively because some adapters use fetch. No direct HTTP calls are made in this file."
      },
      {
        "path": "index.ts",
        "reason": "Intentional — the main entry point re-exports all adapters and lib modules; Socket.dev's import-graph analysis flags it because it transitively references adapters that use fetch."
      },
      {
        "path": "dist/index.js",
        "reason": "Intentional — compiled main entry point; flagged transitively because it re-exports all adapters including those that use fetch. No direct HTTP calls are made in this file."
      },
      {
        "path": "dist/lib/approval-inbox.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; ApprovalInbox does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/blackboard-backend-crdt.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; BlackboardBackendCRDT does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/blackboard-backend-redis.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; BlackboardBackendRedis connects to Redis via its client library, not via fetch."
      },
      {
        "path": "dist/lib/compliance-monitor.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; ComplianceMonitor does not make direct outbound HTTP calls."
      },
      {
        "path": "lib/context-throttler.ts",
        "reason": "False positive — ContextThrottler is a pure blackboard-pruning utility; it contains zero network calls, zero fetch usage, and zero external dependencies. Flagged by Socket.dev's transitive import-graph analysis only."
      },
      {
        "path": "dist/lib/context-throttler.js",
        "reason": "False positive — compiled output of ContextThrottler. Pure in-memory filtering logic; no network calls. Flagged by Socket.dev's transitive import-graph analysis only."
      },
      {
        "path": "dist/lib/control-plane.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; ControlPlane does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/dashboard-server.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; DashboardServer does not make direct outbound HTTP calls via fetch."
      },
      {
        "path": "dist/lib/federated-budget.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; FederatedBudget does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/fsm-journey.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; JourneyFSM does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/logger.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; Logger does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/mcp-blackboard-tools.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; MCP blackboard tools call the local blackboard, not external HTTP endpoints."
      },
      {
        "path": "dist/lib/mcp-bridge.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; McpBridge bridges MCP servers but does not make direct outbound fetch calls."
      },
      {
        "path": "dist/lib/mcp-tools-control.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; MCP control tools operate on local state, not external HTTP endpoints."
      },
      {
        "path": "dist/lib/mcp-tools-extended.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; extended MCP tools read from the local data directory, not external HTTP endpoints."
      },
      {
        "path": "dist/lib/playground.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; Playground does not make direct outbound HTTP calls."
      },
      {
        "path": "dist/lib/work-tree-dashboard.js",
        "reason": "Intentional — flagged by Socket.dev's import-graph analysis via transitive imports; WorkTreeDashboard does not make direct outbound HTTP calls."
      },
      {
        "path": "lib/telemetry-provider.ts",
        "reason": "False positive — telemetry-provider defines the ITelemetryProvider BYOT interface and the createOtelHooks() factory. It contains zero fetch usage and makes no outbound HTTP calls; any OTel exporter is supplied by the caller. Flagged by Socket.dev's transitive import-graph analysis only."
      },
      {
        "path": "dist/lib/telemetry-provider.js",
        "reason": "False positive — compiled output of telemetry-provider. No direct network calls; the OTel exporter is supplied by the caller. Flagged by Socket.dev's transitive import-graph analysis only."
      },
      {
        "path": "dist/esm/adapters/a2a-adapter.js",
        "reason": "Intentional — ESM build output of A2AAdapter. It talks only to agent endpoints explicitly registered by the user."
      },
      {
        "path": "dist/esm/adapters/codex-adapter.js",
        "reason": "Intentional — ESM build output of CodexAdapter. It talks to OpenAI or a caller-provided base URL."
      },
      {
        "path": "dist/esm/adapters/custom-adapter.js",
        "reason": "Intentional — ESM build output of CustomAdapter. It calls a caller-supplied endpoint as part of documented BYOC adapter behavior."
      },
      {
        "path": "dist/esm/adapters/minimax-adapter.js",
        "reason": "Intentional — ESM build output of MiniMaxAdapter. It talks to MiniMax endpoints as configured by the caller."
      },
      {
        "path": "dist/esm/adapters/pydantic-ai-adapter.js",
        "reason": "Intentional — ESM build output of PydanticAIAdapter. Uses fetch for outbound HTTP calls to caller-supplied PydanticAI endpoints."
      },
      {
        "path": "dist/esm/lib/approval-inbox.js",
        "reason": "Intentional — ESM build output of ApprovalInbox. The HTTP approval server binds to 127.0.0.1 by default and supports a required bearer secret (5.12.2); flagged via transitive imports, it makes no direct outbound fetch calls."
      },
      {
        "path": "dist/esm/lib/control-plane.js",
        "reason": "Intentional — ESM build output of ControlPlane; flagged via transitive imports. It makes no direct outbound HTTP calls."
      },
      {
        "path": "dist/esm/lib/dashboard-server.js",
        "reason": "Intentional — ESM build output of DashboardServer; flagged via transitive imports. It makes no direct outbound HTTP calls via fetch."
      },
      {
        "path": "dist/esm/lib/mcp-tool-consumer.js",
        "reason": "Intentional — ESM build output of McpToolConsumer. Uses fetch for HTTP/SSE MCP transport to a caller-configured MCP server URL."
      },
      {
        "path": "dist/esm/lib/swarm-transport.js",
        "reason": "Intentional — ESM build output of SwarmTransport. Uses fetch to relay messages to a caller-configured HTTP endpoint."
      },
      {
        "path": "dist/esm/lib/work-tree-dashboard.js",
        "reason": "Intentional — ESM build output of WorkTreeDashboard; flagged via transitive imports. It makes no direct outbound HTTP calls."
      },
      {
        "path": "dist/adapters/a2a-adapter.d.ts",
        "reason": "False positive — TypeScript declaration file; contains no executable code and makes no network calls. Flagged because the corresponding .js implementation uses fetch."
      },
      {
        "path": "dist/lib/approval-inbox.d.ts",
        "reason": "False positive — TypeScript declaration file; contains no executable code and makes no network calls. Flagged via import-graph association with the .js implementation."
      },
      {
        "path": "dist/esm/adapters/aps-adapter.js",
        "reason": "Intentional — ESM build output of APSAdapter. It talks only to a caller-configured verifier endpoint when that verification mode is enabled."
      },
      {
        "path": "dist/esm/adapters/hermes-adapter.js",
        "reason": "Intentional — ESM build output of HermesAdapter. Uses fetch for its built-in OpenAI-compatible completion transport; calls only the URL supplied by the caller."
      },
      {
        "path": "dist/esm/adapters/rlm-adapter.js",
        "reason": "Intentional — ESM build output of RLMAdapter. Uses fetch for outbound HTTP calls to caller-supplied RLM 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."
      },
      {
        "path": "lib/agent-runtime.ts",
        "reason": "Intentional — AgentRuntime's ShellExecutor uses child_process.spawn to run sandboxed shell commands within an explicit SandboxPolicy. Shell access is only available when the caller opts in by configuring and enabling the ShellExecutor."
      },
      {
        "path": "dist/lib/agent-runtime.js",
        "reason": "Intentional — compiled output of AgentRuntime. ShellExecutor uses child_process.spawn for sandboxed command execution under a caller-configured SandboxPolicy."
      },
      {
        "path": "lib/mcp-tool-consumer.ts",
        "reason": "Intentional — McpToolConsumer uses child_process.spawn to launch MCP server subprocesses for stdio-based MCP transport. Process spawning is required by the MCP stdio protocol; the caller provides the server command."
      },
      {
        "path": "dist/lib/mcp-tool-consumer.js",
        "reason": "Intentional — compiled output of McpToolConsumer. Uses child_process.spawn to launch caller-configured MCP server subprocesses for stdio transport."
      }
    ],
    "shellAccess": [
      {
        "path": "lib/agent-runtime.ts",
        "reason": "Intentional — AgentRuntime imports child_process to implement ShellExecutor, which runs sandboxed shell commands under an explicit SandboxPolicy. Shell access is only exercised when the caller opts in by configuring and enabling the ShellExecutor."
      },
      {
        "path": "dist/lib/agent-runtime.js",
        "reason": "Intentional — compiled output of AgentRuntime. Imports child_process for ShellExecutor; sandboxed by SandboxPolicy, opt-in only."
      },
      {
        "path": "lib/mcp-tool-consumer.ts",
        "reason": "Intentional — McpToolConsumer imports child_process to spawn MCP server subprocesses for stdio-based MCP transport. Process spawning is required by the MCP stdio protocol; the caller provides the server command."
      },
      {
        "path": "dist/lib/mcp-tool-consumer.js",
        "reason": "Intentional — compiled output of McpToolConsumer. Imports child_process to launch caller-configured MCP server subprocesses for stdio transport."
      },
      {
        "path": "dist/esm/lib/agent-runtime.js",
        "reason": "Intentional — ESM build output of AgentRuntime. Imports child_process for ShellExecutor; sandboxed by SandboxPolicy, opt-in only."
      },
      {
        "path": "dist/esm/lib/mcp-tool-consumer.js",
        "reason": "Intentional — ESM build output of McpToolConsumer. Imports child_process to launch caller-configured MCP server subprocesses for stdio transport."
      },
      {
        "path": "dist/examples/05-code-review-swarm.js",
        "reason": "Intentional — compiled output of the code-review example script. Uses child_process (execSync) to run TypeScript type-checking as part of the example workflow. Not part of the core library and never activated by importing the package."
      },
      {
        "path": "dist/esm/examples/05-code-review-swarm.js",
        "reason": "Intentional — ESM build output of the code-review example script. Same as the CJS variant — uses child_process for tsc type-checking in a developer example. Not activated by importing the package."
      },
      {
        "path": "dist/run.js",
        "reason": "Intentional — compiled output of run.ts, the local orchestrator bootstrap script. May spawn sub-processes as part of its demo workflow. Invoked directly by the operator, never imported as a library."
      },
      {
        "path": "dist/esm/run.js",
        "reason": "Intentional — ESM build output of run.ts. Same as dist/run.js — bootstraps the local orchestrator demo workflow when invoked directly by the operator."
      },
      {
        "path": "scripts/socket-check.js",
        "reason": "Intentional — dev/CI-only QA script. Uses child_process (spawnSync, shell:false) to invoke the Socket CLI via npx for supply-chain scanning. Never imported by the library and never executed by installing the package; runs only when a maintainer runs `npm run socket:check`."
      },
      {
        "path": "scripts/codeql-check.js",
        "reason": "Intentional — dev/CI-only QA script. Uses child_process (spawnSync, shell:false) to invoke the GitHub CLI (`gh api`) to query CodeQL code-scanning alerts. Never imported by the library and never executed by installing the package; runs only when a maintainer runs `npm run codeql:check`."
      }
    ],
    "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."
      }
    ]
  }
}
