orchestrator-llm/module.yaml
flemming-it a9b315a1a0
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 2s
feat: declare consumes: llm.chat@^0 (advisory)
Plans this module emits typically dispatch llm.chat steps
for downstream LLM-driven work. A flow that runs an
unmodified plan needs an llm.chat provider installed; the
hub now surfaces this as a 'consumes-advisory' warning at
install time so operators see the dependency hint without
the install being blocked.

See fai/platform commit e5ba892 for the platform-side
consumes: schema.

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-01 21:05:38 +02:00

68 lines
2.5 KiB
YAML

schema_version: 2
provider: fai
name: orchestrator-llm
version: 0.3.1
# Capability provided by this module.
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. See
# docs/architecture/store.md → "Module dependencies".
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 the invoke function accepts.
inputs:
goal: text
# 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".
llm_endpoint: text
# Model identifier, e.g. "qwen2.5:14b" for Ollama or "gpt-4o-mini".
llm_model: text
# Optional bearer token for cloud providers. Empty string means
# no Authorization header is sent.
llm_api_key: text
# Optional JSON-encoded list of installed capabilities. If
# omitted or empty, the module plans without capability context.
available_capabilities: text
# Optional JSON-encoded list of all known store capabilities
# (installed + planned + alpha). Used when the orchestrator
# needs to suggest installations.
store_capabilities: text
# Outputs produced.
outputs:
# JSON-encoded Plan compatible with `fai_hub::plan::Plan`.
plan: json
# The endpoint the plan was generated against. Empty when the
# deterministic stub path (no llm_endpoint) ran.
model_endpoint: text
# The model name as supplied to the LLM API.
model_name: text
# 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?"
model_digest: text
# Permissions required.
#
# The module makes outbound HTTP to the configured LLM endpoint.
# Default declarations cover the common providers (cloud OpenAI,
# Anthropic, local Ollama on loopback). Operators with different
# LLM endpoints add a host-level entry via operator config
# (Phase 1+) — for Phase 0.5 they fork module.yaml.
permissions:
- "net: api.openai.com"
- "net: api.anthropic.com"
- "net: localhost"
- "net: 127.0.0.1"