All four platforms available

MCP governance · Contracts and integrations

Two legal crossings. Six calls in, ten contracts down.

Agents reach elan1 through two crossings only. Above, they call KernelPort directly, through the MCP server or over HTTP; MCP tools are grouped into read, stage and act classes, and every act becomes a governed write. Below, elan1 Run reaches the stack through ten fusion.*/v1 contracts. There is no third door.

Status: Available

01KernelPort v1

Six calls. One write function behind them.

KernelPort is the only door into the kernel. It has six calls: define, assert, seal, verify, scope and refuse. A model may produce a write intent. It may never produce an allow.

The six KernelPort v1 calls
CallWhat it doesWho may call it
defineRegisters a write type at an explicit declaration version and returns a content-addressed digest. Registering is itself a governed write under dual control.Control-plane token
assertThe central call. Runs the whole Right Path in order and returns committed, refused or escalated, with the proof sequence and digest, synchronously.Tenant token, act scope
sealThe chain writer. At L1 it returns a hash-chain receipt. From L2 the same call also signs.The kernel only
verifyRecomputes the preimage and digest octet for octet and walks the chain. At L1, verification needs elan1.Read-only token
scopeResolves blast radius and autonomy for rendering. Advisory only, because assert resolves both again.Read-only token
refuseEmits a typed refusal from a closed register. A refusal still writes a proof record and is metered at 0.4 of a governed action.Tenant token, act scope

One governed write, three ways to read it

An agent posts a month-end accrual through assert. Read it in plain English, as the write intent and response, or as the record it left.

An agent asks to post a month-end accrual of ₹18,400 against journal entry je_specimen_5531. It calls assert with a typed write intent.

Govern climbs the Right Path. The gates pass and the rules allow the change, but the agent holds autonomy A2, so a person must approve. assert answers at once: escalated at rung 6, with an obligation for a named approver and a proof record for the escalation.

The approver, who is not the asker, says yes. The single writer posts the entry with a 10-minute single-use credential, Govern seals record 1042, and one governed action is metered.

Checked and recorded by elan1 Govern.

Every outcome is one of three: committed, refused, or waiting on a person. A platform failure is ours, not a rule, and is never billed. Frozen identifiers: kernelport/v1, elan1.proof.seal.v6, action-receipt/1.

02MCP server and HTTP API · Mode B

For the agents you already run.

Agents built elsewhere call elan1 Govern over MCP or HTTP. Every write intent is evaluated against your rules and recorded. Your system still holds the credential, so this is attested advisory, never blocked.

18Read-only toolsRead declarations, write types, obligations and proof records. They cannot change anything.
10Staging toolsPrepare and check a write intent, and resolve its scope, without committing it.
6Act toolsSend a write intent up the Right Path. Approval, where needed, comes back through MCP as a request for input.

34 tools in all. Each tool description is pinned by hash in the declaration, so a changed description shows as a version change, never a silent update.

HTTP API · /v1

Three families of endpoint

  • act: send write intents and read their outcomes.
  • ro: read-only access to declarations, obligations and records.
  • ctl: control-plane operations. A ctl token cannot read any record.

Webhooks are HMAC-authenticated and carry seq, so a gap in delivery is detectable. Writes take an Idempotency-Key; replaying one returns the original outcome.

SDK · Mode A

In-process, where we hold the credential

Where elan1 Govern can hold the write credential, as with hosted ERPNext in elan1 Work, the SDK runs in-process and writes are enforced. This is the only place we say “enforced”.

A Mode B integration can move to Mode A where the credential can move: after 30 days of recorded traffic and a review.

03fusion.*/v1 · into elan1 Run

Ten contracts. Two licence-clean implementations each.

Each part of the open-source AI stack sits behind a versioned contract. Callers name the contract, never the vendor, so a component can be replaced without rebuilding the integration. Run never depends on Govern.

The ten fusion.*/v1 contracts, what they carry and two implementations each
ContractWhat it carriesTwo licence-clean implementationsStateStatus
fusion.chat/v1Chat interface, conversations, single sign-on and per-user quota.LibreChat · AnythingLLMStatelessAvailable
fusion.gateway/v1Model gateway: aliases, routing, failover, budgets that stop before the first token.LiteLLM (core) · BifrostStatelessAvailable
fusion.inference/v1Serving open-weight models in your region.vLLM · SGLangStatelessAvailable
fusion.retrieval/v1Document ingestion and permission-aware retrieval, with per-document provenance.RAGFlow · Onyx (community edition)IndexedAvailable
fusion.vectors/v1Vector storage and search.pgvector · QdrantIndexedAvailable
fusion.trace/v1Traces of every call: who made it, what it cost, which component served it.Langfuse (core) · OpikIndexedAvailable
fusion.tools/v1Tool and MCP server registry, pinned by hash, with scopes and autonomy ceilings.ContextForge · agentgatewayRegisteredAvailable
fusion.run/v1Durable workflows: long runs, retries and approval waits that survive a restart.Temporal · PrefectIn-flightAvailable
fusion.memory/v1Agent memory across sessions.Mem0 · CogneeIndexedLimited availability
fusion.guard/v1Guard for personal data, provenance and prompt injection. A guard verdict is an input, never the allow.Presidio · NeMo GuardrailsStatelessAvailable
Request headerIllustrative specimen
POST /c2/chat/completions
X-Fusion-Contract: fusion.gateway/v1; impl=litellm
Idempotency-Key: 4bf92f35-77b3-4da6-a3ce-929d0e0e4736

200  served under contract
409  refused at the edge (budget, guard)  · 40% of one governed action
4xx  your request did not meet the contract
5xx  our failure, never billed

How a component is replaced

Substitution takes nine steps with two human gates, H1 and H2, and is never autonomous. At step 7.3, elan1 Run asks elan1 Govern for a gate check and honours the answer. If elan1 is unreachable, the plan is held, undecided.

elan1 Run is the runtime for all ten contracts. Nine are available; fusion.memory/v1 is in limited availability.

04Conformance

The suite is the claim.

Two published suites stand between a component or an agent and any claim about it. Suite K1–K7 runs offline, including on your auditor's machine. Tests C1–C14 decide whether a third-party agent may say it runs on elan1 Govern.

About elan1 Run Conformance

K1–K7 · components behind a contract

Five classes are blocking-green: a run is green or red, with no override. Two are reported.

K1

Surface Blocking

Every endpoint, field and outcome in the contract descriptor behaves as written, on both implementations.

K2

Isolation Blocking

No tenant can see another tenant's data or counts. An isolation attack runs nightly.

K3

Accounting Blocking

The runtime meter agrees with the component's own counters within 0.5%.

K4

Semantic Reported

Answers stay within tolerance on a fixed corpus when a component changes. Reported, not blocking.

K5

Failure Blocking

Each declared failure produces the declared outcome, including a 409 at the edge, metered at 40% of one governed action.

K6

Performance Reported

Latency and throughput are measured and published as measured. Reported, not blocking.

K7

Licence Blocking

Each component is pinned at its exact SHA, with its licence stored verbatim and checked for change.

C1–C14 · agents on elan1 Govern

No claim to run on Govern until all fourteen pass. C14 fails any L1 copy that claims what only L2 delivers.

C1

Import graph

No module reachable from rungs 3–8 imports a model client; nothing above P3 imports a kernel type.

C2

Bypass attempt

Every write path other than the single writer fails against the real target.

C3

Rung completeness

For 100 intents, every rung runs in order and every gate records a row.

C4

Determinism replay

The same intent, versions and as-of time give the same decision on replay.

C5

Fail-closed matrix

Every dependency outage produces a platform refusal, never an allow.

C6

Missing grant → A0

Actors without a grant resolve to A0 Observe.

C7

Idempotency

Replaying an intent returns the original outcome, sequence and digest, and no second meter event.

C8

Refusal shape

A refusal returns a register code, the rung, a zeroed record_id, record_version 0 and a meter quantity of 0.4.

C9

Chain integrity

A flipped octet, a reordered pair, a duplicate and a gap are each found.

C10

Meter reconciliation

Meter event, proof record and target reconcile both ways.

C11

Approval separation

No approval where the approver is the requester, and none by an agent token.

C12

Rollback drill

The reversal plan runs by both paths: native undo and the compensating entry.

C13

Version pinning

“latest” is rejected for production keys; every decision records its versions.

C14

Claim boundary

A string check over rendered L1 copy for claims that belong to L2.

05Coverage

Every layer uses the contracts. None has a private door.

Govern's work runs on five contracts: gateway, trace, tools, run and guard. Work and Decide use the contracts their jobs need. Run runs all ten.

Contracts each layer uses
Layerfusion.*/v1 contractsNote
elan1 Workchat · gateway · inference · retrieval · vectors · trace · tools · run · guardNine contracts. Memory is not bound: it is in limited availability.
elan1 Decidegateway · inference · retrieval · vectors · trace · guardSix contracts. Bounded reasoning on escalations goes through the gateway.
elan1 Governgateway · trace · tools · run · guardFixed by design: the five contracts Govern's work runs on.
elan1 Runchat · gateway · inference · retrieval · vectors · trace · tools · run · memory · guardRuns all ten.

06Modes per consumer

Enforced where we hold the credential. Evaluated and recorded everywhere else.

The integration you choose decides which sentence you may use. We keep to it, and so does every partner.

How each consumer connects, and what we may say
ConsumerModeHowWhat we may say
elan1 Work hosted (ERPNext)Mode A · EnforcedSDK in-process“No write reaches the system of record without a gate decision and a proof record.”
elan1 Work Attach (your ERPNext)Mode B · Attested advisoryMCP/HTTP“Evaluated against your rules and recorded.”
elan1 DecideMode B · Attested advisoryMCP/HTTP“Writes go to Govern as intents.”
elan1 Run toolingMode B · Attested advisoryMCP/HTTP“If elan1 is unreachable, the gate check fails closed.”
Third-party agentsMode B · Attested advisoryMCP/HTTP (A by agreement)“No claim to run on Govern until conformance tests C1–C14 pass.”
Where this is weak. Mode B records the write; it cannot stop it. If your agent writes without calling elan1 first, there is no record of it.

07FAQ

MCP governance and integrations, in four answers.

// BUILD

Put your agents on one write path.

Start with one process. We map its writes to a declaration, connect your agents over MCP or the SDK, and show you the records.