The neutral standard for connecting systems to agents — Network Intent Layer (NIL) + the nilscript DSL. USB for software.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 1 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
fn
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 5ed0b77 · analyzer v33 · 2w ago
skills & prompt files 1
danger signals2
- dynamic code execution __import__ sink nilscript-org-NILScript-5ed0b77/tests/test_scaffold.py :88
env={"PYTHONPATH": str(root / "src"), "PATH": __import__("os").environ.get("PATH", "")}, - dynamic code execution eval()/exec() nilscript-org-NILScript-5ed0b77/tests/test_scaffold_models.py :20
exec(compile(source, "<generated models.py>", "exec"), namespace) # noqa: S102 - testing generated code
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 167
filesystem 24
- fs nilscript-org-NILScript-5ed0b77/bench/core/chart.py :14
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/bench/safety/injecagent_runner.py :29
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/examples/pocketbase-adapter/src/pocketbase_nil_adapter/manifest.py :12
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/__init__.py :21
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/cli/__init__.py :18
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/cli/_spec.py :19
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/cli/memory.py :17
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/cli/scaffold/__init__.py :14
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/cli/scaffold/_templates.py :906
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/dataplane/export.py :17
from pathlib import Path - fs nilscript-org-NILScript-5ed0b77/src/nilscript/demo/demo_ui.py :106
with open(STATE_FILE, "w") as f: - fs nilscript-org-NILScript-5ed0b77/src/nilscript/demo/pocketbase_nil_adapter/manifest.py :12
from pathlib import Path
show 12 more
- fs nilscript-org-NILScript-5ed0b77/src/nilscript/sdk/breaker.py :1
"""In-process circuit breaker: closed → open → half-open (blueprint 1.3).""" - fs (weak) nilscript-org-NILScript-5ed0b77/tests/conftest.py :7
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_cli_toolkit.py :10
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_dataplane_engine.py :207
rows = list(store.open(handle.handle, tenant="ws-1", now=NOW)) - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_dataplane_export.py :38
rows = list(store.open(handle.handle, tenant="ws-1", now=NOW)) - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_kernel_validator.py :12
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_manifest_consumption.py :16
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_e2e.py :21
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_http_e2e.py :18
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_server.py :107
# /healthz is open (adapter unreachable -> 503, but never 401) - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_registry_memory.py :5
from pathlib import Path - fs (weak) nilscript-org-NILScript-5ed0b77/tests/test_scaffold.py :12
from pathlib import Path
shell / exec 6
- shell nilscript-org-NILScript-5ed0b77/src/nilscript/cli/__init__.py :398
import subprocess - shell nilscript-org-NILScript-5ed0b77/src/nilscript/demo/demo_ui.py :20
import subprocess - shell (weak) nilscript-org-NILScript-5ed0b77/tests/test_manifest_consumption.py :14
import subprocess - shell (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_e2e.py :18
import subprocess - shell (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_http_e2e.py :15
import subprocess - shell (weak) nilscript-org-NILScript-5ed0b77/tests/test_scaffold.py :10
import subprocess
network 30
- net (weak) nilscript-org-NILScript-5ed0b77/examples/pocketbase-adapter/src/pocketbase_nil_adapter/edge.py :119
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/examples/pocketbase-adapter/src/pocketbase_nil_adapter/system.py :47
import httpx # imported lazily so the conformance proof (FakeSystem) needs no httpx - net (weak) nilscript-org-NILScript-5ed0b77/scripts/smoke_automation.py :28
import urllib.error - net nilscript-org-NILScript-5ed0b77/src/nilscript/cli/__init__.py :308
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/cli/adapters.py :21
import urllib.error - net nilscript-org-NILScript-5ed0b77/src/nilscript/cli/scaffold/_templates.py :210
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/demo/demo_ui.py :27
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/demo/pocketbase_nil_adapter/edge.py :111
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/demo/pocketbase_nil_adapter/system.py :51
import httpx # imported lazily so the conformance proof (FakeSystem) needs no httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/demo/run_live_shim.py :14
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/automation_tools.py :17
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/brain_tools.py :21
import httpx
show 18 more
- net nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/registry.py :16
import urllib.error - net nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/tools.py :26
import httpx - net nilscript-org-NILScript-5ed0b77/src/nilscript/sdk/transport.py :13
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_automation_compose.py :5
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_automation_dispatch.py :9
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_cli_adapters.py :5
import urllib.parse - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_client.py :7
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_kernel_executor.py :9
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_automation_tools.py :9
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_brain_tools.py :12
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_e2e.py :17
import socket - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_gate.py :8
import httpx # noqa: E402 - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_http_e2e.py :14
import socket - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_registry.py :5
import urllib.error - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_server.py :100
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_mcp_tools.py :10
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_multi_adapter.py :6
import httpx - net (weak) nilscript-org-NILScript-5ed0b77/tests/test_transport.py :3
import httpx
secrets 13
- secrets (weak) nilscript-org-NILScript-5ed0b77/scripts/smoke_automation.py :32
TOKEN = os.environ.get("NIL_REGISTRY_TOKEN", "") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/cli/adapters.py :56
token = os.environ.get("NIL_REGISTRY_TOKEN", "") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/controlplane/app.py :93
secret = secret if secret is not None else os.environ.get("NIL_EVENTS_SECRET", "") - secrets (weak) nilscript-org-NILScript-5ed0b77/src/nilscript/demo/agent_demo.py :105
secret = os.environ.get("NIL_GRANT_SECRET", "secret123") # == the shim's bearer - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/demo/demo_ui.py :51
"password": os.environ.get("PB_PASSWORD", "123456"), - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/demo/prove_live_link.py :17
PASSWORD = os.environ.get("PB_PASSWORD", "123456") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/demo/run_auth_shim.py :16
NIL_EVENTS_SECRET = os.environ.get("NIL_EVENTS_SECRET", "") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/demo/run_live_shim.py :21
PB_PASSWORD = os.environ.get("PB_PASSWORD", "123456") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/demo/run_odoo_shim.py :18
ODOO_API_KEY = os.environ.get("ODOO_API_KEY", "") - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/app.py :32
bearer=os.environ.get("NIL_GRANT_SECRET", ""), - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/automation_tools.py :38
return cls(url, os.environ.get("NIL_REGISTRY_TOKEN", "")) - secrets nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/brain_tools.py :49
token=os.environ.get("NIL_BRAIN_TOKEN", ""),
show 1 more
- secrets nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/registry.py :35
token = token if token is not None else os.environ.get("NIL_REGISTRY_TOKEN", "")
database 1
- db nilscript-org-NILScript-5ed0b77/src/nilscript/controlplane/store.py :12
import sqlite3
tool registrations 1
- fn nilscript-org-NILScript-5ed0b77/src/nilscript/mcp/dynamic.py :130
declared dependencies 9
- mcp@>=1.2
- httpx@>=0.27
- pydantic@>=2.0
- pyyaml@>=6.0
- nilscript@*
- fastapi@>=0.110
- uvicorn@>=0.29
- litellm@>=1.40
- s@unit tests import nilscript.mcp