@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
@@ -0,0 +1,134 @@
1
+ export type PublicAssistantMessageEvent = {
2
+ type: "start";
3
+ partial: unknown;
4
+ } | {
5
+ type: "text_start";
6
+ contentIndex: number;
7
+ partial: unknown;
8
+ } | {
9
+ type: "text_delta";
10
+ contentIndex: number;
11
+ delta: string;
12
+ partial: unknown;
13
+ } | {
14
+ type: "text_end";
15
+ contentIndex: number;
16
+ content: string;
17
+ partial: unknown;
18
+ } | {
19
+ type: "thinking_start";
20
+ contentIndex: number;
21
+ partial: unknown;
22
+ } | {
23
+ type: "thinking_delta";
24
+ contentIndex: number;
25
+ delta: string;
26
+ partial: unknown;
27
+ } | {
28
+ type: "thinking_end";
29
+ contentIndex: number;
30
+ content: string;
31
+ partial: unknown;
32
+ } | {
33
+ type: "toolcall_start";
34
+ contentIndex: number;
35
+ partial: unknown;
36
+ } | {
37
+ type: "toolcall_delta";
38
+ contentIndex: number;
39
+ delta: string;
40
+ partial: unknown;
41
+ } | {
42
+ type: "toolcall_end";
43
+ contentIndex: number;
44
+ toolCall: unknown;
45
+ partial: unknown;
46
+ } | {
47
+ type: "done";
48
+ reason: "stop" | "length" | "toolUse";
49
+ message: unknown;
50
+ } | {
51
+ type: "error";
52
+ reason: "aborted" | "error";
53
+ error: unknown;
54
+ };
55
+ export type TurnStartEventLike = {
56
+ turnIndex: number;
57
+ };
58
+ export type TurnEndEventLike = {
59
+ turnIndex: number;
60
+ message: unknown;
61
+ };
62
+ export type MessageStartEventLike = {
63
+ message: unknown;
64
+ };
65
+ export type MessageUpdateEventLike = {
66
+ message: unknown;
67
+ assistantMessageEvent: PublicAssistantMessageEvent;
68
+ };
69
+ export type MessageEndEventLike = {
70
+ message: unknown;
71
+ };
72
+ export type ToolExecutionStartEventLike = {
73
+ toolCallId: string;
74
+ toolName: string;
75
+ args: unknown;
76
+ };
77
+ export type ToolExecutionUpdateEventLike = {
78
+ toolCallId: string;
79
+ };
80
+ export type ToolExecutionEndEventLike = {
81
+ toolCallId: string;
82
+ toolName: string;
83
+ result: unknown;
84
+ isError: boolean;
85
+ };
86
+ export type NormalizedAssistantEvent = {
87
+ type: "start";
88
+ } | {
89
+ type: "text_start";
90
+ contentIndex: number;
91
+ } | {
92
+ type: "text_delta";
93
+ contentIndex: number;
94
+ delta: string;
95
+ } | {
96
+ type: "text_end";
97
+ contentIndex: number;
98
+ content: string;
99
+ } | {
100
+ type: "thinking_start";
101
+ contentIndex: number;
102
+ } | {
103
+ type: "thinking_delta";
104
+ contentIndex: number;
105
+ delta: string;
106
+ } | {
107
+ type: "thinking_end";
108
+ contentIndex: number;
109
+ content: string;
110
+ } | {
111
+ type: "toolcall_start";
112
+ contentIndex: number;
113
+ } | {
114
+ type: "toolcall_delta";
115
+ contentIndex: number;
116
+ delta: string;
117
+ } | {
118
+ type: "toolcall_end";
119
+ contentIndex: number;
120
+ toolCall: unknown;
121
+ } | {
122
+ type: "done";
123
+ reason: "stop" | "length" | "toolUse";
124
+ } | {
125
+ type: "error";
126
+ reason: "aborted" | "error";
127
+ };
128
+ /** Remove cumulative snapshots while preserving every semantic stream event. */
129
+ export declare function normalizeAssistantEvent(event: PublicAssistantMessageEvent): NormalizedAssistantEvent;
130
+ export declare function messageRole(message: unknown): string;
131
+ export declare function toolCallIdFromAssistantEvent(event: NormalizedAssistantEvent): string | null;
132
+ export declare function toolStartedPayload(event: ToolExecutionStartEventLike): Record<string, unknown>;
133
+ export declare function toolFinishedPayload(event: ToolExecutionEndEventLike): Record<string, unknown>;
134
+ export declare function turnFinishedPayload(event: TurnEndEventLike, messageId: string | undefined, toolCallIds: string[]): Record<string, unknown>;
@@ -0,0 +1,60 @@
1
+ /** Remove cumulative snapshots while preserving every semantic stream event. */
2
+ export function normalizeAssistantEvent(event) {
3
+ switch (event.type) {
4
+ case "start":
5
+ return { type: event.type };
6
+ case "text_start":
7
+ case "thinking_start":
8
+ case "toolcall_start":
9
+ return { type: event.type, contentIndex: event.contentIndex };
10
+ case "text_delta":
11
+ case "thinking_delta":
12
+ case "toolcall_delta":
13
+ return { type: event.type, contentIndex: event.contentIndex, delta: event.delta };
14
+ case "text_end":
15
+ case "thinking_end":
16
+ return { type: event.type, contentIndex: event.contentIndex, content: event.content };
17
+ case "toolcall_end":
18
+ return {
19
+ type: event.type,
20
+ contentIndex: event.contentIndex,
21
+ toolCall: event.toolCall,
22
+ };
23
+ case "done":
24
+ return { type: event.type, reason: event.reason };
25
+ case "error":
26
+ return { type: event.type, reason: event.reason };
27
+ default: {
28
+ const exhaustive = event;
29
+ return exhaustive;
30
+ }
31
+ }
32
+ }
33
+ export function messageRole(message) {
34
+ if (typeof message !== "object" || message === null || !("role" in message)) {
35
+ return "unknown";
36
+ }
37
+ const role = message.role;
38
+ return typeof role === "string" && role.length > 0 ? role : "unknown";
39
+ }
40
+ export function toolCallIdFromAssistantEvent(event) {
41
+ if (event.type !== "toolcall_end" || typeof event.toolCall !== "object" || !event.toolCall) {
42
+ return null;
43
+ }
44
+ const id = event.toolCall.id;
45
+ return typeof id === "string" && id.length > 0 ? id : null;
46
+ }
47
+ export function toolStartedPayload(event) {
48
+ return { toolName: event.toolName, args: event.args };
49
+ }
50
+ export function toolFinishedPayload(event) {
51
+ return { toolName: event.toolName, isError: event.isError, result: event.result };
52
+ }
53
+ export function turnFinishedPayload(event, messageId, toolCallIds) {
54
+ return {
55
+ turnIndex: event.turnIndex,
56
+ ...(messageId === undefined ? {} : { messageId }),
57
+ toolCallIds,
58
+ };
59
+ }
60
+ //# sourceMappingURL=session-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-events.js","sourceRoot":"","sources":["../../src/extension/session-events.ts"],"names":[],"mappings":"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"}
@@ -81,16 +81,23 @@ export function buildWidgetLines(state, snapshot, now = new Date()) {
81
81
  /** The graph row the window should center on: the active or waiting node. */
82
82
  function focusLine(graph, state) {
83
83
  const active = graph.findIndex((line) => stripAnsi(line).includes("◐"));
84
- if (active !== -1) {
85
- return active;
84
+ const focus = active !== -1
85
+ ? active
86
+ : state.waitingOn
87
+ ? graph.findIndex((line) => stripAnsi(line).includes(state.waitingOn))
88
+ : -1;
89
+ if (focus === -1) {
90
+ return graph.length - 1;
86
91
  }
87
- if (state.waitingOn) {
88
- const waiting = graph.findIndex((line) => stripAnsi(line).includes(state.waitingOn));
89
- if (waiting !== -1) {
90
- return waiting;
91
- }
92
+ let top = focus;
93
+ while (top > 0 && !/[┌┏]/u.test(stripAnsi(graph[top] ?? ""))) {
94
+ top -= 1;
92
95
  }
93
- return graph.length - 1;
96
+ let bottom = focus;
97
+ while (bottom + 1 < graph.length && !/[└┗]/u.test(stripAnsi(graph[bottom] ?? ""))) {
98
+ bottom += 1;
99
+ }
100
+ return Math.floor((top + bottom) / 2);
94
101
  }
95
102
  /**
96
103
  * Slice `lines` to at most `budget` rows, marking hidden rows at either end.
@@ -101,24 +108,18 @@ function windowLines(lines, budget, anchor, anchorIsStart) {
101
108
  if (lines.length <= budget) {
102
109
  return { lines, scroll: 0, maxScroll: 0 };
103
110
  }
104
- // First pass decides which markers exist; the second re-fits within the
105
- // remaining space. A marker flag can only turn on (never off) in the
106
- // second pass, so the result stays within budget.
107
- let inner = budget;
108
- for (let pass = 0; pass < 2; pass += 1) {
109
- const start = clampStart(anchor, inner, lines.length, anchorIsStart);
110
- inner = budget - (start > 0 ? 1 : 0) - (start + inner < lines.length ? 1 : 0);
111
- }
111
+ // Reserve one combined overflow row, leaving seven rows for a complete
112
+ // full card even when the widget also has an error footer.
113
+ const inner = Math.max(1, budget - 1);
112
114
  const start = clampStart(anchor, inner, lines.length, anchorIsStart);
113
115
  const end = start + inner;
114
- const out = [];
115
- if (start > 0) {
116
- out.push(ansi.dim(`↑ ${start} more`));
117
- }
118
- out.push(...lines.slice(start, end));
119
- if (end < lines.length) {
120
- out.push(ansi.dim(`↓ ${lines.length - end} more · shift+↑/↓ scroll`));
121
- }
116
+ const above = start;
117
+ const below = Math.max(0, lines.length - end);
118
+ const out = lines.slice(start, end);
119
+ const directions = [above > 0 ? `↑ ${above}` : "", below > 0 ? `↓ ${below}` : ""]
120
+ .filter(Boolean)
121
+ .join(" · ");
122
+ out.push(ansi.dim(`${directions} more · shift+↑/↓ scroll`));
122
123
  return { lines: out, scroll: start, maxScroll: Math.max(0, lines.length - inner) };
123
124
  }
124
125
  function clampStart(anchor, inner, total, anchorIsStart) {
@@ -1 +1 @@
1
- {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/extension/widget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/extension/widget.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * characters merge by connectivity (│ crossing ─ becomes ┼) so overlapping
4
4
  * edge polylines join instead of overwriting each other.
5
5
  */
6
- export type CanvasStyle = "plain" | "dim" | "taken" | "active" | "back" | "ok" | "fail" | "warn";
6
+ export type CanvasStyle = "plain" | "dim" | "taken" | "active" | "back" | "ok" | "fail" | "warn" | "branch" | "agent" | "compute" | "action" | "checkpoint";
7
7
  export declare const UP = 1;
8
8
  export declare const DOWN = 2;
9
9
  export declare const LEFT = 4;
@@ -30,6 +30,11 @@ const STYLE_PRIORITY = [
30
30
  "warn",
31
31
  "ok",
32
32
  "fail",
33
+ "branch",
34
+ "agent",
35
+ "compute",
36
+ "action",
37
+ "checkpoint",
33
38
  "taken",
34
39
  "active",
35
40
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/render/canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/render/canvas.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,11 @@ export type GraphNodeStyle = "line" | "box";
15
15
  export type GraphRenderOptions = {
16
16
  nodeStyle?: GraphNodeStyle;
17
17
  };
18
+ /** Canonical outer dimensions shared by every full card in this graph. */
19
+ export declare function graphCardSize(view: GraphView): {
20
+ width: number;
21
+ height: number;
22
+ };
18
23
  /**
19
24
  * Render the graph pane. `selectedStepIndex` scrubs the replay position;
20
25
  * pass `steps.length - 1` (or larger) for the live view.