# llm-chat F∆I module providing the `llm.chat` capability — a generic Ollama-compatible LLM chat adapter. ## Capability | Field | Value | |-------|-------| | Capability | `llm.chat@0.1.0` | | Inputs | `prompt: text`, `endpoint: text`, `model: text`, `api_key: text` (opt), `system_prompt: text` (opt) | | Outputs | `response: text`, `model_endpoint: text`, `model_name: text`, `model_digest: text` | | Permissions | `net: localhost`, `net: 127.0.0.1`, `net: api.openai.com`, `net: api.anthropic.com` | | Status (in store index) | `alpha` | ## Why a separate module from orchestrator-llm `orchestrator-llm` wraps an LLM call inside a planning prompt that emits a structured F∆I `Plan`. `llm.chat` is the lower- level adapter: it sends a prompt and returns the assistant text verbatim. Flows that need a generic chat step (summarisation, translation, free-form Q&A) compose `llm.chat` directly; flows that need plan generation use `orchestrator-llm`. ## Audit fields `model_endpoint`, `model_name`, and `model_digest` are emitted on every successful invocation. Together they answer the audit question "which exact model produced this response?" The digest probe targets Ollama's `/api/show` and is best-effort — non- Ollama endpoints and transient probe failures yield an empty digest rather than blocking the response. Cf. Ch∆In `docs/advanced/compliance-gaps.md` Gap 1. ## Build ```bash cargo build --release --target wasm32-wasip2 ``` ## Test ```bash cargo test # 11 tests, all host-side cargo build --release --target wasm32-wasip2 ``` ## SDK source The Cargo.toml git-deps `fai-module-sdk` from `https://git.flemming.ws/fai/module-sdk.git`. The Forgejo instance has `REQUIRE_SIGNIN_VIEW=true`, so anonymous clones fail; CI uses the `MODULE_SDK_PAT` actions secret + `git config url.X.insteadOf Y` to authenticate cargo's git fetch transparently. Local dev uses the same pattern via env vars. ## License Apache-2.0. Author: Dr. Stefan Flemming, Flemming.AI Repository: https://git.flemming.ws/fai-modules/llm-chat