poly-weaver 0.7.1 → 0.8.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 (177) hide show
  1. package/dist/ansi.d.ts +7 -0
  2. package/dist/ansi.d.ts.map +1 -1
  3. package/dist/ansi.js +30 -0
  4. package/dist/ansi.js.map +1 -1
  5. package/dist/app-header.d.ts +16 -0
  6. package/dist/app-header.d.ts.map +1 -0
  7. package/dist/app-header.js +74 -0
  8. package/dist/app-header.js.map +1 -0
  9. package/dist/cli.js +81 -59
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts +1 -0
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +6 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/dump/collector.d.ts +2 -1
  16. package/dist/dump/collector.d.ts.map +1 -1
  17. package/dist/dump/collector.js +1 -0
  18. package/dist/dump/collector.js.map +1 -1
  19. package/dist/dump/hotkey.d.ts +9 -30
  20. package/dist/dump/hotkey.d.ts.map +1 -1
  21. package/dist/dump/hotkey.js +15 -158
  22. package/dist/dump/hotkey.js.map +1 -1
  23. package/dist/dump/service.d.ts +3 -2
  24. package/dist/dump/service.d.ts.map +1 -1
  25. package/dist/dump/service.js +4 -1
  26. package/dist/dump/service.js.map +1 -1
  27. package/dist/dump/types.d.ts +5 -0
  28. package/dist/dump/types.d.ts.map +1 -1
  29. package/dist/flow/built-in/default-factory.d.ts +21 -0
  30. package/dist/flow/built-in/default-factory.d.ts.map +1 -0
  31. package/dist/flow/built-in/default-factory.js +155 -0
  32. package/dist/flow/built-in/default-factory.js.map +1 -0
  33. package/dist/flow/built-in/default.d.ts +4 -4
  34. package/dist/flow/built-in/default.d.ts.map +1 -1
  35. package/dist/flow/built-in/default.js +3 -141
  36. package/dist/flow/built-in/default.js.map +1 -1
  37. package/dist/flow/built-in/default.ts +5 -169
  38. package/dist/flow/built-in/why-so-serious-factory.d.ts +16 -0
  39. package/dist/flow/built-in/why-so-serious-factory.d.ts.map +1 -0
  40. package/dist/flow/built-in/why-so-serious-factory.js +187 -0
  41. package/dist/flow/built-in/why-so-serious-factory.js.map +1 -0
  42. package/dist/flow/built-in/why-so-serious.d.ts +3 -2
  43. package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
  44. package/dist/flow/built-in/why-so-serious.js +3 -164
  45. package/dist/flow/built-in/why-so-serious.js.map +1 -1
  46. package/dist/flow/custom/AUTHORING.md +13 -0
  47. package/dist/flow/custom/load.d.ts +16 -1
  48. package/dist/flow/custom/load.d.ts.map +1 -1
  49. package/dist/flow/custom/load.js +69 -18
  50. package/dist/flow/custom/load.js.map +1 -1
  51. package/dist/flow/dsl.js +1 -1
  52. package/dist/flow/dsl.js.map +1 -1
  53. package/dist/flow/executor.d.ts.map +1 -1
  54. package/dist/flow/executor.js +44 -8
  55. package/dist/flow/executor.js.map +1 -1
  56. package/dist/flow/types.d.ts +20 -2
  57. package/dist/flow/types.d.ts.map +1 -1
  58. package/dist/flow/types.js.map +1 -1
  59. package/dist/flow-editor/tui.d.ts.map +1 -1
  60. package/dist/flow-editor/tui.js +9 -18
  61. package/dist/flow-editor/tui.js.map +1 -1
  62. package/dist/orchestrator.d.ts +43 -0
  63. package/dist/orchestrator.d.ts.map +1 -1
  64. package/dist/orchestrator.js +230 -92
  65. package/dist/orchestrator.js.map +1 -1
  66. package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
  67. package/dist/providers/claude/completion-plan-mode.js +5 -2
  68. package/dist/providers/claude/completion-plan-mode.js.map +1 -1
  69. package/dist/providers/claude/tool-tracking.d.ts +1 -0
  70. package/dist/providers/claude/tool-tracking.d.ts.map +1 -1
  71. package/dist/providers/claude/tool-tracking.js +3 -0
  72. package/dist/providers/claude/tool-tracking.js.map +1 -1
  73. package/dist/pty/spawn.d.ts.map +1 -1
  74. package/dist/pty/spawn.js +6 -1
  75. package/dist/pty/spawn.js.map +1 -1
  76. package/dist/pty/types.d.ts +7 -2
  77. package/dist/pty/types.d.ts.map +1 -1
  78. package/dist/resume-tui.d.ts +52 -0
  79. package/dist/resume-tui.d.ts.map +1 -0
  80. package/dist/resume-tui.js +344 -0
  81. package/dist/resume-tui.js.map +1 -0
  82. package/dist/session/flow-snapshot.d.ts +14 -0
  83. package/dist/session/flow-snapshot.d.ts.map +1 -0
  84. package/dist/session/flow-snapshot.js +28 -0
  85. package/dist/session/flow-snapshot.js.map +1 -0
  86. package/dist/session/list.d.ts +16 -0
  87. package/dist/session/list.d.ts.map +1 -0
  88. package/dist/session/list.js +89 -0
  89. package/dist/session/list.js.map +1 -0
  90. package/dist/session/lock.d.ts +26 -0
  91. package/dist/session/lock.d.ts.map +1 -0
  92. package/dist/session/lock.js +95 -0
  93. package/dist/session/lock.js.map +1 -0
  94. package/dist/session/manifest.d.ts +80 -0
  95. package/dist/session/manifest.d.ts.map +1 -0
  96. package/dist/session/manifest.js +2 -0
  97. package/dist/session/manifest.js.map +1 -0
  98. package/dist/session/persistence.d.ts +19 -0
  99. package/dist/session/persistence.d.ts.map +1 -0
  100. package/dist/session/persistence.js +68 -0
  101. package/dist/session/persistence.js.map +1 -0
  102. package/dist/session/process-start-time.d.ts +17 -0
  103. package/dist/session/process-start-time.d.ts.map +1 -0
  104. package/dist/session/process-start-time.js +99 -0
  105. package/dist/session/process-start-time.js.map +1 -0
  106. package/dist/session/restore.d.ts +31 -0
  107. package/dist/session/restore.d.ts.map +1 -0
  108. package/dist/session/restore.js +111 -0
  109. package/dist/session/restore.js.map +1 -0
  110. package/dist/session/resume.d.ts +5 -0
  111. package/dist/session/resume.d.ts.map +1 -0
  112. package/dist/session/resume.js +109 -0
  113. package/dist/session/resume.js.map +1 -0
  114. package/dist/session/session-store.d.ts +43 -0
  115. package/dist/session/session-store.d.ts.map +1 -0
  116. package/dist/session/session-store.js +134 -0
  117. package/dist/session/session-store.js.map +1 -0
  118. package/dist/startup-tui.d.ts +10 -11
  119. package/dist/startup-tui.d.ts.map +1 -1
  120. package/dist/startup-tui.js +25 -108
  121. package/dist/startup-tui.js.map +1 -1
  122. package/dist/status-bar.js +1 -26
  123. package/dist/status-bar.js.map +1 -1
  124. package/dist/terminal/host.d.ts +22 -9
  125. package/dist/terminal/host.d.ts.map +1 -1
  126. package/dist/terminal/host.js +67 -78
  127. package/dist/terminal/host.js.map +1 -1
  128. package/dist/terminal/input-router.d.ts +24 -103
  129. package/dist/terminal/input-router.d.ts.map +1 -1
  130. package/dist/terminal/input-router.js +63 -364
  131. package/dist/terminal/input-router.js.map +1 -1
  132. package/dist/terminal/key-event-source.d.ts +52 -0
  133. package/dist/terminal/key-event-source.d.ts.map +1 -0
  134. package/dist/terminal/key-event-source.js +31 -0
  135. package/dist/terminal/key-event-source.js.map +1 -0
  136. package/dist/terminal/key-to-bytes.d.ts +11 -0
  137. package/dist/terminal/key-to-bytes.d.ts.map +1 -0
  138. package/dist/terminal/key-to-bytes.js +81 -0
  139. package/dist/terminal/key-to-bytes.js.map +1 -0
  140. package/dist/terminal/koffi-loader.d.ts +14 -0
  141. package/dist/terminal/koffi-loader.d.ts.map +1 -1
  142. package/dist/terminal/koffi-loader.js.map +1 -1
  143. package/dist/terminal/render.d.ts +1 -2
  144. package/dist/terminal/render.d.ts.map +1 -1
  145. package/dist/terminal/render.js +1 -30
  146. package/dist/terminal/render.js.map +1 -1
  147. package/dist/terminal/stdin-byte-source.d.ts +27 -0
  148. package/dist/terminal/stdin-byte-source.d.ts.map +1 -0
  149. package/dist/terminal/stdin-byte-source.js +92 -0
  150. package/dist/terminal/stdin-byte-source.js.map +1 -0
  151. package/dist/terminal/win32-console-mode.d.ts.map +1 -1
  152. package/dist/terminal/win32-console-mode.js.map +1 -1
  153. package/dist/terminal/win32-console-source.d.ts +26 -0
  154. package/dist/terminal/win32-console-source.d.ts.map +1 -0
  155. package/dist/terminal/win32-console-source.js +275 -0
  156. package/dist/terminal/win32-console-source.js.map +1 -0
  157. package/dist/terminal/win32-key-translator.d.ts +26 -0
  158. package/dist/terminal/win32-key-translator.d.ts.map +1 -0
  159. package/dist/terminal/win32-key-translator.js +87 -0
  160. package/dist/terminal/win32-key-translator.js.map +1 -0
  161. package/dist/terminal-input.d.ts +10 -0
  162. package/dist/terminal-input.d.ts.map +1 -1
  163. package/dist/terminal-input.js +132 -113
  164. package/dist/terminal-input.js.map +1 -1
  165. package/dist/user/host-curate-prompt.d.ts +2 -1
  166. package/dist/user/host-curate-prompt.d.ts.map +1 -1
  167. package/dist/user/host-curate-prompt.js +13 -11
  168. package/dist/user/host-curate-prompt.js.map +1 -1
  169. package/dist/user/host-prompt.d.ts +4 -1
  170. package/dist/user/host-prompt.d.ts.map +1 -1
  171. package/dist/user/host-prompt.js +24 -6
  172. package/dist/user/host-prompt.js.map +1 -1
  173. package/dist/user/prompt.d.ts +7 -9
  174. package/dist/user/prompt.d.ts.map +1 -1
  175. package/dist/user/prompt.js +14 -23
  176. package/dist/user/prompt.js.map +1 -1
  177. package/package.json +1 -1
@@ -1,167 +1,24 @@
1
1
  /** VT control byte for Ctrl+] (0x1D — works on all terminals). */
2
2
  export const DUMP_HOTKEY_BYTE = 0x1d;
3
- function isDumpHotkeyCsi(finalByte, csiParams) {
4
- if (finalByte !== 0x75 /* 'u' */) {
5
- return false;
6
- }
7
- const parts = csiParams.split(";");
8
- const keyCode = parseInt(parts[0]?.split(":")[0] ?? "", 10);
9
- const modifierPart = parts[1] ?? "1";
10
- const modifiers = parseInt(modifierPart.split(":")[0] ?? "1", 10);
11
- const eventTypeRaw = modifierPart.split(":")[1];
12
- const eventType = eventTypeRaw ? parseInt(eventTypeRaw, 10) : 1;
13
- if (!Number.isFinite(keyCode) || !Number.isFinite(modifiers)) {
14
- return false;
15
- }
16
- if (eventType === 3) {
17
- return false;
18
- }
19
- return keyCode === 93 && ((modifiers - 1) & 0x04) !== 0;
20
- }
21
- /**
22
- * Win32-input-mode: CSI Vk;Sc;Uc;Kd;Cs;Rc _
23
- * Returns "trigger" on matching key-down, "consume" on matching key-up
24
- * (so the orphan half doesn't leak to the child), or false for non-matching.
25
- */
26
- function isDumpHotkeyWin32(csiParams) {
27
- const parts = csiParams.split(";");
28
- if (parts.length !== 6)
29
- return false;
30
- const uc = parseInt(parts[2], 10);
31
- if (!Number.isFinite(uc) || uc !== DUMP_HOTKEY_BYTE)
32
- return false;
33
- const kd = parseInt(parts[3], 10);
34
- if (kd === 1)
35
- return "trigger";
36
- if (kd === 0)
37
- return "consume";
38
- return false;
39
- }
40
3
  /**
41
- * Triple-path Ctrl+] detector (VT byte 0x1D, passive kitty CSI, win32-input-mode).
42
- *
43
- * VT path: byte 0x1D in the "idle" state triggers immediately — no
44
- * multi-byte ambiguity, works on all terminals.
4
+ * Single dump-hotkey check operating on a structured `TerminalKey`.
45
5
  *
46
- * Passive kitty path: \x1b[93;5u (and variants like \x1b[93;5:1u) are
47
- * recognized via the CSI state machine for terminals that independently
48
- * enable the Kitty keyboard protocol.
6
+ * Matches:
7
+ * - VT path: `{ kind: "control", byte: 0x1D }` (Ctrl+])
8
+ * - Kitty path: `{ kind: "kitty-key", keyCode: 93, modifiers }` with
9
+ * Ctrl bit set (`(modifiers - 1) & 0x04`).
49
10
  *
50
- * Win32-input-mode path: CSI Vk;Sc;Uc;Kd;Cs;Rc _ where Uc === 0x1D.
51
- * Key-down (Kd=1) triggers the dump; key-up (Kd=0) is consumed silently
52
- * so the child PTY does not receive an orphan half of the hotkey.
53
- *
54
- * Handles CSI sequences split across chunk boundaries by buffering ESC +
55
- * parameter bytes until a final byte arrives.
11
+ * The Win32-input-mode path emits `control:0x1D` after the parser
12
+ * translates it, so no separate branch is needed here.
56
13
  */
57
- export class DumpHotkeyDetector {
58
- onTrigger;
59
- onDeferredFlush;
60
- timeoutMs;
61
- state = "idle";
62
- buffer = [];
63
- csiParams = "";
64
- flushTimer;
65
- constructor(onTrigger, onDeferredFlush, timeoutMs = 50) {
66
- this.onTrigger = onTrigger;
67
- this.onDeferredFlush = onDeferredFlush;
68
- this.timeoutMs = timeoutMs;
69
- }
70
- /**
71
- * Process incoming stdin data. Returns a Buffer of bytes to forward
72
- * to the PTY process. Consumed hotkey bytes are excluded.
73
- */
74
- process(data) {
75
- if (this.flushTimer != null) {
76
- clearTimeout(this.flushTimer);
77
- this.flushTimer = undefined;
78
- }
79
- const forward = [];
80
- for (const byte of data) {
81
- switch (this.state) {
82
- case "idle":
83
- if (byte === DUMP_HOTKEY_BYTE) {
84
- this.onTrigger();
85
- // Consume the byte — don't forward it
86
- }
87
- else if (byte === 0x1b) {
88
- this.state = "gotEsc";
89
- this.buffer = [byte];
90
- }
91
- else {
92
- forward.push(byte);
93
- }
94
- break;
95
- case "gotEsc":
96
- if (byte === 0x5b) { // '['
97
- this.state = "inCsi";
98
- this.buffer.push(byte);
99
- this.csiParams = "";
100
- }
101
- else {
102
- // Not a CSI — flush buffer + this byte
103
- forward.push(...this.buffer, byte);
104
- this.reset();
105
- }
106
- break;
107
- case "inCsi":
108
- if (byte >= 0x40 && byte <= 0x7e) {
109
- // CSI final byte
110
- if (isDumpHotkeyCsi(byte, this.csiParams)) {
111
- // Match: passive kitty Ctrl+] — consume, trigger callback
112
- this.onTrigger();
113
- this.reset();
114
- }
115
- else {
116
- const win32 = byte === 0x5f /* '_' */
117
- ? isDumpHotkeyWin32(this.csiParams)
118
- : false;
119
- if (win32 === "trigger") {
120
- this.onTrigger();
121
- this.reset();
122
- }
123
- else if (win32 === "consume") {
124
- // Key-up half — consume silently so child PTY doesn't get orphan
125
- this.reset();
126
- }
127
- else {
128
- // Not our sequence — flush everything
129
- forward.push(...this.buffer, byte);
130
- this.reset();
131
- }
132
- }
133
- }
134
- else {
135
- // CSI parameter/intermediate byte — accumulate
136
- this.buffer.push(byte);
137
- this.csiParams += String.fromCharCode(byte);
138
- }
139
- break;
140
- }
141
- }
142
- // If we're mid-sequence at the end of a chunk, set a timeout to flush
143
- // in case the rest of the sequence never arrives (e.g., bare ESC key)
144
- if (this.state !== "idle") {
145
- this.flushTimer = setTimeout(() => {
146
- this.flushTimer = undefined;
147
- const stale = Buffer.from(this.buffer);
148
- this.reset();
149
- if (stale.length > 0)
150
- this.onDeferredFlush(stale);
151
- }, this.timeoutMs);
152
- }
153
- return Buffer.from(forward);
154
- }
155
- destroy() {
156
- if (this.flushTimer != null) {
157
- clearTimeout(this.flushTimer);
158
- this.flushTimer = undefined;
159
- }
160
- }
161
- reset() {
162
- this.state = "idle";
163
- this.buffer = [];
164
- this.csiParams = "";
14
+ export function isDumpHotkey(key) {
15
+ if (key.kind === "control" && key.byte === DUMP_HOTKEY_BYTE)
16
+ return true;
17
+ if (key.kind === "kitty-key"
18
+ && key.keyCode === 93
19
+ && ((key.modifiers - 1) & 0x04) !== 0) {
20
+ return true;
165
21
  }
22
+ return false;
166
23
  }
167
24
  //# sourceMappingURL=hotkey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hotkey.js","sourceRoot":"","sources":["../../src/dump/hotkey.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC,SAAS,eAAe,CAAC,SAAiB,EAAE,SAAiB;IAC3D,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAElE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAkB;IAOV;IACA;IACA;IARX,KAAK,GAAgC,MAAM,CAAC;IAC5C,MAAM,GAAa,EAAE,CAAC;IACtB,SAAS,GAAG,EAAE,CAAC;IACf,UAAU,CAA4C;IAE9D,YACmB,SAAqB,EACrB,eAAuC,EACvC,YAAY,EAAE;QAFd,cAAS,GAAT,SAAS,CAAY;QACrB,oBAAe,GAAf,eAAe,CAAwB;QACvC,cAAS,GAAT,SAAS,CAAK;IAC9B,CAAC;IAEJ;;;OAGG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,sCAAsC;oBACxC,CAAC;yBAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACtB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;oBACD,MAAM;gBAER,KAAK,QAAQ;oBACX,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,CAAE,MAAM;wBAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,uCAAuC;wBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACnC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,CAAC;oBACD,MAAM;gBAER,KAAK,OAAO;oBACV,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;wBACjC,iBAAiB;wBACjB,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC1C,0DAA0D;4BAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;4BACjB,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,CAAC;6BAAM,CAAC;4BACN,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS;gCACnC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;gCACnC,CAAC,CAAC,KAAK,CAAC;4BACV,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gCACxB,IAAI,CAAC,SAAS,EAAE,CAAC;gCACjB,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,CAAC;iCAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gCAC/B,iEAAiE;gCACjE,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,CAAC;iCAAM,CAAC;gCACN,sCAAsC;gCACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gCACnC,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvB,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC9C,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"hotkey.js","sourceRoot":"","sources":["../../src/dump/hotkey.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,GAAgB;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACzE,IACE,GAAG,CAAC,IAAI,KAAK,WAAW;WACrB,GAAG,CAAC,OAAO,KAAK,EAAE;WAClB,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { StatusBar } from "../status-bar.js";
2
2
  import type { StepContext } from "../flow/types.js";
3
- import { type StepRecord } from "./types.js";
3
+ import { type ResumedFromInfo, type StepRecord } from "./types.js";
4
4
  export declare class DumpService {
5
5
  private readonly version;
6
6
  private readonly statusBar?;
@@ -11,13 +11,14 @@ export declare class DumpService {
11
11
  private workdir;
12
12
  private flowName;
13
13
  private flowParams;
14
+ private resumedFrom;
14
15
  private static DEBOUNCE_MS;
15
16
  constructor(version: string, statusBar?: StatusBar | undefined);
16
17
  /**
17
18
  * Called by orchestrator after ctx is created.
18
19
  * @param workdir - the real project directory (NOT ctx.sessionDir)
19
20
  */
20
- init(flowName: string, flowParams: Record<string, unknown>, workdir: string, ctx: StepContext): void;
21
+ init(flowName: string, flowParams: Record<string, unknown>, workdir: string, ctx: StepContext, resumedFrom?: ResumedFromInfo): void;
21
22
  readonly onStepCompleted: (record: StepRecord) => void;
22
23
  /** Best-effort snapshot of output artifacts for the in-flight step. */
23
24
  private snapshotOutputs;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvF,qBAAa,WAAW;IAYpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAZ7B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAQ;gBAGf,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,YAAA;IAGxC;;;OAGG;IACH,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,WAAW,GACf,IAAI;IAOP,QAAQ,CAAC,eAAe,GAAI,QAAQ,UAAU,KAAG,IAAI,CAEnD;IAEF,uEAAuE;IACvE,OAAO,CAAC,eAAe;IAKjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C/B"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAA4C,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7G,qBAAa,WAAW;IAapB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAb7B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAQ;gBAGf,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,SAAS,YAAA;IAGxC;;;OAGG;IACH,IAAI,CACF,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,WAAW,EAChB,WAAW,CAAC,EAAE,eAAe,GAC5B,IAAI;IAQP,QAAQ,CAAC,eAAe,GAAI,QAAQ,UAAU,KAAG,IAAI,CAEnD;IAEF,uEAAuE;IACvE,OAAO,CAAC,eAAe;IAKjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA6C/B"}
@@ -10,6 +10,7 @@ export class DumpService {
10
10
  workdir = "";
11
11
  flowName = "";
12
12
  flowParams = {};
13
+ resumedFrom;
13
14
  static DEBOUNCE_MS = 5000;
14
15
  constructor(version, statusBar) {
15
16
  this.version = version;
@@ -19,11 +20,12 @@ export class DumpService {
19
20
  * Called by orchestrator after ctx is created.
20
21
  * @param workdir - the real project directory (NOT ctx.sessionDir)
21
22
  */
22
- init(flowName, flowParams, workdir, ctx) {
23
+ init(flowName, flowParams, workdir, ctx, resumedFrom) {
23
24
  this.flowName = flowName;
24
25
  this.flowParams = flowParams;
25
26
  this.workdir = workdir;
26
27
  this.ctx = ctx;
28
+ this.resumedFrom = resumedFrom;
27
29
  }
28
30
  onStepCompleted = (record) => {
29
31
  this.steps.push(record);
@@ -69,6 +71,7 @@ export class DumpService {
69
71
  totalIterations: this.ctx.totalIterations,
70
72
  loopIterations: Object.fromEntries(this.ctx.loopIterations),
71
73
  },
74
+ ...(this.resumedFrom && { resumedFrom: this.resumedFrom }),
72
75
  });
73
76
  this.statusBar?.flash(`Dump saved: ${result}`);
74
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,10 @@ export interface DumpStepEntry {
28
28
  sessions: string[];
29
29
  inFlight?: boolean;
30
30
  }
31
+ export interface ResumedFromInfo {
32
+ sessionId: string;
33
+ resumedAt: string;
34
+ }
31
35
  export interface DumpManifest {
32
36
  version: 1;
33
37
  timestamp: string;
@@ -42,5 +46,6 @@ export interface DumpManifest {
42
46
  totalIterations: number;
43
47
  loopIterations: Record<string, number>;
44
48
  };
49
+ resumedFrom?: ResumedFromInfo;
45
50
  }
46
51
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dump/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,EAAE,aAAa,GACvB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAclC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAChF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dump/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,SAAS,EAAE,aAAa,GACvB,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAclC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @param {FlowDSL} dsl
3
+ * @returns {FlowTemplate}
4
+ */
5
+ export default function createDefaultFlow(dsl: FlowDSL): FlowTemplate;
6
+ /** @typedef {import("../../dsl.js").FlowDSL} FlowDSL */
7
+ /** @typedef {import("../types.js").FlowTemplate} FlowTemplate */
8
+ /** @typedef {import("../types.js").FlowDefinition} FlowDefinition */
9
+ /** @typedef {import("../types.js").FlowParam} FlowParam */
10
+ /** @typedef {import("../types.js").FlowParamValues} FlowParamValues */
11
+ /** @typedef {import("../../agents/reviewers/types.js").ReviewVerdict} ReviewVerdict */
12
+ /** @type {readonly FlowParam[]} */
13
+ export const defaultParams: readonly FlowParam[];
14
+ export const SOURCE_FILE: string;
15
+ export type FlowDSL = import("../../dsl.js").FlowDSL;
16
+ export type FlowTemplate = import("../types.js").FlowTemplate;
17
+ export type FlowDefinition = import("../types.js").FlowDefinition;
18
+ export type FlowParam = import("../types.js").FlowParam;
19
+ export type FlowParamValues = import("../types.js").FlowParamValues;
20
+ export type ReviewVerdict = import("../../agents/reviewers/types.js").ReviewVerdict;
21
+ //# sourceMappingURL=default-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-factory.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/default-factory.js"],"names":[],"mappings":"AAuCA;;;GAGG;AACH,+CAHW,OAAO,GACL,YAAY,CA2IxB;AA1KD,wDAAwD;AACxD,iEAAiE;AACjE,qEAAqE;AACrE,2DAA2D;AAC3D,uEAAuE;AACvE,uFAAuF;AAEvF,mCAAmC;AACnC,4BADW,SAAS,SAAS,EAAE,CAoB7B;AAiJF,iCAA0D;sBA5K5C,OAAO,cAAc,EAAE,OAAO;2BAC9B,OAAO,aAAa,EAAE,YAAY;6BAClC,OAAO,aAAa,EAAE,cAAc;wBACpC,OAAO,aAAa,EAAE,SAAS;8BAC/B,OAAO,aAAa,EAAE,eAAe;4BACrC,OAAO,iCAAiC,EAAE,aAAa"}
@@ -0,0 +1,155 @@
1
+ // @ts-check
2
+ // IMPORTANT: This file is snapshotted verbatim into session directories
3
+ // (`flow-source.mjs`) and re-imported on resume. It must therefore be valid
4
+ // plain ESM JavaScript — no TypeScript-only syntax (no `import type`, no
5
+ // type annotations on parameters/returns). Use JSDoc comments for type info
6
+ // so the TypeScript compiler still checks the file but the source content
7
+ // is loadable by Node/vite as ESM.
8
+ import { fileURLToPath } from "node:url";
9
+ /** @typedef {import("../../dsl.js").FlowDSL} FlowDSL */
10
+ /** @typedef {import("../types.js").FlowTemplate} FlowTemplate */
11
+ /** @typedef {import("../types.js").FlowDefinition} FlowDefinition */
12
+ /** @typedef {import("../types.js").FlowParam} FlowParam */
13
+ /** @typedef {import("../types.js").FlowParamValues} FlowParamValues */
14
+ /** @typedef {import("../../agents/reviewers/types.js").ReviewVerdict} ReviewVerdict */
15
+ /** @type {readonly FlowParam[]} */
16
+ export const defaultParams = [
17
+ { key: "planner", type: "driver", role: "planner", label: "Planner", default: "claude",
18
+ description: "Which CLI plans" },
19
+ { key: "reviewer", type: "driver", role: "reviewer", label: "Reviewer", default: "codex",
20
+ description: "Which CLI reviews" },
21
+ { key: "implementor", type: "driver", role: "implementor", label: "Implementor", default: "claude",
22
+ description: "Which CLI implements" },
23
+ { key: "maxIterations", type: "number", label: "Max Planning Iterations",
24
+ default: 5, min: 1, max: 50 },
25
+ { key: "maxImplIterations", type: "number", label: "Max Impl Iterations",
26
+ default: 5, min: 1, max: 50 },
27
+ { key: "auto", type: "boolean", label: "Auto Mode", default: false,
28
+ description: "Skip user review phases" },
29
+ { key: "planOnly", type: "boolean", label: "Plan Only", default: false,
30
+ description: "Skip implementation phase" },
31
+ { key: "curateAllVerdicts", type: "boolean", label: "Curate All Verdicts", default: false,
32
+ description: "Curate every plan-review verdict (off = first verdict only)" },
33
+ ];
34
+ /**
35
+ * @param {FlowDSL} dsl
36
+ * @returns {FlowTemplate}
37
+ */
38
+ export default function createDefaultFlow(dsl) {
39
+ const { defineFlow, loop, artifactData, ctxField, cyclePhase, plan, review, implement, user, TASK } = dsl;
40
+ return {
41
+ name: "default",
42
+ params: defaultParams,
43
+ /**
44
+ * @param {FlowParamValues} values
45
+ * @returns {FlowDefinition}
46
+ */
47
+ build(values) {
48
+ const maxPlan = /** @type {number} */ (values.maxIterations);
49
+ const maxImpl = /** @type {number} */ (values.maxImplIterations);
50
+ const isPlanOnly = /** @type {boolean} */ (values.planOnly);
51
+ const isAuto = /** @type {boolean} */ (values.auto);
52
+ const curateAll = /** @type {boolean} */ (values.curateAllVerdicts);
53
+ const plannerDriver = /** @type {string} */ (values.planner);
54
+ const reviewerDriver = /** @type {string} */ (values.reviewer);
55
+ const implementorDriver = /** @type {string} */ (values.implementor);
56
+ const steps = [];
57
+ if (isAuto) {
58
+ steps.push(loop(maxPlan, artifactData("verdict", "approved"), [
59
+ plan({
60
+ driver: plannerDriver,
61
+ phaseLabel: cyclePhase("📝 Planning...", "✏️ Revising Plan..."),
62
+ reads: { task: TASK, verdict: "verdict" },
63
+ writes: { plan: "plan" },
64
+ }),
65
+ review({
66
+ driver: reviewerDriver,
67
+ variant: "plan",
68
+ reads: { task: TASK, plan: "plan" },
69
+ writes: { verdict: "verdict" },
70
+ }),
71
+ ]));
72
+ }
73
+ else {
74
+ steps.push(loop(Infinity, () => false, [
75
+ plan({
76
+ driver: plannerDriver,
77
+ phaseLabel: cyclePhase("📝 Planning...", "✏️ Addressing Feedback..."),
78
+ reads: { task: TASK, verdict: "verdict" },
79
+ writes: { plan: "plan" },
80
+ }),
81
+ user("user:feedback", { writes: { verdict: "verdict" } }),
82
+ loop(maxPlan, artifactData("verdict", "approved"), [
83
+ plan({
84
+ driver: plannerDriver,
85
+ when: ctxField("iteration", "!=", 1),
86
+ phaseLabel: "✏️ Revising Plan...",
87
+ reads: { task: TASK, verdict: "verdict" },
88
+ writes: { plan: "plan" },
89
+ }),
90
+ review({
91
+ driver: reviewerDriver,
92
+ variant: "plan",
93
+ sessionShareKey: "reviewer-plan",
94
+ reads: { task: TASK, plan: "plan" },
95
+ writes: { verdict: "verdict" },
96
+ sessionBoundary: ctxField("iteration", "==", 1),
97
+ }),
98
+ loop(Infinity, (ctx) => {
99
+ const v = /** @type {ReviewVerdict | undefined} */ (ctx.artifacts.getData("verdict"));
100
+ if (!v || v.approved || (v.issues?.length ?? 0) === 0)
101
+ return true;
102
+ const decisions = /** @type {{decisions: Array<{decision: string}>} | undefined} */ (ctx.artifacts.getData("user-decisions"))?.decisions;
103
+ return !decisions?.some((d) => d.decision === "revise");
104
+ }, [
105
+ review({
106
+ driver: reviewerDriver,
107
+ variant: "plan",
108
+ sessionShareKey: "reviewer-plan",
109
+ when: ctxField("iteration", "!=", 1),
110
+ reads: { task: TASK, plan: "plan", userDecisions: "user-decisions" },
111
+ writes: { verdict: "verdict" },
112
+ }),
113
+ user("user:curate-verdict", {
114
+ variant: "curate-verdict",
115
+ when: (ctx) => {
116
+ const v = /** @type {ReviewVerdict | undefined} */ (ctx.artifacts.getData("verdict"));
117
+ return !!v && (v.issues?.length ?? 0) > 0;
118
+ },
119
+ reads: { verdict: "verdict", plan: "plan" },
120
+ writes: { verdict: "verdict", userDecisions: "user-decisions" },
121
+ feedbackToTask: false,
122
+ }),
123
+ ], {
124
+ when: curateAll ? () => true : ctxField("iteration", "==", 1),
125
+ untilLabel: "no revise comments",
126
+ }),
127
+ ]),
128
+ user("user:approval", {
129
+ breakOnAccept: true,
130
+ writes: { verdict: "verdict" },
131
+ }),
132
+ ]));
133
+ }
134
+ if (!isPlanOnly) {
135
+ const implVerdict = "impl-verdict";
136
+ steps.push(loop(maxImpl, artifactData(implVerdict, "approved"), [
137
+ implement({
138
+ driver: implementorDriver,
139
+ phaseLabel: cyclePhase("🔨 Implementing...", "✏️ Revising Impl..."),
140
+ reads: { plan: "plan", verdict: implVerdict },
141
+ }),
142
+ review({
143
+ driver: reviewerDriver,
144
+ variant: "impl",
145
+ reads: { task: TASK, plan: "plan" },
146
+ writes: { verdict: implVerdict },
147
+ }),
148
+ ]));
149
+ }
150
+ return defineFlow("default", steps);
151
+ },
152
+ };
153
+ }
154
+ export const SOURCE_FILE = fileURLToPath(import.meta.url);
155
+ //# sourceMappingURL=default-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-factory.js","sourceRoot":"","sources":["../../../src/flow/built-in/default-factory.js"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { type FlowDSL } from "../../dsl.js";
2
- import type { FlowDefinition, FlowTemplate, FlowParam } from "../types.js";
3
- export declare const defaultParams: readonly FlowParam[];
4
- export default function createDefaultFlow({ defineFlow, loop, artifactData, ctxField, cyclePhase, plan, review, implement, user, TASK }: FlowDSL): FlowTemplate;
1
+ import createDefaultFlow, { defaultParams, SOURCE_FILE } from "./default-factory.js";
2
+ import type { FlowTemplate, FlowDefinition } from "../types.js";
3
+ export { defaultParams, SOURCE_FILE };
4
+ export default createDefaultFlow;
5
5
  export declare const defaultFlowTemplate: FlowTemplate;
6
6
  /**
7
7
  * Convenience wrapper used by tests to build a default flow definition.
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,SAAS,EACV,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,aAAa,EAAE,SAAS,SAAS,EAsB7C,CAAC;AAGF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,GACrG,YAAY,CAoId;AAGD,eAAO,MAAM,mBAAmB,EAAE,YAAyC,CAAC;AAE5E;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,cAAc,CAWjB"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/default.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AACtC,eAAe,iBAAiB,CAAC;AAGjC,eAAO,MAAM,mBAAmB,EAAE,YAAyC,CAAC;AAE5E;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,cAAc,CAWjB"}