shennian 0.1.35 → 0.2.4
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/src/__tests__/agents-e2e.js +14 -5
- package/dist/src/__tests__/agents-e2e.js.map +1 -1
- package/dist/src/__tests__/codex-adapter.test.js +59 -2
- package/dist/src/__tests__/codex-adapter.test.js.map +1 -1
- package/dist/src/__tests__/e2e-relay.js +173 -29
- package/dist/src/__tests__/e2e-relay.js.map +1 -1
- package/dist/src/__tests__/fs-handler.test.d.ts +2 -0
- package/dist/src/__tests__/fs-handler.test.d.ts.map +1 -0
- package/dist/src/__tests__/fs-handler.test.js +19 -0
- package/dist/src/__tests__/fs-handler.test.js.map +1 -0
- package/dist/src/__tests__/model-switching.test.js +40 -1
- package/dist/src/__tests__/model-switching.test.js.map +1 -1
- package/dist/src/__tests__/native-fusion-parsers.test.js +39 -2
- package/dist/src/__tests__/native-fusion-parsers.test.js.map +1 -1
- package/dist/src/__tests__/session-manager.test.js +95 -2
- package/dist/src/__tests__/session-manager.test.js.map +1 -1
- package/dist/src/agents/codex.d.ts +18 -0
- package/dist/src/agents/codex.d.ts.map +1 -1
- package/dist/src/agents/codex.js +360 -10
- package/dist/src/agents/codex.js.map +1 -1
- package/dist/src/agents/model-registry/discovery.d.ts.map +1 -1
- package/dist/src/agents/model-registry/discovery.js +84 -1
- package/dist/src/agents/model-registry/discovery.js.map +1 -1
- package/dist/src/agents/model-registry/parsers.d.ts +1 -0
- package/dist/src/agents/model-registry/parsers.d.ts.map +1 -1
- package/dist/src/agents/model-registry/parsers.js +77 -0
- package/dist/src/agents/model-registry/parsers.js.map +1 -1
- package/dist/src/agents/model-registry.d.ts +2 -1
- package/dist/src/agents/model-registry.d.ts.map +1 -1
- package/dist/src/agents/model-registry.js +2 -1
- package/dist/src/agents/model-registry.js.map +1 -1
- package/dist/src/fs/handler.d.ts.map +1 -1
- package/dist/src/fs/handler.js +18 -0
- package/dist/src/fs/handler.js.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/native-fusion/parsers.d.ts.map +1 -1
- package/dist/src/native-fusion/parsers.js +52 -5
- package/dist/src/native-fusion/parsers.js.map +1 -1
- package/dist/src/native-fusion/service.d.ts.map +1 -1
- package/dist/src/native-fusion/service.js +2 -5
- package/dist/src/native-fusion/service.js.map +1 -1
- package/dist/src/session/handlers/chat.d.ts.map +1 -1
- package/dist/src/session/handlers/chat.js +49 -7
- package/dist/src/session/handlers/chat.js.map +1 -1
- package/dist/src/session/handlers/fs.d.ts.map +1 -1
- package/dist/src/session/handlers/fs.js +32 -1
- package/dist/src/session/handlers/fs.js.map +1 -1
- package/dist/src/session/types.d.ts +6 -0
- package/dist/src/session/types.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/agents/codex.js
CHANGED
|
@@ -16,6 +16,14 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
16
16
|
textTail = '';
|
|
17
17
|
terminalState = 'open';
|
|
18
18
|
forceCloseTimer = null;
|
|
19
|
+
stderrBuf = '';
|
|
20
|
+
rpcSeq = 1;
|
|
21
|
+
pendingRequests = new Map();
|
|
22
|
+
appServerReady = null;
|
|
23
|
+
activeTurnId = null;
|
|
24
|
+
namedThread = false;
|
|
25
|
+
deltaItemIds = new Set();
|
|
26
|
+
lastTransientStatus = '';
|
|
19
27
|
async start(_sessionId, workDir, agentSessionId) {
|
|
20
28
|
this.workDir = workDir;
|
|
21
29
|
this.seq = 0;
|
|
@@ -23,20 +31,38 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
23
31
|
this.agentSessionId = agentSessionId;
|
|
24
32
|
}
|
|
25
33
|
async send(text, modelId) {
|
|
26
|
-
|
|
34
|
+
if (this.activeTurnId) {
|
|
35
|
+
await this.killProcess();
|
|
36
|
+
}
|
|
37
|
+
const codexModelId = normalizeCodexModelId(modelId);
|
|
27
38
|
this.runId = randomUUID();
|
|
28
39
|
this.seq = 0;
|
|
29
40
|
this.resetRunState();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
await this.ensureAppServer(codexModelId);
|
|
42
|
+
const threadId = this.agentSessionId;
|
|
43
|
+
if (!threadId)
|
|
44
|
+
throw new Error('codex app-server did not create a thread');
|
|
45
|
+
this.emitEvent({ state: 'start', agentSessionId: threadId });
|
|
46
|
+
if (!this.namedThread) {
|
|
47
|
+
await this.sendRpc('thread/name/set', {
|
|
48
|
+
threadId,
|
|
49
|
+
name: makeThreadTitle(text),
|
|
50
|
+
}).catch(() => { });
|
|
51
|
+
this.namedThread = true;
|
|
36
52
|
}
|
|
53
|
+
const response = await this.sendRpc('turn/start', {
|
|
54
|
+
threadId,
|
|
55
|
+
input: [{ type: 'text', text, text_elements: [] }],
|
|
56
|
+
approvalPolicy: 'never',
|
|
57
|
+
sandboxPolicy: { type: 'dangerFullAccess' },
|
|
58
|
+
...(codexModelId ? { model: codexModelId } : {}),
|
|
59
|
+
});
|
|
60
|
+
this.activeTurnId = response.turn?.id ?? null;
|
|
37
61
|
}
|
|
38
62
|
async resume(agentSessionId) {
|
|
63
|
+
await this.killProcess();
|
|
39
64
|
this.agentSessionId = agentSessionId;
|
|
65
|
+
this.namedThread = true;
|
|
40
66
|
this.resetTextState();
|
|
41
67
|
}
|
|
42
68
|
async stop() {
|
|
@@ -84,6 +110,258 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
84
110
|
}
|
|
85
111
|
});
|
|
86
112
|
}
|
|
113
|
+
spawnAppServer() {
|
|
114
|
+
const proc = spawn('codex', ['app-server', '--listen', 'stdio://'], {
|
|
115
|
+
cwd: this.workDir ?? undefined,
|
|
116
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
117
|
+
env: { ...process.env, NO_COLOR: '1' },
|
|
118
|
+
});
|
|
119
|
+
this.process = proc;
|
|
120
|
+
this.stderrBuf = '';
|
|
121
|
+
const rl = createInterface({ input: proc.stdout });
|
|
122
|
+
rl.on('line', (line) => {
|
|
123
|
+
if (!line.trim())
|
|
124
|
+
return;
|
|
125
|
+
let msg;
|
|
126
|
+
try {
|
|
127
|
+
msg = JSON.parse(line);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
this.handleAppServerMessage(msg);
|
|
133
|
+
});
|
|
134
|
+
proc.stderr?.on('data', (chunk) => {
|
|
135
|
+
this.stderrBuf += chunk.toString();
|
|
136
|
+
});
|
|
137
|
+
proc.on('close', (code) => {
|
|
138
|
+
if (this.process !== proc)
|
|
139
|
+
return;
|
|
140
|
+
const hadActiveTurn = this.activeTurnId != null;
|
|
141
|
+
this.process = null;
|
|
142
|
+
this.appServerReady = null;
|
|
143
|
+
this.activeTurnId = null;
|
|
144
|
+
this.rejectAllPending(new Error(normalizeCodexStderr(this.stderrBuf) || `codex app-server exited with code ${code}`));
|
|
145
|
+
if (this.terminalState === 'open' && hadActiveTurn) {
|
|
146
|
+
this.handleProcessClose(code, this.stderrBuf);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
proc.on('error', (err) => {
|
|
150
|
+
if (this.process !== proc)
|
|
151
|
+
return;
|
|
152
|
+
this.process = null;
|
|
153
|
+
this.rejectAllPending(err);
|
|
154
|
+
if (err.code === 'ENOENT') {
|
|
155
|
+
this.emit('error', new Error('Command "codex" not found. Is OpenAI Codex CLI installed?'));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.emit('error', err);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
async ensureAppServer(modelId) {
|
|
163
|
+
if (this.appServerReady)
|
|
164
|
+
return this.appServerReady;
|
|
165
|
+
this.spawnAppServer();
|
|
166
|
+
this.appServerReady = this.initializeAppServer(modelId).catch(async (error) => {
|
|
167
|
+
this.appServerReady = null;
|
|
168
|
+
await this.killProcess();
|
|
169
|
+
throw error;
|
|
170
|
+
});
|
|
171
|
+
return this.appServerReady;
|
|
172
|
+
}
|
|
173
|
+
async initializeAppServer(modelId) {
|
|
174
|
+
const codexModelId = normalizeCodexModelId(modelId);
|
|
175
|
+
await this.sendRpc('initialize', {
|
|
176
|
+
clientInfo: { name: 'shennian', title: 'Shennian', version: '0.0.0' },
|
|
177
|
+
capabilities: { experimentalApi: true },
|
|
178
|
+
});
|
|
179
|
+
if (this.agentSessionId) {
|
|
180
|
+
const response = await this.sendRpc('thread/resume', {
|
|
181
|
+
threadId: this.agentSessionId,
|
|
182
|
+
cwd: this.workDir,
|
|
183
|
+
approvalPolicy: 'never',
|
|
184
|
+
sandbox: 'danger-full-access',
|
|
185
|
+
persistExtendedHistory: true,
|
|
186
|
+
...(codexModelId ? { model: codexModelId } : {}),
|
|
187
|
+
});
|
|
188
|
+
this.agentSessionId = response.thread?.id ?? this.agentSessionId;
|
|
189
|
+
this.namedThread = !!response.thread?.name;
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const response = await this.sendRpc('thread/start', {
|
|
193
|
+
cwd: this.workDir,
|
|
194
|
+
approvalPolicy: 'never',
|
|
195
|
+
sandbox: 'danger-full-access',
|
|
196
|
+
serviceName: 'Shennian',
|
|
197
|
+
experimentalRawEvents: false,
|
|
198
|
+
persistExtendedHistory: true,
|
|
199
|
+
...(codexModelId ? { model: codexModelId } : {}),
|
|
200
|
+
});
|
|
201
|
+
const threadId = response.thread?.id;
|
|
202
|
+
if (!threadId)
|
|
203
|
+
throw new Error('codex app-server thread/start returned no thread id');
|
|
204
|
+
this.agentSessionId = threadId;
|
|
205
|
+
this.namedThread = !!response.thread?.name;
|
|
206
|
+
}
|
|
207
|
+
sendRpc(method, params, timeoutMs = 60_000) {
|
|
208
|
+
const proc = this.process;
|
|
209
|
+
if (!proc?.stdin)
|
|
210
|
+
return Promise.reject(new Error('codex app-server is not running'));
|
|
211
|
+
const id = this.rpcSeq++;
|
|
212
|
+
const payload = JSON.stringify({ id, method, params });
|
|
213
|
+
return new Promise((resolve, reject) => {
|
|
214
|
+
const timer = setTimeout(() => {
|
|
215
|
+
this.pendingRequests.delete(id);
|
|
216
|
+
reject(new Error(`codex app-server request timed out: ${method}`));
|
|
217
|
+
}, timeoutMs);
|
|
218
|
+
this.pendingRequests.set(id, { resolve, reject, timer });
|
|
219
|
+
proc.stdin.write(`${payload}\n`, (error) => {
|
|
220
|
+
if (!error)
|
|
221
|
+
return;
|
|
222
|
+
clearTimeout(timer);
|
|
223
|
+
this.pendingRequests.delete(id);
|
|
224
|
+
reject(error);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
handleAppServerMessage(msg) {
|
|
229
|
+
if (msg.id != null) {
|
|
230
|
+
const pending = this.pendingRequests.get(msg.id);
|
|
231
|
+
if (pending) {
|
|
232
|
+
clearTimeout(pending.timer);
|
|
233
|
+
this.pendingRequests.delete(msg.id);
|
|
234
|
+
if (msg.error) {
|
|
235
|
+
pending.reject(new Error(msg.error.message || `codex app-server error ${msg.error.code ?? ''}`.trim()));
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
pending.resolve(msg.result);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (!msg.method)
|
|
243
|
+
return;
|
|
244
|
+
const params = msg.params ?? {};
|
|
245
|
+
switch (msg.method) {
|
|
246
|
+
case 'item/agentMessage/delta': {
|
|
247
|
+
const itemId = typeof params.itemId === 'string' ? params.itemId : '';
|
|
248
|
+
if (itemId)
|
|
249
|
+
this.deltaItemIds.add(itemId);
|
|
250
|
+
if (typeof params.delta === 'string')
|
|
251
|
+
this.emitText(params.delta);
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
case 'item/completed':
|
|
255
|
+
this.handleAppServerCompletedItem(params);
|
|
256
|
+
break;
|
|
257
|
+
case 'thread/tokenUsage/updated':
|
|
258
|
+
this.handleAppServerUsage(params);
|
|
259
|
+
break;
|
|
260
|
+
case 'turn/completed': {
|
|
261
|
+
const turn = typeof params.turn === 'object' && params.turn !== null
|
|
262
|
+
? params.turn
|
|
263
|
+
: null;
|
|
264
|
+
const turnId = typeof turn?.id === 'string' ? turn.id : null;
|
|
265
|
+
if (!this.activeTurnId || turnId === this.activeTurnId) {
|
|
266
|
+
this.activeTurnId = null;
|
|
267
|
+
this.emitFinalIfOpen();
|
|
268
|
+
}
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
case 'error': {
|
|
272
|
+
const message = extractAppServerErrorMessage(params);
|
|
273
|
+
if (isTransientCodexErrorMessage(message)) {
|
|
274
|
+
this.emitTransientStatus(message);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
this.emitErrorIfOpen(message);
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
handleAppServerCompletedItem(params) {
|
|
283
|
+
const item = typeof params.item === 'object' && params.item !== null
|
|
284
|
+
? params.item
|
|
285
|
+
: null;
|
|
286
|
+
if (!item || typeof item.type !== 'string')
|
|
287
|
+
return;
|
|
288
|
+
switch (item.type) {
|
|
289
|
+
case 'agentMessage': {
|
|
290
|
+
const id = typeof item.id === 'string' ? item.id : '';
|
|
291
|
+
if (id && this.deltaItemIds.has(id))
|
|
292
|
+
return;
|
|
293
|
+
if (typeof item.text === 'string')
|
|
294
|
+
this.emitText(item.text, 'block');
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
case 'commandExecution': {
|
|
298
|
+
const command = typeof item.command === 'string' ? item.command : '';
|
|
299
|
+
const output = typeof item.aggregatedOutput === 'string' ? item.aggregatedOutput : '';
|
|
300
|
+
if (command) {
|
|
301
|
+
this.emitEvent({ state: 'tool-call', name: 'command_execution', args: { command } });
|
|
302
|
+
}
|
|
303
|
+
this.emitEvent({
|
|
304
|
+
state: 'tool-result',
|
|
305
|
+
name: 'command_execution',
|
|
306
|
+
result: [output, item.exitCode != null ? `\n(exit ${item.exitCode})` : ''].join('').trim(),
|
|
307
|
+
});
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
case 'mcpToolCall':
|
|
311
|
+
case 'dynamicToolCall': {
|
|
312
|
+
const tool = typeof item.tool === 'string' ? item.tool : item.type;
|
|
313
|
+
const args = typeof item.arguments === 'object' && item.arguments !== null
|
|
314
|
+
? item.arguments
|
|
315
|
+
: {};
|
|
316
|
+
this.emitEvent({ state: 'tool-call', name: tool, args });
|
|
317
|
+
this.emitEvent({
|
|
318
|
+
state: 'tool-result',
|
|
319
|
+
name: tool,
|
|
320
|
+
result: safeStringify(item.error ?? item.result ?? item.contentItems ?? ''),
|
|
321
|
+
});
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
case 'fileChange': {
|
|
325
|
+
const changes = Array.isArray(item.changes) ? item.changes : [];
|
|
326
|
+
const summary = changes
|
|
327
|
+
.map((change) => {
|
|
328
|
+
if (typeof change !== 'object' || change === null)
|
|
329
|
+
return '';
|
|
330
|
+
const c = change;
|
|
331
|
+
const path = typeof c.path === 'string' ? c.path : typeof c.file === 'string' ? c.file : '';
|
|
332
|
+
const kind = typeof c.kind === 'string' ? c.kind : typeof c.type === 'string' ? c.type : 'change';
|
|
333
|
+
return path ? `${kind}: ${path}` : '';
|
|
334
|
+
})
|
|
335
|
+
.filter(Boolean)
|
|
336
|
+
.join('\n');
|
|
337
|
+
if (summary)
|
|
338
|
+
this.emitText(summary, 'block');
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
handleAppServerUsage(params) {
|
|
344
|
+
const tokenUsage = typeof params.tokenUsage === 'object' && params.tokenUsage !== null
|
|
345
|
+
? params.tokenUsage
|
|
346
|
+
: null;
|
|
347
|
+
const last = typeof tokenUsage?.last === 'object' && tokenUsage.last !== null
|
|
348
|
+
? tokenUsage.last
|
|
349
|
+
: null;
|
|
350
|
+
const total = typeof tokenUsage?.total === 'object' && tokenUsage.total !== null
|
|
351
|
+
? tokenUsage.total
|
|
352
|
+
: null;
|
|
353
|
+
const usage = last ?? total;
|
|
354
|
+
if (!usage)
|
|
355
|
+
return;
|
|
356
|
+
const input = typeof usage.inputTokens === 'number' ? usage.inputTokens : undefined;
|
|
357
|
+
const output = typeof usage.outputTokens === 'number' ? usage.outputTokens : undefined;
|
|
358
|
+
if (input != null || output != null) {
|
|
359
|
+
this.pendingUsage = {
|
|
360
|
+
inputTokens: input ?? 0,
|
|
361
|
+
outputTokens: output ?? 0,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
}
|
|
87
365
|
handleCodexItemLine(obj) {
|
|
88
366
|
const item = obj.item;
|
|
89
367
|
if (!item?.type)
|
|
@@ -273,8 +551,12 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
273
551
|
}
|
|
274
552
|
async killProcess() {
|
|
275
553
|
const proc = this.process;
|
|
276
|
-
|
|
554
|
+
this.appServerReady = null;
|
|
555
|
+
this.activeTurnId = null;
|
|
556
|
+
if (!proc) {
|
|
557
|
+
this.rejectAllPending(new Error('codex app-server stopped'));
|
|
277
558
|
return;
|
|
559
|
+
}
|
|
278
560
|
this.process = null;
|
|
279
561
|
this.clearForceCloseTimer();
|
|
280
562
|
proc.kill('SIGTERM');
|
|
@@ -285,6 +567,14 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
285
567
|
resolve();
|
|
286
568
|
}, 3000);
|
|
287
569
|
});
|
|
570
|
+
this.rejectAllPending(new Error('codex app-server stopped'));
|
|
571
|
+
}
|
|
572
|
+
rejectAllPending(error) {
|
|
573
|
+
for (const [id, pending] of this.pendingRequests.entries()) {
|
|
574
|
+
clearTimeout(pending.timer);
|
|
575
|
+
pending.reject(error);
|
|
576
|
+
this.pendingRequests.delete(id);
|
|
577
|
+
}
|
|
288
578
|
}
|
|
289
579
|
handleProcessClose(code, stderrBuf) {
|
|
290
580
|
const stderr = normalizeCodexStderr(stderrBuf);
|
|
@@ -311,21 +601,29 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
311
601
|
usage: this.pendingUsage,
|
|
312
602
|
agentSessionId: this.agentSessionId ?? undefined,
|
|
313
603
|
});
|
|
314
|
-
this.scheduleProcessClose();
|
|
315
604
|
}
|
|
316
605
|
emitErrorIfOpen(message) {
|
|
317
606
|
if (this.terminalState !== 'open')
|
|
318
607
|
return;
|
|
319
608
|
this.terminalState = 'error';
|
|
320
|
-
this.emitEvent({ state: 'error', message });
|
|
609
|
+
this.emitEvent({ state: 'error', message: formatCodexErrorMessage(message) });
|
|
321
610
|
this.scheduleProcessClose();
|
|
322
611
|
}
|
|
323
612
|
resetRunState() {
|
|
324
613
|
this.pendingUsage = undefined;
|
|
325
614
|
this.terminalState = 'open';
|
|
615
|
+
this.deltaItemIds.clear();
|
|
616
|
+
this.lastTransientStatus = '';
|
|
326
617
|
this.clearForceCloseTimer();
|
|
327
618
|
this.resetTextState();
|
|
328
619
|
}
|
|
620
|
+
emitTransientStatus(message) {
|
|
621
|
+
const formatted = formatTransientCodexStatus(message);
|
|
622
|
+
if (!formatted || formatted === this.lastTransientStatus || this.terminalState !== 'open')
|
|
623
|
+
return;
|
|
624
|
+
this.lastTransientStatus = formatted;
|
|
625
|
+
this.emitEvent({ state: 'delta', text: `${formatted}\n`, thinking: true });
|
|
626
|
+
}
|
|
329
627
|
resetTextState() {
|
|
330
628
|
this.hasEmittedText = false;
|
|
331
629
|
this.textTail = '';
|
|
@@ -371,6 +669,58 @@ export class CodexAdapter extends AgentAdapter {
|
|
|
371
669
|
this.forceCloseTimer = null;
|
|
372
670
|
}
|
|
373
671
|
}
|
|
672
|
+
function makeThreadTitle(text) {
|
|
673
|
+
const firstLine = normalizeTitleText(text).split('\n').find((line) => line.trim()) ?? 'Shennian';
|
|
674
|
+
const title = firstLine.trim().slice(0, 80);
|
|
675
|
+
return title || 'Shennian';
|
|
676
|
+
}
|
|
677
|
+
function normalizeTitleText(text) {
|
|
678
|
+
return text
|
|
679
|
+
.replace(/!\[[^\]]*]\([^)]+\)/g, '')
|
|
680
|
+
.replace(/\s+/g, ' ')
|
|
681
|
+
.trim();
|
|
682
|
+
}
|
|
683
|
+
export function normalizeCodexModelId(modelId) {
|
|
684
|
+
const trimmed = modelId?.trim();
|
|
685
|
+
if (!trimmed)
|
|
686
|
+
return undefined;
|
|
687
|
+
return trimmed.toLowerCase() === 'openai' ? undefined : trimmed;
|
|
688
|
+
}
|
|
689
|
+
function extractAppServerErrorMessage(params) {
|
|
690
|
+
if (typeof params.message === 'string' && params.message.trim())
|
|
691
|
+
return params.message.trim();
|
|
692
|
+
const error = params.error;
|
|
693
|
+
if (typeof error === 'string' && error.trim())
|
|
694
|
+
return error.trim();
|
|
695
|
+
if (typeof error === 'object' && error !== null) {
|
|
696
|
+
const message = error.message;
|
|
697
|
+
if (typeof message === 'string' && message.trim())
|
|
698
|
+
return message.trim();
|
|
699
|
+
}
|
|
700
|
+
return 'codex app-server error';
|
|
701
|
+
}
|
|
702
|
+
function isTransientCodexErrorMessage(message) {
|
|
703
|
+
return /\bReconnecting\.\.\.\s*\d+\/\d+/i.test(message);
|
|
704
|
+
}
|
|
705
|
+
function formatTransientCodexStatus(message) {
|
|
706
|
+
const match = message.match(/\bReconnecting\.\.\.\s*(\d+\/\d+)/i);
|
|
707
|
+
if (!match)
|
|
708
|
+
return '';
|
|
709
|
+
return `Codex API 暂时不可用,正在重试 ${match[1]}...`;
|
|
710
|
+
}
|
|
711
|
+
function formatCodexErrorMessage(message) {
|
|
712
|
+
const statusMatch = message.match(/unexpected status\s+(\d+)\s+([^:,]+)(?::\s*([^,]+))?(?:,\s*url:\s*([^,\s]+))?(?:,\s*request id:\s*([^\s,]+))?/i);
|
|
713
|
+
if (!statusMatch)
|
|
714
|
+
return message;
|
|
715
|
+
const [, status, statusText, detail, url, requestId] = statusMatch;
|
|
716
|
+
const parts = [
|
|
717
|
+
`Codex API 返回 ${status} ${statusText.trim()}`,
|
|
718
|
+
detail?.trim() ? `:${detail.trim()}` : '',
|
|
719
|
+
url ? `\n上游地址:${url}` : '',
|
|
720
|
+
requestId ? `\nrequest id:${requestId}` : '',
|
|
721
|
+
];
|
|
722
|
+
return parts.join('');
|
|
723
|
+
}
|
|
374
724
|
const GIT_DIRECTIVE_LINE_RE = /^\s*::git-[a-z-]+\{[^\n]*\}\s*$/gm;
|
|
375
725
|
function stripGitDirectiveArtifacts(text) {
|
|
376
726
|
if (!text)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agents/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agents/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/agents/model-registry/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/agents/model-registry/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAWjD,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAmNrE,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAKlH"}
|
|
@@ -1,9 +1,89 @@
|
|
|
1
1
|
// @arch docs/architecture/cli/model-discovery.md
|
|
2
2
|
// @test src/__tests__/model-switching.test.ts
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import { createInterface } from 'node:readline';
|
|
3
5
|
import { resolveBuiltinCommand } from '../command-spec.js';
|
|
4
|
-
import { parseClaudeModels, parseCodexModels, parseCursorModels, parseGeminiModels, parseOpenClawModels } from './parsers.js';
|
|
6
|
+
import { parseClaudeModels, parseCodexAppServerModels, parseCodexModels, parseCursorModels, parseGeminiModels, parseOpenClawModels, } from './parsers.js';
|
|
5
7
|
import { runCommand, runPtyCommand } from './runner.js';
|
|
6
8
|
import { DISCOVERY_WORKDIR } from './types.js';
|
|
9
|
+
function sendAppServerRpc(proc, pending, id, method, params, timeoutMs) {
|
|
10
|
+
if (!proc.stdin)
|
|
11
|
+
return Promise.reject(new Error('codex app-server stdin unavailable'));
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const timer = setTimeout(() => {
|
|
14
|
+
pending.delete(id);
|
|
15
|
+
reject(new Error(`codex app-server request timed out: ${method}`));
|
|
16
|
+
}, timeoutMs);
|
|
17
|
+
pending.set(id, { resolve, reject, timer });
|
|
18
|
+
proc.stdin.write(`${JSON.stringify({ id, method, params })}\n`, (error) => {
|
|
19
|
+
if (!error)
|
|
20
|
+
return;
|
|
21
|
+
clearTimeout(timer);
|
|
22
|
+
pending.delete(id);
|
|
23
|
+
reject(error);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async function discoverCodexModelsViaAppServer() {
|
|
28
|
+
const proc = spawn('codex', ['app-server', '--listen', 'stdio://'], {
|
|
29
|
+
cwd: DISCOVERY_WORKDIR,
|
|
30
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
31
|
+
env: { ...process.env, NO_COLOR: '1' },
|
|
32
|
+
});
|
|
33
|
+
const pending = new Map();
|
|
34
|
+
let seq = 1;
|
|
35
|
+
const rl = createInterface({ input: proc.stdout });
|
|
36
|
+
rl.on('line', (line) => {
|
|
37
|
+
if (!line.trim())
|
|
38
|
+
return;
|
|
39
|
+
let msg;
|
|
40
|
+
try {
|
|
41
|
+
msg = JSON.parse(line);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (msg.id == null)
|
|
47
|
+
return;
|
|
48
|
+
const request = pending.get(msg.id);
|
|
49
|
+
if (!request)
|
|
50
|
+
return;
|
|
51
|
+
clearTimeout(request.timer);
|
|
52
|
+
pending.delete(msg.id);
|
|
53
|
+
if (msg.error) {
|
|
54
|
+
request.reject(new Error(msg.error.message || `codex app-server error ${msg.error.code ?? ''}`.trim()));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
request.resolve(msg.result);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
try {
|
|
61
|
+
await sendAppServerRpc(proc, pending, seq++, 'initialize', {
|
|
62
|
+
clientInfo: { name: 'shennian', title: 'Shennian', version: '0.0.0' },
|
|
63
|
+
capabilities: { experimentalApi: true },
|
|
64
|
+
}, 10_000);
|
|
65
|
+
const [modelList, configRead] = await Promise.all([
|
|
66
|
+
sendAppServerRpc(proc, pending, seq++, 'model/list', {}, 15_000),
|
|
67
|
+
sendAppServerRpc(proc, pending, seq++, 'config/read', {}, 15_000).catch(() => null),
|
|
68
|
+
]);
|
|
69
|
+
const config = typeof configRead === 'object' && configRead !== null && 'config' in configRead
|
|
70
|
+
? configRead.config
|
|
71
|
+
: undefined;
|
|
72
|
+
return parseCodexAppServerModels({
|
|
73
|
+
...(typeof modelList === 'object' && modelList !== null ? modelList : {}),
|
|
74
|
+
config,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
for (const [id, request] of pending) {
|
|
79
|
+
clearTimeout(request.timer);
|
|
80
|
+
request.reject(new Error('codex app-server stopped'));
|
|
81
|
+
pending.delete(id);
|
|
82
|
+
}
|
|
83
|
+
proc.kill('SIGTERM');
|
|
84
|
+
setTimeout(() => proc.kill('SIGKILL'), 1000).unref();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
7
87
|
async function discoverCursorModels() {
|
|
8
88
|
const spec = resolveBuiltinCommand('cursor');
|
|
9
89
|
if (!spec)
|
|
@@ -47,6 +127,9 @@ async function discoverCodexModels() {
|
|
|
47
127
|
const spec = resolveBuiltinCommand('codex');
|
|
48
128
|
if (!spec)
|
|
49
129
|
return [];
|
|
130
|
+
const appServerModels = await discoverCodexModelsViaAppServer().catch(() => []);
|
|
131
|
+
if (appServerModels.length > 0)
|
|
132
|
+
return appServerModels;
|
|
50
133
|
const raw = await runPtyCommand(spec, {
|
|
51
134
|
startupArgs: ['--no-alt-screen', '-C', DISCOVERY_WORKDIR],
|
|
52
135
|
preOpenPromptPatterns: [/update available!/i, /skip until next version/i, /release notes:/i],
|