247-cli 2.21.1 → 2.23.2
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/agent/dist/config.d.ts +4 -7
- package/agent/dist/config.d.ts.map +1 -1
- package/agent/dist/config.js +1 -2
- package/agent/dist/config.js.map +1 -1
- package/agent/dist/db/index.d.ts +0 -6
- package/agent/dist/db/index.d.ts.map +1 -1
- package/agent/dist/db/index.js +142 -88
- package/agent/dist/db/index.js.map +1 -1
- package/agent/dist/db/schema.d.ts +3 -50
- package/agent/dist/db/schema.d.ts.map +1 -1
- package/agent/dist/db/schema.js +2 -67
- package/agent/dist/db/schema.js.map +1 -1
- package/agent/dist/db/sessions.d.ts +0 -20
- package/agent/dist/db/sessions.d.ts.map +1 -1
- package/agent/dist/db/sessions.js +0 -86
- package/agent/dist/db/sessions.js.map +1 -1
- package/agent/dist/index.js +1 -0
- package/agent/dist/index.js.map +1 -1
- package/agent/dist/logger.d.ts +0 -2
- package/agent/dist/logger.d.ts.map +1 -1
- package/agent/dist/logger.js +0 -4
- package/agent/dist/logger.js.map +1 -1
- package/agent/dist/routes/attention.d.ts +10 -0
- package/agent/dist/routes/attention.d.ts.map +1 -0
- package/agent/dist/routes/attention.js +123 -0
- package/agent/dist/routes/attention.js.map +1 -0
- package/agent/dist/routes/index.d.ts +3 -7
- package/agent/dist/routes/index.d.ts.map +1 -1
- package/agent/dist/routes/index.js +3 -7
- package/agent/dist/routes/index.js.map +1 -1
- package/agent/dist/routes/pair.d.ts +26 -0
- package/agent/dist/routes/pair.d.ts.map +1 -0
- package/agent/dist/routes/pair.js +381 -0
- package/agent/dist/routes/pair.js.map +1 -0
- package/agent/dist/routes/projects.d.ts +2 -1
- package/agent/dist/routes/projects.d.ts.map +1 -1
- package/agent/dist/routes/projects.js +7 -39
- package/agent/dist/routes/projects.js.map +1 -1
- package/agent/dist/routes/sessions.d.ts.map +1 -1
- package/agent/dist/routes/sessions.js +38 -97
- package/agent/dist/routes/sessions.js.map +1 -1
- package/agent/dist/server.d.ts.map +1 -1
- package/agent/dist/server.js +11 -81
- package/agent/dist/server.js.map +1 -1
- package/agent/dist/setup-hooks.d.ts +10 -0
- package/agent/dist/setup-hooks.d.ts.map +1 -0
- package/agent/dist/setup-hooks.js +157 -0
- package/agent/dist/setup-hooks.js.map +1 -0
- package/agent/dist/status.d.ts.map +1 -1
- package/agent/dist/status.js +0 -8
- package/agent/dist/status.js.map +1 -1
- package/agent/dist/websocket-handlers.d.ts.map +1 -1
- package/agent/dist/websocket-handlers.js +2 -139
- package/agent/dist/websocket-handlers.js.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.d.ts +0 -147
- package/agent/node_modules/247-shared/dist/types/index.d.ts.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.js +0 -16
- package/agent/node_modules/247-shared/dist/types/index.js.map +1 -1
- package/agent/node_modules/247-shared/package.json +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/agent/dist/db/environments.d.ts +0 -60
- package/agent/dist/db/environments.d.ts.map +0 -1
- package/agent/dist/db/environments.js +0 -235
- package/agent/dist/db/environments.js.map +0 -1
- package/agent/dist/db/events.d.ts +0 -46
- package/agent/dist/db/events.d.ts.map +0 -1
- package/agent/dist/db/events.js +0 -193
- package/agent/dist/db/events.js.map +0 -1
- package/agent/dist/db/push-subscriptions.d.ts +0 -44
- package/agent/dist/db/push-subscriptions.d.ts.map +0 -1
- package/agent/dist/db/push-subscriptions.js +0 -98
- package/agent/dist/db/push-subscriptions.js.map +0 -1
- package/agent/dist/editor.d.ts +0 -18
- package/agent/dist/editor.d.ts.map +0 -1
- package/agent/dist/editor.js +0 -222
- package/agent/dist/editor.js.map +0 -1
- package/agent/dist/environments.d.ts +0 -59
- package/agent/dist/environments.d.ts.map +0 -1
- package/agent/dist/environments.js +0 -229
- package/agent/dist/environments.js.map +0 -1
- package/agent/dist/git.d.ts +0 -39
- package/agent/dist/git.d.ts.map +0 -1
- package/agent/dist/git.js +0 -436
- package/agent/dist/git.js.map +0 -1
- package/agent/dist/heartbeat-monitor.d.ts +0 -24
- package/agent/dist/heartbeat-monitor.d.ts.map +0 -1
- package/agent/dist/heartbeat-monitor.js +0 -105
- package/agent/dist/heartbeat-monitor.js.map +0 -1
- package/agent/dist/push/sender.d.ts +0 -26
- package/agent/dist/push/sender.d.ts.map +0 -1
- package/agent/dist/push/sender.js +0 -122
- package/agent/dist/push/sender.js.map +0 -1
- package/agent/dist/push/vapid.d.ts +0 -25
- package/agent/dist/push/vapid.d.ts.map +0 -1
- package/agent/dist/push/vapid.js +0 -81
- package/agent/dist/push/vapid.js.map +0 -1
- package/agent/dist/routes/editor.d.ts +0 -9
- package/agent/dist/routes/editor.d.ts.map +0 -1
- package/agent/dist/routes/editor.js +0 -63
- package/agent/dist/routes/editor.js.map +0 -1
- package/agent/dist/routes/environments.d.ts +0 -6
- package/agent/dist/routes/environments.d.ts.map +0 -1
- package/agent/dist/routes/environments.js +0 -94
- package/agent/dist/routes/environments.js.map +0 -1
- package/agent/dist/routes/files.d.ts +0 -6
- package/agent/dist/routes/files.d.ts.map +0 -1
- package/agent/dist/routes/files.js +0 -84
- package/agent/dist/routes/files.js.map +0 -1
- package/agent/dist/routes/heartbeat.d.ts +0 -10
- package/agent/dist/routes/heartbeat.d.ts.map +0 -1
- package/agent/dist/routes/heartbeat.js +0 -124
- package/agent/dist/routes/heartbeat.js.map +0 -1
- package/agent/dist/routes/notification.d.ts +0 -9
- package/agent/dist/routes/notification.d.ts.map +0 -1
- package/agent/dist/routes/notification.js +0 -172
- package/agent/dist/routes/notification.js.map +0 -1
- package/agent/dist/routes/push.d.ts +0 -7
- package/agent/dist/routes/push.d.ts.map +0 -1
- package/agent/dist/routes/push.js +0 -98
- package/agent/dist/routes/push.js.map +0 -1
- package/agent/dist/routes/stop.d.ts +0 -9
- package/agent/dist/routes/stop.d.ts.map +0 -1
- package/agent/dist/routes/stop.js +0 -121
- package/agent/dist/routes/stop.js.map +0 -1
- package/agent/dist/services/stream-json.d.ts +0 -109
- package/agent/dist/services/stream-json.d.ts.map +0 -1
- package/agent/dist/services/stream-json.js +0 -335
- package/agent/dist/services/stream-json.js.map +0 -1
- package/agent/dist/setup-statusline.d.ts +0 -10
- package/agent/dist/setup-statusline.d.ts.map +0 -1
- package/agent/dist/setup-statusline.js +0 -234
- package/agent/dist/setup-statusline.js.map +0 -1
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StreamJsonSession - Manages Claude sessions using stream-json format
|
|
3
|
-
*
|
|
4
|
-
* Instead of tmux + terminal parsing, this spawns Claude with:
|
|
5
|
-
* --input-format stream-json --output-format stream-json --verbose
|
|
6
|
-
*
|
|
7
|
-
* Benefits:
|
|
8
|
-
* - Structured events (no ANSI parsing)
|
|
9
|
-
* - Programmatic tool call interception
|
|
10
|
-
* - Direct cost/token tracking
|
|
11
|
-
* - Bidirectional communication via stdin/stdout
|
|
12
|
-
*/
|
|
13
|
-
import { EventEmitter } from 'events';
|
|
14
|
-
import type { StreamJsonResultEvent, SessionEvent, SessionStatus } from '247-shared';
|
|
15
|
-
export interface StreamJsonSessionOptions {
|
|
16
|
-
cwd: string;
|
|
17
|
-
sessionName: string;
|
|
18
|
-
prompt: string;
|
|
19
|
-
model?: string;
|
|
20
|
-
trustMode?: boolean;
|
|
21
|
-
envVars?: Record<string, string>;
|
|
22
|
-
onEvent?: (event: SessionEvent) => void;
|
|
23
|
-
onStatusChange?: (status: SessionStatus) => void;
|
|
24
|
-
onComplete?: (result: StreamJsonResultEvent) => void;
|
|
25
|
-
}
|
|
26
|
-
export type StreamSessionStatus = 'starting' | 'running' | 'waiting_input' | 'completed' | 'error';
|
|
27
|
-
export declare class StreamJsonSession extends EventEmitter {
|
|
28
|
-
private process;
|
|
29
|
-
private readline;
|
|
30
|
-
private options;
|
|
31
|
-
private events;
|
|
32
|
-
private status;
|
|
33
|
-
private claudeSessionId;
|
|
34
|
-
private model;
|
|
35
|
-
constructor(options: StreamJsonSessionOptions);
|
|
36
|
-
/**
|
|
37
|
-
* Start the Claude process
|
|
38
|
-
*/
|
|
39
|
-
start(): void;
|
|
40
|
-
/**
|
|
41
|
-
* Parse a line of NDJSON output
|
|
42
|
-
*/
|
|
43
|
-
private parseLine;
|
|
44
|
-
/**
|
|
45
|
-
* Handle a parsed stream event
|
|
46
|
-
*/
|
|
47
|
-
private handleEvent;
|
|
48
|
-
/**
|
|
49
|
-
* Handle system init event
|
|
50
|
-
*/
|
|
51
|
-
private handleInitEvent;
|
|
52
|
-
/**
|
|
53
|
-
* Handle assistant message event
|
|
54
|
-
*/
|
|
55
|
-
private handleAssistantEvent;
|
|
56
|
-
/**
|
|
57
|
-
* Handle user message event (tool results)
|
|
58
|
-
*/
|
|
59
|
-
private handleUserEvent;
|
|
60
|
-
/**
|
|
61
|
-
* Handle final result event
|
|
62
|
-
*/
|
|
63
|
-
private handleResultEvent;
|
|
64
|
-
/**
|
|
65
|
-
* Add event and notify callback
|
|
66
|
-
*/
|
|
67
|
-
private addEvent;
|
|
68
|
-
/**
|
|
69
|
-
* Handle process error
|
|
70
|
-
*/
|
|
71
|
-
private handleError;
|
|
72
|
-
/**
|
|
73
|
-
* Send a user message via stdin
|
|
74
|
-
*/
|
|
75
|
-
sendUserMessage(content: string): void;
|
|
76
|
-
/**
|
|
77
|
-
* Send a tool result via stdin (for responding to AskUserQuestion, etc.)
|
|
78
|
-
*/
|
|
79
|
-
sendToolResult(toolUseId: string, result: string, isError?: boolean): void;
|
|
80
|
-
/**
|
|
81
|
-
* Kill the process
|
|
82
|
-
*/
|
|
83
|
-
kill(): void;
|
|
84
|
-
/**
|
|
85
|
-
* Get all events
|
|
86
|
-
*/
|
|
87
|
-
getEvents(): SessionEvent[];
|
|
88
|
-
/**
|
|
89
|
-
* Get current status
|
|
90
|
-
*/
|
|
91
|
-
getStatus(): StreamSessionStatus;
|
|
92
|
-
/**
|
|
93
|
-
* Get Claude session ID
|
|
94
|
-
*/
|
|
95
|
-
getClaudeSessionId(): string | null;
|
|
96
|
-
/**
|
|
97
|
-
* Get model name
|
|
98
|
-
*/
|
|
99
|
-
getModel(): string | null;
|
|
100
|
-
/**
|
|
101
|
-
* Check if process is running
|
|
102
|
-
*/
|
|
103
|
-
isRunning(): boolean;
|
|
104
|
-
}
|
|
105
|
-
export declare function getStreamSession(sessionName: string): StreamJsonSession | undefined;
|
|
106
|
-
export declare function registerStreamSession(sessionName: string, session: StreamJsonSession): void;
|
|
107
|
-
export declare function unregisterStreamSession(sessionName: string): void;
|
|
108
|
-
export declare function getAllStreamSessions(): Map<string, StreamJsonSession>;
|
|
109
|
-
//# sourceMappingURL=stream-json.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-json.d.ts","sourceRoot":"","sources":["../../src/services/stream-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAKV,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,WAAW,GAAG,OAAO,CAAC;AAEnG,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,KAAK,CAAuB;gBAExB,OAAO,EAAE,wBAAwB;IAK7C;;OAEG;IACH,KAAK,IAAI,IAAI;IA8Db;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAMhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAiBtC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI;IA6BxE;;OAEG;IACH,IAAI,IAAI,IAAI;IAWZ;;OAEG;IACH,SAAS,IAAI,YAAY,EAAE;IAI3B;;OAEG;IACH,SAAS,IAAI,mBAAmB;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAKD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEnF;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAE3F;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAErE"}
|
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StreamJsonSession - Manages Claude sessions using stream-json format
|
|
3
|
-
*
|
|
4
|
-
* Instead of tmux + terminal parsing, this spawns Claude with:
|
|
5
|
-
* --input-format stream-json --output-format stream-json --verbose
|
|
6
|
-
*
|
|
7
|
-
* Benefits:
|
|
8
|
-
* - Structured events (no ANSI parsing)
|
|
9
|
-
* - Programmatic tool call interception
|
|
10
|
-
* - Direct cost/token tracking
|
|
11
|
-
* - Bidirectional communication via stdin/stdout
|
|
12
|
-
*/
|
|
13
|
-
import { spawn } from 'child_process';
|
|
14
|
-
import { EventEmitter } from 'events';
|
|
15
|
-
import { createInterface } from 'readline';
|
|
16
|
-
import { randomUUID } from 'crypto';
|
|
17
|
-
export class StreamJsonSession extends EventEmitter {
|
|
18
|
-
process = null;
|
|
19
|
-
readline = null;
|
|
20
|
-
options;
|
|
21
|
-
events = [];
|
|
22
|
-
status = 'starting';
|
|
23
|
-
claudeSessionId = null;
|
|
24
|
-
model = null;
|
|
25
|
-
constructor(options) {
|
|
26
|
-
super();
|
|
27
|
-
this.options = options;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Start the Claude process
|
|
31
|
-
*/
|
|
32
|
-
start() {
|
|
33
|
-
const args = ['--input-format', 'stream-json', '--output-format', 'stream-json', '--verbose'];
|
|
34
|
-
if (this.options.trustMode) {
|
|
35
|
-
args.push('--dangerously-skip-permissions');
|
|
36
|
-
}
|
|
37
|
-
if (this.options.model) {
|
|
38
|
-
args.push('--model', this.options.model);
|
|
39
|
-
}
|
|
40
|
-
// Build environment
|
|
41
|
-
const env = {
|
|
42
|
-
...process.env,
|
|
43
|
-
...this.options.envVars,
|
|
44
|
-
};
|
|
45
|
-
console.log(`[StreamJson] Starting session ${this.options.sessionName} in ${this.options.cwd}`);
|
|
46
|
-
this.process = spawn('claude', args, {
|
|
47
|
-
cwd: this.options.cwd,
|
|
48
|
-
env,
|
|
49
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
50
|
-
});
|
|
51
|
-
if (!this.process.stdout || !this.process.stdin) {
|
|
52
|
-
this.handleError(new Error('Failed to get process streams'));
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
// Parse NDJSON from stdout
|
|
56
|
-
this.readline = createInterface({
|
|
57
|
-
input: this.process.stdout,
|
|
58
|
-
crlfDelay: Infinity,
|
|
59
|
-
});
|
|
60
|
-
this.readline.on('line', (line) => {
|
|
61
|
-
this.parseLine(line);
|
|
62
|
-
});
|
|
63
|
-
this.process.stderr?.on('data', (data) => {
|
|
64
|
-
console.error(`[StreamJson] stderr: ${data.toString()}`);
|
|
65
|
-
});
|
|
66
|
-
this.process.on('error', (err) => {
|
|
67
|
-
this.handleError(err);
|
|
68
|
-
});
|
|
69
|
-
this.process.on('exit', (code) => {
|
|
70
|
-
console.log(`[StreamJson] Process exited with code ${code}`);
|
|
71
|
-
if (this.status !== 'completed') {
|
|
72
|
-
this.status = code === 0 ? 'completed' : 'error';
|
|
73
|
-
this.emit('exit', code);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
// Send initial prompt
|
|
77
|
-
this.sendUserMessage(this.options.prompt);
|
|
78
|
-
this.status = 'running';
|
|
79
|
-
this.options.onStatusChange?.('working');
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Parse a line of NDJSON output
|
|
83
|
-
*/
|
|
84
|
-
parseLine(line) {
|
|
85
|
-
if (!line.trim())
|
|
86
|
-
return;
|
|
87
|
-
try {
|
|
88
|
-
const event = JSON.parse(line);
|
|
89
|
-
this.handleEvent(event);
|
|
90
|
-
}
|
|
91
|
-
catch (_err) {
|
|
92
|
-
console.error(`[StreamJson] Failed to parse line: ${line.substring(0, 100)}...`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Handle a parsed stream event
|
|
97
|
-
*/
|
|
98
|
-
handleEvent(event) {
|
|
99
|
-
switch (event.type) {
|
|
100
|
-
case 'system':
|
|
101
|
-
this.handleInitEvent(event);
|
|
102
|
-
break;
|
|
103
|
-
case 'assistant':
|
|
104
|
-
this.handleAssistantEvent(event);
|
|
105
|
-
break;
|
|
106
|
-
case 'user':
|
|
107
|
-
this.handleUserEvent(event);
|
|
108
|
-
break;
|
|
109
|
-
case 'result':
|
|
110
|
-
this.handleResultEvent(event);
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Handle system init event
|
|
116
|
-
*/
|
|
117
|
-
handleInitEvent(event) {
|
|
118
|
-
this.claudeSessionId = event.session_id;
|
|
119
|
-
this.model = event.model;
|
|
120
|
-
const sessionEvent = {
|
|
121
|
-
id: randomUUID(),
|
|
122
|
-
sessionName: this.options.sessionName,
|
|
123
|
-
timestamp: Date.now(),
|
|
124
|
-
eventType: 'init',
|
|
125
|
-
};
|
|
126
|
-
this.addEvent(sessionEvent);
|
|
127
|
-
this.emit('init', event);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Handle assistant message event
|
|
131
|
-
*/
|
|
132
|
-
handleAssistantEvent(event) {
|
|
133
|
-
for (const content of event.message.content) {
|
|
134
|
-
if (content.type === 'text') {
|
|
135
|
-
const sessionEvent = {
|
|
136
|
-
id: randomUUID(),
|
|
137
|
-
sessionName: this.options.sessionName,
|
|
138
|
-
timestamp: Date.now(),
|
|
139
|
-
eventType: 'text',
|
|
140
|
-
text: content.text,
|
|
141
|
-
};
|
|
142
|
-
this.addEvent(sessionEvent);
|
|
143
|
-
this.emit('text', content.text);
|
|
144
|
-
}
|
|
145
|
-
else if (content.type === 'tool_use') {
|
|
146
|
-
const sessionEvent = {
|
|
147
|
-
id: randomUUID(),
|
|
148
|
-
sessionName: this.options.sessionName,
|
|
149
|
-
timestamp: Date.now(),
|
|
150
|
-
eventType: 'tool_call',
|
|
151
|
-
toolName: content.name,
|
|
152
|
-
toolInput: content.input,
|
|
153
|
-
toolId: content.id,
|
|
154
|
-
};
|
|
155
|
-
this.addEvent(sessionEvent);
|
|
156
|
-
this.emit('tool_call', {
|
|
157
|
-
name: content.name,
|
|
158
|
-
input: content.input,
|
|
159
|
-
id: content.id,
|
|
160
|
-
});
|
|
161
|
-
// Check if this is AskUserQuestion - we need to handle it specially
|
|
162
|
-
if (content.name === 'AskUserQuestion') {
|
|
163
|
-
this.status = 'waiting_input';
|
|
164
|
-
this.options.onStatusChange?.('needs_attention');
|
|
165
|
-
this.emit('needs_input', content.input);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Handle user message event (tool results)
|
|
172
|
-
*/
|
|
173
|
-
handleUserEvent(event) {
|
|
174
|
-
for (const content of event.message.content) {
|
|
175
|
-
if (content.type === 'tool_result') {
|
|
176
|
-
const sessionEvent = {
|
|
177
|
-
id: randomUUID(),
|
|
178
|
-
sessionName: this.options.sessionName,
|
|
179
|
-
timestamp: Date.now(),
|
|
180
|
-
eventType: 'tool_result',
|
|
181
|
-
toolId: content.tool_use_id,
|
|
182
|
-
toolOutput: event.tool_use_result?.stdout || content.content,
|
|
183
|
-
toolError: content.is_error,
|
|
184
|
-
};
|
|
185
|
-
this.addEvent(sessionEvent);
|
|
186
|
-
this.emit('tool_result', {
|
|
187
|
-
id: content.tool_use_id,
|
|
188
|
-
output: event.tool_use_result?.stdout || content.content,
|
|
189
|
-
error: content.is_error,
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Handle final result event
|
|
196
|
-
*/
|
|
197
|
-
handleResultEvent(event) {
|
|
198
|
-
const sessionEvent = {
|
|
199
|
-
id: randomUUID(),
|
|
200
|
-
sessionName: this.options.sessionName,
|
|
201
|
-
timestamp: Date.now(),
|
|
202
|
-
eventType: 'result',
|
|
203
|
-
success: !event.is_error,
|
|
204
|
-
durationMs: event.duration_ms,
|
|
205
|
-
totalCostUsd: event.total_cost_usd,
|
|
206
|
-
numTurns: event.num_turns,
|
|
207
|
-
};
|
|
208
|
-
this.addEvent(sessionEvent);
|
|
209
|
-
this.status = 'completed';
|
|
210
|
-
this.options.onStatusChange?.('idle');
|
|
211
|
-
this.options.onComplete?.(event);
|
|
212
|
-
this.emit('result', event);
|
|
213
|
-
this.emit('complete', event);
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Add event and notify callback
|
|
217
|
-
*/
|
|
218
|
-
addEvent(event) {
|
|
219
|
-
this.events.push(event);
|
|
220
|
-
this.options.onEvent?.(event);
|
|
221
|
-
this.emit('event', event);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Handle process error
|
|
225
|
-
*/
|
|
226
|
-
handleError(err) {
|
|
227
|
-
console.error(`[StreamJson] Error in session ${this.options.sessionName}:`, err);
|
|
228
|
-
this.status = 'error';
|
|
229
|
-
this.options.onStatusChange?.('idle');
|
|
230
|
-
this.emit('error', err);
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Send a user message via stdin
|
|
234
|
-
*/
|
|
235
|
-
sendUserMessage(content) {
|
|
236
|
-
if (!this.process?.stdin?.writable) {
|
|
237
|
-
console.error(`[StreamJson] Cannot send message - stdin not writable`);
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
const message = {
|
|
241
|
-
type: 'user',
|
|
242
|
-
message: {
|
|
243
|
-
role: 'user',
|
|
244
|
-
content: content,
|
|
245
|
-
},
|
|
246
|
-
};
|
|
247
|
-
this.process.stdin.write(JSON.stringify(message) + '\n');
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Send a tool result via stdin (for responding to AskUserQuestion, etc.)
|
|
251
|
-
*/
|
|
252
|
-
sendToolResult(toolUseId, result, isError = false) {
|
|
253
|
-
if (!this.process?.stdin?.writable) {
|
|
254
|
-
console.error(`[StreamJson] Cannot send tool result - stdin not writable`);
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
const message = {
|
|
258
|
-
type: 'user',
|
|
259
|
-
message: {
|
|
260
|
-
role: 'user',
|
|
261
|
-
content: [
|
|
262
|
-
{
|
|
263
|
-
type: 'tool_result',
|
|
264
|
-
tool_use_id: toolUseId,
|
|
265
|
-
content: result,
|
|
266
|
-
is_error: isError,
|
|
267
|
-
},
|
|
268
|
-
],
|
|
269
|
-
},
|
|
270
|
-
};
|
|
271
|
-
this.process.stdin.write(JSON.stringify(message) + '\n');
|
|
272
|
-
if (this.status === 'waiting_input') {
|
|
273
|
-
this.status = 'running';
|
|
274
|
-
this.options.onStatusChange?.('working');
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Kill the process
|
|
279
|
-
*/
|
|
280
|
-
kill() {
|
|
281
|
-
if (this.process) {
|
|
282
|
-
this.process.kill('SIGTERM');
|
|
283
|
-
this.process = null;
|
|
284
|
-
}
|
|
285
|
-
if (this.readline) {
|
|
286
|
-
this.readline.close();
|
|
287
|
-
this.readline = null;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Get all events
|
|
292
|
-
*/
|
|
293
|
-
getEvents() {
|
|
294
|
-
return [...this.events];
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Get current status
|
|
298
|
-
*/
|
|
299
|
-
getStatus() {
|
|
300
|
-
return this.status;
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Get Claude session ID
|
|
304
|
-
*/
|
|
305
|
-
getClaudeSessionId() {
|
|
306
|
-
return this.claudeSessionId;
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Get model name
|
|
310
|
-
*/
|
|
311
|
-
getModel() {
|
|
312
|
-
return this.model;
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Check if process is running
|
|
316
|
-
*/
|
|
317
|
-
isRunning() {
|
|
318
|
-
return this.status === 'running' || this.status === 'waiting_input';
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
// Registry for active stream-json sessions
|
|
322
|
-
const activeSessions = new Map();
|
|
323
|
-
export function getStreamSession(sessionName) {
|
|
324
|
-
return activeSessions.get(sessionName);
|
|
325
|
-
}
|
|
326
|
-
export function registerStreamSession(sessionName, session) {
|
|
327
|
-
activeSessions.set(sessionName, session);
|
|
328
|
-
}
|
|
329
|
-
export function unregisterStreamSession(sessionName) {
|
|
330
|
-
activeSessions.delete(sessionName);
|
|
331
|
-
}
|
|
332
|
-
export function getAllStreamSessions() {
|
|
333
|
-
return activeSessions;
|
|
334
|
-
}
|
|
335
|
-
//# sourceMappingURL=stream-json.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-json.js","sourceRoot":"","sources":["../../src/services/stream-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAa,MAAM,UAAU,CAAC;AAUtD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAgBpC,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACzC,OAAO,GAAwB,IAAI,CAAC;IACpC,QAAQ,GAAqB,IAAI,CAAC;IAClC,OAAO,CAA2B;IAClC,MAAM,GAAmB,EAAE,CAAC;IAC5B,MAAM,GAAwB,UAAU,CAAC;IACzC,eAAe,GAAkB,IAAI,CAAC;IACtC,KAAK,GAAkB,IAAI,CAAC;IAEpC,YAAY,OAAiC;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,IAAI,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAE9F,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,oBAAoB;QACpB,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;SACxB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;YACnC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YACrB,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC1B,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QAEzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAsB;QACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,CAAC,eAAe,CAAC,KAA4B,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,oBAAoB,CAAC,KAAiC,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,eAAe,CAAC,KAA4B,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,iBAAiB,CAAC,KAA8B,CAAC,CAAC;gBACvD,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAA0B;QAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAEzB,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,MAAM;SAClB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,KAA+B;QAC1D,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAiB;oBACjC,EAAE,EAAE,UAAU,EAAE;oBAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,SAAS,EAAE,MAAM;oBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAiB;oBACjC,EAAE,EAAE,UAAU,EAAE;oBAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,SAAS,EAAE,WAAW;oBACtB,QAAQ,EAAE,OAAO,CAAC,IAAI;oBACtB,SAAS,EAAE,OAAO,CAAC,KAAK;oBACxB,MAAM,EAAE,OAAO,CAAC,EAAE;iBACnB,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;iBACf,CAAC,CAAC;gBAEH,oEAAoE;gBACpE,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAA0B;QAChD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAiB;oBACjC,EAAE,EAAE,UAAU,EAAE;oBAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;oBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,SAAS,EAAE,aAAa;oBACxB,MAAM,EAAE,OAAO,CAAC,WAAW;oBAC3B,UAAU,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO;oBAC5D,SAAS,EAAE,OAAO,CAAC,QAAQ;iBAC5B,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACvB,EAAE,EAAE,OAAO,CAAC,WAAW;oBACvB,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO;oBACxD,KAAK,EAAE,OAAO,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAA4B;QACpD,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,UAAU,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,YAAY,EAAE,KAAK,CAAC,cAAc;YAClC,QAAQ,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,KAAmB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAU;QAC5B,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAO,GAAG,KAAK;QAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE,MAAM;wBACf,QAAQ,EAAE,OAAO;qBAClB;iBACF;aACF;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC;IACtE,CAAC;CACF;AAED,2CAA2C;AAC3C,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAA0B;IACnF,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-configuration for Claude Code statusLine integration.
|
|
3
|
-
* Creates the statusline script and configures Claude settings at agent startup.
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Ensure statusLine and hooks are configured for 247 integration.
|
|
7
|
-
* Called at agent startup.
|
|
8
|
-
*/
|
|
9
|
-
export declare function ensureStatusLineConfigured(): void;
|
|
10
|
-
//# sourceMappingURL=setup-statusline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-statusline.d.ts","sourceRoot":"","sources":["../src/setup-statusline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAUjD"}
|