{
  "schema": "leumas.docs.page/1",
  "id": "pkg:@leumas/leviathan-runtime",
  "slug": "engines/leviathan-runtime",
  "kind": "capabilities",
  "bucket": "package",
  "title": "@leumas/leviathan-runtime",
  "name": "@leumas/leviathan-runtime",
  "eyebrow": null,
  "chip": null,
  "summary": "The Leviathan runtime (API side): bots registry + chat router now; perception→rules→action + agent tools land in P5. Mounted by leumas-api at /leviathan.",
  "keywords": [
    "leviathan-runtime",
    "perception",
    "bots",
    "chat",
    "leviathan",
    "leviathan runtime api",
    "leumas leviathan runtime",
    "action"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# @leumas/leviathan-runtime\n\nThe Leviathan runtime (API side), mounted at `/leviathan`. **P2-ready core:** a bots registry + a chat\nrouter with a pluggable `complete()` LLM fn, so the `@leumas/leviathan` widget works end-to-end today.\n\n**P5 grows this into:** the full perception→rules→action runtime + agent tools, feeding from\n`x-leviathan-realtime` + `ollama` adapter + `ollama-tools` + `leumas-flow-recorder`.\n\n```js\nimport { createLeviathanRouter } from '@leumas/leviathan-runtime';\napp.use('/leviathan', createLeviathanRouter({ bots, complete: myOllamaComplete }));\n```\n\nBots are programmed & priced in Studio; pass `gate: requirePassNode()` to meter each turn.\n",
  "source": {
    "path": "shared/engines/leviathan/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 857,
    "hash": "09e89c179c6676b4d9116a99eecbc82b4139da93"
  },
  "urls": {
    "html": "/p/engines/leviathan-runtime",
    "json": "/docs/engines/leviathan-runtime.json",
    "md": "/docs/engines/leviathan-runtime.md"
  },
  "links": {
    "composes": [
      "pkg:@leumas/chatbots"
    ],
    "usedBy": [],
    "product": [],
    "howTo": [
      "how-to:programmability"
    ],
    "skills": []
  },
  "exports": null
}
