@duetso/agent 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/dist/package.json +4 -4
- package/dist/src/cli/config.d.ts +10 -0
- package/dist/src/cli/config.d.ts.map +1 -0
- package/dist/src/cli/config.js +24 -0
- package/dist/src/cli/config.js.map +1 -0
- package/dist/src/cli/help.d.ts.map +1 -1
- package/dist/src/cli/help.js +13 -10
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/inline-slash.d.ts +2 -1
- package/dist/src/cli/inline-slash.d.ts.map +1 -1
- package/dist/src/cli/inline-slash.js +14 -5
- package/dist/src/cli/inline-slash.js.map +1 -1
- package/dist/src/cli/memory-db.d.ts.map +1 -1
- package/dist/src/cli/memory-db.js +9 -5
- package/dist/src/cli/memory-db.js.map +1 -1
- package/dist/src/cli/memory-query.d.ts +1 -1
- package/dist/src/cli/model.d.ts +1 -1
- package/dist/src/cli/model.d.ts.map +1 -1
- package/dist/src/cli/model.js +1 -1
- package/dist/src/cli/model.js.map +1 -1
- package/dist/src/cli/route.d.ts +84 -0
- package/dist/src/cli/route.d.ts.map +1 -0
- package/dist/src/cli/route.js +261 -0
- package/dist/src/cli/route.js.map +1 -0
- package/dist/src/cli/rpc.d.ts +43 -2
- package/dist/src/cli/rpc.d.ts.map +1 -1
- package/dist/src/cli/rpc.js +176 -23
- package/dist/src/cli/rpc.js.map +1 -1
- package/dist/src/cli/run.d.ts +8 -1
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +24 -7
- package/dist/src/cli/run.js.map +1 -1
- package/dist/src/cli/shared.d.ts +4 -3
- package/dist/src/cli/shared.d.ts.map +1 -1
- package/dist/src/cli/shared.js +3 -4
- package/dist/src/cli/shared.js.map +1 -1
- package/dist/src/cli/shutdown.d.ts +4 -2
- package/dist/src/cli/shutdown.d.ts.map +1 -1
- package/dist/src/cli/shutdown.js +4 -2
- package/dist/src/cli/shutdown.js.map +1 -1
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +12 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/core/structured-output.d.ts +2 -0
- package/dist/src/core/structured-output.d.ts.map +1 -1
- package/dist/src/core/structured-output.js +1 -0
- package/dist/src/core/structured-output.js.map +1 -1
- package/dist/src/lib/system-reminder.d.ts +14 -0
- package/dist/src/lib/system-reminder.d.ts.map +1 -0
- package/dist/src/lib/system-reminder.js +53 -0
- package/dist/src/lib/system-reminder.js.map +1 -0
- package/dist/src/lib/walk-ancestors.d.ts +9 -0
- package/dist/src/lib/walk-ancestors.d.ts.map +1 -0
- package/dist/src/lib/walk-ancestors.js +28 -0
- package/dist/src/lib/walk-ancestors.js.map +1 -0
- package/dist/src/memory/observational-prompts.d.ts.map +1 -1
- package/dist/src/memory/observational-prompts.js +2 -1
- package/dist/src/memory/observational-prompts.js.map +1 -1
- package/dist/src/memory/observational.d.ts +31 -4
- package/dist/src/memory/observational.d.ts.map +1 -1
- package/dist/src/memory/observational.js +43 -4
- package/dist/src/memory/observational.js.map +1 -1
- package/dist/src/model-resolution/catalog.d.ts +2 -2
- package/dist/src/model-resolution/catalog.d.ts.map +1 -1
- package/dist/src/model-resolution/catalog.js +61 -33
- package/dist/src/model-resolution/catalog.js.map +1 -1
- package/dist/src/model-resolution/duet-gateway.d.ts +3 -3
- package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
- package/dist/src/model-resolution/duet-gateway.js +119 -19
- package/dist/src/model-resolution/duet-gateway.js.map +1 -1
- package/dist/src/model-resolution/model-gateway.d.ts.map +1 -0
- package/dist/src/{cli → model-resolution}/model-gateway.js +10 -6
- package/dist/src/model-resolution/model-gateway.js.map +1 -0
- package/dist/src/model-resolution/resolver.d.ts +11 -4
- package/dist/src/model-resolution/resolver.d.ts.map +1 -1
- package/dist/src/model-resolution/resolver.js +39 -8
- package/dist/src/model-resolution/resolver.js.map +1 -1
- package/dist/src/model-routing/advisor-transcript.d.ts +36 -0
- package/dist/src/model-routing/advisor-transcript.d.ts.map +1 -0
- package/dist/src/model-routing/advisor-transcript.js +103 -0
- package/dist/src/model-routing/advisor-transcript.js.map +1 -0
- package/dist/src/model-routing/advisor.d.ts +27 -0
- package/dist/src/model-routing/advisor.d.ts.map +1 -0
- package/dist/src/model-routing/advisor.js +20 -0
- package/dist/src/model-routing/advisor.js.map +1 -0
- package/dist/src/model-routing/classifier.d.ts +57 -0
- package/dist/src/model-routing/classifier.d.ts.map +1 -0
- package/dist/src/model-routing/classifier.js +63 -0
- package/dist/src/model-routing/classifier.js.map +1 -0
- package/dist/src/model-routing/loader.d.ts +48 -0
- package/dist/src/model-routing/loader.d.ts.map +1 -0
- package/dist/src/model-routing/loader.js +79 -0
- package/dist/src/model-routing/loader.js.map +1 -0
- package/dist/src/model-routing/prompts.d.ts +22 -0
- package/dist/src/model-routing/prompts.d.ts.map +1 -0
- package/dist/src/model-routing/prompts.js +87 -0
- package/dist/src/model-routing/prompts.js.map +1 -0
- package/dist/src/model-routing/resolve.d.ts +40 -0
- package/dist/src/model-routing/resolve.d.ts.map +1 -0
- package/dist/src/model-routing/resolve.js +76 -0
- package/dist/src/model-routing/resolve.js.map +1 -0
- package/dist/src/model-routing/router.d.ts +149 -0
- package/dist/src/model-routing/router.d.ts.map +1 -0
- package/dist/src/model-routing/router.js +235 -0
- package/dist/src/model-routing/router.js.map +1 -0
- package/dist/src/model-routing/step-triggers.d.ts +27 -0
- package/dist/src/model-routing/step-triggers.d.ts.map +1 -0
- package/dist/src/model-routing/step-triggers.js +20 -0
- package/dist/src/model-routing/step-triggers.js.map +1 -0
- package/dist/src/model-routing/table.d.ts +126 -0
- package/dist/src/model-routing/table.d.ts.map +1 -0
- package/dist/src/model-routing/table.js +351 -0
- package/dist/src/model-routing/table.js.map +1 -0
- package/dist/src/session/session.d.ts +40 -23
- package/dist/src/session/session.d.ts.map +1 -1
- package/dist/src/session/session.js +173 -97
- package/dist/src/session/session.js.map +1 -1
- package/dist/src/tasks/quiescence.d.ts +13 -0
- package/dist/src/tasks/quiescence.d.ts.map +1 -0
- package/dist/src/tasks/quiescence.js +11 -0
- package/dist/src/tasks/quiescence.js.map +1 -0
- package/dist/src/tasks/task-manager.d.ts +101 -0
- package/dist/src/tasks/task-manager.d.ts.map +1 -0
- package/dist/src/tasks/task-manager.js +311 -0
- package/dist/src/tasks/task-manager.js.map +1 -0
- package/dist/src/tasks/types.d.ts +85 -0
- package/dist/src/tasks/types.d.ts.map +1 -0
- package/dist/src/tasks/types.js +2 -0
- package/dist/src/tasks/types.js.map +1 -0
- package/dist/src/train/archive.d.ts +3 -0
- package/dist/src/train/archive.d.ts.map +1 -1
- package/dist/src/train/archive.js +7 -3
- package/dist/src/train/archive.js.map +1 -1
- package/dist/src/train/types.d.ts +7 -2
- package/dist/src/train/types.d.ts.map +1 -1
- package/dist/src/tui/app.d.ts +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +12 -2
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/initial-prompt.d.ts.map +1 -1
- package/dist/src/tui/initial-prompt.js +0 -3
- package/dist/src/tui/initial-prompt.js.map +1 -1
- package/dist/src/tui/session-subscription.d.ts +3 -0
- package/dist/src/tui/session-subscription.d.ts.map +1 -1
- package/dist/src/tui/session-subscription.js +29 -5
- package/dist/src/tui/session-subscription.js.map +1 -1
- package/dist/src/tui/sidebar.d.ts +3 -0
- package/dist/src/tui/sidebar.d.ts.map +1 -1
- package/dist/src/tui/sidebar.js +19 -3
- package/dist/src/tui/sidebar.js.map +1 -1
- package/dist/src/tui/slash-commands.d.ts +12 -9
- package/dist/src/tui/slash-commands.d.ts.map +1 -1
- package/dist/src/tui/slash-commands.js +48 -10
- package/dist/src/tui/slash-commands.js.map +1 -1
- package/dist/src/tui/status-controller.d.ts +14 -9
- package/dist/src/tui/status-controller.d.ts.map +1 -1
- package/dist/src/tui/status-controller.js +26 -7
- package/dist/src/tui/status-controller.js.map +1 -1
- package/dist/src/tui/task-lane-renderer.d.ts +30 -0
- package/dist/src/tui/task-lane-renderer.d.ts.map +1 -0
- package/dist/src/tui/task-lane-renderer.js +93 -0
- package/dist/src/tui/task-lane-renderer.js.map +1 -0
- package/dist/src/tui/task-tree.d.ts +47 -0
- package/dist/src/tui/task-tree.d.ts.map +1 -0
- package/dist/src/tui/task-tree.js +190 -0
- package/dist/src/tui/task-tree.js.map +1 -0
- package/dist/src/tui/tool-formatters.js +3 -0
- package/dist/src/tui/tool-formatters.js.map +1 -1
- package/dist/src/turn-runner/agent-events.d.ts.map +1 -1
- package/dist/src/turn-runner/agent-events.js +1 -0
- package/dist/src/turn-runner/agent-events.js.map +1 -1
- package/dist/src/turn-runner/duration.d.ts +2 -2
- package/dist/src/turn-runner/duration.js +3 -3
- package/dist/src/turn-runner/duration.js.map +1 -1
- package/dist/src/turn-runner/prompts.d.ts +5 -1
- package/dist/src/turn-runner/prompts.d.ts.map +1 -1
- package/dist/src/turn-runner/prompts.js +30 -6
- package/dist/src/turn-runner/prompts.js.map +1 -1
- package/dist/src/turn-runner/runtime-clock.d.ts +20 -0
- package/dist/src/turn-runner/runtime-clock.d.ts.map +1 -0
- package/dist/src/turn-runner/runtime-clock.js +38 -0
- package/dist/src/turn-runner/runtime-clock.js.map +1 -0
- package/dist/src/turn-runner/shell-state-handle.d.ts +0 -3
- package/dist/src/turn-runner/shell-state-handle.d.ts.map +1 -1
- package/dist/src/turn-runner/shell-state-handle.js +5 -55
- package/dist/src/turn-runner/shell-state-handle.js.map +1 -1
- package/dist/src/turn-runner/skill-context.d.ts +6 -7
- package/dist/src/turn-runner/skill-context.d.ts.map +1 -1
- package/dist/src/turn-runner/skill-context.js +10 -10
- package/dist/src/turn-runner/skill-context.js.map +1 -1
- package/dist/src/turn-runner/skills.d.ts.map +1 -1
- package/dist/src/turn-runner/skills.js +2 -22
- package/dist/src/turn-runner/skills.js.map +1 -1
- package/dist/src/turn-runner/state-compaction.d.ts +7 -5
- package/dist/src/turn-runner/state-compaction.d.ts.map +1 -1
- package/dist/src/turn-runner/state-compaction.js +69 -10
- package/dist/src/turn-runner/state-compaction.js.map +1 -1
- package/dist/src/turn-runner/state-machine-decisions.d.ts +135 -0
- package/dist/src/turn-runner/state-machine-decisions.d.ts.map +1 -0
- package/dist/src/turn-runner/state-machine-decisions.js +443 -0
- package/dist/src/turn-runner/state-machine-decisions.js.map +1 -0
- package/dist/src/turn-runner/state-machine-session.d.ts +13 -28
- package/dist/src/turn-runner/state-machine-session.d.ts.map +1 -1
- package/dist/src/turn-runner/state-machine-session.js +18 -55
- package/dist/src/turn-runner/state-machine-session.js.map +1 -1
- package/dist/src/turn-runner/subagent.d.ts +156 -0
- package/dist/src/turn-runner/subagent.d.ts.map +1 -0
- package/dist/src/turn-runner/subagent.js +164 -0
- package/dist/src/turn-runner/subagent.js.map +1 -0
- package/dist/src/turn-runner/task-tools.d.ts +76 -0
- package/dist/src/turn-runner/task-tools.d.ts.map +1 -0
- package/dist/src/turn-runner/task-tools.js +370 -0
- package/dist/src/turn-runner/task-tools.js.map +1 -0
- package/dist/src/turn-runner/tools.d.ts +65 -17
- package/dist/src/turn-runner/tools.d.ts.map +1 -1
- package/dist/src/turn-runner/tools.js +173 -59
- package/dist/src/turn-runner/tools.js.map +1 -1
- package/dist/src/turn-runner/turn-runner.d.ts +198 -134
- package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
- package/dist/src/turn-runner/turn-runner.js +1302 -713
- package/dist/src/turn-runner/turn-runner.js.map +1 -1
- package/dist/src/turn-runner/usage-accounting.d.ts +4 -0
- package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -1
- package/dist/src/turn-runner/usage-accounting.js +19 -0
- package/dist/src/turn-runner/usage-accounting.js.map +1 -1
- package/dist/src/types/config.d.ts +9 -1
- package/dist/src/types/config.d.ts.map +1 -1
- package/dist/src/types/config.js +2 -1
- package/dist/src/types/config.js.map +1 -1
- package/dist/src/types/protocol.d.ts +110 -30
- package/dist/src/types/protocol.d.ts.map +1 -1
- package/dist/src/types/state-machine.d.ts +10 -12
- package/dist/src/types/state-machine.d.ts.map +1 -1
- package/dist/src/types/state-machine.js.map +1 -1
- package/package.json +4 -4
- package/dist/src/cli/model-gateway.d.ts.map +0 -1
- package/dist/src/cli/model-gateway.js.map +0 -1
- package/dist/src/turn-runner/state-machine-controller.d.ts +0 -140
- package/dist/src/turn-runner/state-machine-controller.d.ts.map +0 -1
- package/dist/src/turn-runner/state-machine-controller.js +0 -501
- package/dist/src/turn-runner/state-machine-controller.js.map +0 -1
- /package/dist/src/{cli → model-resolution}/model-gateway.d.ts +0 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { ImageContent, TextContent, ThinkingLevel, Usage } from "@earendil-works/pi-ai";
|
|
2
|
+
import type { RouterSwitch } from "../model-routing/router.js";
|
|
3
|
+
import type { TaskDescriptor, TaskId, TaskSettlement } from "../tasks/types.js";
|
|
4
|
+
export type { TaskDescriptor, TaskId, TaskSettlement, TaskSnapshot } from "../tasks/types.js";
|
|
2
5
|
import type { AgentSession } from "./agent.js";
|
|
3
6
|
import type { ObservationalMemoryActivityEvent } from "./memory.js";
|
|
4
7
|
import type { StateMachineDefinition, StateMachineSession } from "./state-machine.js";
|
|
@@ -37,8 +40,8 @@ import type { StateMachineDefinition, StateMachineSession } from "./state-machin
|
|
|
37
40
|
* - `answer`: answer questions from the previous terminal `ask` event
|
|
38
41
|
* - `wake`: resume a sleeping session for one scheduled state-machine step
|
|
39
42
|
*
|
|
40
|
-
* Each turn emits any number of during-turn events
|
|
41
|
-
*
|
|
43
|
+
* Each turn emits any number of during-turn events, including task lifecycle,
|
|
44
|
+
* agent steps, state snapshots, and diagnostics. The turn ends with exactly one
|
|
42
45
|
* terminal event:
|
|
43
46
|
* `complete`, `ask`, `interrupted`, or `sleep`.
|
|
44
47
|
* Terminal events carry the turn runner-owned state needed to continue a later turn.
|
|
@@ -76,6 +79,7 @@ import type { StateMachineDefinition, StateMachineSession } from "./state-machin
|
|
|
76
79
|
* - `step` shows textual progress, reasoning, tool calls, or system messages
|
|
77
80
|
* - `todos` shows current task progress
|
|
78
81
|
* - `follow_up_queue` shows prompts waiting for the current turn chain to finish
|
|
82
|
+
* - `task_started`, `task_output`, and `task_settled` expose task lifecycle changes
|
|
79
83
|
* - `log` shows diagnostic messages
|
|
80
84
|
*
|
|
81
85
|
* The UI can always render `state.agent` as the conversation transcript. When it
|
|
@@ -194,6 +198,36 @@ export interface TurnState {
|
|
|
194
198
|
* order when the runner can safely continue.
|
|
195
199
|
*/
|
|
196
200
|
queuedCommands?: TurnCommand[];
|
|
201
|
+
/**
|
|
202
|
+
* Durable task descriptors used to reconstruct the live task set after a
|
|
203
|
+
* snapshot or process restart. `running` tasks hold the current process
|
|
204
|
+
* awake; `scheduled` tasks permit sleep until their `wakeAt`; terminal task
|
|
205
|
+
* statuses hold nothing open. Descriptors persist because identity,
|
|
206
|
+
* ownership, and lifecycle must survive hydration. Their runtime promises
|
|
207
|
+
* and AbortControllers are process-bound and are deliberately never stored;
|
|
208
|
+
* hydration marks formerly running work `lost` rather than pretending its
|
|
209
|
+
* executor survived.
|
|
210
|
+
*/
|
|
211
|
+
tasks?: TaskDescriptor[];
|
|
212
|
+
/**
|
|
213
|
+
* Retained output captured for process-bound tasks so crash recovery can tell the
|
|
214
|
+
* next parent pass what each lost executor last reported. Entries use task ids as
|
|
215
|
+
* keys and retain at most the final three chunks, capped to their last 1,500
|
|
216
|
+
* characters, so recovery context cannot make the durable snapshot unbounded.
|
|
217
|
+
*/
|
|
218
|
+
taskOutputTails?: Partial<Record<TaskId, string[]>>;
|
|
219
|
+
/**
|
|
220
|
+
* Lost task ids whose crash-recovery context has not yet been attached to a
|
|
221
|
+
* parent pass. Persisting this delivery marker prevents repeated process
|
|
222
|
+
* restarts from silently dropping the reminder before the parent can act on it.
|
|
223
|
+
*/
|
|
224
|
+
pendingLostTaskReminderTaskIds?: TaskId[];
|
|
225
|
+
/**
|
|
226
|
+
* Numeric suffix to allocate for the next task id. Persisting the allocator
|
|
227
|
+
* alongside descriptors keeps ids monotonic even when terminal descriptors
|
|
228
|
+
* have been compacted or a process resumes from state.json.
|
|
229
|
+
*/
|
|
230
|
+
nextTaskId?: number;
|
|
197
231
|
/**
|
|
198
232
|
* Persisted wire-shaping state. Carries the sticky eviction horizon and
|
|
199
233
|
* any future wire-shaping fields across resume so a compacted session
|
|
@@ -315,6 +349,8 @@ export type TurnStep = {
|
|
|
315
349
|
isError: boolean;
|
|
316
350
|
/** Tool result content. */
|
|
317
351
|
output?: (TextContent | ImageContent)[];
|
|
352
|
+
/** Tool-specific structured result metadata used for machine-readable outcomes. */
|
|
353
|
+
details?: unknown;
|
|
318
354
|
} | {
|
|
319
355
|
type: "system";
|
|
320
356
|
message: string;
|
|
@@ -529,22 +565,57 @@ export interface TurnStepEvent {
|
|
|
529
565
|
type: "step";
|
|
530
566
|
step: TurnStep;
|
|
531
567
|
/**
|
|
532
|
-
* Set when
|
|
533
|
-
*
|
|
534
|
-
|
|
535
|
-
|
|
568
|
+
* Set when a task-backed subagent produced the step. Absent for the parent
|
|
569
|
+
* agent; correlate `taskId` with `task_started` for its name and role.
|
|
570
|
+
*/
|
|
571
|
+
origin?: TurnEventOrigin;
|
|
572
|
+
}
|
|
573
|
+
/** Identifies the task runtime that produced a non-parent event. */
|
|
574
|
+
export interface TurnEventOrigin {
|
|
575
|
+
/** Stable identity shared by spawned and state-machine subagents. */
|
|
576
|
+
taskId: TaskId;
|
|
577
|
+
}
|
|
578
|
+
/** Emitted once after a task id is allocated and its descriptor becomes observable. */
|
|
579
|
+
export interface TurnTaskStartedEvent {
|
|
580
|
+
type: "task_started";
|
|
581
|
+
/** Full durable descriptor at task start. */
|
|
582
|
+
task: TaskDescriptor;
|
|
583
|
+
/** Present when another task runtime caused this lifecycle change. */
|
|
584
|
+
origin?: TurnEventOrigin;
|
|
585
|
+
}
|
|
586
|
+
/** Emitted for one newly appended task-output chunk while the turn remains open. */
|
|
587
|
+
export interface TurnTaskOutputEvent {
|
|
588
|
+
type: "task_output";
|
|
589
|
+
taskId: TaskId;
|
|
590
|
+
/**
|
|
591
|
+
* Delta output only; consumers append chunks in event order. This is not a
|
|
592
|
+
* cumulative replay. Late attach and explicit task_output requests obtain
|
|
593
|
+
* the cumulative buffered snapshot from TaskManager instead.
|
|
536
594
|
*/
|
|
595
|
+
chunk: string;
|
|
596
|
+
/** Present when another task runtime caused this lifecycle change. */
|
|
597
|
+
origin?: TurnEventOrigin;
|
|
598
|
+
}
|
|
599
|
+
/** Emitted once when a task reaches a terminal lifecycle status. */
|
|
600
|
+
export interface TurnTaskSettledEvent {
|
|
601
|
+
type: "task_settled";
|
|
602
|
+
/** Terminal value, including whether work completed, failed, stopped, or was lost. */
|
|
603
|
+
settlement: TaskSettlement;
|
|
604
|
+
/** Present when another task runtime caused this lifecycle change. */
|
|
537
605
|
origin?: TurnEventOrigin;
|
|
538
606
|
}
|
|
539
607
|
/**
|
|
540
|
-
*
|
|
541
|
-
*
|
|
542
|
-
*
|
|
608
|
+
* RPC transport liveness signal emitted while in-process tasks keep a turn
|
|
609
|
+
* open. It is transport telemetry rather than model activity: runners do not
|
|
610
|
+
* add it to agent transcripts, routing observations, or memory.
|
|
543
611
|
*/
|
|
544
|
-
export
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
612
|
+
export interface TurnHeartbeatEvent {
|
|
613
|
+
type: "heartbeat";
|
|
614
|
+
/** Timestamp from the RPC transport's runtime clock. */
|
|
615
|
+
timestamp: number;
|
|
616
|
+
/** Running task ids that currently require the RPC process to stay awake. */
|
|
617
|
+
activeTaskIds: TaskId[];
|
|
618
|
+
}
|
|
548
619
|
export interface TurnTodosEvent {
|
|
549
620
|
type: "todos";
|
|
550
621
|
todos: TurnTodo[];
|
|
@@ -616,10 +687,10 @@ export interface TurnContextWindowUsage {
|
|
|
616
687
|
* context bar.
|
|
617
688
|
*
|
|
618
689
|
* Two distinct token totals are reported:
|
|
619
|
-
* - `turnUsage` is a per-turn aggregate across every LLM call
|
|
620
|
-
* worker
|
|
621
|
-
* did this turn cost" readouts. It is
|
|
622
|
-
* `effectiveContextWindow` because the cap is per-request.
|
|
690
|
+
* - `turnUsage` is a per-turn aggregate across every metered LLM call
|
|
691
|
+
* (parent worker, state agents, classifier, advisor, and memory workers).
|
|
692
|
+
* Use it for cost accounting and "what did this turn cost" readouts. It is
|
|
693
|
+
* not comparable to `effectiveContextWindow` because the cap is per-request.
|
|
623
694
|
* - `lastMessageUsage` is the exact provider-reported usage of the
|
|
624
695
|
* most recent parent assistant message. Use it for context-window
|
|
625
696
|
* pressure surfaces ("X / cap"): `lastMessageUsage.totalTokens` is
|
|
@@ -629,9 +700,9 @@ export interface TurnContextWindowUsage {
|
|
|
629
700
|
*/
|
|
630
701
|
export interface TurnUsageFields {
|
|
631
702
|
/**
|
|
632
|
-
* Running turn aggregate: the sum of every
|
|
633
|
-
*
|
|
634
|
-
*
|
|
703
|
+
* Running turn aggregate: the sum of every model `usage` recorded so far in
|
|
704
|
+
* this turn, including parent, state-agent, classifier, advisor, and memory
|
|
705
|
+
* calls. Always cumulative; never a single-call delta.
|
|
635
706
|
*/
|
|
636
707
|
turnUsage: TurnTokenUsage;
|
|
637
708
|
/**
|
|
@@ -644,9 +715,9 @@ export interface TurnUsageFields {
|
|
|
644
715
|
usageByModel: ModelUsageEntry[];
|
|
645
716
|
/**
|
|
646
717
|
* Provider-reported usage from the latest parent assistant message.
|
|
647
|
-
* Refreshed on every parent `message_end` and held stable while only
|
|
648
|
-
*
|
|
649
|
-
* display against `effectiveContextWindow` — it reflects exactly what
|
|
718
|
+
* Refreshed on every parent `message_end` and held stable while only state
|
|
719
|
+
* agents or auxiliary calls advance `turnUsage`. This is the accurate number
|
|
720
|
+
* to display against `effectiveContextWindow` — it reflects exactly what
|
|
650
721
|
* the API counted on the most recent parent call (`input` is fresh
|
|
651
722
|
* input, `cacheRead` + `cacheWrite` are the cache hits/writes, and
|
|
652
723
|
* `totalTokens` is their sum plus `output`).
|
|
@@ -685,16 +756,15 @@ export interface ModelUsageEntry {
|
|
|
685
756
|
usage: TurnTokenUsage;
|
|
686
757
|
}
|
|
687
758
|
/**
|
|
688
|
-
* Emitted after
|
|
689
|
-
*
|
|
690
|
-
*
|
|
759
|
+
* Emitted after a parent context snapshot exists and metered usage advances.
|
|
760
|
+
* `turnUsage` includes every recorded parent, state-agent, classifier, advisor,
|
|
761
|
+
* and memory call; the context fields remain scoped to the latest parent call.
|
|
691
762
|
*/
|
|
692
763
|
export interface TurnUsageEvent extends TurnUsageFields {
|
|
693
764
|
type: "usage";
|
|
694
765
|
/**
|
|
695
|
-
* Set when this usage tick was emitted at a
|
|
696
|
-
* Absent for parent-driven ticks
|
|
697
|
-
* so consumers can split running cost by agent if they want to.
|
|
766
|
+
* Set when this usage tick was emitted at a task-backed subagent boundary.
|
|
767
|
+
* Absent for parent-driven ticks so consumers can attribute running cost.
|
|
698
768
|
*/
|
|
699
769
|
origin?: TurnEventOrigin;
|
|
700
770
|
}
|
|
@@ -731,8 +801,18 @@ export interface TurnSystemEvent {
|
|
|
731
801
|
level: "debug" | "info" | "warn" | "error";
|
|
732
802
|
message: string;
|
|
733
803
|
}
|
|
804
|
+
/**
|
|
805
|
+
* A concrete model or reasoning-effort change selected by a virtual-model
|
|
806
|
+
* router. Derived from the router's own switch shape so the two can never
|
|
807
|
+
* drift — the runner emits `{ type: "router_switch", ...switched }`.
|
|
808
|
+
*/
|
|
809
|
+
export interface TurnRouterSwitchEvent extends RouterSwitch {
|
|
810
|
+
type: "router_switch";
|
|
811
|
+
/** Present only if a future independently-routed child agent emits the switch. */
|
|
812
|
+
origin?: TurnEventOrigin;
|
|
813
|
+
}
|
|
734
814
|
/** Events emitted while the runner is still working on the current turn. */
|
|
735
|
-
export type TurnDuringEvent = TurnStepEvent | TurnTodosEvent | TurnFollowUpQueueEvent | TurnStateMachineEvent | TurnMemoryEvent | TurnUsageEvent | TurnSystemEvent;
|
|
815
|
+
export type TurnDuringEvent = TurnStepEvent | TurnHeartbeatEvent | TurnTaskStartedEvent | TurnTaskOutputEvent | TurnTaskSettledEvent | TurnTodosEvent | TurnFollowUpQueueEvent | TurnStateMachineEvent | TurnMemoryEvent | TurnUsageEvent | TurnSystemEvent | TurnRouterSwitchEvent;
|
|
736
816
|
/** Events that end the current turn. */
|
|
737
817
|
export type TurnTerminalEvent = TurnAskEvent | TurnCompletedEvent | TurnInterruptedEvent | TurnSleepEvent;
|
|
738
818
|
export type TurnEvent = TurnStartedEvent | TurnDuringEvent | TurnTerminalEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { ThinkingLevel } from "@earendil-works/pi-ai";
|
|
2
|
-
import type { TurnQuestion } from "./protocol.js";
|
|
3
2
|
export declare const INTERRUPTED_STATE_MACHINE_STATE = "interrupted";
|
|
4
3
|
/**
|
|
5
4
|
* Durable state-machine definitions and runtime state.
|
|
@@ -111,10 +110,10 @@ export declare const INTERRUPTED_STATE_MACHINE_STATE = "interrupted";
|
|
|
111
110
|
* says prior work already happened, such as "I've already sent email, just wait
|
|
112
111
|
* for response." The runner injects the original prompt and relevant history
|
|
113
112
|
* automatically when constructing agent prompts; state definitions only describe
|
|
114
|
-
* their own behavior. Human input is
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
113
|
+
* their own behavior. Human input is parent-owned: the machine parks without
|
|
114
|
+
* executing work, and the parent asks any question needed to leave that park.
|
|
115
|
+
* Polling remains explicit because the runner owns one poll attempt and emits
|
|
116
|
+
* sleep until the next attempt.
|
|
118
117
|
*
|
|
119
118
|
* Example of templated script commands:
|
|
120
119
|
*
|
|
@@ -203,7 +202,7 @@ export interface StateMachineSession {
|
|
|
203
202
|
*
|
|
204
203
|
* The flag is per-session: it prevents the same `session.terminal`
|
|
205
204
|
* from being re-acknowledged if the parent re-routes back into the
|
|
206
|
-
*
|
|
205
|
+
* turn loop during the acknowledgment pass. A new state machine
|
|
207
206
|
* created during the acknowledgment turn lives on a fresh session
|
|
208
207
|
* built by `createStateMachineSession` and gets its own
|
|
209
208
|
* acknowledgment when it terminates.
|
|
@@ -212,7 +211,7 @@ export interface StateMachineSession {
|
|
|
212
211
|
createdAt: number;
|
|
213
212
|
updatedAt: number;
|
|
214
213
|
}
|
|
215
|
-
export type StateMachineState = StateMachineAgentState | StateMachineScriptState | StateMachinePollState | StateMachineTimerState | StateMachineTerminalState;
|
|
214
|
+
export type StateMachineState = StateMachineAgentState | StateMachineScriptState | StateMachinePollState | StateMachineTimerState | StateMachineParkState | StateMachineTerminalState;
|
|
216
215
|
export interface StateMachineProgress {
|
|
217
216
|
/** Per-state counters keyed by state name for compact status reporting. */
|
|
218
217
|
states: Record<string, StateMachineStateProgress>;
|
|
@@ -383,6 +382,10 @@ export interface StateMachineTimerState extends StateMachineBaseState {
|
|
|
383
382
|
*/
|
|
384
383
|
wakeAfterMs?: number | string;
|
|
385
384
|
}
|
|
385
|
+
/** Holds the machine without execution or a scheduled wake while the parent drives. */
|
|
386
|
+
export interface StateMachineParkState extends StateMachineBaseState {
|
|
387
|
+
kind: "park";
|
|
388
|
+
}
|
|
386
389
|
/** Finalizes the session when reached. Terminal outcomes are just state machine states. */
|
|
387
390
|
export interface StateMachineTerminalState extends StateMachineBaseState {
|
|
388
391
|
kind: "terminal";
|
|
@@ -445,11 +448,6 @@ export type StateMachineSessionEvent = {
|
|
|
445
448
|
stdout: string;
|
|
446
449
|
stderr: string;
|
|
447
450
|
};
|
|
448
|
-
} | {
|
|
449
|
-
type: "state_asked_user";
|
|
450
|
-
timestamp: number;
|
|
451
|
-
state: string;
|
|
452
|
-
questions: TurnQuestion[];
|
|
453
451
|
} | {
|
|
454
452
|
type: "state_definition_updated";
|
|
455
453
|
timestamp: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duetso/agent",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"build:compile": "bun build src/cli-entry.ts --compile --outfile dist/duet"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@earendil-works/pi-agent-core": "^0.79.
|
|
60
|
-
"@earendil-works/pi-ai": "^0.79.
|
|
61
|
-
"@earendil-works/pi-coding-agent": "^0.79.
|
|
59
|
+
"@earendil-works/pi-agent-core": "^0.79.10",
|
|
60
|
+
"@earendil-works/pi-ai": "^0.79.10",
|
|
61
|
+
"@earendil-works/pi-coding-agent": "^0.79.10",
|
|
62
62
|
"@electric-sql/pglite": "^0.4.5",
|
|
63
63
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
64
64
|
"@opentui/core": "^0.2.5",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-gateway.d.ts","sourceRoot":"","sources":["../../../src/cli/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAM/C,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,OAAO,GACP,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAAC,OAAO,aAAa,CAAC,CAazE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAazE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-gateway.js","sourceRoot":"","sources":["../../../src/cli/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,6EAA6E;AAC7E,wEAAwE;AACxE,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAa7C;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,gBAAgB,GAAiB,MAAM,CAAC,MAAM,CAClD,CAAC,KAAkC,EAAE,IAAkC,EAAE,EAAE,CACzE,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAC/E,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CACjC,CAAC;IACF,OAAO,aAAa,CAAC;QACnB,OAAO,EAAE,GAAG,qBAAqB,EAAE,QAAQ;QAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACrC,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,qBAAqB,EAAE,YAAY,EAAE;QACnE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE;KAC5E,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsD,CAAC;IAC1F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import type { TurnQuestion } from "../types/protocol.js";
|
|
2
|
-
import type { StateMachineAgentState, StateMachineDefinition, StateMachineSession, StateMachineTerminalResult } from "../types/state-machine.js";
|
|
3
|
-
import { type ShellPartialOutput } from "./shell-state-handle.js";
|
|
4
|
-
import { type StateMachineRunnerDecision } from "./tools.js";
|
|
5
|
-
export type StateMachineExecutionResult = {
|
|
6
|
-
type: "state_completed";
|
|
7
|
-
stateName: string;
|
|
8
|
-
output?: unknown;
|
|
9
|
-
} | {
|
|
10
|
-
type: "terminal";
|
|
11
|
-
status: StateMachineTerminalResult["status"];
|
|
12
|
-
result?: string;
|
|
13
|
-
error?: string;
|
|
14
|
-
} | {
|
|
15
|
-
type: "ask";
|
|
16
|
-
questions: TurnQuestion[];
|
|
17
|
-
} | {
|
|
18
|
-
type: "sleep";
|
|
19
|
-
wakeAt: number;
|
|
20
|
-
} | {
|
|
21
|
-
type: "interrupted";
|
|
22
|
-
};
|
|
23
|
-
export type StateAgentResult = {
|
|
24
|
-
type: "complete";
|
|
25
|
-
result?: string;
|
|
26
|
-
} | {
|
|
27
|
-
type: "ask";
|
|
28
|
-
questions: TurnQuestion[];
|
|
29
|
-
} | {
|
|
30
|
-
type: "failed";
|
|
31
|
-
error: string;
|
|
32
|
-
} | {
|
|
33
|
-
type: "interrupted";
|
|
34
|
-
};
|
|
35
|
-
export interface StateAgentHandle {
|
|
36
|
-
/** Starts the state agent from a fresh transcript owned by the host. */
|
|
37
|
-
prompt(): Promise<StateAgentResult>;
|
|
38
|
-
/**
|
|
39
|
-
* Abort the state agent and remember why. The handle is responsible for
|
|
40
|
-
* making `prompt()` settle as `{ type: "interrupted" }` after this is
|
|
41
|
-
* called — callers do not classify the abort themselves.
|
|
42
|
-
*/
|
|
43
|
-
interrupt(reason: string): void;
|
|
44
|
-
/** Text-only partial output used for interruption history without persisting messages. */
|
|
45
|
-
partialAssistantText(): string | undefined;
|
|
46
|
-
/** The reason passed to `interrupt()`, or undefined if not interrupted. */
|
|
47
|
-
interruptedReason(): string | undefined;
|
|
48
|
-
}
|
|
49
|
-
export type ActiveStateOutput = {
|
|
50
|
-
state?: string;
|
|
51
|
-
kind: "agent";
|
|
52
|
-
output?: {
|
|
53
|
-
assistantText?: string;
|
|
54
|
-
};
|
|
55
|
-
} | {
|
|
56
|
-
state: string;
|
|
57
|
-
kind: "script" | "poll";
|
|
58
|
-
output?: ShellPartialOutput;
|
|
59
|
-
};
|
|
60
|
-
export interface StateMachineControllerConfig {
|
|
61
|
-
/** Default working directory used by script and poll-script states. */
|
|
62
|
-
cwd: string;
|
|
63
|
-
/** Builds a fresh transient state-agent handle for one agent state execution. */
|
|
64
|
-
createStateAgent(input: {
|
|
65
|
-
state: StateMachineAgentState;
|
|
66
|
-
prompt: string;
|
|
67
|
-
}): StateAgentHandle;
|
|
68
|
-
/**
|
|
69
|
-
* Notified whenever the controller has updated `session` and the new
|
|
70
|
-
* snapshot is worth broadcasting (state started, terminal reached).
|
|
71
|
-
* The turn runner uses this to emit `state_machine` protocol events
|
|
72
|
-
* carrying the full session, so UIs see fresh progress and current
|
|
73
|
-
* state before the new state begins executing.
|
|
74
|
-
*/
|
|
75
|
-
onSessionChanged?(session: StateMachineSession): void;
|
|
76
|
-
}
|
|
77
|
-
export declare class StateMachineController {
|
|
78
|
-
private readonly config;
|
|
79
|
-
private session?;
|
|
80
|
-
private activeRun?;
|
|
81
|
-
constructor(config: StateMachineControllerConfig);
|
|
82
|
-
hydrate(stateMachine: StateMachineSession | undefined): void;
|
|
83
|
-
getSession(): StateMachineSession | undefined;
|
|
84
|
-
/**
|
|
85
|
-
* Mark the current terminal as having been surfaced to the parent
|
|
86
|
-
* runner. The turn runner sets this flag before kicking off the
|
|
87
|
-
* inline acknowledgment turn so the same `session.terminal` cannot
|
|
88
|
-
* be acknowledged twice — if the parent (mis)routes back into the
|
|
89
|
-
* controller during the acknowledgment turn and the controller
|
|
90
|
-
* re-records a terminal on this same session, the second drive will
|
|
91
|
-
* find the flag set and skip.
|
|
92
|
-
*
|
|
93
|
-
* Note that this flag is per-session: a new state machine created
|
|
94
|
-
* during the acknowledgment turn lives on a brand-new session built
|
|
95
|
-
* by `createStateMachineSession`, so it gets its own acknowledgment
|
|
96
|
-
* when it terminates.
|
|
97
|
-
*/
|
|
98
|
-
markTerminalAcknowledged(): void;
|
|
99
|
-
/**
|
|
100
|
-
* Records a runtime failure on the active session and returns the matching
|
|
101
|
-
* `error` terminal. Used by the turn runner when a protocol violation cannot
|
|
102
|
-
* be recovered (e.g. the parent exhausted its re-prompt budget without
|
|
103
|
-
* calling select_state_machine_state). Recording it here — rather than
|
|
104
|
-
* returning a terminal the runner never persists — keeps the failure on
|
|
105
|
-
* `session.terminal.reason` so the terminal acknowledgment turn and the
|
|
106
|
-
* board/relay see the same outcome the turn event reports.
|
|
107
|
-
*/
|
|
108
|
-
failActiveSession(state: string, error: string): StateMachineExecutionResult;
|
|
109
|
-
hasActiveWork(): boolean;
|
|
110
|
-
getActiveOutput(): ActiveStateOutput | undefined;
|
|
111
|
-
startSession(input: {
|
|
112
|
-
prompt: string;
|
|
113
|
-
definition: StateMachineDefinition;
|
|
114
|
-
currentState: string;
|
|
115
|
-
}): void;
|
|
116
|
-
/**
|
|
117
|
-
* Supersedes the active session because the parent is replacing it with a
|
|
118
|
-
* brand-new state machine (a create_state_machine_definition with
|
|
119
|
-
* replaceActive: true issued while a machine is still running). Records a
|
|
120
|
-
* `cancelled` terminal and broadcasts the final snapshot so the superseded
|
|
121
|
-
* machine's board/relay card resolves instead of dangling at its last running
|
|
122
|
-
* state; the caller follows with `startSession` to install the replacement.
|
|
123
|
-
* Any in-flight state work is aborted first. No-op when there is no active,
|
|
124
|
-
* non-terminal session.
|
|
125
|
-
*/
|
|
126
|
-
supersedeActiveSession(reason: string): void;
|
|
127
|
-
interrupt(reason?: string): void;
|
|
128
|
-
runDecision(decision: StateMachineRunnerDecision): Promise<StateMachineExecutionResult>;
|
|
129
|
-
wake(): Promise<StateMachineExecutionResult | undefined>;
|
|
130
|
-
private runAgentState;
|
|
131
|
-
private runScriptState;
|
|
132
|
-
private runPollState;
|
|
133
|
-
private runTimerState;
|
|
134
|
-
private runTerminalState;
|
|
135
|
-
private recordInterruptedState;
|
|
136
|
-
private interruptedOutput;
|
|
137
|
-
private interruptibleStateName;
|
|
138
|
-
private requireSession;
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=state-machine-controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine-controller.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/state-machine-controller.ts"],"names":[],"mappings":"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"}
|