feat(netwatch): Network/Connections agent (observe→graph→detect→consent-gated propose) - #41
Merged
Merged
Conversation
…ent-gated propose The one built-in agent the Agent-First Node Architecture was missing (recon 2026-08-02 confirmed ABSENT; corroborated by prophet-platform AGENT_OS_NODE_BINDING.md seam #3). Binds to existing anchors, does not rebuild. assets/sourceos/bin/turtle-netwatch (peer of turtle-watch/turtle-diagnose): - snapshot: portable connection capture (ss on Linux, lsof on macOS/BSD) - observe: emit agent.v1 Observation events to the netwatch sink - graph: project into a System Graph subgraph (KnowledgeUpdate delta) for hellgraph AtomSpace ingestion (Process/Host/Port nodes, CONNECTS_TO) - detect: beaconing (low-variance periodic contact) + egress fan-out - propose: build an Action (net.block/net.throttle) that is ADMITTED-OR-REFUSED by the consent plane (operate purpose, system-space) via the real policy-fabric purpose_admissibility_gate; admit -> routed to the Governor (guardrail-fabric), never auto-applied; deny -> refused fail-closed. Every decision is a hash-sealed receipt. - schemas/agent/{observation,action,knowledge_update}.avsc (agent.v1, net-new) - runbooks/netwatch.yaml — the whole vertical as a turtle-runbook a user OR agent can execute step by step - tests/test_turtle_netwatch.py — 7 tests (graph, beaconing, fan-out, quiet, fail-closed consent gate, live snapshot); proven end-to-end: real engine ADMITS (awaiting-governor-approval), missing engine DENIES. - packaging: turtle-netwatch added to flatpak/rpm/arch/deb-stage/chocolatey lists.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the one built-in agent the Agent-First Node Architecture was missing — recon (2026-08-02) confirmed the Network/Connections agent ABSENT across prophet-mesh / agent-registry / TurtleTerm / Noetica, corroborated by
prophet-platform/docs/AGENT_OS_NODE_BINDING.mdseam #3. Binds to existing anchors; does not rebuild.turtle-netwatch(peer ofturtle-watch/turtle-diagnose)snapshotss(Linux) /lsof(macOS/BSD)observeObservationevents to the netwatch sinkgraphKnowledgeUpdatedelta) for hellgraph AtomSpace — Process/Host/Port nodes,CONNECTS_TOedgesdetectproposeAction(net.block/net.throttle) that is admitted-or-refused by the consent planeThe gate is real (the whole point)
A network mutation is an
operatepurpose insystem-space.proposecalls the realpolicy-fabricpurpose_admissibility_gate:guardrail-fabric) asawaiting-governor-approval, never auto-applied (needs--apply+ an approval token);Every decision is a hash-sealed receipt. Proven both ways in tests + live (this mac: 57 real connections captured; real engine admits
net.throttle, missing engine denies).Ships as a runbook (user- and agent-executable)
runbooks/netwatch.yamlsequences the whole vertical as aturtle-runbook(turtle-runbook run netwatch) — each step a plain, inspectable command, safe to hand to an agent because every mutation is consent-gated + Governor-approved.Also
schemas/agent/{observation,action,knowledge_update}.avsc— theagent.v1contracts (net-new).tests/test_turtle_netwatch.py— 7 tests, offline (synthetic fixtures).turtle-netwatchadded to all packaging bin lists (flatpak/rpm/arch/deb-stage/chocolatey).Net-new per the corpus; closes the missing built-in agent. The System Graph OS-observer collectors are the genuinely new piece; everything else binds to shipped repos.