Skip to content

Interface: LoopContinuationFrame ​

Defined in: ports/loop-continuation-frame.ts:26

Serialized continuation frame for an iterative P.loop execution (kind: 'loop-frame').

Preserves cumulative telemetry, .act()-only tripwire counters, loop-scoped capability leases (grantedLoopLeases), active skills, and deduplicated lesson outcome attribution across iterations, cross-model escalations, and fork suspensions.

Properties ​

PropertyModifierTypeDescriptionDefined in
accumulatedLessonOutcomesreadonlyReadonly<Record<string, LessonOutcome>>Per-loop deduplicated lesson outcome map (lessonId -> worst 4-state outcome observed).ports/loop-continuation-frame.ts:82
actCostUsdreadonlynumberCumulative .act()-only USD cost evaluated against the .act() actor's P.policy.maxCostUsd.ports/loop-continuation-frame.ts:58
actElapsedDurationMsreadonlynumberCumulative .act()-only elapsed duration in milliseconds evaluated against P.policy.maxDurationSeconds.ports/loop-continuation-frame.ts:60
activeSkillActivationsreadonlyReadonly<Record<string, { callId: string; messageId: string; }>>Map of .act() active skillId to its { messageId, callId } activation coordinates.ports/loop-continuation-frame.ts:66
activeSkillIdsreadonlyreadonly string[]Active skill IDs mounted by the .act() actor across iterations.ports/loop-continuation-frame.ts:64
actTurnsTakenreadonlynumberCumulative .act()-only LLM turns evaluated against the .act() actor's P.policy.maxTurns.ports/loop-continuation-frame.ts:56
bufferedGateRecoveries?readonlyreadonly unknown[]Buffered gate recovery pairs awaiting .evaluate() acceptance before distillation.ports/loop-continuation-frame.ts:80
conflictCheckArmed?readonlybooleanWhether scopeNode.conflictCleanCheck is armed on the loop's scope handle.ports/loop-continuation-frame.ts:74
costUsdreadonlynumberCumulative total USD cost across both .act() and .evaluate() iterations.ports/loop-continuation-frame.ts:52
elapsedDurationMsreadonlynumberCumulative total elapsed duration in milliseconds across the loop.ports/loop-continuation-frame.ts:54
grantedLoopLeasesreadonlyreadonly LeaseDelta[]Loop-scoped capability leases inherited across all .act() iterations.ports/loop-continuation-frame.ts:62
injectedScopedRuleIdsreadonlyreadonly string[]Identifiers of ScopedRuleNode directives injected into the .act() actor across iterations.ports/loop-continuation-frame.ts:72
iterationreadonlynumberZero-based current iteration index (0..maxIterations - 1).ports/loop-continuation-frame.ts:40
kindreadonly"loop-frame"Discriminant identifying a loop continuation frame.ports/loop-continuation-frame.ts:28
lastActModelId?readonlystringProvider model identifier used on the most recent .act() iteration.ports/loop-continuation-frame.ts:34
lastActOutputJson?readonlystringJSON-serialized .act() output persisted when transitioning to phase: 'evaluate'.ports/loop-continuation-frame.ts:46
lastActScopeReceiptJson?readonlystringJSON-serialized scope receipt persisted when transitioning to phase: 'evaluate'.ports/loop-continuation-frame.ts:48
lastRejectedIterationJson?readonlystringOptional JSON-serialized snapshot of the most recent rejected iteration for .onLoopRecovery().ports/loop-continuation-frame.ts:78
loopIdreadonlystringLogical identifier of the LoopNode.ports/loop-continuation-frame.ts:30
loopInputJsonreadonlystringJSON-serialized validated input payload for the loop.ports/loop-continuation-frame.ts:38
observedEffectsreadonlyreadonly ToolEffect[]Cumulative ToolEffect descriptors recorded across the loop.ports/loop-continuation-frame.ts:70
phasereadonly"act" | "evaluate"Active phase within the current iteration ('act' vs 'evaluate').ports/loop-continuation-frame.ts:42
preservedActLeafMessageIdreadonlystring | nullLeaf message ID of the .act() actor's structured-output completion turn.ports/loop-continuation-frame.ts:44
recalledLessonsreadonlyreadonly RecalledLoopLessonRecord[]Active lessons recalled at loop start and forwarded to .evaluate().ports/loop-continuation-frame.ts:76
roleKeyreadonlystringCanonical roleKey of the loop's .act() actor.ports/loop-continuation-frame.ts:32
stepExecIdreadonlystringUnique step execution identifier in LedgerStore.ports/loop-continuation-frame.ts:36
turnsTakenreadonlynumberCumulative total LLM turns across both .act() and .evaluate() iterations.ports/loop-continuation-frame.ts:50

Released under the MIT License.