orchestrator-llm/module.yaml
flemming-it b58ede3dd4
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 2s
refactor: rename to chain:platform WIT + provider chain
Tracks the platform's fai->chain rename: capability provider chain,
WIT ABI chain:platform (binding paths/accessors), SDK pin bumped.

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-15 22:54:54 +02:00

113 lines
4 KiB
YAML

schema_version: 3
provider: chain
name: orchestrator-llm
version: 0.3.1
provides:
- capability: orchestrator.plan
version: 0.3.0
# Capabilities the plans this module emits typically reference.
# Advisory only — Studio surfaces "you'll also want X" when the
# operator installs orchestrator-llm; `fai admin doctor` flags
# unmet entries; the hub does NOT block install.
consumes:
- capability: llm.chat
version: "^0"
why: "orchestrator-emitted plans dispatch llm.chat steps for downstream LLM-driven work; a flow that runs the plan unmodified needs an llm.chat provider installed."
inputs:
goal:
type: text
description:
en: Operator-stated goal in natural language — what the resulting flow should accomplish.
de: Ziel in natürlicher Sprache — was der erzeugte Flow erreichen soll.
llm_endpoint:
type: text
description:
en: |
LLM HTTP endpoint, e.g. "http://localhost:11434/api/chat"
for Ollama, "https://api.openai.com/v1/chat/completions",
or "https://api.anthropic.com/v1/messages".
de: |
LLM-HTTP-Endpunkt, z. B. "http://localhost:11434/api/chat"
für Ollama, "https://api.openai.com/v1/chat/completions"
oder "https://api.anthropic.com/v1/messages".
llm_model:
type: text
description:
en: Model identifier, e.g. "qwen2.5:14b" for Ollama or "gpt-4o-mini".
de: Modell-Identifier, z. B. "qwen2.5:14b" (Ollama) oder "gpt-4o-mini".
llm_api_key:
type: text
description:
en: Optional bearer token for cloud providers. Empty = no Authorization header.
de: Optionaler Bearer-Token für Cloud-Provider. Leer = kein Authorization-Header.
available_capabilities:
type: text
description:
en: |
Optional JSON-encoded list of installed capabilities.
Omit or pass an empty string to plan without capability
context.
de: |
Optional JSON-codierte Liste der installierten
Capabilities. Leer = ohne Capability-Kontext planen.
store_capabilities:
type: text
description:
en: |
Optional JSON-encoded list of all known store
capabilities (installed + planned + alpha). Used when
the orchestrator needs to suggest installations.
de: |
Optional JSON-codierte Liste aller bekannten Store-
Capabilities (installiert + geplant + alpha). Nötig,
wenn der Orchestrator Installationen vorschlagen soll.
outputs:
plan:
type: json
description:
en: JSON-encoded Plan compatible with `fai_hub::plan::Plan`.
de: JSON-codierter Plan, kompatibel mit `fai_hub::plan::Plan`.
model_endpoint:
type: text
description:
en: |
The endpoint the plan was generated against. Empty when
the deterministic stub path (no llm_endpoint) ran.
de: |
Endpunkt, gegen den der Plan erzeugt wurde. Leer beim
deterministischen Stub-Pfad (ohne llm_endpoint).
model_name:
type: text
description:
en: The model name as supplied to the LLM API.
de: An die LLM-API übergebener Modellname.
model_digest:
type: text
description:
en: |
SHA-256 digest of the served Ollama model, when
reachable. Empty for cloud providers (OpenAI / Anthropic
do not expose a digest API) and for the deterministic
stub path. Together with model_endpoint and model_name
this answers the audit question "which exact model
produced this plan?"
de: |
SHA-256-Digest des bedienten Ollama-Modells, wenn
erreichbar. Leer für Cloud-Provider (OpenAI / Anthropic
bieten keine Digest-API) und für den deterministischen
Stub-Pfad. Zusammen mit model_endpoint + model_name
beantwortet das die Audit-Frage "welches genaue Modell
hat diesen Plan erzeugt?"
# Permissions required.
#
# The module makes outbound HTTP to the configured LLM endpoint.
permissions:
- "net: api.openai.com"
- "net: api.anthropic.com"
- "net: localhost"
- "net: 127.0.0.1"