Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/plan / PlanRunnerOptions

Interface: PlanRunnerOptions

Defined in: packages/plan/src/plan-runner.ts:134

Configuration knobs of the PlanRunner extension.

Properties

PropertyTypeDescriptionDefined in
allowEarlyFinish?booleanDisarms the finish gate (RV3202). By default the coordination finish REFUSES while any plan node is ready or running, naming the stragglers, because the plan is the extension's authority: a root that finishes over a running node used to settle a bare ok while the exit barrier cancelled the node (the 2026-08-11 experiment's blocker). Opting out restores that pre-RV3202 behavior for hosts whose acceptance policy already owns the boundary. Default false.packages/plan/src/plan-runner.ts:162
approachVocabulary?string[]Out-of-vocabulary tags get a typed tool error with bounded re-prompt (DEF-3).packages/plan/src/plan-runner.ts:139
guards?RevisionGuardsOptions-packages/plan/src/plan-runner.ts:137
kbPropose?booleanModelKnowledge phase 3 opt-in: registers the kb_propose tool, which journals quarantined model observations into the RunLedger's modelObservations section. Registered like any opt-in tool, so enabling it changes toolsetHash by design. Default false.packages/plan/src/plan-runner.ts:152
limits?Partial<Pick<TerminationLimits, "maxTotalSpawns" | "maxEscalationsPerLogicalTask" | "maxDepth">>Frozen termination knobs beyond the revision budget (DEF-2).packages/plan/src/plan-runner.ts:143
maxRevisionsPerRun?numberAbsolute, non-replenishable; default 32 (DEF-2).packages/plan/src/plan-runner.ts:136
profileDrift?"refuse" | "warn"The resume posture toward a drifted profile registry (RV3203, the 2026-08-11 experiment's resume blocker). The registry identity frozen in termination.init (profile names mapped to ladder lengths) is recomputed from the LIVE profiles on every resume: under 'refuse' (the default) a mismatch terminates the resumed run typed BEFORE any model call, because ladders are live values the journal cannot rebuild and "the journal wins" is not honorable for them; 'warn' downgrades the mismatch to the termination:config-drift event and proceeds under the live registry. Either way the mismatch is reported; a journal recorded before the hash shipped skips the check (absence means NOT RECORDED). The projection covers profile names and ladder lengths, not the models inside same-length rungs.packages/plan/src/plan-runner.ts:178
reuse?ReuseConfigReuse-by-reference configuration (DEF-5).packages/plan/src/plan-runner.ts:141