@gencode/console 0.0.3 → 0.0.5

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.
@@ -0,0 +1,274 @@
1
+ function toProgressContext(event) {
2
+ return {
3
+ parentSessionId: event.parentSessionId,
4
+ depth: event.depth,
5
+ };
6
+ }
7
+ function fromProgressEvent(context, event) {
8
+ const progressContext = toProgressContext(event);
9
+ switch (event.type) {
10
+ case 'start':
11
+ return [
12
+ {
13
+ type: 'agent.start',
14
+ sessionId: context.sessionId,
15
+ messageId: event.messageId ?? context.messageId,
16
+ ...progressContext,
17
+ message: event.message,
18
+ },
19
+ ];
20
+ case 'text':
21
+ return [
22
+ {
23
+ type: 'agent.text',
24
+ sessionId: context.sessionId,
25
+ messageId: event.messageId ?? context.messageId,
26
+ ...progressContext,
27
+ delta: event.text,
28
+ },
29
+ ];
30
+ case 'stream_text_delta':
31
+ return [];
32
+ case 'bootstrap':
33
+ return [
34
+ {
35
+ type: 'agent.bootstrap',
36
+ sessionId: context.sessionId,
37
+ messageId: event.messageId ?? context.messageId,
38
+ ...progressContext,
39
+ phase: event.phase,
40
+ dataDir: event.dataDir,
41
+ },
42
+ ];
43
+ case 'tool_start':
44
+ return [
45
+ {
46
+ type: 'agent.tool_start',
47
+ sessionId: context.sessionId,
48
+ messageId: event.messageId ?? context.messageId,
49
+ ...progressContext,
50
+ toolCallId: event.toolCallId,
51
+ name: event.name,
52
+ input: event.input,
53
+ },
54
+ ];
55
+ case 'tool_end':
56
+ return [
57
+ {
58
+ type: 'agent.tool_end',
59
+ sessionId: context.sessionId,
60
+ messageId: event.messageId ?? context.messageId,
61
+ ...progressContext,
62
+ toolCallId: event.toolCallId,
63
+ name: event.name,
64
+ output: event.output,
65
+ isError: event.isError,
66
+ },
67
+ ];
68
+ case 'compaction':
69
+ return [
70
+ {
71
+ type: 'agent.compaction',
72
+ sessionId: context.sessionId,
73
+ messageId: event.messageId ?? context.messageId,
74
+ ...progressContext,
75
+ reason: event.reason,
76
+ layer: event.layer,
77
+ strategy: event.strategy,
78
+ estimatedTokensFreed: event.estimatedTokensFreed,
79
+ affectedEntries: event.affectedEntries,
80
+ snapshotVersion: event.snapshotVersion,
81
+ },
82
+ ];
83
+ case 'memory_changed':
84
+ return [
85
+ {
86
+ type: 'agent.memory_changed',
87
+ sessionId: context.sessionId,
88
+ messageId: event.messageId ?? context.messageId,
89
+ ...progressContext,
90
+ reason: event.reason,
91
+ files: event.files,
92
+ source: event.source,
93
+ providerId: event.providerId,
94
+ timestamp: event.timestamp,
95
+ },
96
+ ];
97
+ case 'skill_used':
98
+ return [
99
+ {
100
+ type: 'agent.skill_used',
101
+ sessionId: context.sessionId,
102
+ messageId: event.messageId ?? context.messageId,
103
+ ...progressContext,
104
+ skillName: event.skillName,
105
+ agent: event.agent,
106
+ taskId: event.taskId,
107
+ },
108
+ ];
109
+ case 'error':
110
+ return [
111
+ {
112
+ type: 'agent.error',
113
+ sessionId: context.sessionId,
114
+ messageId: event.messageId ?? context.messageId,
115
+ ...progressContext,
116
+ message: event.message,
117
+ },
118
+ ];
119
+ case 'subagent_spawn':
120
+ return [
121
+ {
122
+ type: 'agent.subagent_spawn',
123
+ sessionId: context.sessionId,
124
+ messageId: event.messageId ?? context.messageId,
125
+ ...progressContext,
126
+ childSessionId: event.childSessionId,
127
+ task: event.task,
128
+ label: event.label,
129
+ },
130
+ ];
131
+ case 'subagent_complete':
132
+ return [
133
+ {
134
+ type: 'agent.subagent_complete',
135
+ sessionId: context.sessionId,
136
+ messageId: event.messageId ?? context.messageId,
137
+ ...progressContext,
138
+ childSessionId: event.childSessionId,
139
+ task: event.task,
140
+ status: event.status,
141
+ },
142
+ ];
143
+ case 'session_reset':
144
+ return [
145
+ {
146
+ type: 'session.reset',
147
+ sessionId: context.sessionId,
148
+ messageId: event.messageId ?? context.messageId,
149
+ ...progressContext,
150
+ action: event.action,
151
+ previousSessionId: event.previousSessionId,
152
+ message: event.message,
153
+ },
154
+ ];
155
+ case 'diagnostic':
156
+ return [];
157
+ default: {
158
+ const exhaustive = event;
159
+ void exhaustive;
160
+ return [];
161
+ }
162
+ }
163
+ }
164
+ function withTransport(messages, transport) {
165
+ return messages.map((message) => ({
166
+ ...message,
167
+ transport,
168
+ }));
169
+ }
170
+ export function mapCallbackPayloadToMessages(payload) {
171
+ const sessionId = payload.sessionId;
172
+ const messageId = payload.messageId ?? (payload.type === 'progress' ? payload.event.messageId : undefined);
173
+ if (payload.type === 'start') {
174
+ return withTransport([
175
+ {
176
+ type: 'agent.start',
177
+ sessionId,
178
+ messageId,
179
+ message: payload.message,
180
+ },
181
+ ], 'callback');
182
+ }
183
+ if (payload.type === 'done') {
184
+ return withTransport([
185
+ {
186
+ type: 'agent.done',
187
+ sessionId,
188
+ messageId,
189
+ result: {
190
+ ...payload.result,
191
+ sessionId,
192
+ },
193
+ },
194
+ ], 'callback');
195
+ }
196
+ if (payload.type === 'error') {
197
+ return withTransport([
198
+ {
199
+ type: 'agent.error',
200
+ sessionId,
201
+ messageId,
202
+ message: payload.message,
203
+ },
204
+ ], 'callback');
205
+ }
206
+ if (payload.type === 'session_reset') {
207
+ return withTransport([
208
+ {
209
+ type: 'session.reset',
210
+ sessionId,
211
+ messageId,
212
+ action: payload.action,
213
+ previousSessionId: payload.previousSessionId,
214
+ message: payload.message,
215
+ },
216
+ ], 'callback');
217
+ }
218
+ return withTransport(fromProgressEvent({ sessionId, messageId }, payload.event), 'callback');
219
+ }
220
+ export function mapStreamEnvelopeToMessages(envelope) {
221
+ const context = {
222
+ sessionId: envelope.sessionId,
223
+ messageId: envelope.messageId,
224
+ };
225
+ switch (envelope.type) {
226
+ case 'start':
227
+ return withTransport([
228
+ {
229
+ type: 'agent.start',
230
+ sessionId: envelope.sessionId,
231
+ messageId: envelope.messageId,
232
+ message: envelope.message,
233
+ },
234
+ ], 'websocket');
235
+ case 'text':
236
+ return withTransport([
237
+ {
238
+ type: 'agent.text',
239
+ sessionId: envelope.sessionId,
240
+ messageId: envelope.messageId,
241
+ delta: envelope.delta,
242
+ },
243
+ ], 'websocket');
244
+ case 'done':
245
+ return withTransport([
246
+ {
247
+ type: 'agent.done',
248
+ sessionId: envelope.sessionId,
249
+ messageId: envelope.messageId,
250
+ result: {
251
+ ...envelope.result,
252
+ sessionId: envelope.sessionId,
253
+ },
254
+ },
255
+ ], 'websocket');
256
+ case 'error':
257
+ return withTransport([
258
+ {
259
+ type: 'agent.error',
260
+ sessionId: envelope.sessionId,
261
+ messageId: envelope.messageId,
262
+ message: envelope.message,
263
+ },
264
+ ], 'websocket');
265
+ case 'progress':
266
+ return withTransport(fromProgressEvent(context, envelope.event), 'websocket');
267
+ default: {
268
+ const exhaustive = envelope;
269
+ void exhaustive;
270
+ return [];
271
+ }
272
+ }
273
+ }
274
+ //# sourceMappingURL=event-message-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-message-mapper.js","sourceRoot":"","sources":["../../src/server/event-message-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare enum LogLevel {
2
+ INFO = "INFO",
3
+ WARN = "WARN",
4
+ ERROR = "ERROR"
5
+ }
6
+ type LogContextValue = string | number | boolean | null | undefined;
7
+ type LogContext = Record<string, LogContextValue>;
8
+ export declare const logger: {
9
+ info: (message: string, context?: LogContext) => void;
10
+ warn: (message: string, context?: LogContext) => void;
11
+ error: (message: string, context?: LogContext) => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AACpE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAmClD,eAAO,MAAM,MAAM;oBACD,MAAM,YAAY,UAAU;oBAC5B,MAAM,YAAY,UAAU;qBAC3B,MAAM,YAAY,UAAU;CAC9C,CAAC"}
@@ -0,0 +1,40 @@
1
+ export var LogLevel;
2
+ (function (LogLevel) {
3
+ LogLevel["INFO"] = "INFO";
4
+ LogLevel["WARN"] = "WARN";
5
+ LogLevel["ERROR"] = "ERROR";
6
+ })(LogLevel || (LogLevel = {}));
7
+ function formatTimestamp() {
8
+ const now = new Date();
9
+ const year = now.getFullYear();
10
+ const month = String(now.getMonth() + 1).padStart(2, '0');
11
+ const day = String(now.getDate()).padStart(2, '0');
12
+ const hours = String(now.getHours()).padStart(2, '0');
13
+ const minutes = String(now.getMinutes()).padStart(2, '0');
14
+ const seconds = String(now.getSeconds()).padStart(2, '0');
15
+ const ms = String(now.getMilliseconds()).padStart(3, '0');
16
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${ms}`;
17
+ }
18
+ function formatContext(context) {
19
+ if (!context) {
20
+ return '';
21
+ }
22
+ const parts = Object.entries(context)
23
+ .filter(([, value]) => value !== undefined)
24
+ .map(([key, value]) => `${key}=${JSON.stringify(value)}`);
25
+ return parts.length > 0 ? ` ${parts.join(' ')}` : '';
26
+ }
27
+ function write(level, message, context) {
28
+ const line = `[${formatTimestamp()}] [${level}] ${message}${formatContext(context)}\n`;
29
+ if (level === LogLevel.ERROR) {
30
+ process.stderr.write(line);
31
+ return;
32
+ }
33
+ process.stdout.write(line);
34
+ }
35
+ export const logger = {
36
+ info: (message, context) => write(LogLevel.INFO, message, context),
37
+ warn: (message, context) => write(LogLevel.WARN, message, context),
38
+ error: (message, context) => write(LogLevel.ERROR, message, context),
39
+ };
40
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/server/logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAChE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC,CAsED"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAWtD;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAChE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC,CA+GD"}
@@ -10,6 +10,8 @@ import { WsHandler } from './ws-handler.js';
10
10
  import path from 'node:path';
11
11
  import fs from 'node:fs';
12
12
  import { fileURLToPath } from 'node:url';
13
+ import { logger } from './logger.js';
14
+ import { mapStreamEnvelopeToMessages } from './event-message-mapper.js';
13
15
  const __filename = fileURLToPath(import.meta.url);
14
16
  const __dirname = path.dirname(__filename);
15
17
  /**
@@ -26,6 +28,7 @@ export async function createServer(config) {
26
28
  });
27
29
  // Create WebSocket server
28
30
  const wss = new WebSocketServer({ noServer: true });
31
+ const cliStreamWss = new WebSocketServer({ noServer: true });
29
32
  // Handle WebSocket upgrade
30
33
  httpServer.on('upgrade', (request, socket, head) => {
31
34
  if (request.url === '/ws') {
@@ -33,6 +36,11 @@ export async function createServer(config) {
33
36
  wss.emit('connection', ws, request);
34
37
  });
35
38
  }
39
+ else if (request.url === '/cli-stream') {
40
+ cliStreamWss.handleUpgrade(request, socket, head, (ws) => {
41
+ cliStreamWss.emit('connection', ws, request);
42
+ });
43
+ }
36
44
  else {
37
45
  socket.destroy();
38
46
  }
@@ -51,6 +59,33 @@ export async function createServer(config) {
51
59
  handler.registerCallbackHandler(broadcastToAll);
52
60
  handler.handleConnection(ws);
53
61
  });
62
+ cliStreamWss.on('connection', (ws) => {
63
+ logger.info('cli stream websocket connected');
64
+ ws.on('message', (raw) => {
65
+ try {
66
+ const envelope = JSON.parse(raw.toString());
67
+ const messages = mapStreamEnvelopeToMessages(envelope);
68
+ logger.info('cli stream payload mapped to websocket messages', {
69
+ eventType: envelope.type,
70
+ sessionId: envelope.sessionId,
71
+ messageCount: messages.length,
72
+ });
73
+ for (const message of messages) {
74
+ broadcastToAll(message);
75
+ }
76
+ }
77
+ catch (error) {
78
+ logger.error('cli stream payload handling failed', {
79
+ error: error.message,
80
+ });
81
+ }
82
+ });
83
+ ws.on('error', (error) => {
84
+ logger.error('cli stream websocket error', {
85
+ error: error.message,
86
+ });
87
+ });
88
+ });
54
89
  // Start HTTP server
55
90
  await new Promise((resolve, reject) => {
56
91
  httpServer.once('error', reject);
@@ -64,6 +99,14 @@ export async function createServer(config) {
64
99
  httpServer,
65
100
  callbackServer,
66
101
  close: async () => {
102
+ await new Promise((resolve, reject) => {
103
+ cliStreamWss.close((err) => {
104
+ if (err)
105
+ reject(err);
106
+ else
107
+ resolve();
108
+ });
109
+ });
67
110
  await new Promise((resolve, reject) => {
68
111
  wss.close((err) => {
69
112
  if (err)
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/ws-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;GAEG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAJxB,OAAO,CAAC,UAAU,CAAgC;gBAGxC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc;IAGxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAuBrC;;OAEG;YACW,aAAa;IA6B3B;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,eAAe;IAyD7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,gBAAgB;IAuB9B;;OAEG;IACH,OAAO,CAAC,IAAI;IAMZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;CAcxE"}
1
+ {"version":3,"file":"ws-handler.d.ts","sourceRoot":"","sources":["../../src/server/ws-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;GAEG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IAJxB,OAAO,CAAC,UAAU,CAAgC;gBAGxC,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,cAAc;IAGxC;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAoCrC;;OAEG;YACW,aAAa;IA6B3B;;OAEG;YACW,kBAAkB;IAsBhC;;OAEG;YACW,eAAe;IA+E7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,gBAAgB;IAuB9B;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;CAsBxE"}
@@ -4,6 +4,7 @@
4
4
  * Routes incoming WebSocket messages and manages agent execution state.
5
5
  */
6
6
  import { CliRunner, runCommandsList } from './cli-runner.js';
7
+ import { logger } from './logger.js';
7
8
  /**
8
9
  * Manages WebSocket connections and agent executions.
9
10
  */
@@ -19,16 +20,27 @@ export class WsHandler {
19
20
  * Handle a new WebSocket connection.
20
21
  */
21
22
  handleConnection(ws) {
23
+ logger.info('websocket connection opened');
22
24
  ws.on('message', async (data) => {
23
25
  try {
26
+ console.log('Received message:', data.toString());
24
27
  const msg = JSON.parse(data.toString());
28
+ logger.info('websocket message received', {
29
+ type: msg.type,
30
+ });
25
31
  await this.handleMessage(ws, msg);
26
32
  }
27
33
  catch (err) {
34
+ logger.error('websocket message handling failed', {
35
+ error: err.message,
36
+ });
28
37
  this.sendError(ws, err.message);
29
38
  }
30
39
  });
31
40
  ws.on('close', () => {
41
+ logger.info('websocket connection closed', {
42
+ activeRunCount: this.activeRuns.size,
43
+ });
32
44
  // Abort all active runs for this connection
33
45
  for (const runner of this.activeRuns.values()) {
34
46
  runner.abort();
@@ -36,7 +48,9 @@ export class WsHandler {
36
48
  this.activeRuns.clear();
37
49
  });
38
50
  ws.on('error', (err) => {
39
- console.error('WebSocket error:', err);
51
+ logger.error('websocket transport error', {
52
+ error: err.message,
53
+ });
40
54
  });
41
55
  }
42
56
  /**
@@ -70,6 +84,7 @@ export class WsHandler {
70
84
  */
71
85
  async handleCommandsList(ws, dataDir) {
72
86
  try {
87
+ logger.info('handling commands.list', { dataDir });
73
88
  const result = await runCommandsList({ dataDir, config: this.config });
74
89
  if (result.exitCode !== 0) {
75
90
  this.sendError(ws, `CLI exited with code ${result.exitCode}: ${result.stderr}`);
@@ -94,21 +109,30 @@ export class WsHandler {
94
109
  */
95
110
  async handleAgentSend(ws, msg) {
96
111
  const callbackUrl = this.callbackServer.getCallbackUrl();
97
- // Debug log
98
- console.log('[WsHandler] Received agent.send message');
99
- console.log('[WsHandler] sessionId from client:', msg.sessionId || 'NONE (will create new session)');
112
+ logger.info('handling agent.send', {
113
+ dataDir: msg.dataDir,
114
+ sessionId: msg.sessionId ?? 'new',
115
+ messageId: msg.messageId,
116
+ callbackUrl,
117
+ messageLength: msg.message.length,
118
+ });
100
119
  const runner = new CliRunner({
101
120
  dataDir: msg.dataDir,
102
121
  message: msg.message,
103
122
  sessionId: msg.sessionId,
104
123
  messageId: msg.messageId,
105
124
  callbackUrl,
125
+ streamUrl: `ws://127.0.0.1:${this.config.port}/cli-stream`,
106
126
  config: this.config,
107
127
  });
108
128
  // Use 'pending' internally for tracking new sessions
109
129
  const tempSessionId = msg.sessionId ?? 'pending';
110
130
  // Store runner
111
131
  this.activeRuns.set(tempSessionId, runner);
132
+ logger.info('runner registered', {
133
+ sessionId: tempSessionId,
134
+ activeRunCount: this.activeRuns.size,
135
+ });
112
136
  try {
113
137
  // Run CLI and wait for completion
114
138
  const result = await runner.run();
@@ -116,10 +140,19 @@ export class WsHandler {
116
140
  if (result.sessionId !== tempSessionId) {
117
141
  this.activeRuns.delete(tempSessionId);
118
142
  this.activeRuns.set(result.sessionId, runner);
143
+ logger.info('runner session id resolved', {
144
+ previousSessionId: tempSessionId,
145
+ sessionId: result.sessionId,
146
+ });
119
147
  }
120
148
  // Clean up
121
149
  this.activeRuns.delete(result.sessionId);
122
150
  this.callbackServer.cleanupSession(result.sessionId);
151
+ logger.info('runner cleaned up after completion', {
152
+ sessionId: result.sessionId,
153
+ exitCode: result.exitCode,
154
+ activeRunCount: this.activeRuns.size,
155
+ });
123
156
  // If CLI failed, send error
124
157
  if (result.exitCode !== 0) {
125
158
  this.send(ws, {
@@ -131,6 +164,11 @@ export class WsHandler {
131
164
  }
132
165
  catch (err) {
133
166
  this.activeRuns.delete(tempSessionId);
167
+ logger.error('agent.send execution failed', {
168
+ sessionId: tempSessionId,
169
+ messageId: msg.messageId,
170
+ error: err.message,
171
+ });
134
172
  this.send(ws, {
135
173
  type: 'agent.error',
136
174
  sessionId: tempSessionId,
@@ -144,9 +182,16 @@ export class WsHandler {
144
182
  handleAgentAbort(sessionId) {
145
183
  const runner = this.activeRuns.get(sessionId);
146
184
  if (runner) {
185
+ logger.warn('handling agent.abort', {
186
+ sessionId,
187
+ });
147
188
  runner.abort();
148
189
  this.activeRuns.delete(sessionId);
149
190
  this.callbackServer.cleanupSession(sessionId);
191
+ logger.info('runner cleaned up after abort', {
192
+ sessionId,
193
+ activeRunCount: this.activeRuns.size,
194
+ });
150
195
  }
151
196
  }
152
197
  /**
@@ -199,6 +244,10 @@ export class WsHandler {
199
244
  */
200
245
  send(ws, msg) {
201
246
  if (ws.readyState === ws.OPEN) {
247
+ logger.info('sending websocket message', {
248
+ type: msg.type,
249
+ sessionId: 'sessionId' in msg ? msg.sessionId : undefined,
250
+ });
202
251
  ws.send(JSON.stringify(msg));
203
252
  }
204
253
  }
@@ -222,8 +271,16 @@ export class WsHandler {
222
271
  if (runner) {
223
272
  this.activeRuns.delete('pending');
224
273
  this.activeRuns.set(sessionId, runner);
274
+ logger.info('callback promoted pending session', {
275
+ sessionId,
276
+ activeRunCount: this.activeRuns.size,
277
+ });
225
278
  }
226
279
  }
280
+ logger.info('broadcasting callback message', {
281
+ type: message.type,
282
+ sessionId,
283
+ });
227
284
  broadcast(message);
228
285
  });
229
286
  }