From fcf74f179ff3c0a1ff20fdaac47a2d5b51249aa8 Mon Sep 17 00:00:00 2001 From: flemming-it Date: Mon, 1 Jun 2026 22:46:17 +0200 Subject: [PATCH] feat: schema_version 3 with DE/EN field descriptions Signed-off-by: flemming-it --- module.yaml | 125 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 85 insertions(+), 40 deletions(-) diff --git a/module.yaml b/module.yaml index d06bfb9..92f6626 100644 --- a/module.yaml +++ b/module.yaml @@ -1,9 +1,8 @@ -schema_version: 2 +schema_version: 3 provider: fai name: orchestrator-llm version: 0.3.1 -# Capability provided by this module. provides: - capability: orchestrator.plan version: 0.3.0 @@ -11,56 +10,102 @@ provides: # 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". +# 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 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 + 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 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 + 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. -# 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"