Skip to content

feat(inference): local InferenceGateway adapter — fail-closed, audits every call - #127

Merged
mdheller merged 1 commit into
mainfrom
feat/inference-gateway-local
Aug 3, 2026
Merged

feat(inference): local InferenceGateway adapter — fail-closed, audits every call#127
mdheller merged 1 commit into
mainfrom
feat/inference-gateway-local

Conversation

@mdheller

@mdheller mdheller commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

The local fan-out of the InferenceGateway intersection seam (sourceos-spec inference-gateway-intersection.md, #271). agent-machine/Noetica now implements the shared serving contract locally.

  • src/agent_machine/inference_gateway.pyserve(request, provider, backend). Serves only through a registered active InferenceProvider (contracts/inference-provider.schema.json) and an admitting consent decision, and emits a GatewayCallAudit (memory-mesh v0.1) on every call — including refusals (outcome="denied", no output). Nothing served un-consented or un-audited. Output only on outcome="ok".
  • scripts/validate-inference-gateway.py — negative-control-first (a gateway never seen refusing == no gateway): 7 refusal modes each assert no output + a denied audit, plus the admitted path. Wired into make validate.

Verified: make validate-inference-gateway → 17/17 controls pass; refusals emit denied audits, admitted call returns output + matching receipt_hash.

… every call

The local (agent-machine/Noetica) adapter of the InferenceGateway intersection seam
(sourceos-spec inference-gateway-intersection.md). Serves only through a registered
active InferenceProvider + an admitting consent decision, and emits a GatewayCallAudit
(memory-mesh v0.1) on EVERY call including refusals — nothing served un-consented or
un-audited. scripts/validate-inference-gateway.py (17 negative+positive controls) wired
into make validate. Output returned only on outcome=ok.
@mdheller
mdheller merged commit 746c359 into main Aug 3, 2026
2 checks passed
@mdheller
mdheller deleted the feat/inference-gateway-local branch August 3, 2026 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant