In-process SDK
Govern holds the write credential. No write reaches the system of record without a gate decision and a proof record. Used by elan1 Work hosted on ERPNext; third parties by agreement.
Docs
The elan1 docs explain how to build on the governed write path. They start with a quickstart for a first governed write, explain core concepts, modes and assurance levels, and give references for KernelPort, the MCP server, the HTTP API, refusals, declarations, proof records, fusion.*/v1 contracts and conformance.
A quick reference to KernelPort, the MCP server and HTTP API, and the fusion.*/v1 contracts — enough to plan an integration.
For LLM tools: /llms.txt and /llms-full.txt list every page with a one-line summary.
01KernelPort v1
Work and Decide reach elan1 Govern through KernelPort, and so do third-party agents. No other door exists; CI fails the build if one appears.
| Call | What it does | What comes back |
|---|---|---|
define | Registers a declaration — a process's rules in seven blocks — or a new version of one. | Later records name the declaration and the version they were checked against (F06, F07). |
assert | Submits a write intent to climb the Right Path, from rung 0b STOP to rung 9 METERED. | A commit, a typed refusal, or a hold for a named approver. Every outcome writes a proof record. |
seal | Seals a proof record under Seal v6: SHA-256 over a length-prefixed preimage of the 16 fields. | The digest becomes the next record's prev_digest. Signed from L2. |
verify | Checks a record or a stretch of chain: recomputes digests, compares prev_digest, checks seq. | Tamper-evident to you at L1. From L2, signatures and timestamps too. |
scope | Sets and reads what a caller may do: tenant, residency domain, write types and autonomy ceiling. | Chains never cross tenants. A cross-domain query is not slow; it is impossible. |
refuse | Records a typed "no" — from an approver, an expired hold, or a caller withdrawing an intent. | A refusal writes a proof record and is metered at 40% of one governed action. |
Call names, arguments and response shapes are fixed in KernelPort v1 and the record shape. Changes ship as a new version, never in place.
assert(write_intent) # an agent, the Decide router or a person proposes
→ 0b STOP · 1 IDENTITY · 2 WRITE DOOR
→ 3 PRE-GATES (G1–G9) · 4 evaluate() · 5 GUARDRAIL · 6 AUTONOMY
← refused code <from the frozen register> record sealed meter 0.4 governed action
← held approver usr_specimen_controller expires_at 2027-07-15T11:05:12+05:30
← committed record_id je_specimen_5531 record sealed meter 1 governed actionIllustrative specimen. Not customer data. Refusal codes come from the frozen register.
02Connecting
How you connect decides what elan1 can promise. We use the word enforced for Mode A only.
Govern holds the write credential. No write reaches the system of record without a gate decision and a proof record. Used by elan1 Work hosted on ERPNext; third parties by agreement.
For agents that already speak MCP. Every write intent is evaluated against your rules and recorded. elan1 does not hold the credential, so we do not say it blocks.
For everything else, including elan1 Decide and elan1 Run tooling. Evaluated and recorded; Run tooling fails closed if elan1 is unreachable.
| Consumer | Mode | What we may say |
|---|---|---|
| elan1 Work hosted (ERPNext) | A · SDK in-process | No write reaches the system of record without a gate decision and a proof record. |
| elan1 Work Attach (your ERPNext) | B · MCP/HTTP | Evaluated against your rules and recorded. |
| elan1 Decide | B · MCP/HTTP | Writes go to Govern as intents. |
| elan1 Run tooling | B · MCP/HTTP | If elan1 is unreachable, the gate check fails closed. |
| Third-party agents | B (A by agreement) | No claim to run on Govern until conformance tests C1–C14 pass. |
03fusion.*/v1
A call names its contract in the X-Fusion-Contract header. Each contract has two licence-clean implementations, so a component can be replaced without rebuilding the integration.
| Contract | What it covers | Carries Govern’s work |
|---|---|---|
fusion.chat/v1 | Conversational calls to a model. | — |
fusion.gateway/v1 | Routing, budget hard-stop and attribution in front of every call. Example behind it: LiteLLM. | Yes |
fusion.inference/v1 | Serving model weights. Example behind it: vLLM. | — |
fusion.retrieval/v1 | Fetching documents for context. | — |
fusion.vectors/v1 | Storing and querying embeddings. Example behind it: pgvector. | — |
fusion.trace/v1 | Spans for every call, bound to the proof record. Example behind it: Langfuse. | Yes |
fusion.tools/v1 | Tool authorisation, with an autonomy ceiling. | Yes |
fusion.run/v1 | Long-running work, including approval waits; expiry means refusal. Example behind it: Temporal. | Yes |
fusion.memory/v1 | State an agent keeps between calls. | — |
fusion.guard/v1 | PII, provenance and injection checks. A verdict is an input, never the allow. | Yes |
Run never depends on Govern. Run carries Govern’s work on five contracts — gateway, trace, tools, run and guard — and asks Govern for a gate check at substitution step 7.3.
04Conformance
K1–K7
Blocking-green and runnable offline, including on your auditor’s machine. A component that fails does not replace the one in service.
C1–C14
An agent makes no claim to run on Govern until all fourteen pass. Until then it connects in Mode B: evaluated and recorded.
CI boundary checks
Layers meet at KernelPort and fusion.*/v1. Any other crossing fails the build, so no layer grows a private door into another.
05Read next
// BUILD WITH US
Customers and early-adopter design partners receive the full KernelPort reference with their workspace. Design partners also help shape what comes next.