Human-readable mission name; becomes the compiled graph's display name.
Zod schema (or plain JSON-Schema object) describing the mission's input payload.
Goal prompt template. Supports {{variable}} placeholders (e.g. {{topic}}).
The current stub compiler passes it through to generated reasoning nodes.
Zod schema (or plain JSON-Schema object) describing the mission's output artifacts.
Planner configuration controlling step generation and execution budgets.
Routing/planning strategy identifier (e.g. 'linear', 'react', 'tree-of-thought').
Hard cap on the total number of plan steps the planner may emit.
Optional maxMaximum LLM iterations a single gmi node may consume per invocation.
Forwarded to gmiNode as maxInternalIterations.
Optional parallelWhen true, gmi nodes are configured to issue multiple tool calls per turn.
Forwarded to gmiNode as parallelTools.
Optional style?: "research" | "creative" | "qa"Optional plan-template selector. Picks which fixed stub template the
compiler emits. Defaults to 'research' (gather → process → deliver →
refine) which matches the prior behaviour. Other values:
'qa' — short Q&A plan (research-quick → answer)'creative' — brainstorm → develop-concept → produce-artifact → polishThe real PlanningEngine (Task 16+) will deprecate this in favour of
goal-driven plan generation; until then style lets users opt into a
less research-shaped graph for non-research goals.
Optional plan?: SimplePlanPre-generated plan that bypasses both style template selection and
the goal classifier. When set, the compiler validates the plan shape
(non-empty, unique step ids, known actions, valid phases) and uses
the steps directly to build the graph. Intended for callers that
generate plans externally — e.g. wunderland's opt-in
planner.style: 'llm' mode that asks an LLM to decompose the goal
into steps at YAML compile time.
Validation is intentionally strict: invalid plans throw at compile time rather than producing a partially-correct graph that fails mid-execution.
Optional policyOptional mission-level policy overrides. When set, they are applied to all compiled nodes unless a node already declares its own policy.
Optional memory?: { Optional consistency?: MemoryConsistencyModeOptional read?: anyOptional write?: anyOptional discovery?: { Optional kind?: stringOptional fallback?: stringOptional personality?: { Optional traitOptional adaptOptional mood?: stringOptional guardrails?: string[]Guardrail identifiers applied as output guardrails on every node.
Declarative anchor nodes that must be spliced into the execution order at specific phases.
Anchors allow callers to inject pre-built GraphNode objects (e.g. specialised tools or
human-in-the-loop checkpoints) without modifying the planner output.
Node id assigned to the anchor inside the compiled graph.
Pre-built GraphNode to splice in. The compiler overwrites node.id with anchor.id.
Placement constraints that control where in the phase sequence the anchor is inserted.
When true the compiler will throw if the anchor cannot be placed.
Optional phase?: "gather" | "process" | "validate" | "deliver"Execution phase the anchor belongs to. Phases are ordered:
gather → process → validate → deliver.
Optional after?: anyInsert the anchor after this node id (sibling anchor id or plan step id). When the referenced id is not found the anchor is appended to the phase tail.
Optional before?: anyInsert the anchor before this node id. Currently reserved for future use; has no effect in this compiler version.
Top-level configuration object consumed by
MissionCompiler.compile(). Produced internally byMissionBuilder.compile().