# godswillomondi/laya architecture

> Architecture diagram of the GitHub repository godswillomondi/laya, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/godswillomondi/laya
- Repository: https://github.com/godswillomondi/laya

## Overview

Laya is a multilingual, non-autoregressive engine for typed decisions, exposed through Python and TypeScript APIs and optional serving and framework integrations. The principal flow is a caller submitting state and questions to a Router, which detects language, selects a checkpoint, runs inference, and returns typed answers with routing metadata. Major capabilities also include schema-driven decisions, presets, shortlisting, long-input and batch prediction, hooks, and operational interfaces. The graph reflects README claims and sampled source; unsampled subsystem wiring is shown only where documented.

Main entry points: [`laya/router.py`](https://github.com/godswillomondi/laya/blob/main/laya/router.py) (Checkpoint router), [`laya/agent.py`](https://github.com/godswillomondi/laya/blob/main/laya/agent.py) (Model inference), [`laya/structured.py`](https://github.com/godswillomondi/laya/blob/main/laya/structured.py) (Schema decisions), [`laya/cli.py`](https://github.com/godswillomondi/laya/blob/main/laya/cli.py) (Command-line interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Decision runtime"]
  node_router["Checkpoint router<br/>[router.py]"]
  node_language["Language analysis<br/>[lang.py]"]
  node_agent["Model inference<br/>[agent.py]"]
  node_checkpoints["Model checkpoints"]
  node_long["Long-input scanning<br/>[router.py]"]
  node_batch["Batch prediction<br/>[router.py]"]
end

subgraph group_capabilities["Decision capabilities"]
  node_structured["Schema decisions<br/>[structured.py]"]
  node_presets["Decision presets<br/>[presets.py]"]
  node_shortlist["Choice shortlisting<br/>[shortlist.py]"]
  node_hooks["Prediction hooks<br/>[hooks.py]"]
  node_email["Email processing<br/>[email.py]"]
end

subgraph group_interfaces["Product interfaces"]
  node_cli["Command-line interface<br/>[cli.py]"]
  node_http["HTTP serving<br/>[serve.py]"]
  node_mcpserver["MCP server<br/>[server.py]"]
  node_mcptools["MCP decision tools<br/>[tools.py]"]
  node_typescript["TypeScript API<br/>[index.ts]"]
  node_tsrouter["TypeScript router<br/>[router.ts]"]
end

subgraph group_integrations["Framework integrations"]
  node_langchain["LangChain integration<br/>[langchain.py]"]
  node_llamaindex["LlamaIndex integration<br/>[llamaindex.py]"]
  node_crewai["CrewAI integration<br/>[crewai.py]"]
end

subgraph group_acceleration["Inference backends"]
  node_onnx["ONNX inference<br/>[onnx_agent.py]"]
  node_fast["GPU fast path<br/>[fast.py]"]
end

node_caller(("Application caller"))

node_caller -->|"submits decisions"| node_router
node_router -->|"analyses language"| node_language
node_router -->|"routes inference"| node_agent
node_router -->|"loads checkpoint"| node_checkpoints
node_agent -->|"runs model"| node_checkpoints
node_router -->|"scans long input"| node_long
node_router -->|"batches requests"| node_batch
node_caller -->|"provides schema"| node_structured
node_structured -->|"requests decision"| node_router
node_caller -->|"selects preset"| node_presets
node_caller -->|"shortlists choices"| node_shortlist
node_router -->|"dispatches hooks"| node_hooks
node_caller -->|"prepares email"| node_email
node_caller -->|"runs command"| node_cli
node_cli -->|"requests prediction"| node_router
node_caller -->|"sends request"| node_http
node_http -->|"requests prediction"| node_router
node_caller -->|"invokes MCP"| node_mcpserver
node_mcpserver -->|"dispatches tools"| node_mcptools
node_mcptools -->|"requests decisions"| node_router
node_caller -->|"imports API"| node_typescript
node_typescript -->|"exposes router"| node_tsrouter
node_tsrouter -->|"analyses language"| node_language
node_caller -.->|"uses integration"| node_langchain
node_langchain -.->|"requests decisions"| node_router
node_caller -.->|"uses integration"| node_llamaindex
node_llamaindex -.->|"requests decisions"| node_router
node_caller -.->|"uses integration"| node_crewai
node_agent -.->|"accelerates forward"| node_fast
node_caller -.->|"runs ONNX inference"| node_onnx

click node_router "https://github.com/godswillomondi/laya/blob/main/laya/router.py"
click node_language "https://github.com/godswillomondi/laya/blob/main/laya/lang.py"
click node_agent "https://github.com/godswillomondi/laya/blob/main/laya/agent.py"
click node_long "https://github.com/godswillomondi/laya/blob/main/laya/router.py"
click node_batch "https://github.com/godswillomondi/laya/blob/main/laya/router.py"
click node_structured "https://github.com/godswillomondi/laya/blob/main/laya/structured.py"
click node_presets "https://github.com/godswillomondi/laya/blob/main/laya/presets.py"
click node_shortlist "https://github.com/godswillomondi/laya/blob/main/laya/shortlist.py"
click node_hooks "https://github.com/godswillomondi/laya/blob/main/laya/hooks.py"
click node_email "https://github.com/godswillomondi/laya/blob/main/laya/email.py"
click node_cli "https://github.com/godswillomondi/laya/blob/main/laya/cli.py"
click node_http "https://github.com/godswillomondi/laya/blob/main/laya/serve.py"
click node_mcpserver "https://github.com/godswillomondi/laya/blob/main/laya/mcp/server.py"
click node_mcptools "https://github.com/godswillomondi/laya/blob/main/laya/mcp/tools.py"
click node_typescript "https://github.com/godswillomondi/laya/blob/main/laya-ts/src/index.ts"
click node_tsrouter "https://github.com/godswillomondi/laya/blob/main/laya-ts/src/router.ts"
click node_langchain "https://github.com/godswillomondi/laya/blob/main/laya/integrations/langchain.py"
click node_llamaindex "https://github.com/godswillomondi/laya/blob/main/laya/integrations/llamaindex.py"
click node_crewai "https://github.com/godswillomondi/laya/blob/main/laya/integrations/crewai.py"
click node_onnx "https://github.com/godswillomondi/laya/blob/main/laya/onnx_agent.py"
click node_fast "https://github.com/godswillomondi/laya/blob/main/laya/fast.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_router,node_language,node_agent,node_checkpoints,node_long,node_batch toneBlue
class node_structured,node_presets,node_shortlist,node_hooks,node_email toneAmber
class node_cli,node_http,node_mcpserver,node_mcptools,node_typescript,node_tsrouter toneMint
class node_langchain,node_llamaindex,node_crewai toneRose
class node_onnx,node_fast,node_caller toneIndigo
```

## Components

### Decision runtime

- [Checkpoint router](https://github.com/godswillomondi/laya/blob/main/laya/router.py): `laya/router.py`
- [Language analysis](https://github.com/godswillomondi/laya/blob/main/laya/lang.py): `laya/lang.py`
- [Model inference](https://github.com/godswillomondi/laya/blob/main/laya/agent.py): `laya/agent.py`
- **Model checkpoints**
- [Long-input scanning](https://github.com/godswillomondi/laya/blob/main/laya/router.py): `laya/router.py`
- [Batch prediction](https://github.com/godswillomondi/laya/blob/main/laya/router.py): `laya/router.py`

### Decision capabilities

- [Schema decisions](https://github.com/godswillomondi/laya/blob/main/laya/structured.py): `laya/structured.py`
- [Decision presets](https://github.com/godswillomondi/laya/blob/main/laya/presets.py): `laya/presets.py`
- [Choice shortlisting](https://github.com/godswillomondi/laya/blob/main/laya/shortlist.py): `laya/shortlist.py`
- [Prediction hooks](https://github.com/godswillomondi/laya/blob/main/laya/hooks.py): `laya/hooks.py`
- [Email processing](https://github.com/godswillomondi/laya/blob/main/laya/email.py): `laya/email.py`

### Product interfaces

- [Command-line interface](https://github.com/godswillomondi/laya/blob/main/laya/cli.py): `laya/cli.py`
- [HTTP serving](https://github.com/godswillomondi/laya/blob/main/laya/serve.py): `laya/serve.py`
- [MCP server](https://github.com/godswillomondi/laya/blob/main/laya/mcp/server.py): `laya/mcp/server.py`
- [MCP decision tools](https://github.com/godswillomondi/laya/blob/main/laya/mcp/tools.py): `laya/mcp/tools.py`
- [TypeScript API](https://github.com/godswillomondi/laya/blob/main/laya-ts/src/index.ts): `laya-ts/src/index.ts`
- [TypeScript router](https://github.com/godswillomondi/laya/blob/main/laya-ts/src/router.ts): `laya-ts/src/router.ts`

### Framework integrations

- [LangChain integration](https://github.com/godswillomondi/laya/blob/main/laya/integrations/langchain.py): `laya/integrations/langchain.py`
- [LlamaIndex integration](https://github.com/godswillomondi/laya/blob/main/laya/integrations/llamaindex.py): `laya/integrations/llamaindex.py`
- [CrewAI integration](https://github.com/godswillomondi/laya/blob/main/laya/integrations/crewai.py): `laya/integrations/crewai.py`

### Inference backends

- [ONNX inference](https://github.com/godswillomondi/laya/blob/main/laya/onnx_agent.py): `laya/onnx_agent.py`
- [GPU fast path](https://github.com/godswillomondi/laya/blob/main/laya/fast.py): `laya/fast.py`

### Other components

- **Application caller**

## Connections

- Application caller → Checkpoint router: submits decisions
- Checkpoint router → Language analysis: analyses language
- Checkpoint router → Model inference: routes inference
- Checkpoint router → Model checkpoints: loads checkpoint
- Model inference → Model checkpoints: runs model
- Checkpoint router → Long-input scanning: scans long input
- Checkpoint router → Batch prediction: batches requests
- Application caller → Schema decisions: provides schema
- Schema decisions → Checkpoint router: requests decision
- Application caller → Decision presets: selects preset
- Application caller → Choice shortlisting: shortlists choices
- Checkpoint router → Prediction hooks: dispatches hooks
- Application caller → Email processing: prepares email
- Application caller → Command-line interface: runs command
- Command-line interface → Checkpoint router: requests prediction
- Application caller → HTTP serving: sends request
- HTTP serving → Checkpoint router: requests prediction
- Application caller → MCP server: invokes MCP
- MCP server → MCP decision tools: dispatches tools
- MCP decision tools → Checkpoint router: requests decisions
- Application caller → TypeScript API: imports API
- TypeScript API → TypeScript router: exposes router
- TypeScript router → Language analysis: analyses language
- Application caller → LangChain integration: uses integration
- LangChain integration → Checkpoint router: requests decisions
- Application caller → LlamaIndex integration: uses integration
- LlamaIndex integration → Checkpoint router: requests decisions
- Application caller → CrewAI integration: uses integration
- Model inference → GPU fast path: accelerates forward
- Application caller → ONNX inference: runs ONNX inference
