mcp-codex-worker 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/app.js +155 -83
- package/dist/src/app.js.map +1 -1
- package/dist/src/mcp/task-markdown.d.ts +4 -0
- package/dist/src/mcp/task-markdown.js +107 -0
- package/dist/src/mcp/task-markdown.js.map +1 -0
- package/dist/src/mcp/tool-banners.d.ts +3 -0
- package/dist/src/mcp/tool-banners.js +44 -0
- package/dist/src/mcp/tool-banners.js.map +1 -0
- package/dist/src/mcp/tool-definitions.d.ts +6 -9
- package/dist/src/mcp/tool-definitions.js +80 -78
- package/dist/src/mcp/tool-definitions.js.map +1 -1
- package/dist/src/services/app-server-client.d.ts +1 -0
- package/dist/src/services/app-server-client.js +5 -0
- package/dist/src/services/app-server-client.js.map +1 -1
- package/dist/src/services/codex-runtime.d.ts +5 -3
- package/dist/src/services/codex-runtime.js +18 -0
- package/dist/src/services/codex-runtime.js.map +1 -1
- package/dist/src/services/model-catalog.js +1 -1
- package/dist/src/services/model-catalog.js.map +1 -1
- package/package.json +1 -2
- package/src/app.ts +187 -85
- package/src/mcp/task-markdown.ts +136 -0
- package/src/mcp/tool-banners.ts +53 -0
- package/src/mcp/tool-definitions.ts +86 -81
- package/src/services/app-server-client.ts +6 -0
- package/src/services/codex-runtime.ts +19 -1
- package/src/services/model-catalog.ts +1 -1
package/dist/src/app.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createToolDefinitions, } from './mcp/tool-definitions.js';
|
|
2
|
+
import { buildRequestBanner, buildThreadBanner } from './mcp/tool-banners.js';
|
|
3
|
+
import { renderRequestListMarkdown, renderThreadListMarkdown, renderThreadMarkdown, } from './mcp/task-markdown.js';
|
|
2
4
|
import { OPERATION_POLL_INTERVAL_MS, REQUEST_TIMEOUT_MS } from './config/defaults.js';
|
|
3
5
|
import { CodexRuntime } from './services/codex-runtime.js';
|
|
4
6
|
export class CodexWorkerApp {
|
|
@@ -10,10 +12,14 @@ export class CodexWorkerApp {
|
|
|
10
12
|
async listTools() {
|
|
11
13
|
try {
|
|
12
14
|
const modelIds = await this.runtime.listVisibleModelIds();
|
|
13
|
-
return createToolDefinitions(
|
|
15
|
+
return createToolDefinitions({
|
|
16
|
+
modelIds,
|
|
17
|
+
threadBanner: buildThreadBanner(this.runtime),
|
|
18
|
+
requestBanner: buildRequestBanner(this.runtime),
|
|
19
|
+
});
|
|
14
20
|
}
|
|
15
21
|
catch {
|
|
16
|
-
return createToolDefinitions([]);
|
|
22
|
+
return createToolDefinitions({ modelIds: [], threadBanner: '', requestBanner: '' });
|
|
17
23
|
}
|
|
18
24
|
}
|
|
19
25
|
listResources() {
|
|
@@ -21,8 +27,8 @@ export class CodexWorkerApp {
|
|
|
21
27
|
{
|
|
22
28
|
uri: 'codex://threads',
|
|
23
29
|
name: 'Codex Threads',
|
|
24
|
-
description: '
|
|
25
|
-
mimeType: '
|
|
30
|
+
description: 'All tracked threads with status',
|
|
31
|
+
mimeType: 'text/markdown',
|
|
26
32
|
},
|
|
27
33
|
{
|
|
28
34
|
uri: 'codex://models',
|
|
@@ -47,8 +53,8 @@ export class CodexWorkerApp {
|
|
|
47
53
|
base.push({
|
|
48
54
|
uri: `codex://thread/${threadId}`,
|
|
49
55
|
name: `Thread ${threadId}`,
|
|
50
|
-
description: 'Thread
|
|
51
|
-
mimeType: '
|
|
56
|
+
description: 'Thread status and guidance',
|
|
57
|
+
mimeType: 'text/markdown',
|
|
52
58
|
}, {
|
|
53
59
|
uri: `codex://thread/${threadId}/events`,
|
|
54
60
|
name: `Thread ${threadId} events`,
|
|
@@ -67,17 +73,14 @@ export class CodexWorkerApp {
|
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
return {
|
|
70
|
-
mimeType: '
|
|
71
|
-
text:
|
|
76
|
+
mimeType: 'text/markdown',
|
|
77
|
+
text: renderThreadListMarkdown(response.data ?? [], this.runtime.getPendingServerRequests(false)),
|
|
72
78
|
};
|
|
73
79
|
}
|
|
74
80
|
if (uri === 'codex://models') {
|
|
75
|
-
const response = {
|
|
76
|
-
data: await this.runtime.listModels(false),
|
|
77
|
-
};
|
|
78
81
|
return {
|
|
79
82
|
mimeType: 'application/json',
|
|
80
|
-
text: JSON.stringify(
|
|
83
|
+
text: JSON.stringify({ data: await this.runtime.listModels(false) }, null, 2),
|
|
81
84
|
};
|
|
82
85
|
}
|
|
83
86
|
if (uri === 'codex://account') {
|
|
@@ -117,8 +120,8 @@ export class CodexWorkerApp {
|
|
|
117
120
|
includeTurns: true,
|
|
118
121
|
});
|
|
119
122
|
return {
|
|
120
|
-
mimeType: '
|
|
121
|
-
text:
|
|
123
|
+
mimeType: 'text/markdown',
|
|
124
|
+
text: renderThreadMarkdown(response, this.runtime.getOperationsForThread(threadId), this.runtime.getPendingServerRequests(false)),
|
|
122
125
|
};
|
|
123
126
|
}
|
|
124
127
|
return {
|
|
@@ -134,43 +137,25 @@ export class CodexWorkerApp {
|
|
|
134
137
|
}
|
|
135
138
|
const validated = tool.validate(args ?? {});
|
|
136
139
|
switch (name) {
|
|
137
|
-
case 'thread-start':
|
|
140
|
+
case 'codex-thread-start':
|
|
138
141
|
return this.handleThreadStart(validated);
|
|
139
|
-
case 'thread-resume':
|
|
142
|
+
case 'codex-thread-resume':
|
|
140
143
|
return this.handleThreadResume(validated);
|
|
141
|
-
case 'thread-read':
|
|
144
|
+
case 'codex-thread-read':
|
|
142
145
|
return this.handleThreadRead(validated);
|
|
143
|
-
case 'thread-list':
|
|
146
|
+
case 'codex-thread-list':
|
|
144
147
|
return this.handleThreadList(validated);
|
|
145
|
-
case 'turn-start':
|
|
148
|
+
case 'codex-turn-start':
|
|
146
149
|
return this.handleTurnStart(validated);
|
|
147
|
-
case 'turn-steer':
|
|
150
|
+
case 'codex-turn-steer':
|
|
148
151
|
return this.handleTurnSteer(validated);
|
|
149
|
-
case 'turn-interrupt':
|
|
152
|
+
case 'codex-turn-interrupt':
|
|
150
153
|
return this.handleTurnInterrupt(validated);
|
|
151
|
-
case '
|
|
152
|
-
return
|
|
153
|
-
|
|
154
|
-
}, null, 2);
|
|
155
|
-
case 'account-read':
|
|
156
|
-
return JSON.stringify(await this.runtime.request('account/read', {}), null, 2);
|
|
157
|
-
case 'account-rate-limits-read':
|
|
158
|
-
return JSON.stringify(await this.runtime.request('account/rateLimits/read', {}), null, 2);
|
|
159
|
-
case 'skills-list':
|
|
160
|
-
return JSON.stringify(await this.runtime.request('skills/list', {}), null, 2);
|
|
161
|
-
case 'app-list':
|
|
162
|
-
return JSON.stringify(await this.runtime.request('app/list', {}), null, 2);
|
|
163
|
-
case 'request-list':
|
|
164
|
-
return JSON.stringify({
|
|
165
|
-
requests: this.runtime.getPendingServerRequests(Boolean(validated.include_resolved)),
|
|
166
|
-
}, null, 2);
|
|
167
|
-
case 'request-read':
|
|
168
|
-
return JSON.stringify({
|
|
169
|
-
request: this.runtime.getPendingServerRequest(validated.request_id) ?? null,
|
|
170
|
-
}, null, 2);
|
|
171
|
-
case 'request-respond':
|
|
154
|
+
case 'codex-request-list':
|
|
155
|
+
return renderRequestListMarkdown(this.runtime.getPendingServerRequests(Boolean(validated.include_resolved)));
|
|
156
|
+
case 'codex-request-respond':
|
|
172
157
|
return this.handleRequestRespond(validated);
|
|
173
|
-
case 'wait':
|
|
158
|
+
case 'codex-wait':
|
|
174
159
|
return this.handleWait(validated);
|
|
175
160
|
default:
|
|
176
161
|
throw new Error(`Unhandled tool: ${name}`);
|
|
@@ -187,11 +172,17 @@ export class CodexWorkerApp {
|
|
|
187
172
|
if (threadId) {
|
|
188
173
|
this.runtime.rememberThreadId(threadId);
|
|
189
174
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
175
|
+
const remapNote = built.remappedFrom ? ` (remapped from ${built.remappedFrom})` : '';
|
|
176
|
+
return [
|
|
177
|
+
`**Thread started**`,
|
|
178
|
+
`thread_id: \`${threadId ?? 'unknown'}\``,
|
|
179
|
+
`model: \`${built.params.model}\`${remapNote}`,
|
|
180
|
+
'',
|
|
181
|
+
'**What to do next:**',
|
|
182
|
+
`- Use \`codex-turn-start\` with \`thread_id: "${threadId}"\` to send the agent its task.`,
|
|
183
|
+
'- After starting a turn, use `codex-wait` with `operation_id` to block until it finishes or asks for approval.',
|
|
184
|
+
'- Check `codex-request-list` after starting turns -- agents often need approval for commands or file changes.',
|
|
185
|
+
].join('\n');
|
|
195
186
|
}
|
|
196
187
|
async handleThreadResume(input) {
|
|
197
188
|
const built = await this.runtime.buildThreadResumeParams({
|
|
@@ -200,13 +191,16 @@ export class CodexWorkerApp {
|
|
|
200
191
|
cwd: input.cwd,
|
|
201
192
|
developerInstructions: input.developer_instructions,
|
|
202
193
|
});
|
|
203
|
-
|
|
194
|
+
await this.runtime.request('thread/resume', built.params);
|
|
204
195
|
this.runtime.rememberThreadId(input.thread_id);
|
|
205
|
-
return
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
196
|
+
return [
|
|
197
|
+
`**Thread resumed**`,
|
|
198
|
+
`thread_id: \`${input.thread_id}\``,
|
|
199
|
+
'',
|
|
200
|
+
'**What to do next:**',
|
|
201
|
+
'- Use `codex-turn-start` to send a new task to this thread.',
|
|
202
|
+
'- The thread\'s previous context is loaded -- the agent remembers prior conversation.',
|
|
203
|
+
].join('\n');
|
|
210
204
|
}
|
|
211
205
|
async handleThreadRead(input) {
|
|
212
206
|
const response = await this.runtime.request('thread/read', {
|
|
@@ -214,7 +208,7 @@ export class CodexWorkerApp {
|
|
|
214
208
|
includeTurns: input.include_turns ?? true,
|
|
215
209
|
});
|
|
216
210
|
this.runtime.rememberThreadId(input.thread_id);
|
|
217
|
-
return
|
|
211
|
+
return renderThreadMarkdown(response, this.runtime.getOperationsForThread(input.thread_id), this.runtime.getPendingServerRequests(false));
|
|
218
212
|
}
|
|
219
213
|
async handleThreadList(input) {
|
|
220
214
|
const response = await this.runtime.request('thread/list', {
|
|
@@ -226,7 +220,7 @@ export class CodexWorkerApp {
|
|
|
226
220
|
this.runtime.rememberThreadId(row.id);
|
|
227
221
|
}
|
|
228
222
|
}
|
|
229
|
-
return
|
|
223
|
+
return renderThreadListMarkdown(response.data ?? [], this.runtime.getPendingServerRequests(false));
|
|
230
224
|
}
|
|
231
225
|
async handleTurnStart(input) {
|
|
232
226
|
const built = await this.runtime.buildTurnStartParams({
|
|
@@ -238,11 +232,44 @@ export class CodexWorkerApp {
|
|
|
238
232
|
const bridged = await this.runtime.requestWithBridge('turn/start', built.params, {
|
|
239
233
|
threadId: input.thread_id,
|
|
240
234
|
});
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
235
|
+
const remapNote = built.remappedFrom ? ` (remapped from ${built.remappedFrom})` : '';
|
|
236
|
+
const header = [
|
|
237
|
+
`thread_id: \`${input.thread_id}\``,
|
|
238
|
+
`operation_id: \`${bridged.operationId}\`${remapNote}`,
|
|
239
|
+
];
|
|
240
|
+
if (bridged.status === 'pending_request') {
|
|
241
|
+
const reqCount = bridged.pendingRequestIds?.length ?? 0;
|
|
242
|
+
return [
|
|
243
|
+
`**Turn started -- approval needed**`,
|
|
244
|
+
...header,
|
|
245
|
+
`pending_requests: ${reqCount}`,
|
|
246
|
+
'',
|
|
247
|
+
'**ACTION REQUIRED:**',
|
|
248
|
+
'The agent needs approval before it can proceed. Use `codex-request-list` to see what it needs, then `codex-request-respond` to approve or decline.',
|
|
249
|
+
'',
|
|
250
|
+
'**After approving:**',
|
|
251
|
+
`Use \`codex-wait\` with \`operation_id: "${bridged.operationId}"\` to block until the turn completes.`,
|
|
252
|
+
].join('\n');
|
|
253
|
+
}
|
|
254
|
+
if (bridged.status === 'completed') {
|
|
255
|
+
return [
|
|
256
|
+
`**Turn completed**`,
|
|
257
|
+
...header,
|
|
258
|
+
'',
|
|
259
|
+
'**What to do next:**',
|
|
260
|
+
`- Use \`codex-thread-read\` with \`thread_id: "${input.thread_id}"\` to inspect the agent's output and file changes.`,
|
|
261
|
+
'- Use `codex-turn-start` to send follow-up instructions.',
|
|
262
|
+
].join('\n');
|
|
263
|
+
}
|
|
264
|
+
return [
|
|
265
|
+
`**Turn started -- agent working**`,
|
|
266
|
+
...header,
|
|
267
|
+
'',
|
|
268
|
+
'**What to do next:**',
|
|
269
|
+
`- Use \`codex-wait\` with \`operation_id: "${bridged.operationId}"\` to block until the agent finishes or asks for approval.`,
|
|
270
|
+
'- Check `codex-request-list` for any pending approvals.',
|
|
271
|
+
'- For parallel work, start turns on other threads now.',
|
|
272
|
+
].join('\n');
|
|
246
273
|
}
|
|
247
274
|
async handleTurnSteer(input) {
|
|
248
275
|
const params = this.runtime.buildTurnSteerParams({
|
|
@@ -253,17 +280,27 @@ export class CodexWorkerApp {
|
|
|
253
280
|
const bridged = await this.runtime.requestWithBridge('turn/steer', params, {
|
|
254
281
|
threadId: input.thread_id,
|
|
255
282
|
});
|
|
256
|
-
return
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
283
|
+
return [
|
|
284
|
+
`**Turn steered**`,
|
|
285
|
+
`thread_id: \`${input.thread_id}\``,
|
|
286
|
+
`operation_id: \`${bridged.operationId}\``,
|
|
287
|
+
'',
|
|
288
|
+
'The agent is adjusting course with your new instructions.',
|
|
289
|
+
`Use \`codex-wait\` with \`operation_id: "${bridged.operationId}"\` to block until it finishes.`,
|
|
290
|
+
].join('\n');
|
|
260
291
|
}
|
|
261
292
|
async handleTurnInterrupt(input) {
|
|
262
|
-
|
|
293
|
+
await this.runtime.request('turn/interrupt', {
|
|
263
294
|
threadId: input.thread_id,
|
|
264
295
|
turnId: input.turn_id,
|
|
265
296
|
});
|
|
266
|
-
return
|
|
297
|
+
return [
|
|
298
|
+
`**Turn interrupted**`,
|
|
299
|
+
`thread_id: \`${input.thread_id}\``,
|
|
300
|
+
`turn_id: \`${input.turn_id}\``,
|
|
301
|
+
'',
|
|
302
|
+
'The turn has been stopped. Use `codex-turn-start` to begin a new turn with corrected instructions.',
|
|
303
|
+
].join('\n');
|
|
267
304
|
}
|
|
268
305
|
async handleRequestRespond(input) {
|
|
269
306
|
const pending = this.runtime.getPendingServerRequest(input.request_id);
|
|
@@ -272,19 +309,53 @@ export class CodexWorkerApp {
|
|
|
272
309
|
}
|
|
273
310
|
const payload = this.buildServerRequestPayload(pending.method, input);
|
|
274
311
|
await this.runtime.respondToServerRequest(input.request_id, payload);
|
|
275
|
-
return
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
312
|
+
return [
|
|
313
|
+
`**Request responded**`,
|
|
314
|
+
`request_id: \`${String(input.request_id)}\``,
|
|
315
|
+
`method: \`${pending.method}\``,
|
|
316
|
+
'',
|
|
317
|
+
'**What to do next:**',
|
|
318
|
+
'- The agent will continue working. Use `codex-wait` to block until it finishes or needs another approval.',
|
|
319
|
+
'- Check `codex-request-list` for any remaining pending requests.',
|
|
320
|
+
].join('\n');
|
|
281
321
|
}
|
|
282
322
|
async handleWait(input) {
|
|
283
323
|
const timeoutMs = input.timeout_ms ?? REQUEST_TIMEOUT_MS;
|
|
284
324
|
const pollIntervalMs = input.poll_interval_ms ?? OPERATION_POLL_INTERVAL_MS;
|
|
285
325
|
if (input.operation_id) {
|
|
286
326
|
const operation = await this.runtime.waitForOperation(input.operation_id, timeoutMs, pollIntervalMs);
|
|
287
|
-
|
|
327
|
+
const threadId = operation.threadId ?? 'unknown';
|
|
328
|
+
if (operation.status === 'failed') {
|
|
329
|
+
return [
|
|
330
|
+
`**Operation failed**`,
|
|
331
|
+
`operation_id: \`${operation.operationId}\``,
|
|
332
|
+
`error: ${operation.error ?? 'unknown error'}`,
|
|
333
|
+
'',
|
|
334
|
+
'**What to do next:**',
|
|
335
|
+
`- Use \`codex-thread-read\` with \`thread_id: "${threadId}"\` to inspect what happened.`,
|
|
336
|
+
'- Fix the issue and use `codex-turn-start` to retry.',
|
|
337
|
+
].join('\n');
|
|
338
|
+
}
|
|
339
|
+
if (operation.pendingRequestIds.length > 0) {
|
|
340
|
+
return [
|
|
341
|
+
`**Operation paused -- approval needed**`,
|
|
342
|
+
`operation_id: \`${operation.operationId}\``,
|
|
343
|
+
`pending_requests: ${operation.pendingRequestIds.length}`,
|
|
344
|
+
'',
|
|
345
|
+
'**ACTION REQUIRED:**',
|
|
346
|
+
'Use `codex-request-list` to see what the agent needs, then `codex-request-respond` to approve.',
|
|
347
|
+
`After approving, call \`codex-wait\` again with \`operation_id: "${operation.operationId}"\`.`,
|
|
348
|
+
].join('\n');
|
|
349
|
+
}
|
|
350
|
+
return [
|
|
351
|
+
`**Operation completed**`,
|
|
352
|
+
`operation_id: \`${operation.operationId}\``,
|
|
353
|
+
`thread_id: \`${threadId}\``,
|
|
354
|
+
'',
|
|
355
|
+
'**What to do next:**',
|
|
356
|
+
`- Use \`codex-thread-read\` with \`thread_id: "${threadId}"\` to inspect the agent's output.`,
|
|
357
|
+
'- Use `codex-turn-start` to send follow-up instructions.',
|
|
358
|
+
].join('\n');
|
|
288
359
|
}
|
|
289
360
|
if (input.thread_id) {
|
|
290
361
|
const start = Date.now();
|
|
@@ -295,20 +366,21 @@ export class CodexWorkerApp {
|
|
|
295
366
|
});
|
|
296
367
|
const statusType = response.thread?.status?.type;
|
|
297
368
|
if (statusType !== 'active') {
|
|
298
|
-
return
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
369
|
+
return [
|
|
370
|
+
`**Thread idle**`,
|
|
371
|
+
`thread_id: \`${input.thread_id}\``,
|
|
372
|
+
`status: \`${statusType ?? 'unknown'}\``,
|
|
373
|
+
'',
|
|
374
|
+
'**What to do next:**',
|
|
375
|
+
`- Use \`codex-thread-read\` with \`thread_id: "${input.thread_id}"\` to review the agent's work.`,
|
|
376
|
+
'- Use `codex-turn-start` to send another task.',
|
|
377
|
+
].join('\n');
|
|
303
378
|
}
|
|
304
379
|
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
305
380
|
}
|
|
306
381
|
throw new Error(`Timed out waiting for thread ${input.thread_id}`);
|
|
307
382
|
}
|
|
308
|
-
return
|
|
309
|
-
requests: this.runtime.getPendingServerRequests(false),
|
|
310
|
-
operations: [],
|
|
311
|
-
}, null, 2);
|
|
383
|
+
return renderRequestListMarkdown(this.runtime.getPendingServerRequests(false));
|
|
312
384
|
}
|
|
313
385
|
buildServerRequestPayload(method, input) {
|
|
314
386
|
if (input.payload) {
|
package/dist/src/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PendingServerRequest, RuntimeOperation } from '../types/codex.js';
|
|
2
|
+
export declare function renderThreadMarkdown(raw: unknown, operations: RuntimeOperation[], pendingRequests: PendingServerRequest[]): string;
|
|
3
|
+
export declare function renderThreadListMarkdown(rawThreads: unknown[], pendingRequests: PendingServerRequest[]): string;
|
|
4
|
+
export declare function renderRequestListMarkdown(requests: PendingServerRequest[]): string;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
function extractThread(raw) {
|
|
2
|
+
const obj = (raw ?? {});
|
|
3
|
+
const thread = (obj.thread ?? obj);
|
|
4
|
+
return {
|
|
5
|
+
id: typeof thread.id === 'string' ? thread.id : undefined,
|
|
6
|
+
status: thread.status,
|
|
7
|
+
model: typeof thread.model === 'string' ? thread.model : undefined,
|
|
8
|
+
createdAt: typeof thread.createdAt === 'string' ? thread.createdAt : undefined,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function requestsForThread(requests, threadId) {
|
|
12
|
+
if (!threadId)
|
|
13
|
+
return requests;
|
|
14
|
+
return requests.filter((r) => {
|
|
15
|
+
const params = r.params;
|
|
16
|
+
return params?.threadId === threadId;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export function renderThreadMarkdown(raw, operations, pendingRequests) {
|
|
20
|
+
const thread = extractThread(raw);
|
|
21
|
+
const threadId = thread.id ?? 'unknown';
|
|
22
|
+
const statusType = thread.status?.type ?? 'unknown';
|
|
23
|
+
const threadRequests = requestsForThread(pendingRequests, thread.id);
|
|
24
|
+
const lines = [
|
|
25
|
+
`# Thread: ${threadId}`,
|
|
26
|
+
'',
|
|
27
|
+
'| Field | Value |',
|
|
28
|
+
'|---|---|',
|
|
29
|
+
`| **Status** | \`${statusType}\` |`,
|
|
30
|
+
...(thread.model ? [`| **Model** | \`${thread.model}\` |`] : []),
|
|
31
|
+
...(thread.createdAt ? [`| **Created** | ${thread.createdAt} |`] : []),
|
|
32
|
+
'',
|
|
33
|
+
];
|
|
34
|
+
if (operations.length > 0) {
|
|
35
|
+
lines.push('## Operations', '');
|
|
36
|
+
for (const op of operations) {
|
|
37
|
+
const time = op.completedAt ?? op.startedAt;
|
|
38
|
+
lines.push(`- \`${op.operationId}\` [${op.status}] ${op.method} -- ${time}`);
|
|
39
|
+
}
|
|
40
|
+
lines.push('');
|
|
41
|
+
}
|
|
42
|
+
if (threadRequests.length > 0) {
|
|
43
|
+
lines.push(`## Pending Requests (${threadRequests.length})`, '');
|
|
44
|
+
for (const req of threadRequests) {
|
|
45
|
+
lines.push(`### ${String(req.id)} (${req.method})`);
|
|
46
|
+
lines.push(`Use \`codex-request-respond\` with \`request_id: "${String(req.id)}"\` and \`decision: "accept"\`.`);
|
|
47
|
+
lines.push('');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
lines.push('## What to do next', '');
|
|
51
|
+
if (threadRequests.length > 0) {
|
|
52
|
+
lines.push(`**ACTION REQUIRED** -- ${threadRequests.length} pending request(s) need your response. Use \`codex-request-list\` to see details, then \`codex-request-respond\` to approve or decline.`);
|
|
53
|
+
}
|
|
54
|
+
else if (statusType === 'active') {
|
|
55
|
+
lines.push(`The agent is still working. Use \`codex-wait\` with \`thread_id: "${threadId}"\` to block until it finishes or needs approval.`);
|
|
56
|
+
}
|
|
57
|
+
else if (statusType === 'idle' || statusType === 'completed') {
|
|
58
|
+
lines.push(`Thread is idle. Use \`codex-turn-start\` to send a new task, or \`codex-thread-read\` with \`include_turns: true\` for full conversation history.`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
lines.push(`Use \`codex-thread-resume\` to reload this thread before starting a turn.`);
|
|
62
|
+
}
|
|
63
|
+
return lines.join('\n');
|
|
64
|
+
}
|
|
65
|
+
export function renderThreadListMarkdown(rawThreads, pendingRequests) {
|
|
66
|
+
const threads = rawThreads.map(extractThread);
|
|
67
|
+
const lines = [
|
|
68
|
+
`# Threads (${threads.length} total)`,
|
|
69
|
+
'',
|
|
70
|
+
'| ID | Status |',
|
|
71
|
+
'|---|---|',
|
|
72
|
+
...threads.map((t) => `| ${t.id ?? 'unknown'} | ${t.status?.type ?? 'unknown'} |`),
|
|
73
|
+
];
|
|
74
|
+
const pending = pendingRequests.filter((r) => r.status === 'pending');
|
|
75
|
+
if (pending.length > 0) {
|
|
76
|
+
lines.push('', `## Pending Requests (${pending.length})`, '');
|
|
77
|
+
for (const req of pending) {
|
|
78
|
+
const params = req.params;
|
|
79
|
+
const tid = typeof params?.threadId === 'string' ? params.threadId : '?';
|
|
80
|
+
lines.push(`- ${tid} / ${String(req.id)}: ${req.method}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return lines.join('\n');
|
|
84
|
+
}
|
|
85
|
+
export function renderRequestListMarkdown(requests) {
|
|
86
|
+
const pending = requests.filter((r) => r.status === 'pending');
|
|
87
|
+
if (pending.length === 0) {
|
|
88
|
+
return [
|
|
89
|
+
'**No pending requests**',
|
|
90
|
+
'',
|
|
91
|
+
'All agents are running without needing approval.',
|
|
92
|
+
].join('\n');
|
|
93
|
+
}
|
|
94
|
+
const lines = [
|
|
95
|
+
`# Pending Requests (${pending.length})`,
|
|
96
|
+
'',
|
|
97
|
+
'| Request ID | Method | Created |',
|
|
98
|
+
'|---|---|---|',
|
|
99
|
+
...pending.map((r) => `| ${String(r.id)} | ${r.method} | ${r.createdAt} |`),
|
|
100
|
+
'',
|
|
101
|
+
'## How to respond',
|
|
102
|
+
'',
|
|
103
|
+
'Use `codex-request-respond` with the `request_id` and `decision: "accept"` to approve, or `decision: "decline"` to reject.',
|
|
104
|
+
];
|
|
105
|
+
return lines.join('\n');
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=task-markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-markdown.js","sourceRoot":"","sources":["../../../src/mcp/task-markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function buildThreadBanner(runtime) {
|
|
2
|
+
const threadIds = runtime.listKnownThreadIds();
|
|
3
|
+
if (threadIds.length === 0) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
const operations = runtime.getAllOperations();
|
|
7
|
+
const requests = runtime.getPendingServerRequests(false);
|
|
8
|
+
const active = operations.filter((op) => op.status === 'running').length;
|
|
9
|
+
const pending = requests.length;
|
|
10
|
+
const lines = [
|
|
11
|
+
'---',
|
|
12
|
+
`AGENT STATUS: ${active} active | ${pending} pending requests`,
|
|
13
|
+
];
|
|
14
|
+
for (const threadId of threadIds.slice(-3)) {
|
|
15
|
+
const threadOps = operations.filter((op) => op.threadId === threadId);
|
|
16
|
+
const threadReqs = requests.filter((r) => {
|
|
17
|
+
const params = r.params;
|
|
18
|
+
return params?.threadId === threadId;
|
|
19
|
+
});
|
|
20
|
+
const status = threadOps.some((op) => op.status === 'running') ? 'active' : 'idle';
|
|
21
|
+
const reqNote = threadReqs.length > 0 ? ` -- ${threadReqs.length} pending requests` : '';
|
|
22
|
+
lines.push(`- ${threadId} [${status}]${reqNote}`);
|
|
23
|
+
}
|
|
24
|
+
lines.push('Read codex://threads for full details.');
|
|
25
|
+
return lines.join('\n');
|
|
26
|
+
}
|
|
27
|
+
export function buildRequestBanner(runtime) {
|
|
28
|
+
const requests = runtime.getPendingServerRequests(false);
|
|
29
|
+
if (requests.length === 0) {
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
const lines = [
|
|
33
|
+
'---',
|
|
34
|
+
`ACTION REQUIRED -- ${requests.length} request(s) waiting for your response:`,
|
|
35
|
+
];
|
|
36
|
+
for (const req of requests.slice(0, 5)) {
|
|
37
|
+
const params = req.params;
|
|
38
|
+
const threadId = typeof params?.threadId === 'string' ? params.threadId : '?';
|
|
39
|
+
lines.push(`- ${String(req.id)} (${threadId}): ${req.method}`);
|
|
40
|
+
}
|
|
41
|
+
lines.push('Use codex-request-respond { "request_id": "<id>", "decision": "accept" }');
|
|
42
|
+
return lines.join('\n');
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=tool-banners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-banners.js","sourceRoot":"","sources":["../../../src/mcp/tool-banners.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEhC,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,iBAAiB,MAAM,aAAa,OAAO,mBAAmB;KAC/D,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,CAAC,CAAC,MAA6C,CAAC;YAC/D,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACnF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,sBAAsB,QAAQ,CAAC,MAAM,wCAAwC;KAC9E,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,MAA6C,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,QAAQ,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -91,13 +91,6 @@ declare const requestListSchema: z.ZodObject<{
|
|
|
91
91
|
}, {
|
|
92
92
|
include_resolved?: boolean | undefined;
|
|
93
93
|
}>;
|
|
94
|
-
declare const requestReadSchema: z.ZodObject<{
|
|
95
|
-
request_id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
96
|
-
}, "strip", z.ZodTypeAny, {
|
|
97
|
-
request_id: string | number;
|
|
98
|
-
}, {
|
|
99
|
-
request_id: string | number;
|
|
100
|
-
}>;
|
|
101
94
|
declare const requestRespondSchema: z.ZodObject<{
|
|
102
95
|
request_id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
103
96
|
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -165,7 +158,12 @@ export interface ToolDefinition {
|
|
|
165
158
|
};
|
|
166
159
|
validate: (value: unknown) => unknown;
|
|
167
160
|
}
|
|
168
|
-
export
|
|
161
|
+
export interface CreateToolDefinitionsInput {
|
|
162
|
+
modelIds: string[];
|
|
163
|
+
threadBanner: string;
|
|
164
|
+
requestBanner: string;
|
|
165
|
+
}
|
|
166
|
+
export declare function createToolDefinitions(input: CreateToolDefinitionsInput): ToolDefinition[];
|
|
169
167
|
export type ThreadStartInput = z.infer<typeof threadStartSchema>;
|
|
170
168
|
export type ThreadResumeInput = z.infer<typeof threadResumeSchema>;
|
|
171
169
|
export type ThreadReadInput = z.infer<typeof threadReadSchema>;
|
|
@@ -174,7 +172,6 @@ export type TurnStartInput = z.infer<typeof turnStartSchema>;
|
|
|
174
172
|
export type TurnSteerInput = z.infer<typeof turnSteerSchema>;
|
|
175
173
|
export type TurnInterruptInput = z.infer<typeof turnInterruptSchema>;
|
|
176
174
|
export type RequestListInput = z.infer<typeof requestListSchema>;
|
|
177
|
-
export type RequestReadInput = z.infer<typeof requestReadSchema>;
|
|
178
175
|
export type RequestRespondInput = z.infer<typeof requestRespondSchema>;
|
|
179
176
|
export type WaitInput = z.infer<typeof waitSchema>;
|
|
180
177
|
export {};
|