@rudderhq/agent-runtime-codex-local 0.4.6-canary.8 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/server/app-server-chat.d.ts +34 -0
  2. package/dist/server/app-server-chat.d.ts.map +1 -0
  3. package/dist/server/app-server-chat.js +584 -0
  4. package/dist/server/app-server-chat.js.map +1 -0
  5. package/dist/server/app-server-chat.test.d.ts +2 -0
  6. package/dist/server/app-server-chat.test.d.ts.map +1 -0
  7. package/dist/server/app-server-chat.test.js +431 -0
  8. package/dist/server/app-server-chat.test.js.map +1 -0
  9. package/dist/server/app-server-client.d.ts +126 -0
  10. package/dist/server/app-server-client.d.ts.map +1 -0
  11. package/dist/server/app-server-client.js +603 -0
  12. package/dist/server/app-server-client.js.map +1 -0
  13. package/dist/server/app-server-client.test.d.ts +2 -0
  14. package/dist/server/app-server-client.test.d.ts.map +1 -0
  15. package/dist/server/app-server-client.test.js +656 -0
  16. package/dist/server/app-server-client.test.js.map +1 -0
  17. package/dist/server/codex-home.d.ts +2 -2
  18. package/dist/server/codex-home.d.ts.map +1 -1
  19. package/dist/server/codex-home.js +10 -6
  20. package/dist/server/codex-home.js.map +1 -1
  21. package/dist/server/execute.d.ts.map +1 -1
  22. package/dist/server/execute.js +187 -20
  23. package/dist/server/execute.js.map +1 -1
  24. package/dist/server/index.d.ts +1 -0
  25. package/dist/server/index.d.ts.map +1 -1
  26. package/dist/server/index.js +1 -0
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/server/inline-visuals.d.ts +24 -0
  29. package/dist/server/inline-visuals.d.ts.map +1 -0
  30. package/dist/server/inline-visuals.js +174 -0
  31. package/dist/server/inline-visuals.js.map +1 -0
  32. package/dist/server/inline-visuals.test.d.ts +2 -0
  33. package/dist/server/inline-visuals.test.d.ts.map +1 -0
  34. package/dist/server/inline-visuals.test.js +202 -0
  35. package/dist/server/inline-visuals.test.js.map +1 -0
  36. package/dist/ui/parse-stdout.js +2 -2
  37. package/dist/ui/parse-stdout.js.map +1 -1
  38. package/package.json +3 -2
  39. package/skills/rudder-docs/SKILL.md +161 -0
  40. package/skills/rudder-docs/evals/trigger-evals.json +82 -0
  41. package/skills/{rudder → rudder-docs}/references/api-reference.md +17 -1
  42. package/skills/{rudder → rudder-docs}/references/cli-reference.md +52 -97
  43. package/skills/rudder-docs/references/control-plane-practices.md +231 -0
  44. package/skills/{rudder → rudder-docs}/references/organization-skills.md +15 -1
  45. package/skills/rudder-docs/references/source-map.md +138 -0
  46. package/skills/visualize/SKILL.md +132 -0
  47. package/skills/visualize/agents/openai.yaml +7 -0
  48. package/skills/visualize/assets/example-chart.html +89 -0
  49. package/skills/visualize/references/runtime-contract.md +114 -0
  50. package/skills/rudder/SKILL.md +0 -314
@@ -0,0 +1,603 @@
1
+ import { StringDecoder } from "node:string_decoder";
2
+ const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
3
+ const DEFAULT_SERVER_REQUEST_TIMEOUT_MS = 30_000;
4
+ const DEFAULT_NOTIFICATION_DRAIN_TIMEOUT_MS = 5_000;
5
+ const DEFAULT_MAX_FRAME_BYTES = 8 * 1024 * 1024;
6
+ const DEFAULT_MAX_SERVER_REQUEST_IDS = 65_536;
7
+ const MAX_COMPLETED_CLIENT_REQUEST_IDS = 1_024;
8
+ const METHOD_NOT_FOUND = -32601;
9
+ const INTERNAL_ERROR = -32603;
10
+ const SERVER_REQUEST_TIMEOUT = -32000;
11
+ function asPositiveInteger(value, fallback) {
12
+ return typeof value === "number" && Number.isFinite(value) && value > 0
13
+ ? Math.max(1, Math.floor(value))
14
+ : fallback;
15
+ }
16
+ function isRecord(value) {
17
+ return typeof value === "object" && value !== null && !Array.isArray(value);
18
+ }
19
+ function isRequestId(value) {
20
+ return typeof value === "string" || (typeof value === "number" && Number.isSafeInteger(value));
21
+ }
22
+ function serverRequestKey(id) {
23
+ return `${typeof id}:${String(id)}`;
24
+ }
25
+ function errorMessage(error) {
26
+ return error instanceof Error ? error.message : String(error);
27
+ }
28
+ export class CodexAppServerProtocolError extends Error {
29
+ name = "CodexAppServerProtocolError";
30
+ }
31
+ export class CodexAppServerClosedError extends Error {
32
+ name = "CodexAppServerClosedError";
33
+ }
34
+ export class CodexAppServerTimeoutError extends Error {
35
+ name = "CodexAppServerTimeoutError";
36
+ }
37
+ export class CodexAppServerRpcError extends Error {
38
+ name = "CodexAppServerRpcError";
39
+ code;
40
+ data;
41
+ constructor(error) {
42
+ super(error.message);
43
+ this.code = error.code;
44
+ this.data = error.data;
45
+ }
46
+ }
47
+ class CodexAppServerJsonlFramer {
48
+ maxFrameBytes;
49
+ decoder = new StringDecoder("utf8");
50
+ buffer = "";
51
+ constructor(maxFrameBytes) {
52
+ this.maxFrameBytes = maxFrameBytes;
53
+ }
54
+ push(chunk) {
55
+ if (typeof chunk === "string") {
56
+ const incompleteBinary = this.decoder.end();
57
+ this.decoder = new StringDecoder("utf8");
58
+ if (incompleteBinary.length > 0) {
59
+ throw new CodexAppServerProtocolError("Codex app-server transport changed chunk type during an incomplete UTF-8 sequence");
60
+ }
61
+ this.buffer += chunk;
62
+ }
63
+ else {
64
+ this.buffer += this.decoder.write(Buffer.from(chunk));
65
+ }
66
+ return this.drain(false);
67
+ }
68
+ finish() {
69
+ this.buffer += this.decoder.end();
70
+ return this.drain(true);
71
+ }
72
+ drain(includeRemainder) {
73
+ const lines = [];
74
+ while (true) {
75
+ const newline = this.buffer.indexOf("\n");
76
+ if (newline < 0)
77
+ break;
78
+ const line = this.buffer.slice(0, newline).replace(/\r$/, "");
79
+ this.buffer = this.buffer.slice(newline + 1);
80
+ this.assertFrameSize(line);
81
+ if (line.trim().length > 0)
82
+ lines.push(line);
83
+ }
84
+ if (includeRemainder && this.buffer.trim().length > 0) {
85
+ const line = this.buffer.replace(/\r$/, "");
86
+ this.buffer = "";
87
+ this.assertFrameSize(line);
88
+ lines.push(line);
89
+ }
90
+ else {
91
+ this.assertFrameSize(this.buffer);
92
+ }
93
+ return lines;
94
+ }
95
+ assertFrameSize(value) {
96
+ if (Buffer.byteLength(value, "utf8") > this.maxFrameBytes) {
97
+ throw new CodexAppServerProtocolError(`Codex app-server JSONL frame exceeded ${this.maxFrameBytes} bytes`);
98
+ }
99
+ }
100
+ }
101
+ export function createCodexAppServerStdioTransport(child) {
102
+ if (!child.stdin || !child.stdout) {
103
+ throw new Error("Codex app-server child requires piped stdin and stdout");
104
+ }
105
+ const swallowDetachedStdinError = () => undefined;
106
+ child.stdin.on("error", swallowDetachedStdinError);
107
+ return {
108
+ write(serializedMessage) {
109
+ if (!child.stdin?.writable)
110
+ throw new CodexAppServerClosedError("Codex app-server stdin is not writable");
111
+ child.stdin.write(serializedMessage);
112
+ },
113
+ onStdout(listener) {
114
+ const onData = (chunk) => listener(chunk);
115
+ child.stdout?.on("data", onData);
116
+ return () => child.stdout?.off("data", onData);
117
+ },
118
+ onExit(listener) {
119
+ let settled = false;
120
+ const cleanup = () => {
121
+ child.off("close", onClose);
122
+ child.off("error", onProcessError);
123
+ child.stdin?.off("error", onStdinError);
124
+ };
125
+ const finish = (exit) => {
126
+ if (settled)
127
+ return;
128
+ settled = true;
129
+ cleanup();
130
+ listener(exit);
131
+ };
132
+ const onClose = (code, signal) => finish({ code, signal });
133
+ const onProcessError = (error) => finish({ code: null, signal: null, error });
134
+ const onStdinError = (error) => finish({ code: null, signal: null, error });
135
+ child.once("close", onClose);
136
+ child.once("error", onProcessError);
137
+ child.stdin?.once("error", onStdinError);
138
+ return cleanup;
139
+ },
140
+ terminate() {
141
+ if (child.exitCode === null && child.signalCode === null)
142
+ child.kill("SIGTERM");
143
+ },
144
+ };
145
+ }
146
+ export class CodexAppServerClient {
147
+ transport;
148
+ options;
149
+ framer;
150
+ requestTimeoutMs;
151
+ serverRequestTimeoutMs;
152
+ notificationDrainTimeoutMs;
153
+ maxServerRequestIds;
154
+ serverRequestHandlers;
155
+ pendingClientRequests = new Map();
156
+ completedClientRequestIds = new Map();
157
+ pendingServerRequests = new Map();
158
+ completedServerRequestIds = new Map();
159
+ notificationChain = Promise.resolve();
160
+ notificationAbortController = new AbortController();
161
+ nextRequestId = 1;
162
+ stateValue = "new";
163
+ protocolCompatibleValue = true;
164
+ capabilityGateErrorValue = null;
165
+ initializePromise = null;
166
+ closing = false;
167
+ transportOpen = true;
168
+ removeStdoutListener = null;
169
+ removeExitListener = null;
170
+ removeAbortListener = null;
171
+ constructor(options) {
172
+ this.options = options;
173
+ this.transport = options.transport;
174
+ this.requestTimeoutMs = asPositiveInteger(options.requestTimeoutMs, DEFAULT_REQUEST_TIMEOUT_MS);
175
+ this.serverRequestTimeoutMs = asPositiveInteger(options.serverRequestTimeoutMs, DEFAULT_SERVER_REQUEST_TIMEOUT_MS);
176
+ this.notificationDrainTimeoutMs = asPositiveInteger(options.notificationDrainTimeoutMs, DEFAULT_NOTIFICATION_DRAIN_TIMEOUT_MS);
177
+ this.maxServerRequestIds = asPositiveInteger(options.maxServerRequestIds, DEFAULT_MAX_SERVER_REQUEST_IDS);
178
+ this.framer = new CodexAppServerJsonlFramer(asPositiveInteger(options.maxFrameBytes, DEFAULT_MAX_FRAME_BYTES));
179
+ this.serverRequestHandlers = new Map(Object.entries(options.serverRequestHandlers ?? {}));
180
+ this.removeStdoutListener = this.transport.onStdout((chunk) => this.handleStdout(chunk));
181
+ this.removeExitListener = this.transport.onExit((exit) => this.handleExit(exit));
182
+ if (options.abortSignal) {
183
+ const onAbort = () => {
184
+ const reason = options.abortSignal?.reason;
185
+ const error = reason instanceof Error
186
+ ? reason
187
+ : new CodexAppServerClosedError(`Codex app-server client aborted${reason === undefined ? "" : `: ${String(reason)}`}`);
188
+ this.shutdown(error, "closed", true, true);
189
+ };
190
+ if (options.abortSignal.aborted) {
191
+ onAbort();
192
+ }
193
+ else {
194
+ options.abortSignal.addEventListener("abort", onAbort, { once: true });
195
+ this.removeAbortListener = () => options.abortSignal?.removeEventListener("abort", onAbort);
196
+ }
197
+ }
198
+ }
199
+ get state() {
200
+ return this.stateValue;
201
+ }
202
+ get protocolCompatible() {
203
+ return this.protocolCompatibleValue;
204
+ }
205
+ get capabilityGateError() {
206
+ return this.capabilityGateErrorValue;
207
+ }
208
+ get pendingRequestCount() {
209
+ return this.pendingClientRequests.size;
210
+ }
211
+ get pendingServerRequestCount() {
212
+ return this.pendingServerRequests.size;
213
+ }
214
+ initialize() {
215
+ if (this.initializePromise)
216
+ return this.initializePromise;
217
+ if (this.stateValue !== "new") {
218
+ return Promise.reject(new CodexAppServerClosedError(`Cannot initialize client in state ${this.stateValue}`));
219
+ }
220
+ this.stateValue = "initializing";
221
+ this.initializePromise = this.sendRequest("initialize", {
222
+ clientInfo: this.options.clientInfo,
223
+ capabilities: this.options.capabilities ?? null,
224
+ }, this.requestTimeoutMs)
225
+ .then((result) => {
226
+ if (this.closing)
227
+ throw new CodexAppServerClosedError("Codex app-server closed during initialize");
228
+ this.writeMessage({ method: "initialized", params: {} });
229
+ this.stateValue = "ready";
230
+ return result;
231
+ })
232
+ .catch((error) => {
233
+ const normalized = error instanceof Error ? error : new Error(String(error));
234
+ this.shutdown(normalized, "failed", true, true);
235
+ throw normalized;
236
+ });
237
+ return this.initializePromise;
238
+ }
239
+ request(method, params, timeoutMs) {
240
+ if (this.closing || this.stateValue !== "ready") {
241
+ return Promise.reject(new CodexAppServerClosedError(`Cannot request ${method} in state ${this.stateValue}`));
242
+ }
243
+ return this.sendRequest(method, params, asPositiveInteger(timeoutMs, this.requestTimeoutMs));
244
+ }
245
+ notify(method, params) {
246
+ if (this.closing || this.stateValue !== "ready") {
247
+ throw new CodexAppServerClosedError(`Cannot notify ${method} in state ${this.stateValue}`);
248
+ }
249
+ this.writeMessage(params === undefined ? { method } : { method, params });
250
+ }
251
+ dispose(reason = "Codex app-server client disposed") {
252
+ this.shutdown(new CodexAppServerClosedError(reason), "closed", true, true);
253
+ }
254
+ sendRequest(method, params, timeoutMs) {
255
+ const id = this.nextRequestId++;
256
+ return new Promise((resolve, reject) => {
257
+ const timer = setTimeout(() => {
258
+ this.pendingClientRequests.delete(id);
259
+ this.rememberCompletedClientRequest(id);
260
+ reject(new CodexAppServerTimeoutError(`Codex app-server timed out on ${method}`));
261
+ }, timeoutMs);
262
+ this.pendingClientRequests.set(id, { method, resolve, reject, timer });
263
+ try {
264
+ this.writeMessage(params === undefined ? { id, method } : { id, method, params });
265
+ }
266
+ catch (error) {
267
+ clearTimeout(timer);
268
+ this.pendingClientRequests.delete(id);
269
+ reject(error instanceof Error ? error : new Error(String(error)));
270
+ }
271
+ });
272
+ }
273
+ writeMessage(message) {
274
+ if (this.closing || !this.transportOpen) {
275
+ throw new CodexAppServerClosedError("Codex app-server transport is closed");
276
+ }
277
+ const serialized = `${JSON.stringify(message)}\n`;
278
+ try {
279
+ this.transport.write(serialized);
280
+ }
281
+ catch (writeError) {
282
+ const error = writeError instanceof Error ? writeError : new Error(String(writeError));
283
+ this.shutdown(error, "failed", true, true);
284
+ throw error;
285
+ }
286
+ }
287
+ handleStdout(chunk) {
288
+ if (this.closing)
289
+ return;
290
+ let lines;
291
+ try {
292
+ lines = this.framer.push(chunk);
293
+ }
294
+ catch (error) {
295
+ this.failProtocol(error instanceof Error ? error : new Error(String(error)));
296
+ return;
297
+ }
298
+ for (const line of lines) {
299
+ if (this.closing)
300
+ break;
301
+ this.handleLine(line);
302
+ }
303
+ }
304
+ handleLine(line) {
305
+ let parsed;
306
+ try {
307
+ parsed = JSON.parse(line);
308
+ }
309
+ catch {
310
+ this.failProtocol(new CodexAppServerProtocolError(`Invalid JSON from Codex app-server: ${line.slice(0, 200)}`));
311
+ return;
312
+ }
313
+ if (!isRecord(parsed)) {
314
+ this.failProtocol(new CodexAppServerProtocolError("Codex app-server message must be an object"));
315
+ return;
316
+ }
317
+ const hasMethod = Object.hasOwn(parsed, "method");
318
+ const hasId = Object.hasOwn(parsed, "id");
319
+ const hasResult = Object.hasOwn(parsed, "result");
320
+ const hasError = Object.hasOwn(parsed, "error");
321
+ if (hasMethod) {
322
+ if (typeof parsed.method !== "string" || parsed.method.length === 0 || hasResult || hasError) {
323
+ this.failProtocol(new CodexAppServerProtocolError("Malformed Codex app-server request or notification"));
324
+ return;
325
+ }
326
+ if (!hasId) {
327
+ this.handleNotification({
328
+ method: parsed.method,
329
+ ...(Object.hasOwn(parsed, "params") ? { params: parsed.params } : {}),
330
+ });
331
+ return;
332
+ }
333
+ if (!isRequestId(parsed.id)) {
334
+ this.failProtocol(new CodexAppServerProtocolError("Codex app-server request id must be a string or safe integer"));
335
+ return;
336
+ }
337
+ this.handleServerRequest({
338
+ id: parsed.id,
339
+ method: parsed.method,
340
+ ...(Object.hasOwn(parsed, "params") ? { params: parsed.params } : {}),
341
+ });
342
+ return;
343
+ }
344
+ if (hasId && isRequestId(parsed.id) && hasResult !== hasError) {
345
+ this.handleResponse(parsed.id, parsed);
346
+ return;
347
+ }
348
+ this.failProtocol(new CodexAppServerProtocolError("Unclassifiable message from Codex app-server"));
349
+ }
350
+ handleResponse(id, response) {
351
+ const pending = this.pendingClientRequests.get(id);
352
+ if (!pending) {
353
+ if (this.completedClientRequestIds.has(id))
354
+ return;
355
+ this.failProtocol(new CodexAppServerProtocolError(`Codex app-server responded with unknown request id ${String(id)}`));
356
+ return;
357
+ }
358
+ clearTimeout(pending.timer);
359
+ this.pendingClientRequests.delete(id);
360
+ this.rememberCompletedClientRequest(id);
361
+ if (Object.hasOwn(response, "error")) {
362
+ if (!isRecord(response.error)
363
+ || !Number.isSafeInteger(response.error.code)
364
+ || typeof response.error.message !== "string") {
365
+ const error = new CodexAppServerProtocolError(`Codex app-server response ${String(id)} has an invalid error object`);
366
+ pending.reject(error);
367
+ this.failProtocol(error);
368
+ return;
369
+ }
370
+ pending.reject(new CodexAppServerRpcError({
371
+ code: response.error.code,
372
+ message: response.error.message,
373
+ data: response.error.data,
374
+ }));
375
+ return;
376
+ }
377
+ if (!Object.hasOwn(response, "result")) {
378
+ const error = new CodexAppServerProtocolError(`Codex app-server response ${String(id)} has neither result nor error`);
379
+ pending.reject(error);
380
+ this.failProtocol(error);
381
+ return;
382
+ }
383
+ pending.resolve(response.result);
384
+ }
385
+ handleNotification(notification) {
386
+ if (!this.options.onNotification)
387
+ return;
388
+ const signal = this.notificationAbortController.signal;
389
+ this.notificationChain = this.notificationChain.then(async () => {
390
+ if (signal.aborted)
391
+ return;
392
+ try {
393
+ await this.options.onNotification?.(notification, { signal });
394
+ }
395
+ catch (error) {
396
+ this.reportError(error instanceof Error ? error : new Error(String(error)));
397
+ }
398
+ });
399
+ }
400
+ handleServerRequest(request) {
401
+ const key = serverRequestKey(request.id);
402
+ if (this.pendingServerRequests.has(key) || this.completedServerRequestIds.has(key))
403
+ return;
404
+ if (this.pendingServerRequests.size + this.completedServerRequestIds.size >= this.maxServerRequestIds) {
405
+ const protocolError = new CodexAppServerProtocolError(`Codex app-server exceeded ${this.maxServerRequestIds} unique server request ids`);
406
+ try {
407
+ this.writeMessage({
408
+ id: request.id,
409
+ error: { code: INTERNAL_ERROR, message: protocolError.message },
410
+ });
411
+ }
412
+ catch {
413
+ // failProtocol closes the transport below.
414
+ }
415
+ this.failProtocol(protocolError);
416
+ return;
417
+ }
418
+ const controller = new AbortController();
419
+ const pending = {
420
+ id: request.id,
421
+ key,
422
+ method: request.method,
423
+ controller,
424
+ responded: false,
425
+ timer: setTimeout(() => {
426
+ controller.abort(new CodexAppServerTimeoutError(`Server request ${request.method} timed out`));
427
+ this.respondToServerRequest(pending, undefined, {
428
+ code: SERVER_REQUEST_TIMEOUT,
429
+ message: `Client handler timed out for ${request.method}`,
430
+ });
431
+ }, this.serverRequestTimeoutMs),
432
+ };
433
+ this.pendingServerRequests.set(key, pending);
434
+ const handler = this.serverRequestHandlers.get(request.method);
435
+ if (!handler) {
436
+ const protocolError = new CodexAppServerProtocolError(`Unsupported Codex app-server request method: ${request.method}`);
437
+ this.respondToServerRequest(pending, undefined, {
438
+ code: METHOD_NOT_FOUND,
439
+ message: `Client does not handle method \"${request.method}\"`,
440
+ });
441
+ this.failProtocol(protocolError);
442
+ return;
443
+ }
444
+ void Promise.resolve()
445
+ .then(() => handler({ ...request, signal: controller.signal }))
446
+ .then((result) => this.respondToServerRequest(pending, result))
447
+ .catch((error) => this.respondToServerRequest(pending, undefined, {
448
+ code: INTERNAL_ERROR,
449
+ message: errorMessage(error),
450
+ }));
451
+ }
452
+ respondToServerRequest(pending, result, error) {
453
+ if (pending.responded)
454
+ return;
455
+ let serialized;
456
+ try {
457
+ serialized = `${JSON.stringify(error
458
+ ? { id: pending.id, error }
459
+ : { id: pending.id, result: result ?? null })}\n`;
460
+ }
461
+ catch {
462
+ serialized = `${JSON.stringify({
463
+ id: pending.id,
464
+ error: { code: INTERNAL_ERROR, message: `Client returned a non-serializable result for ${pending.method}` },
465
+ })}\n`;
466
+ }
467
+ pending.responded = true;
468
+ clearTimeout(pending.timer);
469
+ this.pendingServerRequests.delete(pending.key);
470
+ this.rememberCompletedServerRequest(pending.key);
471
+ try {
472
+ if (this.transportOpen)
473
+ this.transport.write(serialized);
474
+ }
475
+ catch (writeError) {
476
+ this.shutdown(writeError instanceof Error ? writeError : new Error(String(writeError)), "failed", true, false);
477
+ }
478
+ }
479
+ rememberCompletedServerRequest(key) {
480
+ this.completedServerRequestIds.set(key, true);
481
+ }
482
+ rememberCompletedClientRequest(id) {
483
+ this.completedClientRequestIds.delete(id);
484
+ this.completedClientRequestIds.set(id, true);
485
+ if (this.completedClientRequestIds.size <= MAX_COMPLETED_CLIENT_REQUEST_IDS)
486
+ return;
487
+ const oldest = this.completedClientRequestIds.keys().next().value;
488
+ if (oldest !== undefined)
489
+ this.completedClientRequestIds.delete(oldest);
490
+ }
491
+ handleExit(exit) {
492
+ if (this.closing)
493
+ return;
494
+ try {
495
+ for (const line of this.framer.finish())
496
+ this.handleLine(line);
497
+ }
498
+ catch (error) {
499
+ this.failProtocol(error instanceof Error ? error : new Error(String(error)));
500
+ return;
501
+ }
502
+ if (this.closing)
503
+ return;
504
+ const detail = exit.error?.message
505
+ ?? (exit.signal ? `signal ${exit.signal}` : `code ${exit.code ?? -1}`);
506
+ this.shutdown(new CodexAppServerClosedError(`Codex app-server exited with ${detail}`), "closed", false, false, false, true);
507
+ }
508
+ failProtocol(error) {
509
+ const protocolError = error instanceof CodexAppServerProtocolError
510
+ ? error
511
+ : new CodexAppServerProtocolError(error.message);
512
+ const capabilityGateClosed = this.closeCapabilityGate(protocolError);
513
+ this.shutdown(protocolError, "failed", true, true);
514
+ if (capabilityGateClosed)
515
+ this.notifyCapabilityGateClosed(protocolError);
516
+ }
517
+ closeCapabilityGate(error) {
518
+ if (!this.protocolCompatibleValue)
519
+ return false;
520
+ this.protocolCompatibleValue = false;
521
+ this.capabilityGateErrorValue = error;
522
+ return true;
523
+ }
524
+ notifyCapabilityGateClosed(error) {
525
+ try {
526
+ this.options.onCapabilityGateClosed?.(error);
527
+ }
528
+ catch (callbackError) {
529
+ this.reportError(callbackError instanceof Error ? callbackError : new Error(String(callbackError)));
530
+ }
531
+ }
532
+ shutdown(error, terminalState, terminate, respondToServerRequests, cancelNotifications = true, reportAfterNotificationDrain = false) {
533
+ if (this.closing)
534
+ return;
535
+ this.closing = true;
536
+ this.stateValue = terminalState;
537
+ if (cancelNotifications && !this.notificationAbortController.signal.aborted) {
538
+ this.notificationAbortController.abort(error);
539
+ }
540
+ for (const [id, pending] of this.pendingClientRequests) {
541
+ clearTimeout(pending.timer);
542
+ pending.reject(error);
543
+ this.pendingClientRequests.delete(id);
544
+ }
545
+ for (const pending of [...this.pendingServerRequests.values()]) {
546
+ pending.controller.abort(error);
547
+ if (respondToServerRequests && this.transportOpen) {
548
+ this.respondToServerRequest(pending, undefined, { code: INTERNAL_ERROR, message: error.message });
549
+ }
550
+ else {
551
+ pending.responded = true;
552
+ clearTimeout(pending.timer);
553
+ this.pendingServerRequests.delete(pending.key);
554
+ this.rememberCompletedServerRequest(pending.key);
555
+ }
556
+ }
557
+ this.transportOpen = false;
558
+ this.removeStdoutListener?.();
559
+ this.removeExitListener?.();
560
+ this.removeAbortListener?.();
561
+ this.removeStdoutListener = null;
562
+ this.removeExitListener = null;
563
+ this.removeAbortListener = null;
564
+ if (terminate) {
565
+ try {
566
+ this.transport.terminate?.();
567
+ }
568
+ catch (terminateError) {
569
+ this.reportError(terminateError instanceof Error ? terminateError : new Error(String(terminateError)));
570
+ }
571
+ }
572
+ if (reportAfterNotificationDrain) {
573
+ this.finishNotificationDrain(error);
574
+ }
575
+ else {
576
+ this.reportError(error);
577
+ }
578
+ }
579
+ finishNotificationDrain(error) {
580
+ let timer = null;
581
+ const timeout = new Promise((resolve) => {
582
+ timer = setTimeout(() => resolve("timed_out"), this.notificationDrainTimeoutMs);
583
+ });
584
+ const drained = this.notificationChain.then(() => "drained");
585
+ void Promise.race([drained, timeout]).then((outcome) => {
586
+ if (timer)
587
+ clearTimeout(timer);
588
+ if (outcome === "timed_out" && !this.notificationAbortController.signal.aborted) {
589
+ this.notificationAbortController.abort(error);
590
+ }
591
+ this.reportError(error);
592
+ });
593
+ }
594
+ reportError(error) {
595
+ try {
596
+ this.options.onError?.(error);
597
+ }
598
+ catch {
599
+ // User callbacks cannot compromise transport cleanup.
600
+ }
601
+ }
602
+ }
603
+ //# sourceMappingURL=app-server-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-server-client.js","sourceRoot":"","sources":["../../src/server/app-server-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app-server-client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-server-client.test.d.ts","sourceRoot":"","sources":["../../src/server/app-server-client.test.ts"],"names":[],"mappings":""}