The vendored sign.yml predated the product rename: it installed and invoked the old CLI name, packed a .fai bundle, and verified against the renamed fai/platform repo URL — every tag build died on the missing binary. Align with the platform's current sign-bundle template: chain CLI, .chain bundle extension, fai/chain-private raw URL for official.pub. Signed-off-by: flemming-it <sf@flemming.it> |
||
|---|---|---|
| .forgejo/workflows | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| MODULE.de.md | ||
| MODULE.md | ||
| module.wasm | ||
| module.yaml | ||
| NOTICE | ||
| README.md | ||
| rust-toolchain.toml | ||
llm-chat
F∆I module providing the llm.chat capability — a generic
LLM chat adapter speaking Ollama (default), OpenAI Chat
Completions (OpenAI, vLLM, compatible servers), and the
Anthropic Messages API, selected via the optional api input.
Capability
| Field | Value |
|---|---|
| Capability | llm.chat@0.2.0 |
| Inputs | prompt: text, endpoint: text, model: text, api_key: text (opt), system_prompt: text (opt), api: text (opt: ollama|openai|anthropic) |
| 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
cargo build --release --target wasm32-wasip2
Test
cargo test # wire-format unit tests, all host-side
cargo build --release --target wasm32-wasip2
SDK source
The Cargo.toml git-deps chain-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 chain@flemming.ai Repository: https://git.flemming.ws/chain-modules/llm-chat