Skip to main content

helmdeck.route

helmdeck.route is an orchestration meta-pack: it does no work itself, but tells the agent which pack or pipeline to use for a single natural-language intent. It combines three signals — the structured catalog (surfaced as helmdeck://routing-guide), the caller's learned defaults (helmdeck://my-defaults), and an LLM reasoning step — and returns one recommendation, up to three alternatives, and a structured gap_warning when nothing in the catalog can serve the request. Call it FIRST for a single-intent request; for multi-action prompts use helmdeck.plan.

The agent confirms the recommendation with the user, then runs the recommended pack/pipeline. helmdeck.route never executes the recommendation itself.

Inputs

FieldTypeRequiredDefaultNotes
user_intentstringyesThe user's natural-language request.
modelstringyesA routable provider/model id (see helmdeck://models).
contextobjectnoOptional extra hints (current repo, recent artifacts, etc.).
max_tokensnumbernoCap on the LLM reasoning step.

Outputs

FieldTypeNotes
recommendationobject{kind: "pack"|"pipeline", id, suggested_inputs} — inputs pre-filled from learned defaults.
alternativesarrayUp to 3 other candidates.
gap_warningobjectPresent only when nothing fits: a proposed new pack {name, input_schema, output_schema, integration_pattern, why_useful}.
reasoningstringWhy the router chose this recommendation.
modelstringThe model that produced the recommendation.

Vault credentials needed

  • None directly — but the pack requires a configured AI gateway (it is one of the 10 gateway-gated packs). Without a gateway it is not registered.

Use it from your agent (OpenClaw chat-UI worked example)

OpenClaw chat capture pending. See pack-demo-playbook.md §"Orchestration meta-packs" for example prompts and expected outputs, and howto/routing-and-gap-analysis.md for the end-to-end workflow.

Developer reference (curl)

curl -fsS -X POST http://localhost:3000/api/v1/packs/helmdeck.route \
-H "Authorization: Bearer $JWT" \
-H 'Content-Type: application/json' \
-d '{
"user_intent": "turn this PDF into a narrated video",
"model": "openrouter/auto"
}'

Error codes

Closed set in internal/packs/errors.go.

CodeTriggers
invalid_inputuser_intent or model missing.
internalRegistered without a gateway dispatcher or pack registry.
handler_failedThe model returned no parseable recommendation.

Session chaining

  • No session. Stateless meta-pack; chains freely.

Async behavior

Synchronous only.

See also