@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.
Files changed (62) hide show
  1. package/README.md +36 -21
  2. package/dist/extension/executor.d.ts +14 -1
  3. package/dist/extension/executor.js +11 -1
  4. package/dist/extension/executor.js.map +1 -1
  5. package/dist/extension/index.js +79 -7
  6. package/dist/extension/index.js.map +1 -1
  7. package/dist/extension/recorder.d.ts +85 -0
  8. package/dist/extension/recorder.js +525 -0
  9. package/dist/extension/recorder.js.map +1 -0
  10. package/dist/extension/session-events.d.ts +134 -0
  11. package/dist/extension/session-events.js +60 -0
  12. package/dist/extension/session-events.js.map +1 -0
  13. package/dist/extension/widget.js +25 -24
  14. package/dist/extension/widget.js.map +1 -1
  15. package/dist/render/canvas.d.ts +1 -1
  16. package/dist/render/canvas.js +5 -0
  17. package/dist/render/canvas.js.map +1 -1
  18. package/dist/render/graph-render.d.ts +5 -0
  19. package/dist/render/graph-render.js +211 -48
  20. package/dist/render/graph-render.js.map +1 -1
  21. package/dist/viewer/render.js +19 -3
  22. package/dist/viewer/render.js.map +1 -1
  23. package/dist/viewer/session-reducer.d.ts +45 -0
  24. package/dist/viewer/session-reducer.js +266 -0
  25. package/dist/viewer/session-reducer.js.map +1 -0
  26. package/dist/workflows/artifacts.d.ts +40 -0
  27. package/dist/workflows/artifacts.js +155 -0
  28. package/dist/workflows/artifacts.js.map +1 -0
  29. package/dist/workflows/engine.d.ts +2 -0
  30. package/dist/workflows/engine.js +38 -7
  31. package/dist/workflows/engine.js.map +1 -1
  32. package/dist/workflows/index.d.ts +3 -2
  33. package/dist/workflows/index.js +2 -1
  34. package/dist/workflows/index.js.map +1 -1
  35. package/dist/workflows/store.d.ts +53 -9
  36. package/dist/workflows/store.js +523 -43
  37. package/dist/workflows/store.js.map +1 -1
  38. package/dist/workflows/types.d.ts +126 -3
  39. package/docs/development.md +43 -19
  40. package/docs/live-replay-protocol.md +155 -0
  41. package/docs/plans/piw-viewer-experience-implementation-plan.md +674 -0
  42. package/docs/plans/replayable-run-bundles-implementation-plan.md +65 -0
  43. package/docs/plans/session-event-replay-implementation-plan.md +494 -0
  44. package/docs/plans/tui-viewer-implementation-plan.md +64 -0
  45. package/docs/run-bundles.md +320 -55
  46. package/docs/session-event-journal.md +470 -0
  47. package/docs/tui-viewer.md +218 -0
  48. package/package.json +2 -1
  49. package/src/extension/executor.ts +28 -1
  50. package/src/extension/index.ts +87 -7
  51. package/src/extension/recorder.ts +633 -0
  52. package/src/extension/session-events.ts +119 -0
  53. package/src/extension/widget.ts +26 -24
  54. package/src/render/canvas.ts +19 -1
  55. package/src/render/graph-render.ts +277 -44
  56. package/src/viewer/render.ts +21 -3
  57. package/src/viewer/session-reducer.ts +347 -0
  58. package/src/workflows/artifacts.ts +188 -0
  59. package/src/workflows/engine.ts +39 -7
  60. package/src/workflows/index.ts +15 -0
  61. package/src/workflows/store.ts +649 -49
  62. 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
- The `pi-workflows` viewer binary is part of the same package. To get it on
33
- your PATH, clone the repo and run `npm install && npm run build && npm link`,
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: every node sits in a box (heavy border for the active node), branches
109
- carry their case labels, the taken path is highlighted, and loops route
110
- through a gutter on the right back into their target from above. `←/→` scrubs
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
- verify [action] 8.0s ×2 │ │
120
- └──────────────────────────┘ │
121
- │ │
122
- ▼ │
123
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │
124
- ┃ ◐ review [agent] 12s ×2 ┃ │
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.resolve({ output: result.value });
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":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/extension/executor.ts"],"names":[],"mappings":"AAkDA,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAClB,UAAU,CAAqC;IAC/C,SAAS,CAAS;IAClB,YAAY,CAAgC;IACrD,OAAO,GAAuB,IAAI,CAAC;IACnC,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,OAAwC;QAClD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3C,CAAC;IAED,yEAAyE;IACzE,YAAY,CAAC,SAAkB;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAyB,EAAE,MAAmB;QAC/D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,MAAM,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChE,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,WAAwB,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,EAAE;gBACnD,WAAW,GAAG,cAAc,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG;gBACb,OAAO;gBACP,OAAO;gBACP,MAAM;gBACN,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI;gBACvC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC3D,OAAO;gBACP,WAAW;aACZ,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gEAAgE;gBAChE,mEAAmE;gBACnE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAiB,EAAE,MAAe;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EACL,qGAAqG;aACxG,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;aACrG,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,2EAA2E;QAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3D,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,oBAAoB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAC/E,MAAM,CACP,4BAA4B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,qDAAqD;aAClH,CAAC;QACJ,CAAC;QACD,oEAAoE;QACpE,0EAA0E;QAC1E,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SACjC,CAAC,CAAC;QACH,kEAAkE;QAClE,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChD,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gCAAgC;aACxE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,4BAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE;aAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,OAAO,CAAC,OAAO,CAAC;YACd,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,4BAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;gBACrD,4FAA4F;aAC7F,CAAC,IAAI,CAAC,GAAG,CAAC;SACZ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,mEAAmE;YACnE,sEAAsE;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CACP,iBAAiB,OAAO,CAAC,UAAU,GAAG,CAAC,kCAAkC,IAAI,CAAC,SAAS,CACrF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAChC,wBAAwB,CAC1B,CACF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC;gBACd,MAAM,EAAE;oBACN,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iCAAiC;oBAClF,kDAAkD;oBAClD,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B;oBACvG,oBAAoB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,IAAI,gCAAgC,EAAE;iBAClG,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uEAAuE;YACvE,uDAAuD;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
@@ -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("agent_settled", () => {
445
- if (!activeRun) {
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
- activeRun.executor.setStreaming(false);
450
- activeRun.executor.handleAgentSettled();
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?.engine.cancel();
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 {};