feat: schema_version 3 with DE/EN field descriptions
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 1s

Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
flemming-it 2026-06-01 22:46:17 +02:00
parent a9b315a1a0
commit fcf74f179f

View file

@ -1,9 +1,8 @@
schema_version: 2 schema_version: 3
provider: fai provider: fai
name: orchestrator-llm name: orchestrator-llm
version: 0.3.1 version: 0.3.1
# Capability provided by this module.
provides: provides:
- capability: orchestrator.plan - capability: orchestrator.plan
version: 0.3.0 version: 0.3.0
@ -11,56 +10,102 @@ provides:
# Capabilities the plans this module emits typically reference. # Capabilities the plans this module emits typically reference.
# Advisory only — Studio surfaces "you'll also want X" when the # Advisory only — Studio surfaces "you'll also want X" when the
# operator installs orchestrator-llm; `fai admin doctor` flags # operator installs orchestrator-llm; `fai admin doctor` flags
# unmet entries; the hub does NOT block install. See # unmet entries; the hub does NOT block install.
# docs/architecture/store.md → "Module dependencies".
consumes: consumes:
- capability: llm.chat - capability: llm.chat
version: "^0" 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." 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: inputs:
goal: text goal:
# LLM HTTP endpoint, e.g. "http://localhost:11434/api/chat" type: text
# for Ollama, "https://api.openai.com/v1/chat/completions", description:
# or "https://api.anthropic.com/v1/messages". en: Operator-stated goal in natural language — what the resulting flow should accomplish.
llm_endpoint: text de: Ziel in natürlicher Sprache — was der erzeugte Flow erreichen soll.
# Model identifier, e.g. "qwen2.5:14b" for Ollama or "gpt-4o-mini". llm_endpoint:
llm_model: text type: text
# Optional bearer token for cloud providers. Empty string means description:
# no Authorization header is sent. en: |
llm_api_key: text LLM HTTP endpoint, e.g. "http://localhost:11434/api/chat"
# Optional JSON-encoded list of installed capabilities. If for Ollama, "https://api.openai.com/v1/chat/completions",
# omitted or empty, the module plans without capability context. or "https://api.anthropic.com/v1/messages".
available_capabilities: text de: |
# Optional JSON-encoded list of all known store capabilities LLM-HTTP-Endpunkt, z. B. "http://localhost:11434/api/chat"
# (installed + planned + alpha). Used when the orchestrator für Ollama, "https://api.openai.com/v1/chat/completions"
# needs to suggest installations. oder "https://api.anthropic.com/v1/messages".
store_capabilities: text 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 produced.
outputs: outputs:
# JSON-encoded Plan compatible with `fai_hub::plan::Plan`. plan:
plan: json type: json
# The endpoint the plan was generated against. Empty when the description:
# deterministic stub path (no llm_endpoint) ran. en: JSON-encoded Plan compatible with `fai_hub::plan::Plan`.
model_endpoint: text de: JSON-codierter Plan, kompatibel mit `fai_hub::plan::Plan`.
# The model name as supplied to the LLM API. model_endpoint:
model_name: text type: text
# SHA-256 digest of the served Ollama model, when reachable. description:
# Empty for cloud providers (OpenAI / Anthropic do not expose en: |
# a digest API) and for the deterministic stub path. Together The endpoint the plan was generated against. Empty when
# with model_endpoint and model_name this answers the audit the deterministic stub path (no llm_endpoint) ran.
# question "which exact model produced this plan?" de: |
model_digest: text 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. # Permissions required.
# #
# The module makes outbound HTTP to the configured LLM endpoint. # 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: permissions:
- "net: api.openai.com" - "net: api.openai.com"
- "net: api.anthropic.com" - "net: api.anthropic.com"