poly-weaver 0.7.1 → 0.8.1
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/dist/agents/implementors/handler.d.ts.map +1 -1
- package/dist/agents/implementors/handler.js +2 -1
- package/dist/agents/implementors/handler.js.map +1 -1
- package/dist/agents/planners/handler.d.ts.map +1 -1
- package/dist/agents/planners/handler.js +2 -1
- package/dist/agents/planners/handler.js.map +1 -1
- package/dist/agents/reviewers/handler.d.ts.map +1 -1
- package/dist/agents/reviewers/handler.js +2 -1
- package/dist/agents/reviewers/handler.js.map +1 -1
- package/dist/agents/runner.d.ts +25 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +63 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/simplifiers/handler.d.ts.map +1 -1
- package/dist/agents/simplifiers/handler.js +2 -1
- package/dist/agents/simplifiers/handler.js.map +1 -1
- package/dist/ansi.d.ts +21 -0
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +45 -0
- package/dist/ansi.js.map +1 -1
- package/dist/app-header.d.ts +16 -0
- package/dist/app-header.d.ts.map +1 -0
- package/dist/app-header.js +74 -0
- package/dist/app-header.js.map +1 -0
- package/dist/cli.js +81 -59
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/dump/collector.d.ts +2 -1
- package/dist/dump/collector.d.ts.map +1 -1
- package/dist/dump/collector.js +12 -0
- package/dist/dump/collector.js.map +1 -1
- package/dist/dump/hotkey.d.ts +9 -30
- package/dist/dump/hotkey.d.ts.map +1 -1
- package/dist/dump/hotkey.js +15 -158
- package/dist/dump/hotkey.js.map +1 -1
- package/dist/dump/pty-tail-buffer.d.ts +25 -0
- package/dist/dump/pty-tail-buffer.d.ts.map +1 -0
- package/dist/dump/pty-tail-buffer.js +48 -0
- package/dist/dump/pty-tail-buffer.js.map +1 -0
- package/dist/dump/service.d.ts +3 -2
- package/dist/dump/service.d.ts.map +1 -1
- package/dist/dump/service.js +6 -1
- package/dist/dump/service.js.map +1 -1
- package/dist/dump/types.d.ts +13 -0
- package/dist/dump/types.d.ts.map +1 -1
- package/dist/dump/types.js.map +1 -1
- package/dist/flow/built-in/default-factory.d.ts +21 -0
- package/dist/flow/built-in/default-factory.d.ts.map +1 -0
- package/dist/flow/built-in/default-factory.js +155 -0
- package/dist/flow/built-in/default-factory.js.map +1 -0
- package/dist/flow/built-in/default.d.ts +4 -4
- package/dist/flow/built-in/default.d.ts.map +1 -1
- package/dist/flow/built-in/default.js +3 -141
- package/dist/flow/built-in/default.js.map +1 -1
- package/dist/flow/built-in/default.ts +5 -169
- package/dist/flow/built-in/why-so-serious-factory.d.ts +16 -0
- package/dist/flow/built-in/why-so-serious-factory.d.ts.map +1 -0
- package/dist/flow/built-in/why-so-serious-factory.js +187 -0
- package/dist/flow/built-in/why-so-serious-factory.js.map +1 -0
- package/dist/flow/built-in/why-so-serious.d.ts +3 -2
- package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
- package/dist/flow/built-in/why-so-serious.js +3 -164
- package/dist/flow/built-in/why-so-serious.js.map +1 -1
- package/dist/flow/custom/AUTHORING.md +13 -0
- package/dist/flow/custom/load.d.ts +16 -1
- package/dist/flow/custom/load.d.ts.map +1 -1
- package/dist/flow/custom/load.js +69 -18
- package/dist/flow/custom/load.js.map +1 -1
- package/dist/flow/dsl.js +1 -1
- package/dist/flow/dsl.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +52 -9
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +24 -2
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/flow-editor/tui.d.ts.map +1 -1
- package/dist/flow-editor/tui.js +9 -18
- package/dist/flow-editor/tui.js.map +1 -1
- package/dist/orchestrator.d.ts +43 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +230 -92
- package/dist/orchestrator.js.map +1 -1
- package/dist/providers/base-completion.d.ts +18 -0
- package/dist/providers/base-completion.d.ts.map +1 -1
- package/dist/providers/base-completion.js +29 -0
- package/dist/providers/base-completion.js.map +1 -1
- package/dist/providers/claude/completion-plan-mode.d.ts +9 -1
- package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
- package/dist/providers/claude/completion-plan-mode.js +58 -4
- package/dist/providers/claude/completion-plan-mode.js.map +1 -1
- package/dist/providers/claude/plan-mode-pty-monitor.d.ts +51 -0
- package/dist/providers/claude/plan-mode-pty-monitor.d.ts.map +1 -0
- package/dist/providers/claude/plan-mode-pty-monitor.js +97 -0
- package/dist/providers/claude/plan-mode-pty-monitor.js.map +1 -0
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +6 -1
- package/dist/providers/claude/strategy.js.map +1 -1
- package/dist/providers/claude/tool-tracking.d.ts +1 -0
- package/dist/providers/claude/tool-tracking.d.ts.map +1 -1
- package/dist/providers/claude/tool-tracking.js +3 -0
- package/dist/providers/claude/tool-tracking.js.map +1 -1
- package/dist/providers/codex/plan-mode-activator.d.ts +23 -0
- package/dist/providers/codex/plan-mode-activator.d.ts.map +1 -0
- package/dist/providers/codex/plan-mode-activator.js +207 -0
- package/dist/providers/codex/plan-mode-activator.js.map +1 -0
- package/dist/providers/codex/session.d.ts +1 -0
- package/dist/providers/codex/session.d.ts.map +1 -1
- package/dist/providers/codex/session.js +35 -18
- package/dist/providers/codex/session.js.map +1 -1
- package/dist/providers/codex/strategy.d.ts +2 -1
- package/dist/providers/codex/strategy.d.ts.map +1 -1
- package/dist/providers/codex/strategy.js +17 -13
- package/dist/providers/codex/strategy.js.map +1 -1
- package/dist/providers/copilot/session.d.ts.map +1 -1
- package/dist/providers/copilot/session.js +11 -20
- package/dist/providers/copilot/session.js.map +1 -1
- package/dist/providers/types.d.ts +76 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +6 -1
- package/dist/pty/spawn.js.map +1 -1
- package/dist/pty/types.d.ts +7 -2
- package/dist/pty/types.d.ts.map +1 -1
- package/dist/resume-tui.d.ts +52 -0
- package/dist/resume-tui.d.ts.map +1 -0
- package/dist/resume-tui.js +344 -0
- package/dist/resume-tui.js.map +1 -0
- package/dist/session/flow-snapshot.d.ts +14 -0
- package/dist/session/flow-snapshot.d.ts.map +1 -0
- package/dist/session/flow-snapshot.js +28 -0
- package/dist/session/flow-snapshot.js.map +1 -0
- package/dist/session/list.d.ts +16 -0
- package/dist/session/list.d.ts.map +1 -0
- package/dist/session/list.js +89 -0
- package/dist/session/list.js.map +1 -0
- package/dist/session/locator.d.ts +15 -0
- package/dist/session/locator.d.ts.map +1 -1
- package/dist/session/locator.js +46 -27
- package/dist/session/locator.js.map +1 -1
- package/dist/session/lock.d.ts +26 -0
- package/dist/session/lock.d.ts.map +1 -0
- package/dist/session/lock.js +95 -0
- package/dist/session/lock.js.map +1 -0
- package/dist/session/manifest.d.ts +80 -0
- package/dist/session/manifest.d.ts.map +1 -0
- package/dist/session/manifest.js +2 -0
- package/dist/session/manifest.js.map +1 -0
- package/dist/session/persistence.d.ts +19 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +68 -0
- package/dist/session/persistence.js.map +1 -0
- package/dist/session/process-start-time.d.ts +17 -0
- package/dist/session/process-start-time.d.ts.map +1 -0
- package/dist/session/process-start-time.js +99 -0
- package/dist/session/process-start-time.js.map +1 -0
- package/dist/session/restore.d.ts +31 -0
- package/dist/session/restore.d.ts.map +1 -0
- package/dist/session/restore.js +111 -0
- package/dist/session/restore.js.map +1 -0
- package/dist/session/resume.d.ts +5 -0
- package/dist/session/resume.d.ts.map +1 -0
- package/dist/session/resume.js +109 -0
- package/dist/session/resume.js.map +1 -0
- package/dist/session/session-store.d.ts +43 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +134 -0
- package/dist/session/session-store.js.map +1 -0
- package/dist/startup-tui.d.ts +10 -11
- package/dist/startup-tui.d.ts.map +1 -1
- package/dist/startup-tui.js +25 -108
- package/dist/startup-tui.js.map +1 -1
- package/dist/status-bar.js +1 -26
- package/dist/status-bar.js.map +1 -1
- package/dist/terminal/host.d.ts +22 -9
- package/dist/terminal/host.d.ts.map +1 -1
- package/dist/terminal/host.js +67 -78
- package/dist/terminal/host.js.map +1 -1
- package/dist/terminal/input-router.d.ts +24 -103
- package/dist/terminal/input-router.d.ts.map +1 -1
- package/dist/terminal/input-router.js +63 -364
- package/dist/terminal/input-router.js.map +1 -1
- package/dist/terminal/key-event-source.d.ts +52 -0
- package/dist/terminal/key-event-source.d.ts.map +1 -0
- package/dist/terminal/key-event-source.js +31 -0
- package/dist/terminal/key-event-source.js.map +1 -0
- package/dist/terminal/key-to-bytes.d.ts +11 -0
- package/dist/terminal/key-to-bytes.d.ts.map +1 -0
- package/dist/terminal/key-to-bytes.js +81 -0
- package/dist/terminal/key-to-bytes.js.map +1 -0
- package/dist/terminal/koffi-loader.d.ts +14 -0
- package/dist/terminal/koffi-loader.d.ts.map +1 -1
- package/dist/terminal/koffi-loader.js.map +1 -1
- package/dist/terminal/render.d.ts +1 -2
- package/dist/terminal/render.d.ts.map +1 -1
- package/dist/terminal/render.js +1 -30
- package/dist/terminal/render.js.map +1 -1
- package/dist/terminal/stdin-byte-source.d.ts +27 -0
- package/dist/terminal/stdin-byte-source.d.ts.map +1 -0
- package/dist/terminal/stdin-byte-source.js +92 -0
- package/dist/terminal/stdin-byte-source.js.map +1 -0
- package/dist/terminal/win32-console-mode.d.ts.map +1 -1
- package/dist/terminal/win32-console-mode.js.map +1 -1
- package/dist/terminal/win32-console-source.d.ts +26 -0
- package/dist/terminal/win32-console-source.d.ts.map +1 -0
- package/dist/terminal/win32-console-source.js +275 -0
- package/dist/terminal/win32-console-source.js.map +1 -0
- package/dist/terminal/win32-key-translator.d.ts +26 -0
- package/dist/terminal/win32-key-translator.d.ts.map +1 -0
- package/dist/terminal/win32-key-translator.js +87 -0
- package/dist/terminal/win32-key-translator.js.map +1 -0
- package/dist/terminal-input.d.ts +10 -0
- package/dist/terminal-input.d.ts.map +1 -1
- package/dist/terminal-input.js +132 -113
- package/dist/terminal-input.js.map +1 -1
- package/dist/user/host-curate-prompt.d.ts +2 -1
- package/dist/user/host-curate-prompt.d.ts.map +1 -1
- package/dist/user/host-curate-prompt.js +13 -11
- package/dist/user/host-curate-prompt.js.map +1 -1
- package/dist/user/host-prompt.d.ts +4 -1
- package/dist/user/host-prompt.d.ts.map +1 -1
- package/dist/user/host-prompt.js +24 -6
- package/dist/user/host-prompt.js.map +1 -1
- package/dist/user/prompt.d.ts +7 -9
- package/dist/user/prompt.d.ts.map +1 -1
- package/dist/user/prompt.js +14 -23
- package/dist/user/prompt.js.map +1 -1
- package/package.json +1 -1
package/dist/dump/hotkey.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
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
|
|
51
|
-
*
|
|
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
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
package/dist/dump/hotkey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hotkey.js","sourceRoot":"","sources":["../../src/dump/hotkey.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface PtyTailSnapshot {
|
|
2
|
+
/** Raw bytes — last N bytes of PTY child output, byte-exact. */
|
|
3
|
+
raw: Buffer;
|
|
4
|
+
/** UTF-8 decode of `raw` with broad ANSI / CSI / OSC / bracketed-paste stripping. */
|
|
5
|
+
stripped: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Byte-faithful ring buffer that retains the latest N bytes of PTY output.
|
|
9
|
+
*
|
|
10
|
+
* node-pty delivers `string` (UTF-8 decoded) chunks; this buffer re-encodes
|
|
11
|
+
* each chunk as UTF-8 bytes so the stored tail is byte-identical to the
|
|
12
|
+
* underlying PTY stream. Capacity is enforced in bytes — mid-codepoint
|
|
13
|
+
* splits at the head are tolerated and surface as U+FFFD when the tail is
|
|
14
|
+
* decoded for the .txt artifact.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PtyTailBuffer {
|
|
17
|
+
private readonly capacityBytes;
|
|
18
|
+
private chunks;
|
|
19
|
+
private byteSize;
|
|
20
|
+
constructor(capacityBytes?: number);
|
|
21
|
+
append(chunk: string): void;
|
|
22
|
+
private trim;
|
|
23
|
+
snapshot(): PtyTailSnapshot;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=pty-tail-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-tail-buffer.d.ts","sourceRoot":"","sources":["../../src/dump/pty-tail-buffer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAK;gBAEQ,aAAa,SAAyB;IAEnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3B,OAAO,CAAC,IAAI;IAeZ,QAAQ,IAAI,eAAe;CAK5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { STRIP_ALL_ANSI_RE } from "../ansi.js";
|
|
2
|
+
const DEFAULT_CAPACITY_BYTES = 256 * 1024;
|
|
3
|
+
/**
|
|
4
|
+
* Byte-faithful ring buffer that retains the latest N bytes of PTY output.
|
|
5
|
+
*
|
|
6
|
+
* node-pty delivers `string` (UTF-8 decoded) chunks; this buffer re-encodes
|
|
7
|
+
* each chunk as UTF-8 bytes so the stored tail is byte-identical to the
|
|
8
|
+
* underlying PTY stream. Capacity is enforced in bytes — mid-codepoint
|
|
9
|
+
* splits at the head are tolerated and surface as U+FFFD when the tail is
|
|
10
|
+
* decoded for the .txt artifact.
|
|
11
|
+
*/
|
|
12
|
+
export class PtyTailBuffer {
|
|
13
|
+
capacityBytes;
|
|
14
|
+
chunks = [];
|
|
15
|
+
byteSize = 0;
|
|
16
|
+
constructor(capacityBytes = DEFAULT_CAPACITY_BYTES) {
|
|
17
|
+
this.capacityBytes = capacityBytes;
|
|
18
|
+
}
|
|
19
|
+
append(chunk) {
|
|
20
|
+
if (chunk.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
const buf = Buffer.from(chunk, "utf-8");
|
|
23
|
+
this.chunks.push(buf);
|
|
24
|
+
this.byteSize += buf.length;
|
|
25
|
+
this.trim();
|
|
26
|
+
}
|
|
27
|
+
trim() {
|
|
28
|
+
while (this.byteSize > this.capacityBytes && this.chunks.length > 0) {
|
|
29
|
+
const head = this.chunks[0];
|
|
30
|
+
if (this.byteSize - head.length >= this.capacityBytes) {
|
|
31
|
+
this.chunks.shift();
|
|
32
|
+
this.byteSize -= head.length;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const dropBytes = this.byteSize - this.capacityBytes;
|
|
36
|
+
this.chunks[0] = head.subarray(dropBytes);
|
|
37
|
+
this.byteSize -= dropBytes;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
snapshot() {
|
|
43
|
+
const raw = Buffer.concat(this.chunks, this.byteSize);
|
|
44
|
+
const stripped = raw.toString("utf-8").replace(STRIP_ALL_ANSI_RE, "");
|
|
45
|
+
return { raw, stripped };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pty-tail-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pty-tail-buffer.js","sourceRoot":"","sources":["../../src/dump/pty-tail-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAS/C,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAIK;IAHrB,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,GAAG,CAAC,CAAC;IAErB,YAA6B,gBAAgB,sBAAsB;QAAtC,kBAAa,GAAb,aAAa,CAAyB;IAAG,CAAC;IAEvE,MAAM,CAAC,KAAa;QAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC;gBAC3B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/dump/service.d.ts
CHANGED
|
@@ -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;
|
|
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;CA+C/B"}
|
package/dist/dump/service.js
CHANGED
|
@@ -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);
|
|
@@ -47,6 +49,7 @@ export class DumpService {
|
|
|
47
49
|
// Append in-flight step if one is currently executing
|
|
48
50
|
const inflight = this.ctx.inFlightStep;
|
|
49
51
|
if (inflight) {
|
|
52
|
+
const ptyTailSnapshot = inflight.ptyTailBuffer?.snapshot();
|
|
50
53
|
steps.push({
|
|
51
54
|
seq: inflight.seq,
|
|
52
55
|
stepId: inflight.stepId,
|
|
@@ -57,6 +60,7 @@ export class DumpService {
|
|
|
57
60
|
outputs: this.snapshotOutputs(inflight.writes),
|
|
58
61
|
sessionFilePaths: this.ctx.lastStepSessionFilePaths ?? [],
|
|
59
62
|
inFlight: true,
|
|
63
|
+
...(ptyTailSnapshot && { ptyTailSnapshot }),
|
|
60
64
|
});
|
|
61
65
|
}
|
|
62
66
|
const result = await collectDump({
|
|
@@ -69,6 +73,7 @@ export class DumpService {
|
|
|
69
73
|
totalIterations: this.ctx.totalIterations,
|
|
70
74
|
loopIterations: Object.fromEntries(this.ctx.loopIterations),
|
|
71
75
|
},
|
|
76
|
+
...(this.resumedFrom && { resumedFrom: this.resumedFrom }),
|
|
72
77
|
});
|
|
73
78
|
this.statusBar?.flash(`Dump saved: ${result}`);
|
|
74
79
|
}
|
package/dist/dump/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dump/service.ts"],"names":[],"mappings":"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"}
|
package/dist/dump/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ArtifactStore } from "../flow/types.js";
|
|
2
|
+
import type { PtyTailSnapshot } from "./pty-tail-buffer.js";
|
|
2
3
|
export interface ArtifactSnapshot {
|
|
3
4
|
artifactName: string;
|
|
4
5
|
file?: string;
|
|
@@ -16,6 +17,8 @@ export interface StepRecord {
|
|
|
16
17
|
outputs: Record<string, ArtifactSnapshot>;
|
|
17
18
|
sessionFilePaths: string[];
|
|
18
19
|
inFlight?: boolean;
|
|
20
|
+
/** Byte-faithful snapshot of the latest PTY output for this step's run. */
|
|
21
|
+
ptyTailSnapshot?: PtyTailSnapshot;
|
|
19
22
|
}
|
|
20
23
|
export interface DumpStepEntry {
|
|
21
24
|
seq: number;
|
|
@@ -27,6 +30,15 @@ export interface DumpStepEntry {
|
|
|
27
30
|
outputs: Record<string, string>;
|
|
28
31
|
sessions: string[];
|
|
29
32
|
inFlight?: boolean;
|
|
33
|
+
/** Relative paths under the step dir for the PTY tail artifacts. */
|
|
34
|
+
pty?: {
|
|
35
|
+
raw: string;
|
|
36
|
+
stripped: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface ResumedFromInfo {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
resumedAt: string;
|
|
30
42
|
}
|
|
31
43
|
export interface DumpManifest {
|
|
32
44
|
version: 1;
|
|
@@ -42,5 +54,6 @@ export interface DumpManifest {
|
|
|
42
54
|
totalIterations: number;
|
|
43
55
|
loopIterations: Record<string, number>;
|
|
44
56
|
};
|
|
57
|
+
resumedFrom?: ResumedFromInfo;
|
|
45
58
|
}
|
|
46
59
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/dump/types.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dump/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,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;IACnB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;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;IACnB,oEAAoE;IACpE,GAAG,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;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"}
|
package/dist/dump/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dump/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dump/types.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iBAAiB,CAC/B,OAA+B,EAC/B,SAAwB;IAExB,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,GAAG;gBACd,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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 {
|
|
2
|
-
import type {
|
|
3
|
-
export
|
|
4
|
-
export default
|
|
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.
|