Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/core / RunInternals

Interface: RunInternals

Defined in: packages/core/src/engine/ctx.ts:785

Everything one run's ctx needs; created per run by the engine (M1-T11).

Properties

PropertyTypeDescriptionDefined in
adaptersReadonlyMap<string, ProviderAdapter>-packages/core/src/engine/ctx.ts:820
admission?AdmissionControllerThe single admission point for all spawns (M6-T06).packages/core/src/engine/ctx.ts:790
budgetRunBudget-packages/core/src/engine/ctx.ts:788
claimedLineageDecisions?Set<number>Seqs of spawn-admission decisions already paired with a live ctx.agent dispatch this process lifetime, so byte-identical repeats recover THEIR OWN decisions in journal order (DEF-3; M7-T02).packages/core/src/engine/ctx.ts:930
costCostAttribution-packages/core/src/engine/ctx.ts:885
defaults{ billingReceipts?: "intent" | "async" | "awaited"; cache?: CachePolicy; countTokens?: "allow" | "deny"; gates?: Record<string, MechanicalGateProfile>; limits?: UsageLimits; permissions?: PermissionConfig; profiles?: Record<string, AgentProfile>; requireToolsetAttestation?: boolean; retry?: RetryPolicy; routing?: Partial<Record<InvocationRole, ModelSpec>>; schemas?: Record<string, SchemaSpec>; toolsets?: Record<string, ToolsOption>; workflows?: Record<string, unknown>; }-packages/core/src/engine/ctx.ts:821
defaults.billingReceipts?"intent" | "async" | "awaited"The receipt posture of the billing seam (RV3405); default 'async'.packages/core/src/engine/ctx.ts:844
defaults.cache?CachePolicyThe engine-wide prompt-cache policy (RV2006); profile and call opts win.packages/core/src/engine/ctx.ts:842
defaults.countTokens?"allow" | "deny"Engine-wide admission countTokens policy (RV1804); default 'allow'.packages/core/src/engine/ctx.ts:838
defaults.gates?Record<string, MechanicalGateProfile>Registered mechanical gate profiles (M7-T10).packages/core/src/engine/ctx.ts:836
defaults.limits?UsageLimits-packages/core/src/engine/ctx.ts:824
defaults.permissions?PermissionConfigEngine-wide permission chain layers.packages/core/src/engine/ctx.ts:826
defaults.profiles?Record<string, AgentProfile>-packages/core/src/engine/ctx.ts:823
defaults.requireToolsetAttestation?booleanThe toolset attestation floor (RV4204); default off.packages/core/src/engine/ctx.ts:840
defaults.retry?RetryPolicyEngine-wide transport RetryPolicy (M4-T05).packages/core/src/engine/ctx.ts:828
defaults.routing?Partial<Record<InvocationRole, ModelSpec>>-packages/core/src/engine/ctx.ts:822
defaults.schemas?Record<string, SchemaSpec>Registered SchemaSpec names for outputSchemaRef (M7-T05).packages/core/src/engine/ctx.ts:832
defaults.toolsets?Record<string, ToolsOption>Registered tool profile names for toolsetRef (M7-T05).packages/core/src/engine/ctx.ts:834
defaults.workflows?Record<string, unknown>The per-engine workflow registry (consumers: M6 ctx.workflow, M8 worker).packages/core/src/engine/ctx.ts:830
droppedDroppedItem[]-packages/core/src/engine/ctx.ts:884
errorPolicyErrorPolicy-packages/core/src/engine/ctx.ts:883
eventsRunEventSink-packages/core/src/engine/ctx.ts:792
execKey?ExecKeyDerivationWhich exec idempotency key derivation this run's isolated dispatches use (RV403), resolved at engine boot from RunMeta.execKeyDerivation: version 2 carries the run's generation token to scope keys to the incarnation; absent behaves as version 1 (the genesis-free derivation of runs recorded before the stamp shipped).packages/core/src/engine/ctx.ts:907
executionScope?{ account?: string; legalDomain?: string; project?: string; providerAccount?: string; region?: string; sponsor?: string; tenant?: string; }The run's recorded execution scope (RV4205): the normalized copy genesis records, threaded so the quota completion can read the scope's tenant under tenantFrom: 'scope' and stamp the scope dimensions onto reservations for dimension-matched rules. Structural (not the engine's ExecutionScope named type) because ctx deliberately imports nothing from engine.ts.packages/core/src/engine/ctx.ts:868
executionScope.account?string-packages/core/src/engine/ctx.ts:870
executionScope.legalDomain?string-packages/core/src/engine/ctx.ts:872
executionScope.project?string-packages/core/src/engine/ctx.ts:871
executionScope.providerAccount?string-packages/core/src/engine/ctx.ts:874
executionScope.region?string-packages/core/src/engine/ctx.ts:873
executionScope.sponsor?string-packages/core/src/engine/ctx.ts:875
executionScope.tenant?string-packages/core/src/engine/ctx.ts:869
executors?Partial<Record<IsolatedExecutorTag, ToolExecutorProvider>>Isolated tool executors (RV-216): the ToolExecutorProvider registry from createEngine, keyed by non-inprocess executor tag. A tool declaring such a tag dispatches through the matching provider instead of running its inprocess closure; absent means only inprocess tools are accepted.packages/core/src/engine/ctx.ts:899
external?ExternalRegistryOpen external suspensions plus the quiescence activity counter (M2-T08).packages/core/src/engine/ctx.ts:924
flatReserveUsd?numberbudgetDefaults.flatReserveUsd; last resort of the reserve formula.packages/core/src/engine/ctx.ts:880
floors?QualityFloorsHard router constraints from engine config (M4-T09).packages/core/src/engine/ctx.ts:882
isolation?IsolationProviderThe worktree lifecycle provider.packages/core/src/engine/ctx.ts:891
knowledge?ModelKnowledgeHandleThe ModelKnowledge runtime handle (M10-T03): current() only, commit physically absent. Present only when the engine was given stores.modelKnowledge; absent means the feature is off and no kb entries are ever written.packages/core/src/engine/ctx.ts:914
lease?LeaseQueue mode: the segment's lease, threaded into EVERY transcript blob write of the segment (checkpoints, compaction summaries, worktree patches) exactly as the Replayer threads it into every journal append, so a store declaring fencedWrites refuses a superseded segment's blob overwrites (fenced run state RFC, F2). The engine binds this as a live getter over its segment-lease holder (P0.2), so the union with undefined is explicit: before the ownership boot (and on non-leasable stores) it reads undefined.packages/core/src/engine/ctx.ts:819
liveAgentCallsSet<Promise<unknown>>Every live agent invocation of this run, registered by the ctx wrapper the moment agentImpl is entered and removed when it settles (terminal append included), so the engine's settle drain (RV1904) can await the stragglers a workflow body returned over. The four-role benchmark's recovery run kept appending child terminals after run_settle; orchestrations barrier their own roster (RV1903), and this registry closes the same hole for plain workflows with un-awaited ctx.agent calls.packages/core/src/engine/ctx.ts:804
mintTranscriptRef() => string-packages/core/src/engine/ctx.ts:931
now() => number-packages/core/src/engine/ctx.ts:932
onEscalation?(result) => | EscalationDecision | Promise<EscalationDecision>The InProcessRunner escalation hook: receives escalated results when the call form cannot carry them; its decision is journaled as the authoritative escalation-decision entry.packages/core/src/engine/ctx.ts:920
priceUsd(servedBy, usage) => number | undefined-packages/core/src/engine/ctx.ts:886
pricingOf?(servedBy) => Pricing | undefinedRaw price-row resolution (table wins, caps fallback); undefined = unpriced.packages/core/src/engine/ctx.ts:888
pricingVersion?stringThe configured price table's version; pinned in decision entries (M4-T06).packages/core/src/engine/ctx.ts:878
providerLimiter?KeyedLimiterEngine-scoped per-provider keyed limiter (M4-T07).packages/core/src/engine/ctx.ts:852
quota?EngineQuotaRuntimeThe shared quota limiter runtime (RV-215): the configured QuotaLimiter with the engine's tenant and failure policy resolved. Threaded into every live wire dispatch of every run; absent = no shared quota, byte-identical to before the feature.packages/core/src/engine/ctx.ts:859
replayerReplayer-packages/core/src/engine/ctx.ts:787
rootSpanIdstringThe run root span; every top-level span parents on it.packages/core/src/engine/ctx.ts:806
runIdstring-packages/core/src/engine/ctx.ts:786
runSignal?AbortSignal-packages/core/src/engine/ctx.ts:889
semaphoreSemaphore-packages/core/src/engine/ctx.ts:791
spansSpanMinter-packages/core/src/engine/ctx.ts:793
telemetry?{ quotaDeniedAgentError?: boolean; }Telemetry compat posture (RV1810).packages/core/src/engine/ctx.ts:847
telemetry.quotaDeniedAgentError?booleanEmit the legacy agent:error twin beside quota:denied.packages/core/src/engine/ctx.ts:849
transcriptsTranscriptStore-packages/core/src/engine/ctx.ts:807