pm-orchestrator-runner 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -6
- package/dist/cli/index.d.ts +7 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +191 -49
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/namespace.d.ts +86 -0
- package/dist/config/namespace.d.ts.map +1 -0
- package/dist/config/namespace.js +150 -0
- package/dist/config/namespace.js.map +1 -0
- package/dist/core/runner-core.d.ts +2 -0
- package/dist/core/runner-core.d.ts.map +1 -1
- package/dist/core/runner-core.js +27 -1
- package/dist/core/runner-core.js.map +1 -1
- package/dist/executor/claude-code-executor.d.ts +28 -0
- package/dist/executor/claude-code-executor.d.ts.map +1 -1
- package/dist/executor/claude-code-executor.js +184 -1
- package/dist/executor/claude-code-executor.js.map +1 -1
- package/dist/executor/deterministic-executor.d.ts +2 -1
- package/dist/executor/deterministic-executor.d.ts.map +1 -1
- package/dist/executor/deterministic-executor.js +7 -0
- package/dist/executor/deterministic-executor.js.map +1 -1
- package/dist/executor/recovery-executor.d.ts +2 -1
- package/dist/executor/recovery-executor.d.ts.map +1 -1
- package/dist/executor/recovery-executor.js +7 -0
- package/dist/executor/recovery-executor.js.map +1 -1
- package/dist/executor/stepwise-mock-executor.d.ts +76 -0
- package/dist/executor/stepwise-mock-executor.d.ts.map +1 -0
- package/dist/executor/stepwise-mock-executor.js +369 -0
- package/dist/executor/stepwise-mock-executor.js.map +1 -0
- package/dist/models/enums.d.ts +54 -0
- package/dist/models/enums.d.ts.map +1 -1
- package/dist/models/enums.js +59 -1
- package/dist/models/enums.js.map +1 -1
- package/dist/models/index.d.ts +4 -1
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +50 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/run.d.ts +82 -0
- package/dist/models/run.d.ts.map +1 -0
- package/dist/models/run.js +161 -0
- package/dist/models/run.js.map +1 -0
- package/dist/models/task-group.d.ts +164 -0
- package/dist/models/task-group.d.ts.map +1 -0
- package/dist/models/task-group.js +246 -0
- package/dist/models/task-group.js.map +1 -0
- package/dist/models/task.d.ts +7 -0
- package/dist/models/task.d.ts.map +1 -1
- package/dist/models/task.js.map +1 -1
- package/dist/models/thread.d.ts +53 -0
- package/dist/models/thread.d.ts.map +1 -0
- package/dist/models/thread.js +92 -0
- package/dist/models/thread.js.map +1 -0
- package/dist/pool/agent-pool.d.ts.map +1 -1
- package/dist/pool/agent-pool.js +2 -3
- package/dist/pool/agent-pool.js.map +1 -1
- package/dist/prompt/index.d.ts +8 -0
- package/dist/prompt/index.d.ts.map +1 -0
- package/dist/prompt/index.js +13 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/prompt-assembler.d.ts +145 -0
- package/dist/prompt/prompt-assembler.d.ts.map +1 -0
- package/dist/prompt/prompt-assembler.js +242 -0
- package/dist/prompt/prompt-assembler.js.map +1 -0
- package/dist/queue/index.d.ts +41 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +42 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/queue-poller.d.ts +107 -0
- package/dist/queue/queue-poller.d.ts.map +1 -0
- package/dist/queue/queue-poller.js +181 -0
- package/dist/queue/queue-poller.js.map +1 -0
- package/dist/queue/queue-store.d.ts +163 -0
- package/dist/queue/queue-store.d.ts.map +1 -0
- package/dist/queue/queue-store.js +421 -0
- package/dist/queue/queue-store.js.map +1 -0
- package/dist/repl/index.d.ts +1 -0
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +3 -1
- package/dist/repl/index.js.map +1 -1
- package/dist/repl/repl-interface.d.ts +40 -5
- package/dist/repl/repl-interface.d.ts.map +1 -1
- package/dist/repl/repl-interface.js +95 -17
- package/dist/repl/repl-interface.js.map +1 -1
- package/dist/repl/two-pane-renderer.d.ts +160 -0
- package/dist/repl/two-pane-renderer.d.ts.map +1 -0
- package/dist/repl/two-pane-renderer.js +276 -0
- package/dist/repl/two-pane-renderer.js.map +1 -0
- package/dist/trace/trace-pack.d.ts +182 -0
- package/dist/trace/trace-pack.d.ts.map +1 -0
- package/dist/trace/trace-pack.js +407 -0
- package/dist/trace/trace-pack.js.map +1 -0
- package/dist/web/index.d.ts +45 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +47 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/server.d.ts +71 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +329 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +10 -2
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two-Pane Renderer for CLI
|
|
3
|
+
* Per spec/18_CLI_TWO_PANE.md
|
|
4
|
+
*
|
|
5
|
+
* Provides 2-pane layout:
|
|
6
|
+
* - Upper pane: Log display (scrollable)
|
|
7
|
+
* - Lower pane: Input line (always 1 line, never interrupted by logs)
|
|
8
|
+
*
|
|
9
|
+
* Critical requirement: Input line must NEVER be disrupted by log output
|
|
10
|
+
* - Cursor position maintained
|
|
11
|
+
* - Input string maintained
|
|
12
|
+
* - Prompt display maintained
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Running task display info
|
|
16
|
+
* Per spec/18: RUNNING task-1234 | 12.3s | processing
|
|
17
|
+
*/
|
|
18
|
+
export interface RunningInfo {
|
|
19
|
+
taskId: string;
|
|
20
|
+
elapsedMs: number;
|
|
21
|
+
status: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Complete task display info
|
|
25
|
+
* Per spec/18: Result summary, files modified, next operations
|
|
26
|
+
*/
|
|
27
|
+
export interface CompleteInfo {
|
|
28
|
+
taskId: string;
|
|
29
|
+
elapsedMs: number;
|
|
30
|
+
filesModified: string[];
|
|
31
|
+
nextOperations: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Two-Pane Renderer Configuration
|
|
35
|
+
*/
|
|
36
|
+
export interface TwoPaneRendererConfig {
|
|
37
|
+
/** Prompt string (default: 'pm> ') */
|
|
38
|
+
prompt?: string;
|
|
39
|
+
/** Output stream (default: process.stdout) */
|
|
40
|
+
output?: NodeJS.WriteStream;
|
|
41
|
+
/** Enable 2-pane mode (default: true if TTY) */
|
|
42
|
+
enabled?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Two-Pane Renderer
|
|
46
|
+
*
|
|
47
|
+
* Maintains separation between log output (upper pane) and input (lower pane).
|
|
48
|
+
* Ensures input line is never disrupted by log output.
|
|
49
|
+
*/
|
|
50
|
+
export declare class TwoPaneRenderer {
|
|
51
|
+
private readonly output;
|
|
52
|
+
private prompt;
|
|
53
|
+
private readonly enabled;
|
|
54
|
+
private inputBuffer;
|
|
55
|
+
private inputCursorPos;
|
|
56
|
+
private pendingLogs;
|
|
57
|
+
private flushTimeout;
|
|
58
|
+
private readonly FLUSH_DELAY_MS;
|
|
59
|
+
constructor(config?: TwoPaneRendererConfig);
|
|
60
|
+
/**
|
|
61
|
+
* Check if 2-pane mode is enabled
|
|
62
|
+
*/
|
|
63
|
+
isEnabled(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Write log message to upper pane
|
|
66
|
+
* Per spec/18: Logs flow in upper pane, never disrupting input line
|
|
67
|
+
*
|
|
68
|
+
* @param message - Log message to write
|
|
69
|
+
*/
|
|
70
|
+
writeLog(message: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Generate visual separator line
|
|
73
|
+
* Per spec: Visual separation between log pane and input pane
|
|
74
|
+
*/
|
|
75
|
+
private getSeparator;
|
|
76
|
+
/**
|
|
77
|
+
* Format a log line with visual prefix
|
|
78
|
+
* Adds dim pipe character to distinguish log output from input
|
|
79
|
+
*/
|
|
80
|
+
private formatLogLine;
|
|
81
|
+
/**
|
|
82
|
+
* Flush pending logs to output
|
|
83
|
+
* Preserves input line state
|
|
84
|
+
*/
|
|
85
|
+
private flushLogs;
|
|
86
|
+
/**
|
|
87
|
+
* Render the input line (prompt + buffer)
|
|
88
|
+
* Called after log output to restore input state
|
|
89
|
+
* Includes visual separator for 2-pane distinction
|
|
90
|
+
*/
|
|
91
|
+
private renderInputLine;
|
|
92
|
+
/**
|
|
93
|
+
* Update input state
|
|
94
|
+
* Called by readline integration to sync input buffer
|
|
95
|
+
*
|
|
96
|
+
* @param buffer - Current input buffer content
|
|
97
|
+
* @param cursorPos - Cursor position within buffer
|
|
98
|
+
*/
|
|
99
|
+
updateInput(buffer: string, cursorPos: number): void;
|
|
100
|
+
/**
|
|
101
|
+
* Clear input state (e.g., after command execution)
|
|
102
|
+
*/
|
|
103
|
+
clearInput(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Set prompt string
|
|
106
|
+
*/
|
|
107
|
+
setPrompt(prompt: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Get current prompt
|
|
110
|
+
*/
|
|
111
|
+
getPrompt(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Format RUNNING display
|
|
114
|
+
* Per spec/18: RUNNING task-1234 | 12.3s | processing
|
|
115
|
+
* Yellow color for visibility
|
|
116
|
+
*
|
|
117
|
+
* @param info - Running task info
|
|
118
|
+
* @returns Formatted string
|
|
119
|
+
*/
|
|
120
|
+
formatRunning(info: RunningInfo): string;
|
|
121
|
+
/**
|
|
122
|
+
* Show RUNNING status
|
|
123
|
+
* Per spec/18: 1 line only display
|
|
124
|
+
*
|
|
125
|
+
* @param info - Running task info
|
|
126
|
+
*/
|
|
127
|
+
showRunning(info: RunningInfo): void;
|
|
128
|
+
/**
|
|
129
|
+
* Format COMPLETE display
|
|
130
|
+
* Per spec/18:
|
|
131
|
+
* - Result summary (green for success)
|
|
132
|
+
* - Files modified list
|
|
133
|
+
* - Next operations
|
|
134
|
+
*
|
|
135
|
+
* @param info - Complete task info
|
|
136
|
+
* @returns Formatted lines
|
|
137
|
+
*/
|
|
138
|
+
formatComplete(info: CompleteInfo): string[];
|
|
139
|
+
/**
|
|
140
|
+
* Show COMPLETE status
|
|
141
|
+
* Per spec/18: Result summary, files modified, next operations
|
|
142
|
+
*
|
|
143
|
+
* @param info - Complete task info
|
|
144
|
+
*/
|
|
145
|
+
showComplete(info: CompleteInfo): void;
|
|
146
|
+
/**
|
|
147
|
+
* Force flush any pending logs immediately
|
|
148
|
+
* Used before exit or when immediate output is needed
|
|
149
|
+
*/
|
|
150
|
+
flush(): void;
|
|
151
|
+
/**
|
|
152
|
+
* Get current input buffer (for testing)
|
|
153
|
+
*/
|
|
154
|
+
getInputBuffer(): string;
|
|
155
|
+
/**
|
|
156
|
+
* Get current cursor position (for testing)
|
|
157
|
+
*/
|
|
158
|
+
getInputCursorPos(): number;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=two-pane-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"two-pane-renderer.d.ts","sourceRoot":"","sources":["../../src/repl/two-pane-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsCH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAGlC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAa;IAGnC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;gBAEzB,MAAM,GAAE,qBAA0B;IAY9C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAoB/B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;;OAGG;IACH,OAAO,CAAC,SAAS;IA8BjB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKpD;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IAKxC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIpC;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE;IAoB5C;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAOtC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAUb;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG5B"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Two-Pane Renderer for CLI
|
|
4
|
+
* Per spec/18_CLI_TWO_PANE.md
|
|
5
|
+
*
|
|
6
|
+
* Provides 2-pane layout:
|
|
7
|
+
* - Upper pane: Log display (scrollable)
|
|
8
|
+
* - Lower pane: Input line (always 1 line, never interrupted by logs)
|
|
9
|
+
*
|
|
10
|
+
* Critical requirement: Input line must NEVER be disrupted by log output
|
|
11
|
+
* - Cursor position maintained
|
|
12
|
+
* - Input string maintained
|
|
13
|
+
* - Prompt display maintained
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TwoPaneRenderer = void 0;
|
|
17
|
+
/**
|
|
18
|
+
* ANSI escape sequences for terminal control
|
|
19
|
+
*/
|
|
20
|
+
const ANSI = {
|
|
21
|
+
// Cursor control
|
|
22
|
+
SAVE_CURSOR: '\x1b[s',
|
|
23
|
+
RESTORE_CURSOR: '\x1b[u',
|
|
24
|
+
MOVE_TO_COL: (col) => `\x1b[${col}G`,
|
|
25
|
+
MOVE_UP: (n) => `\x1b[${n}A`,
|
|
26
|
+
MOVE_DOWN: (n) => `\x1b[${n}B`,
|
|
27
|
+
MOVE_TO: (row, col) => `\x1b[${row};${col}H`,
|
|
28
|
+
// Line control
|
|
29
|
+
CLEAR_LINE: '\x1b[2K',
|
|
30
|
+
CLEAR_TO_END: '\x1b[K',
|
|
31
|
+
// Screen control
|
|
32
|
+
SCROLL_UP: '\x1b[S',
|
|
33
|
+
// Colors and styles
|
|
34
|
+
RESET: '\x1b[0m',
|
|
35
|
+
DIM: '\x1b[2m',
|
|
36
|
+
BOLD: '\x1b[1m',
|
|
37
|
+
CYAN: '\x1b[36m',
|
|
38
|
+
GREEN: '\x1b[32m',
|
|
39
|
+
YELLOW: '\x1b[33m',
|
|
40
|
+
BLUE: '\x1b[34m',
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Visual separator between log pane and input pane
|
|
44
|
+
* Default width: 60 characters
|
|
45
|
+
*/
|
|
46
|
+
const SEPARATOR_CHAR = '\u2500'; // Box drawing character: ─
|
|
47
|
+
const SEPARATOR_WIDTH = 60;
|
|
48
|
+
/**
|
|
49
|
+
* Two-Pane Renderer
|
|
50
|
+
*
|
|
51
|
+
* Maintains separation between log output (upper pane) and input (lower pane).
|
|
52
|
+
* Ensures input line is never disrupted by log output.
|
|
53
|
+
*/
|
|
54
|
+
class TwoPaneRenderer {
|
|
55
|
+
output;
|
|
56
|
+
prompt;
|
|
57
|
+
enabled;
|
|
58
|
+
// Input state (preserved across log writes)
|
|
59
|
+
inputBuffer = '';
|
|
60
|
+
inputCursorPos = 0;
|
|
61
|
+
// Debounce for high-frequency log output
|
|
62
|
+
pendingLogs = [];
|
|
63
|
+
flushTimeout = null;
|
|
64
|
+
FLUSH_DELAY_MS = 16; // ~60fps
|
|
65
|
+
constructor(config = {}) {
|
|
66
|
+
this.output = config.output || process.stdout;
|
|
67
|
+
this.prompt = config.prompt || 'pm> ';
|
|
68
|
+
// Enable 2-pane mode only if TTY
|
|
69
|
+
if (config.enabled !== undefined) {
|
|
70
|
+
this.enabled = config.enabled;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.enabled = this.output.isTTY === true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if 2-pane mode is enabled
|
|
78
|
+
*/
|
|
79
|
+
isEnabled() {
|
|
80
|
+
return this.enabled;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Write log message to upper pane
|
|
84
|
+
* Per spec/18: Logs flow in upper pane, never disrupting input line
|
|
85
|
+
*
|
|
86
|
+
* @param message - Log message to write
|
|
87
|
+
*/
|
|
88
|
+
writeLog(message) {
|
|
89
|
+
if (!this.enabled) {
|
|
90
|
+
// Fallback: use console.log for non-TTY
|
|
91
|
+
// This maintains compatibility with test mocks that capture console.log
|
|
92
|
+
// eslint-disable-next-line no-console
|
|
93
|
+
console.log(message);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// Add to pending logs for batched output
|
|
97
|
+
this.pendingLogs.push(message);
|
|
98
|
+
// Schedule flush
|
|
99
|
+
if (!this.flushTimeout) {
|
|
100
|
+
this.flushTimeout = setTimeout(() => {
|
|
101
|
+
this.flushLogs();
|
|
102
|
+
}, this.FLUSH_DELAY_MS);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Generate visual separator line
|
|
107
|
+
* Per spec: Visual separation between log pane and input pane
|
|
108
|
+
*/
|
|
109
|
+
getSeparator() {
|
|
110
|
+
// Use terminal width if available, otherwise default
|
|
111
|
+
const width = this.output.columns || SEPARATOR_WIDTH;
|
|
112
|
+
return ANSI.DIM + SEPARATOR_CHAR.repeat(Math.min(width, 120)) + ANSI.RESET;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Format a log line with visual prefix
|
|
116
|
+
* Adds dim pipe character to distinguish log output from input
|
|
117
|
+
*/
|
|
118
|
+
formatLogLine(message) {
|
|
119
|
+
// Add dim gray prefix to log lines for visual distinction
|
|
120
|
+
return `${ANSI.DIM}|${ANSI.RESET} ${message}`;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Flush pending logs to output
|
|
124
|
+
* Preserves input line state
|
|
125
|
+
*/
|
|
126
|
+
flushLogs() {
|
|
127
|
+
this.flushTimeout = null;
|
|
128
|
+
if (this.pendingLogs.length === 0) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const logs = this.pendingLogs;
|
|
132
|
+
this.pendingLogs = [];
|
|
133
|
+
// 1. Save cursor position and clear input line
|
|
134
|
+
this.output.write(ANSI.SAVE_CURSOR);
|
|
135
|
+
this.output.write(ANSI.MOVE_TO_COL(1));
|
|
136
|
+
this.output.write(ANSI.CLEAR_LINE);
|
|
137
|
+
// 2. Move cursor up to log area (if input is on screen)
|
|
138
|
+
// We write logs, then move back down and redraw input
|
|
139
|
+
// 3. Output all logs with visual prefix
|
|
140
|
+
for (const log of logs) {
|
|
141
|
+
this.output.write(this.formatLogLine(log) + '\n');
|
|
142
|
+
}
|
|
143
|
+
// 4. Redraw input line at current position (with separator)
|
|
144
|
+
this.renderInputLine();
|
|
145
|
+
// 5. Restore cursor to correct position in input
|
|
146
|
+
this.output.write(ANSI.MOVE_TO_COL(this.prompt.length + this.inputCursorPos + 1));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Render the input line (prompt + buffer)
|
|
150
|
+
* Called after log output to restore input state
|
|
151
|
+
* Includes visual separator for 2-pane distinction
|
|
152
|
+
*/
|
|
153
|
+
renderInputLine() {
|
|
154
|
+
// Show separator line above input
|
|
155
|
+
this.output.write(this.getSeparator() + '\n');
|
|
156
|
+
// Colorized prompt for visual distinction
|
|
157
|
+
const coloredPrompt = `${ANSI.BOLD}${ANSI.CYAN}${this.prompt}${ANSI.RESET}`;
|
|
158
|
+
this.output.write(coloredPrompt + this.inputBuffer);
|
|
159
|
+
this.output.write(ANSI.CLEAR_TO_END);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Update input state
|
|
163
|
+
* Called by readline integration to sync input buffer
|
|
164
|
+
*
|
|
165
|
+
* @param buffer - Current input buffer content
|
|
166
|
+
* @param cursorPos - Cursor position within buffer
|
|
167
|
+
*/
|
|
168
|
+
updateInput(buffer, cursorPos) {
|
|
169
|
+
this.inputBuffer = buffer;
|
|
170
|
+
this.inputCursorPos = cursorPos;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Clear input state (e.g., after command execution)
|
|
174
|
+
*/
|
|
175
|
+
clearInput() {
|
|
176
|
+
this.inputBuffer = '';
|
|
177
|
+
this.inputCursorPos = 0;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Set prompt string
|
|
181
|
+
*/
|
|
182
|
+
setPrompt(prompt) {
|
|
183
|
+
this.prompt = prompt;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get current prompt
|
|
187
|
+
*/
|
|
188
|
+
getPrompt() {
|
|
189
|
+
return this.prompt;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Format RUNNING display
|
|
193
|
+
* Per spec/18: RUNNING task-1234 | 12.3s | processing
|
|
194
|
+
* Yellow color for visibility
|
|
195
|
+
*
|
|
196
|
+
* @param info - Running task info
|
|
197
|
+
* @returns Formatted string
|
|
198
|
+
*/
|
|
199
|
+
formatRunning(info) {
|
|
200
|
+
const elapsed = (info.elapsedMs / 1000).toFixed(1);
|
|
201
|
+
return `${ANSI.YELLOW}RUNNING${ANSI.RESET} ${info.taskId} | ${elapsed}s | ${info.status}`;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Show RUNNING status
|
|
205
|
+
* Per spec/18: 1 line only display
|
|
206
|
+
*
|
|
207
|
+
* @param info - Running task info
|
|
208
|
+
*/
|
|
209
|
+
showRunning(info) {
|
|
210
|
+
this.writeLog(this.formatRunning(info));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Format COMPLETE display
|
|
214
|
+
* Per spec/18:
|
|
215
|
+
* - Result summary (green for success)
|
|
216
|
+
* - Files modified list
|
|
217
|
+
* - Next operations
|
|
218
|
+
*
|
|
219
|
+
* @param info - Complete task info
|
|
220
|
+
* @returns Formatted lines
|
|
221
|
+
*/
|
|
222
|
+
formatComplete(info) {
|
|
223
|
+
const elapsed = (info.elapsedMs / 1000).toFixed(1);
|
|
224
|
+
const lines = [];
|
|
225
|
+
lines.push(`${ANSI.GREEN}COMPLETE${ANSI.RESET} ${info.taskId} | ${elapsed}s`);
|
|
226
|
+
lines.push('');
|
|
227
|
+
if (info.filesModified.length > 0) {
|
|
228
|
+
lines.push(`${ANSI.BOLD}Files modified:${ANSI.RESET}`);
|
|
229
|
+
for (const file of info.filesModified) {
|
|
230
|
+
lines.push(` ${ANSI.DIM}-${ANSI.RESET} ${file}`);
|
|
231
|
+
}
|
|
232
|
+
lines.push('');
|
|
233
|
+
}
|
|
234
|
+
lines.push(`${ANSI.BLUE}Next:${ANSI.RESET} ${info.nextOperations}`);
|
|
235
|
+
return lines;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Show COMPLETE status
|
|
239
|
+
* Per spec/18: Result summary, files modified, next operations
|
|
240
|
+
*
|
|
241
|
+
* @param info - Complete task info
|
|
242
|
+
*/
|
|
243
|
+
showComplete(info) {
|
|
244
|
+
const lines = this.formatComplete(info);
|
|
245
|
+
for (const line of lines) {
|
|
246
|
+
this.writeLog(line);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Force flush any pending logs immediately
|
|
251
|
+
* Used before exit or when immediate output is needed
|
|
252
|
+
*/
|
|
253
|
+
flush() {
|
|
254
|
+
if (this.flushTimeout) {
|
|
255
|
+
clearTimeout(this.flushTimeout);
|
|
256
|
+
this.flushTimeout = null;
|
|
257
|
+
}
|
|
258
|
+
if (this.pendingLogs.length > 0) {
|
|
259
|
+
this.flushLogs();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get current input buffer (for testing)
|
|
264
|
+
*/
|
|
265
|
+
getInputBuffer() {
|
|
266
|
+
return this.inputBuffer;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get current cursor position (for testing)
|
|
270
|
+
*/
|
|
271
|
+
getInputCursorPos() {
|
|
272
|
+
return this.inputCursorPos;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
exports.TwoPaneRenderer = TwoPaneRenderer;
|
|
276
|
+
//# sourceMappingURL=two-pane-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"two-pane-renderer.js","sourceRoot":"","sources":["../../src/repl/two-pane-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace Pack - Minimal JSONL logging for session/task state transitions
|
|
3
|
+
*
|
|
4
|
+
* Per spec:
|
|
5
|
+
* - JSONL format (one JSON object per line)
|
|
6
|
+
* - Records: session_id, task_group_id, task_id, state transitions, verification results
|
|
7
|
+
* - Verify function for output format compliance
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Trace entry types
|
|
11
|
+
*/
|
|
12
|
+
export type TraceEventType = 'SESSION_START' | 'SESSION_END' | 'TASK_GROUP_START' | 'TASK_GROUP_END' | 'TASK_START' | 'TASK_STATE_CHANGE' | 'TASK_END' | 'EXECUTOR_CALL' | 'EXECUTOR_RESULT' | 'VERIFICATION_START' | 'VERIFICATION_RESULT' | 'ERROR' | 'WARNING';
|
|
13
|
+
/**
|
|
14
|
+
* Base trace entry structure
|
|
15
|
+
*/
|
|
16
|
+
export interface TraceEntry {
|
|
17
|
+
/** ISO timestamp */
|
|
18
|
+
timestamp: string;
|
|
19
|
+
/** Event type */
|
|
20
|
+
event: TraceEventType;
|
|
21
|
+
/** Session identifier */
|
|
22
|
+
session_id: string;
|
|
23
|
+
/** Task group identifier (optional) */
|
|
24
|
+
task_group_id?: string;
|
|
25
|
+
/** Task identifier (optional) */
|
|
26
|
+
task_id?: string;
|
|
27
|
+
/** Previous state (for state transitions) */
|
|
28
|
+
from_state?: string;
|
|
29
|
+
/** New state (for state transitions) */
|
|
30
|
+
to_state?: string;
|
|
31
|
+
/** Additional data */
|
|
32
|
+
data?: Record<string, unknown>;
|
|
33
|
+
/** Verification result (for verification events) */
|
|
34
|
+
verification_result?: {
|
|
35
|
+
passed: boolean;
|
|
36
|
+
checks: Array<{
|
|
37
|
+
name: string;
|
|
38
|
+
passed: boolean;
|
|
39
|
+
message?: string;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
/** Error information */
|
|
43
|
+
error?: {
|
|
44
|
+
message: string;
|
|
45
|
+
code?: string;
|
|
46
|
+
stack?: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Trace Pack configuration
|
|
51
|
+
*/
|
|
52
|
+
export interface TracePackConfig {
|
|
53
|
+
/** Output directory for trace files */
|
|
54
|
+
outputDir: string;
|
|
55
|
+
/** Session ID */
|
|
56
|
+
sessionId: string;
|
|
57
|
+
/** Whether to buffer writes */
|
|
58
|
+
buffered?: boolean;
|
|
59
|
+
/** Max buffer size before flush */
|
|
60
|
+
maxBufferSize?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Trace Pack - JSONL logger for session/task state transitions
|
|
64
|
+
*/
|
|
65
|
+
export declare class TracePack {
|
|
66
|
+
private config;
|
|
67
|
+
private outputPath;
|
|
68
|
+
private buffer;
|
|
69
|
+
private writeStream;
|
|
70
|
+
constructor(config: TracePackConfig);
|
|
71
|
+
/**
|
|
72
|
+
* Get the output file path
|
|
73
|
+
*/
|
|
74
|
+
getOutputPath(): string;
|
|
75
|
+
/**
|
|
76
|
+
* Log a trace entry
|
|
77
|
+
*/
|
|
78
|
+
log(entry: Omit<TraceEntry, 'timestamp' | 'session_id'>): void;
|
|
79
|
+
/**
|
|
80
|
+
* Log session start
|
|
81
|
+
*/
|
|
82
|
+
sessionStart(data?: Record<string, unknown>): void;
|
|
83
|
+
/**
|
|
84
|
+
* Log session end
|
|
85
|
+
*/
|
|
86
|
+
sessionEnd(data?: Record<string, unknown>): void;
|
|
87
|
+
/**
|
|
88
|
+
* Log task group start
|
|
89
|
+
*/
|
|
90
|
+
taskGroupStart(taskGroupId: string, data?: Record<string, unknown>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Log task group end
|
|
93
|
+
*/
|
|
94
|
+
taskGroupEnd(taskGroupId: string, data?: Record<string, unknown>): void;
|
|
95
|
+
/**
|
|
96
|
+
* Log task start
|
|
97
|
+
*/
|
|
98
|
+
taskStart(taskGroupId: string, taskId: string, data?: Record<string, unknown>): void;
|
|
99
|
+
/**
|
|
100
|
+
* Log task state change
|
|
101
|
+
*/
|
|
102
|
+
taskStateChange(taskGroupId: string, taskId: string, fromState: string, toState: string, data?: Record<string, unknown>): void;
|
|
103
|
+
/**
|
|
104
|
+
* Log task end
|
|
105
|
+
*/
|
|
106
|
+
taskEnd(taskGroupId: string, taskId: string, finalState: string, data?: Record<string, unknown>): void;
|
|
107
|
+
/**
|
|
108
|
+
* Log executor call
|
|
109
|
+
*/
|
|
110
|
+
executorCall(taskGroupId: string, taskId: string, data?: Record<string, unknown>): void;
|
|
111
|
+
/**
|
|
112
|
+
* Log executor result
|
|
113
|
+
*/
|
|
114
|
+
executorResult(taskGroupId: string, taskId: string, status: string, data?: Record<string, unknown>): void;
|
|
115
|
+
/**
|
|
116
|
+
* Log verification start
|
|
117
|
+
*/
|
|
118
|
+
verificationStart(taskGroupId: string, taskId: string, data?: Record<string, unknown>): void;
|
|
119
|
+
/**
|
|
120
|
+
* Log verification result
|
|
121
|
+
*/
|
|
122
|
+
verificationResult(taskGroupId: string, taskId: string, passed: boolean, checks: Array<{
|
|
123
|
+
name: string;
|
|
124
|
+
passed: boolean;
|
|
125
|
+
message?: string;
|
|
126
|
+
}>, data?: Record<string, unknown>): void;
|
|
127
|
+
/**
|
|
128
|
+
* Log error
|
|
129
|
+
*/
|
|
130
|
+
error(message: string, code?: string, taskGroupId?: string, taskId?: string): void;
|
|
131
|
+
/**
|
|
132
|
+
* Log warning
|
|
133
|
+
*/
|
|
134
|
+
warning(message: string, taskGroupId?: string, taskId?: string): void;
|
|
135
|
+
/**
|
|
136
|
+
* Flush buffer to file
|
|
137
|
+
*/
|
|
138
|
+
flush(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Write single entry to file
|
|
141
|
+
*/
|
|
142
|
+
private writeEntry;
|
|
143
|
+
/**
|
|
144
|
+
* Close the trace pack
|
|
145
|
+
*/
|
|
146
|
+
close(): void;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Verify trace file format compliance
|
|
150
|
+
*/
|
|
151
|
+
export interface VerifyResult {
|
|
152
|
+
valid: boolean;
|
|
153
|
+
entryCount: number;
|
|
154
|
+
errors: Array<{
|
|
155
|
+
line: number;
|
|
156
|
+
error: string;
|
|
157
|
+
}>;
|
|
158
|
+
warnings: Array<{
|
|
159
|
+
line: number;
|
|
160
|
+
warning: string;
|
|
161
|
+
}>;
|
|
162
|
+
summary: {
|
|
163
|
+
sessionStarts: number;
|
|
164
|
+
sessionEnds: number;
|
|
165
|
+
taskGroupStarts: number;
|
|
166
|
+
taskGroupEnds: number;
|
|
167
|
+
taskStarts: number;
|
|
168
|
+
taskEnds: number;
|
|
169
|
+
stateChanges: number;
|
|
170
|
+
verificationResults: number;
|
|
171
|
+
errors: number;
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Verify a trace file for format compliance
|
|
176
|
+
*/
|
|
177
|
+
export declare function verifyTraceFile(filePath: string): VerifyResult;
|
|
178
|
+
/**
|
|
179
|
+
* Read and parse a trace file
|
|
180
|
+
*/
|
|
181
|
+
export declare function readTraceFile(filePath: string): TraceEntry[];
|
|
182
|
+
//# sourceMappingURL=trace-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-pack.d.ts","sourceRoot":"","sources":["../../src/trace/trace-pack.ts"],"names":[],"mappings":"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"}
|