Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/core / RunInternals

Interface: RunInternals

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

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:857
admission?AdmissionControllerThe single admission point for all spawns (M6-T06).packages/core/src/engine/ctx.ts:827
budgetRunBudget-packages/core/src/engine/ctx.ts:825
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:967
costCostAttribution-packages/core/src/engine/ctx.ts:922
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:858
defaults.billingReceipts?"intent" | "async" | "awaited"The receipt posture of the billing seam (RV3405); default 'async'.packages/core/src/engine/ctx.ts:881
defaults.cache?CachePolicyThe engine-wide prompt-cache policy (RV2006); profile and call opts win.packages/core/src/engine/ctx.ts:879
defaults.countTokens?"allow" | "deny"Engine-wide admission countTokens policy (RV1804); default 'allow'.packages/core/src/engine/ctx.ts:875
defaults.gates?Record<string, MechanicalGateProfile>Registered mechanical gate profiles (M7-T10).packages/core/src/engine/ctx.ts:873
defaults.limits?UsageLimits-packages/core/src/engine/ctx.ts:861
defaults.permissions?PermissionConfigEngine-wide permission chain layers.packages/core/src/engine/ctx.ts:863
defaults.profiles?Record<string, AgentProfile>-packages/core/src/engine/ctx.ts:860
defaults.requireToolsetAttestation?booleanThe toolset attestation floor (RV4204); default off.packages/core/src/engine/ctx.ts:877
defaults.retry?RetryPolicyEngine-wide transport RetryPolicy (M4-T05).packages/core/src/engine/ctx.ts:865
defaults.routing?Partial<Record<InvocationRole, ModelSpec>>-packages/core/src/engine/ctx.ts:859
defaults.schemas?Record<string, SchemaSpec>Registered SchemaSpec names for outputSchemaRef (M7-T05).packages/core/src/engine/ctx.ts:869
defaults.toolsets?Record<string, ToolsOption>Registered tool profile names for toolsetRef (M7-T05).packages/core/src/engine/ctx.ts:871
defaults.workflows?Record<string, unknown>The per-engine workflow registry (consumers: M6 ctx.workflow, M8 worker).packages/core/src/engine/ctx.ts:867
droppedDroppedItem[]-packages/core/src/engine/ctx.ts:921
errorPolicyErrorPolicy-packages/core/src/engine/ctx.ts:920
eventsRunEventSink-packages/core/src/engine/ctx.ts:829
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:944
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:905
executionScope.account?string-packages/core/src/engine/ctx.ts:907
executionScope.legalDomain?string-packages/core/src/engine/ctx.ts:909
executionScope.project?string-packages/core/src/engine/ctx.ts:908
executionScope.providerAccount?string-packages/core/src/engine/ctx.ts:911
executionScope.region?string-packages/core/src/engine/ctx.ts:910
executionScope.sponsor?string-packages/core/src/engine/ctx.ts:912
executionScope.tenant?string-packages/core/src/engine/ctx.ts:906
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:936
external?ExternalRegistryOpen external suspensions plus the quiescence activity counter (M2-T08).packages/core/src/engine/ctx.ts:961
flatReserveUsd?numberbudgetDefaults.flatReserveUsd; last resort of the reserve formula.packages/core/src/engine/ctx.ts:917
floors?QualityFloorsHard router constraints from engine config (M4-T09).packages/core/src/engine/ctx.ts:919
isolation?IsolationProviderThe worktree lifecycle provider.packages/core/src/engine/ctx.ts:928
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:951
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:856
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:841
mintTranscriptRef() => string-packages/core/src/engine/ctx.ts:968
now() => number-packages/core/src/engine/ctx.ts:969
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:957
priceUsd(servedBy, usage) => number | undefined-packages/core/src/engine/ctx.ts:923
pricingOf?(servedBy) => Pricing | undefinedRaw price-row resolution (table wins, caps fallback); undefined = unpriced.packages/core/src/engine/ctx.ts:925
pricingVersion?stringThe configured price table's version; pinned in decision entries (M4-T06).packages/core/src/engine/ctx.ts:915
providerLimiter?KeyedLimiterEngine-scoped per-provider keyed limiter (M4-T07).packages/core/src/engine/ctx.ts:889
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:896
replayerReplayer-packages/core/src/engine/ctx.ts:824
rootSpanIdstringThe run root span; every top-level span parents on it.packages/core/src/engine/ctx.ts:843
runIdstring-packages/core/src/engine/ctx.ts:823
runSignal?AbortSignal-packages/core/src/engine/ctx.ts:926
semaphoreSemaphore-packages/core/src/engine/ctx.ts:828
spansSpanMinter-packages/core/src/engine/ctx.ts:830
telemetry?{ quotaDeniedAgentError?: boolean; }Telemetry compat posture (RV1810).packages/core/src/engine/ctx.ts:884
telemetry.quotaDeniedAgentError?booleanEmit the legacy agent:error twin beside quota:denied.packages/core/src/engine/ctx.ts:886
transcriptsTranscriptStore-packages/core/src/engine/ctx.ts:844