@osolmaz/pi-workflows 0.1.0 → 0.2.0
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 +36 -21
- package/dist/extension/executor.d.ts +14 -1
- package/dist/extension/executor.js +11 -1
- package/dist/extension/executor.js.map +1 -1
- package/dist/extension/index.js +79 -7
- package/dist/extension/index.js.map +1 -1
- package/dist/extension/recorder.d.ts +85 -0
- package/dist/extension/recorder.js +525 -0
- package/dist/extension/recorder.js.map +1 -0
- package/dist/extension/session-events.d.ts +134 -0
- package/dist/extension/session-events.js +60 -0
- package/dist/extension/session-events.js.map +1 -0
- package/dist/extension/widget.js +25 -24
- package/dist/extension/widget.js.map +1 -1
- package/dist/render/canvas.d.ts +1 -1
- package/dist/render/canvas.js +5 -0
- package/dist/render/canvas.js.map +1 -1
- package/dist/render/graph-render.d.ts +5 -0
- package/dist/render/graph-render.js +211 -48
- package/dist/render/graph-render.js.map +1 -1
- package/dist/viewer/render.js +19 -3
- package/dist/viewer/render.js.map +1 -1
- package/dist/viewer/session-reducer.d.ts +45 -0
- package/dist/viewer/session-reducer.js +266 -0
- package/dist/viewer/session-reducer.js.map +1 -0
- package/dist/workflows/artifacts.d.ts +40 -0
- package/dist/workflows/artifacts.js +155 -0
- package/dist/workflows/artifacts.js.map +1 -0
- package/dist/workflows/engine.d.ts +2 -0
- package/dist/workflows/engine.js +38 -7
- package/dist/workflows/engine.js.map +1 -1
- package/dist/workflows/index.d.ts +3 -2
- package/dist/workflows/index.js +2 -1
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/store.d.ts +53 -9
- package/dist/workflows/store.js +523 -43
- package/dist/workflows/store.js.map +1 -1
- package/dist/workflows/types.d.ts +126 -3
- package/docs/development.md +43 -19
- package/docs/live-replay-protocol.md +155 -0
- package/docs/plans/piw-viewer-experience-implementation-plan.md +674 -0
- package/docs/plans/replayable-run-bundles-implementation-plan.md +65 -0
- package/docs/plans/session-event-replay-implementation-plan.md +494 -0
- package/docs/plans/tui-viewer-implementation-plan.md +64 -0
- package/docs/run-bundles.md +320 -55
- package/docs/session-event-journal.md +470 -0
- package/docs/tui-viewer.md +218 -0
- package/package.json +2 -1
- package/src/extension/executor.ts +28 -1
- package/src/extension/index.ts +87 -7
- package/src/extension/recorder.ts +633 -0
- package/src/extension/session-events.ts +119 -0
- package/src/extension/widget.ts +26 -24
- package/src/render/canvas.ts +19 -1
- package/src/render/graph-render.ts +277 -44
- package/src/viewer/render.ts +21 -3
- package/src/viewer/session-reducer.ts +347 -0
- package/src/workflows/artifacts.ts +188 -0
- package/src/workflows/engine.ts +39 -7
- package/src/workflows/index.ts +15 -0
- package/src/workflows/store.ts +649 -49
- package/src/workflows/types.ts +141 -3
package/README.md
CHANGED
|
@@ -29,8 +29,16 @@ Or try the npm package without installing it:
|
|
|
29
29
|
pi -e npm:@osolmaz/pi-workflows
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
Install the interactive terminal viewer separately from crates.io. The crate
|
|
33
|
+
is named `pi-workflows`; its command is `piw`:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
cargo install pi-workflows
|
|
37
|
+
piw
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The npm package also includes the simpler `pi-workflows` snapshot viewer. To
|
|
41
|
+
link that command from a clone, run `npm install && npm run build && npm link`,
|
|
34
42
|
or run it in place with `npx tsx src/viewer/cli.ts`.
|
|
35
43
|
|
|
36
44
|
## Quick start
|
|
@@ -105,30 +113,37 @@ pi-workflows view --once # print a snapshot and exit (good for scripts)
|
|
|
105
113
|
```
|
|
106
114
|
|
|
107
115
|
The run detail view draws the workflow as a boxed graph, like the acpx replay
|
|
108
|
-
viewer
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
viewer. Every card has a centered step-name header and a divider above its
|
|
117
|
+
structured metadata. Border characters keep the graph background, the body
|
|
118
|
+
surface begins inside the border, and the header interior uses a separate
|
|
119
|
+
surface. Node type, status, attempts, and timing use compact symbol rows; start
|
|
120
|
+
and terminal markers sit outside the card. Node types have distinct
|
|
121
|
+
semantic colors, active cards use a heavy border, branches carry their case
|
|
122
|
+
labels, the taken path is highlighted, and loops route through a gutter on the
|
|
123
|
+
right back into their target from above. `←/→` scrubs
|
|
111
124
|
backwards and forwards through the recorded steps and re-derives every node's
|
|
112
125
|
status as of that step, with the selected step's full output shown below;
|
|
113
126
|
scrubbing to the end snaps back to following the run live.
|
|
114
127
|
|
|
128
|
+
The Rust `piw` viewer under `tui/` adds a Catppuccin interface, selectable
|
|
129
|
+
themes, centered active-node following, draggable browser and inspector sizes,
|
|
130
|
+
detailed trace and conversation inspection, temporal replay, and reconnecting
|
|
131
|
+
remote viewing. Full cards have one fixed graph-wide size, so streaming,
|
|
132
|
+
selection, timer ticks, and replay never move nodes or edges. Live conversation
|
|
133
|
+
capture shows text, thinking, tool calls, and tool execution as they happen,
|
|
134
|
+
then reconciles settled messages to verbatim Pi entries. See
|
|
135
|
+
[the piw guide](docs/tui-viewer.md).
|
|
136
|
+
|
|
115
137
|
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ │
|
|
126
|
-
┌─ clean ─┘ └─ issues ─┐ │
|
|
127
|
-
▼ ▼ │
|
|
128
|
-
┌───────────┐ ┌───────────────┐ │
|
|
129
|
-
│ · done │ │ ✓ fix [agent] │ │
|
|
130
|
-
└───────────┘ └───────────────┘ │
|
|
131
|
-
└──────────┘
|
|
138
|
+
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
139
|
+
┃ review ┃
|
|
140
|
+
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
141
|
+
┃ ● agent ◐ running ┃
|
|
142
|
+
┃ ↻ 2 ◷ 12s ┃
|
|
143
|
+
┃ ◇ clean ┃
|
|
144
|
+
┃ ◇ issues_found ┃
|
|
145
|
+
┃ … reviewing implementation ┃
|
|
146
|
+
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
132
147
|
```
|
|
133
148
|
|
|
134
149
|
Inside pi, a widget above the editor shows the same boxed graph while a
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentStepExecutor, AgentStepRequest, AgentStepSubmission } from "../workflows/types.js";
|
|
1
|
+
import type { AgentStepExecutor, AgentStepRequest, AgentStepSubmission, ConversationRange } from "../workflows/types.js";
|
|
2
2
|
export type SubmissionResult = {
|
|
3
3
|
accepted: true;
|
|
4
4
|
message: string;
|
|
@@ -11,11 +11,23 @@ export type PromptDelivery = {
|
|
|
11
11
|
/** True when the agent is known to be mid-run, so delivery must be queued. */
|
|
12
12
|
streaming: boolean;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Bracketing hooks for conversation linkage: a mark is taken when the step
|
|
16
|
+
* prompt is first delivered, and the recorded entry range since that mark is
|
|
17
|
+
* attached to the accepted submission.
|
|
18
|
+
*/
|
|
19
|
+
export type ConversationHooks = {
|
|
20
|
+
beginAttempt?: (contract: AgentStepRequest["contract"]) => void;
|
|
21
|
+
mark: () => number;
|
|
22
|
+
rangeSince: (mark: number) => ConversationRange | undefined;
|
|
23
|
+
};
|
|
14
24
|
export type ConversationStepExecutorOptions = {
|
|
15
25
|
/** Deliver a prompt into the pi conversation. */
|
|
16
26
|
sendPrompt: (delivery: PromptDelivery) => void;
|
|
17
27
|
/** Reminders sent when the agent settles without submitting. Default 2. */
|
|
18
28
|
maxNudges?: number;
|
|
29
|
+
/** Conversation linkage hooks, wired to the session recorder. */
|
|
30
|
+
conversation?: ConversationHooks;
|
|
19
31
|
};
|
|
20
32
|
/**
|
|
21
33
|
* AgentStepExecutor that runs steps inside the current pi conversation. The
|
|
@@ -27,6 +39,7 @@ export type ConversationStepExecutorOptions = {
|
|
|
27
39
|
export declare class ConversationStepExecutor implements AgentStepExecutor {
|
|
28
40
|
private readonly sendPrompt;
|
|
29
41
|
private readonly maxNudges;
|
|
42
|
+
private readonly conversation;
|
|
30
43
|
private pending;
|
|
31
44
|
private streaming;
|
|
32
45
|
private heldByUser;
|
|
@@ -9,12 +9,14 @@ const DEFAULT_MAX_NUDGES = 2;
|
|
|
9
9
|
export class ConversationStepExecutor {
|
|
10
10
|
sendPrompt;
|
|
11
11
|
maxNudges;
|
|
12
|
+
conversation;
|
|
12
13
|
pending = null;
|
|
13
14
|
streaming = false;
|
|
14
15
|
heldByUser = false;
|
|
15
16
|
constructor(options) {
|
|
16
17
|
this.sendPrompt = options.sendPrompt;
|
|
17
18
|
this.maxNudges = options.maxNudges ?? DEFAULT_MAX_NUDGES;
|
|
19
|
+
this.conversation = options.conversation;
|
|
18
20
|
}
|
|
19
21
|
/** Track agent streaming state (wire to agent_start / agent_settled). */
|
|
20
22
|
setStreaming(streaming) {
|
|
@@ -47,6 +49,7 @@ export class ConversationStepExecutor {
|
|
|
47
49
|
return;
|
|
48
50
|
}
|
|
49
51
|
try {
|
|
52
|
+
this.conversation?.beginAttempt?.(pending.request.contract);
|
|
50
53
|
this.sendPrompt({ prompt: pending.request.prompt, streaming: this.streaming });
|
|
51
54
|
}
|
|
52
55
|
catch (error) {
|
|
@@ -69,11 +72,13 @@ export class ConversationStepExecutor {
|
|
|
69
72
|
const cleared = new Promise((resolveCleared) => {
|
|
70
73
|
markCleared = resolveCleared;
|
|
71
74
|
});
|
|
75
|
+
this.conversation?.beginAttempt?.(request.contract);
|
|
72
76
|
this.pending = {
|
|
73
77
|
request,
|
|
74
78
|
resolve,
|
|
75
79
|
reject,
|
|
76
80
|
nudgesSent: 0,
|
|
81
|
+
mark: this.conversation?.mark() ?? null,
|
|
77
82
|
cleanup: () => signal.removeEventListener("abort", onAbort),
|
|
78
83
|
cleared,
|
|
79
84
|
markCleared,
|
|
@@ -141,7 +146,11 @@ export class ConversationStepExecutor {
|
|
|
141
146
|
};
|
|
142
147
|
}
|
|
143
148
|
this.clearPending();
|
|
144
|
-
pending.
|
|
149
|
+
const conversation = pending.mark !== null ? this.conversation?.rangeSince(pending.mark) : undefined;
|
|
150
|
+
pending.resolve({
|
|
151
|
+
output: result.value,
|
|
152
|
+
...(conversation !== undefined ? { conversation } : {}),
|
|
153
|
+
});
|
|
145
154
|
return {
|
|
146
155
|
accepted: true,
|
|
147
156
|
message: [
|
|
@@ -173,6 +182,7 @@ export class ConversationStepExecutor {
|
|
|
173
182
|
pending.nudgesSent += 1;
|
|
174
183
|
const { nodeId, attemptId } = pending.request.contract;
|
|
175
184
|
try {
|
|
185
|
+
this.conversation?.beginAttempt?.(pending.request.contract);
|
|
176
186
|
this.sendPrompt({
|
|
177
187
|
prompt: [
|
|
178
188
|
`Reminder: workflow step ${JSON.stringify(nodeId)} is still awaiting your output.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/extension/executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/extension/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/extension/index.js
CHANGED
|
@@ -2,8 +2,9 @@ import { Type } from "typebox";
|
|
|
2
2
|
import { WorkflowEngine } from "../workflows/engine.js";
|
|
3
3
|
import { errorMessage } from "../workflows/errors.js";
|
|
4
4
|
import { discoverWorkflows, loadWorkflowFile, resolveWorkflowRef } from "../workflows/loader.js";
|
|
5
|
-
import { createDefinitionSnapshot } from "../workflows/store.js";
|
|
5
|
+
import { WorkflowRunStore, createDefinitionSnapshot } from "../workflows/store.js";
|
|
6
6
|
import { ConversationStepExecutor } from "./executor.js";
|
|
7
|
+
import { SessionRecorder } from "./recorder.js";
|
|
7
8
|
import { buildWidgetView } from "./widget.js";
|
|
8
9
|
const WIDGET_KEY = "pi-workflows";
|
|
9
10
|
const PRESENTATION_MESSAGE_TYPE = "pi-workflows-presentation";
|
|
@@ -214,6 +215,9 @@ export default function piWorkflows(pi) {
|
|
|
214
215
|
if (activeRun === run) {
|
|
215
216
|
activeRun = null;
|
|
216
217
|
}
|
|
218
|
+
// Normally already stopped via onRunFinishing; this covers observers of
|
|
219
|
+
// runs that ended without reaching that hook.
|
|
220
|
+
void run.recorder?.stop();
|
|
217
221
|
stopWidgetTicker();
|
|
218
222
|
const { state } = result;
|
|
219
223
|
updateWidget(ctx, state, run.snapshot);
|
|
@@ -248,9 +252,37 @@ export default function piWorkflows(pi) {
|
|
|
248
252
|
sendPrompt: ({ prompt, streaming }) => {
|
|
249
253
|
pi.sendUserMessage(prompt, streaming ? { deliverAs: "steer" } : undefined);
|
|
250
254
|
},
|
|
255
|
+
conversation: {
|
|
256
|
+
beginAttempt: (contract) => run.recorder?.beginAttempt(contract),
|
|
257
|
+
mark: () => run.recorder?.mark() ?? 0,
|
|
258
|
+
rangeSince: (mark) => run.recorder?.rangeSince(mark),
|
|
259
|
+
},
|
|
251
260
|
});
|
|
261
|
+
// The store is shared between the engine and the session recorder so the
|
|
262
|
+
// trace sequence stays single-writer (see docs/run-bundles.md).
|
|
263
|
+
const store = new WorkflowRunStore();
|
|
252
264
|
const engine = new WorkflowEngine({
|
|
253
265
|
executor,
|
|
266
|
+
store,
|
|
267
|
+
// Awaited by the engine after run_started is persisted, so the session
|
|
268
|
+
// binding and its trace event always precede node and terminal events.
|
|
269
|
+
onRunStarted: async (runDir, state) => {
|
|
270
|
+
const recorder = new SessionRecorder(store, runDir, state.runId);
|
|
271
|
+
try {
|
|
272
|
+
await recorder.bind(ctx);
|
|
273
|
+
run.recorder = recorder;
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Binding is best-effort: a session without UI access or an
|
|
277
|
+
// ephemeral context must not fail the run.
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
// Awaited by the engine before the terminal snapshot. If completion was
|
|
281
|
+
// submitted from the workflow tool, capture stays open through Pi's
|
|
282
|
+
// final tool, message, and turn hooks before it drains.
|
|
283
|
+
onRunFinishing: async () => {
|
|
284
|
+
await run.recorder?.finish();
|
|
285
|
+
},
|
|
254
286
|
onEvent: (_event, state) => {
|
|
255
287
|
if (run.runId === null) {
|
|
256
288
|
run.runId = state.runId;
|
|
@@ -264,6 +296,7 @@ export default function piWorkflows(pi) {
|
|
|
264
296
|
workflowName: workflow.name,
|
|
265
297
|
engine,
|
|
266
298
|
executor,
|
|
299
|
+
recorder: null,
|
|
267
300
|
snapshot,
|
|
268
301
|
presentationPrompt: workflow.presentationPrompt,
|
|
269
302
|
generation,
|
|
@@ -280,6 +313,7 @@ export default function piWorkflows(pi) {
|
|
|
280
313
|
if (activeRun === run) {
|
|
281
314
|
activeRun = null;
|
|
282
315
|
}
|
|
316
|
+
void run.recorder?.stop();
|
|
283
317
|
stopWidgetTicker();
|
|
284
318
|
clearWidget(ctx);
|
|
285
319
|
notify(ctx, `Workflow ${workflow.name} crashed: ${errorMessage(error)}`, "error");
|
|
@@ -390,10 +424,19 @@ export default function piWorkflows(pi) {
|
|
|
390
424
|
attempt: Type.String({ description: "The attempt id from the workflow step contract" }),
|
|
391
425
|
output: Type.Unknown({ description: "The step output, matching the expected output shape" }),
|
|
392
426
|
}),
|
|
393
|
-
async execute(_toolCallId, params) {
|
|
427
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
394
428
|
if (!activeRun) {
|
|
395
429
|
throw new Error("No workflow is running. Do not call the workflow tool outside a workflow.");
|
|
396
430
|
}
|
|
431
|
+
// Flush the conversation into the bundle before accepting, so the
|
|
432
|
+
// attempt's recorded range includes the assistant message that carries
|
|
433
|
+
// this submission. Pi guarantees ctx.sessionManager is synchronized
|
|
434
|
+
// through the current assistant tool-calling message before tool_call
|
|
435
|
+
// dispatch, which precedes tool execution (docs/extensions.md, "Tool
|
|
436
|
+
// Events"). The tool result of this call itself lands after the range
|
|
437
|
+
// by design: it is the submission receipt, not the submission.
|
|
438
|
+
await activeRun.recorder?.record(ctx).catch(() => undefined);
|
|
439
|
+
await activeRun.recorder?.synchronize(ctx).catch(() => undefined);
|
|
397
440
|
const result = await activeRun.executor.submit(params.step, params.attempt, params.output);
|
|
398
441
|
if (!result.accepted) {
|
|
399
442
|
throw new Error(result.message);
|
|
@@ -441,18 +484,47 @@ export default function piWorkflows(pi) {
|
|
|
441
484
|
renderWidget(ctx);
|
|
442
485
|
notify(ctx, `Workflow ${run.workflowName} paused (turn interrupted). /workflow resume to continue, /workflow cancel to stop.`);
|
|
443
486
|
});
|
|
444
|
-
pi.on("
|
|
445
|
-
|
|
487
|
+
pi.on("turn_start", (event) => {
|
|
488
|
+
activeRun?.recorder?.handleTurnStart(event);
|
|
489
|
+
});
|
|
490
|
+
pi.on("turn_end", async (event, ctx) => {
|
|
491
|
+
await activeRun?.recorder?.handleTurnEnd(event, ctx).catch(() => undefined);
|
|
492
|
+
});
|
|
493
|
+
pi.on("message_start", async (event, ctx) => {
|
|
494
|
+
await activeRun?.recorder?.handleMessageStart(event, ctx).catch(() => undefined);
|
|
495
|
+
});
|
|
496
|
+
pi.on("message_update", (event) => {
|
|
497
|
+
activeRun?.recorder?.handleMessageUpdate(event);
|
|
498
|
+
});
|
|
499
|
+
pi.on("message_end", (event) => {
|
|
500
|
+
activeRun?.recorder?.handleMessageEnd(event);
|
|
501
|
+
});
|
|
502
|
+
pi.on("tool_execution_start", (event) => {
|
|
503
|
+
activeRun?.recorder?.handleToolStart(event);
|
|
504
|
+
});
|
|
505
|
+
pi.on("tool_execution_update", (event) => {
|
|
506
|
+
activeRun?.recorder?.handleToolUpdate(event);
|
|
507
|
+
});
|
|
508
|
+
pi.on("tool_execution_end", (event) => {
|
|
509
|
+
activeRun?.recorder?.handleToolEnd(event);
|
|
510
|
+
});
|
|
511
|
+
pi.on("agent_settled", async (_event, ctx) => {
|
|
512
|
+
const run = activeRun;
|
|
513
|
+
if (!run) {
|
|
446
514
|
presentationPending = null;
|
|
447
515
|
return;
|
|
448
516
|
}
|
|
449
|
-
|
|
450
|
-
|
|
517
|
+
await run.recorder?.synchronize(ctx).catch(() => undefined);
|
|
518
|
+
run.recorder?.settleAttempt();
|
|
519
|
+
run.executor.setStreaming(false);
|
|
520
|
+
run.executor.handleAgentSettled();
|
|
451
521
|
});
|
|
452
522
|
pi.on("session_shutdown", () => {
|
|
453
523
|
sessionClosed = true;
|
|
454
524
|
supersedePresentation();
|
|
455
|
-
activeRun
|
|
525
|
+
const run = activeRun;
|
|
526
|
+
run?.engine.cancel();
|
|
527
|
+
void run?.recorder?.stop();
|
|
456
528
|
activeRun = null;
|
|
457
529
|
presentationPending = null;
|
|
458
530
|
clearWidgetTimer();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import { type WorkflowRunStore } from "../workflows/store.js";
|
|
3
|
+
import type { AgentStepContract, ConversationRange } from "../workflows/types.js";
|
|
4
|
+
import { type MessageEndEventLike, type MessageStartEventLike, type MessageUpdateEventLike, type ToolExecutionEndEventLike, type ToolExecutionStartEventLike, type ToolExecutionUpdateEventLike, type TurnEndEventLike, type TurnStartEventLike } from "./session-events.js";
|
|
5
|
+
type RecordedEntry = {
|
|
6
|
+
id: string;
|
|
7
|
+
entry: Record<string, unknown>;
|
|
8
|
+
claimed: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Records both settled Pi entries and normalized temporal events into one run
|
|
12
|
+
* bundle. The hot event path only stamps and queues records; filesystem work
|
|
13
|
+
* runs on a separate ordered append chain.
|
|
14
|
+
*/
|
|
15
|
+
export declare class SessionRecorder {
|
|
16
|
+
private readonly store;
|
|
17
|
+
private readonly runDir;
|
|
18
|
+
private readonly runId;
|
|
19
|
+
private cursor;
|
|
20
|
+
private readonly recorded;
|
|
21
|
+
private readonly unclaimedEntries;
|
|
22
|
+
private bound;
|
|
23
|
+
private acceptingEntries;
|
|
24
|
+
private acceptingEvents;
|
|
25
|
+
private entryChain;
|
|
26
|
+
private stopPromise;
|
|
27
|
+
private nextEventSeq;
|
|
28
|
+
private nextTurnId;
|
|
29
|
+
private nextMessageId;
|
|
30
|
+
private currentAttempt;
|
|
31
|
+
private currentTurn;
|
|
32
|
+
private currentMessage;
|
|
33
|
+
private lastFinishedAttempt;
|
|
34
|
+
private finishPromise;
|
|
35
|
+
private resolveFinish;
|
|
36
|
+
private finishTimer;
|
|
37
|
+
private readonly messageOwners;
|
|
38
|
+
private readonly stableMessageOwners;
|
|
39
|
+
private readonly toolOwners;
|
|
40
|
+
private readonly turnToolCallIds;
|
|
41
|
+
private eventQueue;
|
|
42
|
+
private readonly pendingMessageEnds;
|
|
43
|
+
private outstandingRecords;
|
|
44
|
+
private outstandingBytes;
|
|
45
|
+
private flushTimer;
|
|
46
|
+
private flushPromise;
|
|
47
|
+
private captureFailure;
|
|
48
|
+
constructor(store: WorkflowRunStore, runDir: string, runId: string);
|
|
49
|
+
bind(ctx: ExtensionContext): Promise<void>;
|
|
50
|
+
/** Fix the owner before the executor delivers an agent-step prompt. */
|
|
51
|
+
beginAttempt(contract: AgentStepContract): void;
|
|
52
|
+
/** Release ownership of the turn that Pi has fully settled. */
|
|
53
|
+
settleAttempt(): void;
|
|
54
|
+
handleTurnStart(event: TurnStartEventLike): void;
|
|
55
|
+
handleTurnEnd(event: TurnEndEventLike, ctx: ExtensionContext): Promise<void>;
|
|
56
|
+
handleMessageStart(event: MessageStartEventLike, ctx: ExtensionContext): Promise<void>;
|
|
57
|
+
handleMessageUpdate(event: MessageUpdateEventLike): void;
|
|
58
|
+
handleMessageEnd(event: MessageEndEventLike): void;
|
|
59
|
+
handleToolStart(event: ToolExecutionStartEventLike): void;
|
|
60
|
+
handleToolUpdate(event: ToolExecutionUpdateEventLike): void;
|
|
61
|
+
handleToolEnd(event: ToolExecutionEndEventLike): void;
|
|
62
|
+
/** Flush new entries on the current branch into the bundle. */
|
|
63
|
+
record(ctx: ExtensionContext): Promise<RecordedEntry[]>;
|
|
64
|
+
/** Record durable entries, then release deferred message-end events in order. */
|
|
65
|
+
synchronize(ctx: ExtensionContext): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Finalize immediately when no Pi turn is active. Otherwise wait for
|
|
68
|
+
* `turn_end`, which is the last documented lifecycle boundary needed to
|
|
69
|
+
* include the workflow tool result and any following assistant output.
|
|
70
|
+
*/
|
|
71
|
+
finish(): Promise<void>;
|
|
72
|
+
stop(): Promise<void>;
|
|
73
|
+
mark(): number;
|
|
74
|
+
rangeSince(mark: number): ConversationRange | undefined;
|
|
75
|
+
private ownerForMessage;
|
|
76
|
+
private claimEntry;
|
|
77
|
+
private enqueue;
|
|
78
|
+
private queuedBytes;
|
|
79
|
+
private scheduleFlush;
|
|
80
|
+
private startFlush;
|
|
81
|
+
private flushAllEvents;
|
|
82
|
+
private clearFlushTimer;
|
|
83
|
+
private failCapture;
|
|
84
|
+
}
|
|
85
|
+
export {};
|