@modelprofile.com/mcp-crossharness 5.1.0 → 5.3.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.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.codexappserverclient.d.ts +75 -0
- package/dist_ts/classes.codexappserverclient.js +304 -0
- package/dist_ts/classes.connection.codex.d.ts +1 -9
- package/dist_ts/classes.connection.codex.js +22 -246
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/package.json +2 -2
- package/readme.md +50 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.codexappserverclient.ts +342 -0
- package/ts/classes.connection.codex.ts +22 -256
- package/ts/index.ts +1 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@modelprofile.com/mcp-crossharness',
|
|
6
|
-
version: '5.
|
|
6
|
+
version: '5.3.0',
|
|
7
7
|
description: 'Connection-first MCP server for explicit OpenCode HTTP and Codex WebSocket session servers'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxvQ0FBb0M7SUFDMUMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDRGQUE0RjtDQUMxRyxDQUFBIn0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
export type TCodexAppServerRequestId = string | number;
|
|
3
|
+
export interface ICodexAppServerNotification {
|
|
4
|
+
method: string;
|
|
5
|
+
params: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface ICodexAppServerRequest extends ICodexAppServerNotification {
|
|
8
|
+
id: TCodexAppServerRequestId;
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
}
|
|
11
|
+
export type TCodexAppServerTransport = {
|
|
12
|
+
type: 'websocket';
|
|
13
|
+
url: string;
|
|
14
|
+
token?: string;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'stdio';
|
|
17
|
+
readable: plugins.stream.Readable;
|
|
18
|
+
writable: plugins.stream.Writable;
|
|
19
|
+
};
|
|
20
|
+
export interface ICodexAppServerClientOptions {
|
|
21
|
+
transport: TCodexAppServerTransport;
|
|
22
|
+
clientInfo: {
|
|
23
|
+
name: string;
|
|
24
|
+
title: string;
|
|
25
|
+
version: string;
|
|
26
|
+
};
|
|
27
|
+
experimentalApi?: boolean;
|
|
28
|
+
/** Defaults to 4 MiB; consumers of paginated native histories may opt into up to 64 MiB. */
|
|
29
|
+
maxMessageBytes?: number;
|
|
30
|
+
/** WebSocket handshake deadline, 1–120,000 ms. Defaults to 5,000 ms. */
|
|
31
|
+
handshakeTimeoutMs?: number;
|
|
32
|
+
/** Native initialize deadline, 1–120,000 ms. Defaults to 5,000 ms. */
|
|
33
|
+
initializeTimeoutMs?: number;
|
|
34
|
+
onNotification?: (notificationArg: ICodexAppServerNotification) => void;
|
|
35
|
+
/** Replies use respond()/rejectRequest(); IDs are valid only on this connection. */
|
|
36
|
+
onServerRequest?: (requestArg: ICodexAppServerRequest) => void;
|
|
37
|
+
onClose?: (errorArg: Error) => void;
|
|
38
|
+
}
|
|
39
|
+
/** A request failure is not evidence that a dispatched mutation did not execute. */
|
|
40
|
+
export declare class CodexAppServerRequestError extends Error {
|
|
41
|
+
readonly dispatched: boolean;
|
|
42
|
+
readonly code?: number | undefined;
|
|
43
|
+
constructor(messageArg: string, dispatched: boolean, code?: number | undefined, optionsArg?: ErrorOptions);
|
|
44
|
+
}
|
|
45
|
+
/** Connection-scoped app-server protocol client. Process and approval policy belong to the caller. */
|
|
46
|
+
export declare class CodexAppServerClient {
|
|
47
|
+
private readonly options;
|
|
48
|
+
state: 'connecting' | 'connected' | 'closed';
|
|
49
|
+
serverVersion?: string;
|
|
50
|
+
private socket?;
|
|
51
|
+
private started;
|
|
52
|
+
private requestCounter;
|
|
53
|
+
private readonly pendingRequests;
|
|
54
|
+
private readonly serverRequests;
|
|
55
|
+
private readonly maxMessageBytes;
|
|
56
|
+
private inputBuffer;
|
|
57
|
+
private readonly maxBufferedBytes;
|
|
58
|
+
constructor(options: ICodexAppServerClientOptions);
|
|
59
|
+
connect(): Promise<void>;
|
|
60
|
+
request(methodArg: string, paramsArg: unknown, timeoutMsArg?: number, signalArg?: AbortSignal): Promise<unknown>;
|
|
61
|
+
private sendRequest;
|
|
62
|
+
respond(idArg: TCodexAppServerRequestId, resultArg: unknown): boolean;
|
|
63
|
+
rejectRequest(idArg: TCodexAppServerRequestId, codeArg: number, messageArg: string): boolean;
|
|
64
|
+
close(reasonArg?: string): void;
|
|
65
|
+
private readonly handleError;
|
|
66
|
+
private readonly handleEnd;
|
|
67
|
+
private readonly handleData;
|
|
68
|
+
private sendFrame;
|
|
69
|
+
private receive;
|
|
70
|
+
private takePending;
|
|
71
|
+
private rejectPending;
|
|
72
|
+
private finishServerRequest;
|
|
73
|
+
private assertOpen;
|
|
74
|
+
private cancellationError;
|
|
75
|
+
}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import * as helpers from './helpers.js';
|
|
3
|
+
/** A request failure is not evidence that a dispatched mutation did not execute. */
|
|
4
|
+
export class CodexAppServerRequestError extends Error {
|
|
5
|
+
dispatched;
|
|
6
|
+
code;
|
|
7
|
+
constructor(messageArg, dispatched, code, optionsArg) {
|
|
8
|
+
super(messageArg, optionsArg);
|
|
9
|
+
this.dispatched = dispatched;
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = 'CodexAppServerRequestError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Connection-scoped app-server protocol client. Process and approval policy belong to the caller. */
|
|
15
|
+
export class CodexAppServerClient {
|
|
16
|
+
options;
|
|
17
|
+
state = 'connecting';
|
|
18
|
+
serverVersion;
|
|
19
|
+
socket;
|
|
20
|
+
started = false;
|
|
21
|
+
requestCounter = 0;
|
|
22
|
+
pendingRequests = new Map();
|
|
23
|
+
serverRequests = new Map();
|
|
24
|
+
maxMessageBytes;
|
|
25
|
+
inputBuffer = Buffer.alloc(0);
|
|
26
|
+
maxBufferedBytes = 4 * 1024 * 1024;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
this.options = options;
|
|
29
|
+
this.maxMessageBytes = options.maxMessageBytes ?? 4 * 1024 * 1024;
|
|
30
|
+
if (!Number.isSafeInteger(this.maxMessageBytes)
|
|
31
|
+
|| this.maxMessageBytes < 1024 || this.maxMessageBytes > 64 * 1024 * 1024) {
|
|
32
|
+
throw new Error('Codex maxMessageBytes must be between 1 KiB and 64 MiB');
|
|
33
|
+
}
|
|
34
|
+
for (const name of ['handshakeTimeoutMs', 'initializeTimeoutMs']) {
|
|
35
|
+
const value = options[name];
|
|
36
|
+
if (value !== undefined && (!Number.isSafeInteger(value) || value < 1 || value > 120_000)) {
|
|
37
|
+
throw new Error(`Codex ${name} must be an integer between 1 and 120000 ms`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (options.transport.type === 'websocket') {
|
|
41
|
+
const url = new URL(options.transport.url);
|
|
42
|
+
if (!['ws:', 'wss:'].includes(url.protocol) || url.username || url.password || url.hash) {
|
|
43
|
+
throw new Error('Codex app-server requires an explicit ws/wss URL without credentials or fragment');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async connect() {
|
|
48
|
+
if (this.started || this.state === 'closed')
|
|
49
|
+
throw new Error('Codex client has already been started');
|
|
50
|
+
this.started = true;
|
|
51
|
+
try {
|
|
52
|
+
const transport = this.options.transport;
|
|
53
|
+
if (transport.type === 'websocket') {
|
|
54
|
+
const socket = new plugins.WsWebSocket(transport.url, {
|
|
55
|
+
perMessageDeflate: false,
|
|
56
|
+
followRedirects: false,
|
|
57
|
+
maxPayload: this.maxMessageBytes,
|
|
58
|
+
headers: transport.token ? { authorization: `Bearer ${transport.token}` } : {},
|
|
59
|
+
});
|
|
60
|
+
this.socket = socket;
|
|
61
|
+
socket.on('message', (data) => this.receive(data.toString()));
|
|
62
|
+
socket.on('error', this.handleError);
|
|
63
|
+
socket.on('close', this.handleEnd);
|
|
64
|
+
await new Promise((resolve, reject) => {
|
|
65
|
+
const cleanup = () => {
|
|
66
|
+
clearTimeout(timer);
|
|
67
|
+
socket.off('open', opened);
|
|
68
|
+
socket.off('error', failed);
|
|
69
|
+
socket.off('close', closed);
|
|
70
|
+
};
|
|
71
|
+
const opened = () => { cleanup(); resolve(); };
|
|
72
|
+
const failed = (errorArg) => { cleanup(); reject(errorArg); };
|
|
73
|
+
const closed = () => failed(new Error('Codex server WebSocket closed during handshake'));
|
|
74
|
+
const timer = setTimeout(() => failed(new Error('Codex server WebSocket handshake timed out')), this.options.handshakeTimeoutMs ?? 5000);
|
|
75
|
+
socket.once('open', opened);
|
|
76
|
+
socket.once('error', failed);
|
|
77
|
+
socket.once('close', closed);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
if (transport.readable.destroyed || transport.writable.destroyed || transport.writable.writableEnded) {
|
|
82
|
+
throw new Error('Codex app-server streams are closed');
|
|
83
|
+
}
|
|
84
|
+
transport.readable.on('data', this.handleData);
|
|
85
|
+
transport.readable.on('error', this.handleError);
|
|
86
|
+
transport.readable.on('end', this.handleEnd);
|
|
87
|
+
transport.readable.on('close', this.handleEnd);
|
|
88
|
+
transport.writable.on('error', this.handleError);
|
|
89
|
+
transport.writable.on('close', this.handleEnd);
|
|
90
|
+
}
|
|
91
|
+
const initialized = await this.sendRequest('initialize', {
|
|
92
|
+
clientInfo: this.options.clientInfo,
|
|
93
|
+
capabilities: { experimentalApi: this.options.experimentalApi ?? false, requestAttestation: false },
|
|
94
|
+
}, this.options.initializeTimeoutMs ?? 5000, undefined, true);
|
|
95
|
+
if (!helpers.isRecord(initialized) || typeof initialized.userAgent !== 'string') {
|
|
96
|
+
throw new Error('Codex server returned an invalid initialize response');
|
|
97
|
+
}
|
|
98
|
+
this.serverVersion = initialized.userAgent.match(/\/(\d+\.\d+\.\d+[^\s]*)/)?.[1];
|
|
99
|
+
this.sendFrame({ method: 'initialized' });
|
|
100
|
+
this.assertOpen();
|
|
101
|
+
this.state = 'connected';
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
this.close(helpers.errorMessage(error));
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
request(methodArg, paramsArg, timeoutMsArg = 30000, signalArg) {
|
|
109
|
+
return this.sendRequest(methodArg, paramsArg, timeoutMsArg, signalArg);
|
|
110
|
+
}
|
|
111
|
+
sendRequest(methodArg, paramsArg, timeoutMsArg, signalArg, allowInitializingArg = false) {
|
|
112
|
+
if ((!allowInitializingArg && this.state !== 'connected') || this.state === 'closed') {
|
|
113
|
+
return Promise.reject(new CodexAppServerRequestError('Codex client is not connected', false));
|
|
114
|
+
}
|
|
115
|
+
if (this.pendingRequests.size >= 256) {
|
|
116
|
+
return Promise.reject(new CodexAppServerRequestError('Codex connection has too many active requests', false));
|
|
117
|
+
}
|
|
118
|
+
if (!Number.isFinite(timeoutMsArg) || timeoutMsArg <= 0 || timeoutMsArg > 2_147_483_647) {
|
|
119
|
+
return Promise.reject(new CodexAppServerRequestError('Codex request timeout is invalid', false));
|
|
120
|
+
}
|
|
121
|
+
if (signalArg?.aborted)
|
|
122
|
+
return Promise.reject(this.cancellationError(signalArg, false));
|
|
123
|
+
return new Promise((resolve, reject) => {
|
|
124
|
+
const id = ++this.requestCounter;
|
|
125
|
+
const timer = setTimeout(() => this.rejectPending(id, new CodexAppServerRequestError(`Codex request timed out: ${methodArg}`, true)), timeoutMsArg);
|
|
126
|
+
const pending = { resolve, reject, timer, signal: signalArg };
|
|
127
|
+
if (signalArg) {
|
|
128
|
+
pending.abortHandler = () => this.rejectPending(id, this.cancellationError(signalArg, true));
|
|
129
|
+
signalArg.addEventListener('abort', pending.abortHandler, { once: true });
|
|
130
|
+
}
|
|
131
|
+
this.pendingRequests.set(id, pending);
|
|
132
|
+
try {
|
|
133
|
+
this.sendFrame({ id, method: methodArg, params: paramsArg });
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.rejectPending(id, new CodexAppServerRequestError(helpers.errorMessage(error), false, undefined, { cause: error }));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
respond(idArg, resultArg) {
|
|
141
|
+
if (!this.finishServerRequest(idArg) || this.state === 'closed')
|
|
142
|
+
return false;
|
|
143
|
+
this.sendFrame({ id: idArg, result: resultArg });
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
rejectRequest(idArg, codeArg, messageArg) {
|
|
147
|
+
if (!this.finishServerRequest(idArg) || this.state === 'closed')
|
|
148
|
+
return false;
|
|
149
|
+
this.sendFrame({ id: idArg, error: { code: codeArg, message: messageArg } });
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
close(reasonArg = 'Codex server connection closed') {
|
|
153
|
+
if (this.state === 'closed')
|
|
154
|
+
return;
|
|
155
|
+
this.state = 'closed';
|
|
156
|
+
const error = new CodexAppServerRequestError(reasonArg, true);
|
|
157
|
+
for (const id of this.pendingRequests.keys())
|
|
158
|
+
this.rejectPending(id, error);
|
|
159
|
+
for (const id of this.serverRequests.keys())
|
|
160
|
+
this.finishServerRequest(id);
|
|
161
|
+
this.inputBuffer = Buffer.alloc(0);
|
|
162
|
+
const transport = this.options.transport;
|
|
163
|
+
if (transport.type === 'websocket') {
|
|
164
|
+
if (this.socket && this.socket.readyState !== plugins.WsWebSocket.CLOSED)
|
|
165
|
+
this.socket.terminate();
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
transport.readable.off('data', this.handleData);
|
|
169
|
+
transport.readable.off('end', this.handleEnd);
|
|
170
|
+
transport.readable.off('close', this.handleEnd);
|
|
171
|
+
transport.writable.off('close', this.handleEnd);
|
|
172
|
+
// End only these caller-supplied streams; the caller owns the subprocess.
|
|
173
|
+
transport.writable.end();
|
|
174
|
+
transport.readable.destroy();
|
|
175
|
+
}
|
|
176
|
+
this.options.onClose?.(error);
|
|
177
|
+
}
|
|
178
|
+
handleError = (errorArg) => { this.close(errorArg.message); };
|
|
179
|
+
handleEnd = () => { this.close('Codex server connection closed'); };
|
|
180
|
+
handleData = (dataArg) => {
|
|
181
|
+
const data = Buffer.isBuffer(dataArg) ? dataArg : Buffer.from(dataArg);
|
|
182
|
+
let offset = 0;
|
|
183
|
+
while (offset < data.length && this.state !== 'closed') {
|
|
184
|
+
const newline = data.indexOf(10, offset);
|
|
185
|
+
const end = newline < 0 ? data.length : newline;
|
|
186
|
+
if (this.inputBuffer.length + end - offset > this.maxMessageBytes) {
|
|
187
|
+
this.close('Codex app-server frame exceeded the response limit');
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this.inputBuffer = Buffer.concat([this.inputBuffer, data.subarray(offset, end)]);
|
|
191
|
+
if (newline < 0)
|
|
192
|
+
break;
|
|
193
|
+
const raw = this.inputBuffer.toString('utf8');
|
|
194
|
+
this.inputBuffer = Buffer.alloc(0);
|
|
195
|
+
if (raw.trim())
|
|
196
|
+
this.receive(raw);
|
|
197
|
+
offset = newline + 1;
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
sendFrame(frameArg) {
|
|
201
|
+
const payload = JSON.stringify(frameArg);
|
|
202
|
+
const payloadBytes = Buffer.byteLength(payload, 'utf8');
|
|
203
|
+
const transport = this.options.transport;
|
|
204
|
+
const buffered = transport.type === 'websocket'
|
|
205
|
+
? this.socket?.bufferedAmount ?? 0 : transport.writable.writableLength;
|
|
206
|
+
if (this.state === 'closed')
|
|
207
|
+
throw new Error('Codex server connection is closed');
|
|
208
|
+
if (buffered + payloadBytes + 1 > this.maxBufferedBytes) {
|
|
209
|
+
const error = new Error('Codex send buffer exceeded the 4 MiB limit');
|
|
210
|
+
this.close(error.message);
|
|
211
|
+
throw error;
|
|
212
|
+
}
|
|
213
|
+
if (transport.type === 'websocket') {
|
|
214
|
+
if (!this.socket || this.socket.readyState !== plugins.WsWebSocket.OPEN) {
|
|
215
|
+
throw new Error('Codex server WebSocket is not open');
|
|
216
|
+
}
|
|
217
|
+
this.socket.send(payload, (error) => { if (error)
|
|
218
|
+
this.handleError(error); });
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
if (transport.writable.destroyed || transport.writable.writableEnded)
|
|
222
|
+
throw new Error('Codex server input is closed');
|
|
223
|
+
transport.writable.write(`${payload}\n`, (error) => { if (error)
|
|
224
|
+
this.handleError(error); });
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
receive(rawArg) {
|
|
228
|
+
if (this.state === 'closed')
|
|
229
|
+
return;
|
|
230
|
+
try {
|
|
231
|
+
const message = JSON.parse(rawArg);
|
|
232
|
+
if (!helpers.isRecord(message))
|
|
233
|
+
throw new Error('Codex server returned a malformed frame');
|
|
234
|
+
if (typeof message.method === 'string') {
|
|
235
|
+
const params = message.params ?? {};
|
|
236
|
+
if (!helpers.isRecord(params))
|
|
237
|
+
throw new Error(`Codex returned malformed ${message.method} params`);
|
|
238
|
+
if (message.id !== undefined) {
|
|
239
|
+
if ((typeof message.id !== 'string' && typeof message.id !== 'number')
|
|
240
|
+
|| this.serverRequests.has(message.id) || this.serverRequests.size >= 256) {
|
|
241
|
+
throw new Error('Codex server request identity or capacity is invalid');
|
|
242
|
+
}
|
|
243
|
+
const controller = new AbortController();
|
|
244
|
+
this.serverRequests.set(message.id, controller);
|
|
245
|
+
if (this.options.onServerRequest)
|
|
246
|
+
this.options.onServerRequest({ id: message.id, method: message.method, params, signal: controller.signal });
|
|
247
|
+
else
|
|
248
|
+
this.rejectRequest(message.id, -32601, `Client does not implement ${message.method}`);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
if (message.method === 'serverRequest/resolved'
|
|
252
|
+
&& (typeof params.requestId === 'number' || typeof params.requestId === 'string')) {
|
|
253
|
+
this.finishServerRequest(params.requestId);
|
|
254
|
+
}
|
|
255
|
+
this.options.onNotification?.({ method: message.method, params });
|
|
256
|
+
}
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (typeof message.id !== 'number')
|
|
260
|
+
return;
|
|
261
|
+
const pending = this.takePending(message.id);
|
|
262
|
+
if (!pending)
|
|
263
|
+
return;
|
|
264
|
+
if (message.error !== undefined) {
|
|
265
|
+
const code = helpers.isRecord(message.error) && typeof message.error.code === 'number' ? message.error.code : undefined;
|
|
266
|
+
pending.reject(new CodexAppServerRequestError(`Codex server rejected request: ${JSON.stringify(message.error).slice(0, 4000)}`, true, code));
|
|
267
|
+
}
|
|
268
|
+
else
|
|
269
|
+
pending.resolve(message.result);
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
this.close(helpers.errorMessage(error));
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
takePending(idArg) {
|
|
276
|
+
const pending = this.pendingRequests.get(idArg);
|
|
277
|
+
if (!pending)
|
|
278
|
+
return undefined;
|
|
279
|
+
this.pendingRequests.delete(idArg);
|
|
280
|
+
clearTimeout(pending.timer);
|
|
281
|
+
if (pending.abortHandler)
|
|
282
|
+
pending.signal?.removeEventListener('abort', pending.abortHandler);
|
|
283
|
+
return pending;
|
|
284
|
+
}
|
|
285
|
+
rejectPending(idArg, errorArg) {
|
|
286
|
+
this.takePending(idArg)?.reject(errorArg);
|
|
287
|
+
}
|
|
288
|
+
finishServerRequest(idArg) {
|
|
289
|
+
const controller = this.serverRequests.get(idArg);
|
|
290
|
+
if (!controller)
|
|
291
|
+
return false;
|
|
292
|
+
this.serverRequests.delete(idArg);
|
|
293
|
+
controller.abort();
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
assertOpen() {
|
|
297
|
+
if (this.state === 'closed')
|
|
298
|
+
throw new Error('Codex server connection is closed');
|
|
299
|
+
}
|
|
300
|
+
cancellationError(signalArg, dispatchedArg) {
|
|
301
|
+
return new CodexAppServerRequestError(signalArg.reason instanceof Error ? signalArg.reason.message : 'operation cancelled', dispatchedArg, undefined, { cause: signalArg.reason });
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2RleGFwcHNlcnZlcmNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuY29kZXhhcHBzZXJ2ZXJjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUEwQ3hDLG9GQUFvRjtBQUNwRixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsS0FBSztJQUdqQztJQUNBO0lBSGxCLFlBQ0UsVUFBa0IsRUFDRixVQUFtQixFQUNuQixJQUFhLEVBQzdCLFVBQXlCO1FBRXpCLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFKZCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVM7UUFJN0IsSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFFRCxzR0FBc0c7QUFDdEcsTUFBTSxPQUFPLG9CQUFvQjtJQVlGO0lBWHRCLEtBQUssR0FBMEMsWUFBWSxDQUFDO0lBQzVELGFBQWEsQ0FBVTtJQUN0QixNQUFNLENBQTRDO0lBQ2xELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUNyRCxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQTZDLENBQUM7SUFDdEUsZUFBZSxDQUFTO0lBQ2pDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLGdCQUFnQixHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBRXBELFlBQTZCLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFB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
|
|
@@ -9,9 +9,7 @@ export declare class CodexConnection implements interfaces.IHarnessConnection {
|
|
|
9
9
|
state: interfaces.TConnectionState;
|
|
10
10
|
private connectedAt;
|
|
11
11
|
private serverVersion;
|
|
12
|
-
private
|
|
13
|
-
private requestCounter;
|
|
14
|
-
private pendingRequests;
|
|
12
|
+
private client?;
|
|
15
13
|
private pendingTurns;
|
|
16
14
|
private threadQueues;
|
|
17
15
|
private activeThreads;
|
|
@@ -32,9 +30,6 @@ export declare class CodexConnection implements interfaces.IHarnessConnection {
|
|
|
32
30
|
private parseThread;
|
|
33
31
|
private assertThreadIdentity;
|
|
34
32
|
private request;
|
|
35
|
-
private sendNotification;
|
|
36
|
-
private sendFrame;
|
|
37
|
-
private handleMessage;
|
|
38
33
|
private handleNotification;
|
|
39
34
|
private handleTurnNotification;
|
|
40
35
|
private bindTurnId;
|
|
@@ -49,7 +44,6 @@ export declare class CodexConnection implements interfaces.IHarnessConnection {
|
|
|
49
44
|
private appendTurnDelta;
|
|
50
45
|
private remainingSendMs;
|
|
51
46
|
private clearQueueEntryResources;
|
|
52
|
-
private clearPendingRequestResources;
|
|
53
47
|
private abortError;
|
|
54
48
|
private assertChatId;
|
|
55
49
|
private bufferEarlyNotification;
|
|
@@ -59,8 +53,6 @@ export declare class CodexConnection implements interfaces.IHarnessConnection {
|
|
|
59
53
|
private settleTurn;
|
|
60
54
|
private respondToServerRequest;
|
|
61
55
|
private handleSocketFailure;
|
|
62
|
-
private handleSocketClose;
|
|
63
56
|
private finishClosed;
|
|
64
57
|
private rejectAll;
|
|
65
|
-
private closeSocket;
|
|
66
58
|
}
|