@excitedjs/agent-runtime-codex 0.2.0 → 0.3.0-beta.100

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/runtime.js CHANGED
@@ -3,16 +3,15 @@ import { CodexProcess, } from './supervisor.js';
3
3
  import { CodexWsClient } from './rpc.js';
4
4
  import { performInitializeHandshake } from './handshake.js';
5
5
  import { TurnManager, } from './turn-manager.js';
6
- import { injectThreadItems } from './events.js';
6
+ import { extractAssistantText, } from './events.js';
7
7
  import { renderChannelInput } from '@excitedjs/dreamux-utils';
8
8
  import { createFailFastApprovalHandler } from './approval.js';
9
9
  import { BUILTIN_CODEX_PROVIDER_REF } from './provider-ref.js';
10
10
  import { CODEX_AGENT_RUNTIME_CAPABILITIES } from './provider.js';
11
- import { buildCodexCompletionItem, CODEX_COMPLETION_TRIGGER_TEXT, codexProcessEnv, } from './runtime-support.js';
11
+ import { codexProcessEnv, renderCodexSystemPromptAppend, } from './runtime-support.js';
12
12
  import { applyCodexSkillExtraRoots } from './skill-roots.js';
13
13
  const DEFAULT_RESTART_BACKOFF_BASE_MS = 1000;
14
14
  const DEFAULT_RESTART_BACKOFF_MAX_MS = 30_000;
15
- const COMPLETION_ID_CACHE_LIMIT = 256;
16
15
  export class CodexRuntime {
17
16
  identity;
18
17
  deps;
@@ -23,12 +22,6 @@ export class CodexRuntime {
23
22
  threadId = null;
24
23
  threadResumed = false;
25
24
  status = 'declared';
26
- teammateDeliverySeq = 0;
27
- inFlightCompletionDeliveries = new Map();
28
- acceptedCompletionIds = new Set();
29
- acceptedCompletionOrder = [];
30
- injectedCompletionIds = new Set();
31
- injectedCompletionOrder = [];
32
25
  log;
33
26
  stopping = false;
34
27
  restarting = false;
@@ -64,10 +57,10 @@ export class CodexRuntime {
64
57
  getCapabilities() {
65
58
  return CODEX_AGENT_RUNTIME_CAPABILITIES;
66
59
  }
67
- getThreadId() {
68
- return this.threadId;
60
+ getCheckpoint() {
61
+ return this.threadId === null ? null : { id: this.threadId };
69
62
  }
70
- wasThreadResumed() {
63
+ wasCheckpointResumed() {
71
64
  return this.threadResumed;
72
65
  }
73
66
  async getLast() {
@@ -76,38 +69,15 @@ export class CodexRuntime {
76
69
  async getContext() {
77
70
  return null;
78
71
  }
79
- async resume(input = {}) {
80
- if (input.checkpoint !== undefined && input.checkpoint !== null) {
81
- if (input.checkpoint.kind !== 'codexThread') {
82
- throw new Error(`unsupported resume checkpoint for Codex runtime: ${input.checkpoint.kind}`);
83
- }
84
- this.threadId = input.checkpoint.id;
85
- }
72
+ async resume() {
86
73
  await this.start();
87
74
  }
88
- async submitRestartNotice(text) {
89
- if (this.turnManager === null)
90
- return { status: 'stopped' };
91
- const result = await this.turnManager.injectNotice(text);
92
- if (result.status === 'submitted') {
93
- this.log('info', 'restart notice injected into resumed thread');
94
- }
95
- else if (result.status === 'skipped') {
96
- this.log('info', 'restart notice skipped; a live inbound already arrived');
97
- }
98
- return result;
99
- }
100
- async submitSystemInput(text) {
101
- if (this.turnManager === null)
102
- return { status: 'stopped' };
103
- return this.turnManager.submitSystemInput(text);
104
- }
105
75
  async start() {
106
76
  this.stopping = false;
107
77
  this.restarting = false;
108
78
  this.clearRestartTimer();
109
79
  this.setStatus('starting');
110
- await this.state.setStatus(this.dispatcherId, 'starting', {
80
+ await this.state.setStatus('starting', {
111
81
  last_started_at: Date.now(),
112
82
  });
113
83
  try {
@@ -118,7 +88,7 @@ export class CodexRuntime {
118
88
  const msg = err instanceof Error ? err.message : String(err);
119
89
  this.log('error', `start failed: ${msg}`, err);
120
90
  this.setStatus('degraded');
121
- await this.state.setStatus(this.dispatcherId, 'degraded', {
91
+ await this.state.setStatus('degraded', {
122
92
  last_error: msg,
123
93
  });
124
94
  await this.cleanupOnFailure();
@@ -195,21 +165,22 @@ export class CodexRuntime {
195
165
  if (this.client === null)
196
166
  throw new Error('client not initialized');
197
167
  this.threadResumed = false;
168
+ const threadInstructions = this.threadInstructionParams();
198
169
  const existing = this.threadId ?? this.identity.checkpoint_id ?? null;
199
170
  if (existing === null) {
200
171
  const params = {
201
- baseInstructions: this.deps.systemPromptContent,
172
+ ...threadInstructions,
202
173
  };
203
174
  const res = await this.client.request('thread/start', params);
204
175
  this.threadId = res.thread.id;
205
- await this.state.setThreadId(this.dispatcherId, this.threadId);
176
+ await this.state.setCheckpoint({ id: this.threadId });
206
177
  this.log('info', `started fresh thread ${this.threadId}`);
207
178
  return;
208
179
  }
209
180
  try {
210
181
  const params = {
211
182
  threadId: existing,
212
- baseInstructions: this.deps.systemPromptContent,
183
+ ...threadInstructions,
213
184
  };
214
185
  await this.client.request('thread/resume', params);
215
186
  this.threadId = existing;
@@ -219,112 +190,54 @@ export class CodexRuntime {
219
190
  catch (err) {
220
191
  const msg = err instanceof Error ? err.message : String(err);
221
192
  this.log('warn', `thread/resume failed for ${existing}: ${msg}; starting fresh thread`);
222
- const res = await this.client.request('thread/start', { baseInstructions: this.deps.systemPromptContent });
193
+ const res = await this.client.request('thread/start', { ...threadInstructions });
223
194
  this.threadId = res.thread.id;
224
- if (this.state.recordLostThread !== undefined) {
225
- await this.state.recordLostThread(this.dispatcherId, existing, this.threadId, `thread/resume failed: ${msg}`);
195
+ if (this.state.recordLostCheckpoint !== undefined) {
196
+ await this.state.recordLostCheckpoint({ id: existing }, { id: this.threadId }, `thread/resume failed: ${msg}`);
226
197
  }
227
198
  else {
228
- await this.state.setThreadId(this.dispatcherId, this.threadId);
229
- await this.state.setStatus(this.dispatcherId, 'degraded', {
199
+ await this.state.setCheckpoint({ id: this.threadId });
200
+ await this.state.setStatus('degraded', {
230
201
  last_error: `thread/resume failed: ${msg}`,
231
202
  });
232
203
  }
233
204
  }
234
205
  }
206
+ threadInstructionParams() {
207
+ const params = {};
208
+ if (this.deps.systemPromptReplace !== undefined) {
209
+ params.baseInstructions = this.deps.systemPromptReplace;
210
+ return params;
211
+ }
212
+ if (this.deps.systemPromptAppend !== undefined) {
213
+ const rendered = renderCodexSystemPromptAppend(this.deps.systemPromptAppend);
214
+ if (rendered !== '')
215
+ params.developerInstructions = rendered;
216
+ }
217
+ return params;
218
+ }
235
219
  async channelInput(input, hooks = {}) {
236
220
  if (this.turnManager === null) {
237
221
  return { status: 'failed', error: new Error('turn manager not initialized') };
238
222
  }
239
223
  return this.turnManager.enqueue({ ...input, text: renderChannelInput(input) }, hooks);
240
224
  }
241
- async systemInput(notice) {
242
- if (notice.reason === 'restart-notice') {
243
- return this.submitRestartNotice(notice.text);
244
- }
245
- return this.submitSystemInput(notice.text);
246
- }
247
225
  waitIdle() {
248
226
  return this.turnManager?.waitIdle() ?? Promise.resolve();
249
227
  }
250
- async completionInput(completion) {
251
- if (this.acceptedCompletionIds.has(completion.id)) {
252
- return { status: 'accepted' };
253
- }
254
- const inFlight = this.inFlightCompletionDeliveries.get(completion.id);
255
- if (inFlight !== undefined)
256
- return inFlight;
257
- const delivery = this.deliverCompletionInput(completion);
258
- this.inFlightCompletionDeliveries.set(completion.id, delivery);
259
- try {
260
- const outcome = await delivery;
261
- if (outcome.status === 'accepted') {
262
- this.rememberAcceptedCompletion(completion.id);
263
- }
264
- return outcome;
265
- }
266
- finally {
267
- this.inFlightCompletionDeliveries.delete(completion.id);
268
- }
269
- }
270
- async deliverCompletionInput(completion) {
271
- if (this.client === null || this.turnManager === null || this.stopping) {
272
- return { status: 'unsupported', reason: 'dispatcher runtime stopped' };
273
- }
274
- const threadId = this.threadId;
275
- if (threadId === null) {
276
- return {
277
- status: 'failed',
278
- error: new Error('teammate completion delivery has no thread id'),
279
- };
280
- }
281
- if (!this.injectedCompletionIds.has(completion.id)) {
282
- try {
283
- await injectThreadItems(this.client, threadId, [
284
- await buildCodexCompletionItem(completion, this.paths.completionSpillDir(this.dispatcherId)),
285
- ]);
286
- }
287
- catch (err) {
288
- const cause = err instanceof Error ? err.message : String(err);
289
- return {
290
- status: 'failed',
291
- error: new Error(`teammate completion thread/inject_items failed (requires codex 0.137+): ${cause}`),
292
- };
293
- }
294
- this.rememberInjectedCompletion(completion.id);
295
- }
296
- const deliverySeq = ++this.teammateDeliverySeq;
297
- const delivery = await this.channelInput({
298
- sourceId: `teammate:${completion.id}#${deliverySeq}`,
299
- text: CODEX_COMPLETION_TRIGGER_TEXT,
300
- });
301
- switch (delivery.status) {
302
- case 'submitted':
303
- return { status: 'accepted' };
304
- case 'stopped':
305
- return { status: 'unsupported', reason: 'dispatcher runtime stopped' };
306
- case 'failed':
307
- return { status: 'failed', error: delivery.error };
308
- case 'duplicate':
309
- return {
310
- status: 'failed',
311
- error: new Error('teammate completion trigger unexpectedly deduplicated'),
312
- };
313
- case 'skipped':
314
- return {
315
- status: 'failed',
316
- error: new Error('teammate completion trigger unexpectedly skipped'),
317
- };
318
- }
228
+ async completionInput(input) {
229
+ if (this.turnManager === null)
230
+ return { status: 'stopped' };
231
+ return this.turnManager.submitTextInput(input);
319
232
  }
320
233
  async stop() {
321
234
  this.stopping = true;
322
235
  this.clearRestartTimer();
323
236
  this.setStatus('stopping');
324
- await this.state.setStatus(this.dispatcherId, 'stopping');
237
+ await this.state.setStatus('stopping');
325
238
  await this.teardownCodexRuntime();
326
239
  this.setStatus('stopped');
327
- await this.state.setStatus(this.dispatcherId, 'stopped');
240
+ await this.state.setStatus('stopped');
328
241
  }
329
242
  async cleanupOnFailure() {
330
243
  this.clearRestartTimer();
@@ -374,7 +287,7 @@ export class CodexRuntime {
374
287
  this.log('warn', `${reason}; restarting in ${delay}ms`);
375
288
  this.setStatus('degraded');
376
289
  void this.state
377
- .setStatus(this.dispatcherId, 'degraded', { last_error: reason })
290
+ .setStatus('degraded', { last_error: reason })
378
291
  .catch((err) => this.log('warn', 'failed to persist degraded status', err));
379
292
  this.restartTimer = setTimeout(() => {
380
293
  this.restartTimer = null;
@@ -387,7 +300,7 @@ export class CodexRuntime {
387
300
  this.restarting = true;
388
301
  let retryReason = null;
389
302
  this.setStatus('starting');
390
- await this.state.setStatus(this.dispatcherId, 'starting', {
303
+ await this.state.setStatus('starting', {
391
304
  last_started_at: Date.now(),
392
305
  });
393
306
  try {
@@ -407,7 +320,7 @@ export class CodexRuntime {
407
320
  const msg = err instanceof Error ? err.message : String(err);
408
321
  this.log('error', `restart failed: ${msg}`, err);
409
322
  this.setStatus('degraded');
410
- await this.state.setStatus(this.dispatcherId, 'degraded', {
323
+ await this.state.setStatus('degraded', {
411
324
  last_error: msg,
412
325
  });
413
326
  await this.teardownCodexRuntime();
@@ -432,40 +345,21 @@ export class CodexRuntime {
432
345
  }
433
346
  async markReady() {
434
347
  this.setStatus('ready');
435
- await this.state.setStatus(this.dispatcherId, 'ready', {
348
+ await this.state.setStatus('ready', {
436
349
  last_ready_at: Date.now(),
437
350
  last_error: null,
438
351
  });
439
352
  }
440
353
  recordCollectedTurn(turn) {
441
- const messages = turn.items.filter((item) => item.type === 'agentMessage');
442
- const last = messages[messages.length - 1];
443
- if (typeof last?.text === 'string' && last.text.length > 0) {
444
- this.lastResult = { text: last.text };
445
- }
446
- this.deps.onTurnSettled?.({ turnId: turn.turnId, status: 'completed' });
447
- }
448
- rememberInjectedCompletion(id) {
449
- if (this.injectedCompletionIds.has(id))
450
- return;
451
- this.injectedCompletionIds.add(id);
452
- this.injectedCompletionOrder.push(id);
453
- while (this.injectedCompletionOrder.length > COMPLETION_ID_CACHE_LIMIT) {
454
- const evicted = this.injectedCompletionOrder.shift();
455
- if (evicted !== undefined)
456
- this.injectedCompletionIds.delete(evicted);
457
- }
458
- }
459
- rememberAcceptedCompletion(id) {
460
- if (this.acceptedCompletionIds.has(id))
461
- return;
462
- this.acceptedCompletionIds.add(id);
463
- this.acceptedCompletionOrder.push(id);
464
- while (this.acceptedCompletionOrder.length > COMPLETION_ID_CACHE_LIMIT) {
465
- const evicted = this.acceptedCompletionOrder.shift();
466
- if (evicted !== undefined)
467
- this.acceptedCompletionIds.delete(evicted);
354
+ const resultText = extractAssistantText(turn);
355
+ if (resultText !== null) {
356
+ this.lastResult = { text: resultText };
468
357
  }
358
+ this.deps.onTurnSettled?.({
359
+ turnId: turn.turnId,
360
+ status: 'completed',
361
+ result: { text: resultText },
362
+ });
469
363
  }
470
364
  setStatus(s) {
471
365
  this.status = s;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-roots.d.ts","sourceRoot":"","sources":["../src/skill-roots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC5C,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7E,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWjE"}
1
+ {"version":3,"file":"skill-roots.d.ts","sourceRoot":"","sources":["../src/skill-roots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC5C,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7E,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBhB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAWjE"}
@@ -1,12 +1,9 @@
1
1
  import { dirname } from 'node:path';
2
- const CODEX_SKILL_DIR_LAYOUT = 'skill-dir';
3
2
  export async function applyCodexSkillExtraRoots(input) {
4
3
  if (input.sources.length === 0)
5
4
  return;
6
5
  const extraRoots = [
7
- ...new Set(input.sources
8
- .filter((source) => source.layout === CODEX_SKILL_DIR_LAYOUT)
9
- .map((source) => dirname(source.path))),
6
+ ...new Set(input.sources.map((source) => dirname(source.path))),
10
7
  ];
11
8
  if (extraRoots.length === 0)
12
9
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-roots.js","sourceRoot":"","sources":["../src/skill-roots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAI/C;IACC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACvC,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,OAAO;aACV,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,sBAAsB,CAAC;aAC5D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CACzC;KACF,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,CACP,MAAM,EACN,iFAAiF,UAAU,CAAC,MAAM,6BAA6B,EAC/H,GAAG,CACJ,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,GAAG,CACP,MAAM,EACN,WAAW,UAAU,CAAC,MAAM,yBAAyB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,MAAM,OAAO,GAAG,CACd,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC,WAAW,EAAE,CAAC;IAChB,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"skill-roots.js","sourceRoot":"","sources":["../src/skill-roots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAI/C;IACC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACvC,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CACpD;KACF,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,CACP,MAAM,EACN,iFAAiF,UAAU,CAAC,MAAM,6BAA6B,EAC/H,GAAG,CACJ,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,KAAK,CAAC,GAAG,CACP,MAAM,EACN,WAAW,UAAU,CAAC,MAAM,yBAAyB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,MAAM,OAAO,GAAG,CACd,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC,WAAW,EAAE,CAAC;IAChB,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CACvC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { type CollectedTurn } from './events.js';
11
11
  import type { CodexWsClient } from './rpc.js';
12
- import type { InboundTurnInput, InboundDeliveryResult, NoticeInjectionResult, InboundDeliveryHooks, TurnSettledSignal } from '@excitedjs/dreamux-types';
12
+ import type { InboundTurnInput, InboundDeliveryResult, InboundDeliveryHooks, AgentRuntimeTextInput, TurnSettledSignal } from '@excitedjs/dreamux-types';
13
13
  export interface TurnManagerOptions {
14
14
  dispatcherId: string;
15
15
  /** Lazily resolved Codex thread id (set after thread/start | resume). */
@@ -39,14 +39,9 @@ export declare class TurnManager {
39
39
  private readonly opts;
40
40
  private readonly seenMessageIds;
41
41
  private readonly seenMessageIdOrder;
42
+ private readonly seenTextInputIds;
43
+ private readonly seenTextInputIdOrder;
42
44
  private stopped;
43
- /**
44
- * Set once any real inbound has been accepted and handed to Codex. There is
45
- * no FIFO queue here — inbound submission folds onto Codex's active turn — so
46
- * this flag is what lets a best-effort restart-notice injection detect an
47
- * in-flight inbound and skip rather than wake the thread twice (issue #78).
48
- */
49
- private inboundSubmitted;
50
45
  private activeTurnSlot;
51
46
  private activeTurnId;
52
47
  /**
@@ -67,15 +62,7 @@ export declare class TurnManager {
67
62
  * process already saw the message_id.
68
63
  */
69
64
  enqueue(input: InboundTurnInput, hooks?: InboundDeliveryHooks): Promise<InboundDeliveryResult>;
70
- submitSystemInput(text: string): Promise<InboundDeliveryResult>;
71
- /**
72
- * Best-effort one-shot notice injected after a `daemon restart --notify-
73
- * resumed` resumes this dispatcher's thread. Skips if the manager is stopped,
74
- * if a real inbound has already woken the thread, or if no thread is bound.
75
- * A submission failure is reported, never thrown — it must not fail the
76
- * dispatcher's start or the restart.
77
- */
78
- injectNotice(text: string): Promise<NoticeInjectionResult>;
65
+ submitTextInput(input: AgentRuntimeTextInput): Promise<InboundDeliveryResult>;
79
66
  stop(): Promise<void>;
80
67
  private claimActiveTurnSlot;
81
68
  private recordTurnStartSuccess;
@@ -93,6 +80,7 @@ export declare class TurnManager {
93
80
  private trackTurn;
94
81
  private notifyAccepted;
95
82
  private rememberMessageId;
83
+ private rememberTextInputId;
96
84
  private resolveIdleWaitersIfIdle;
97
85
  }
98
86
  //# sourceMappingURL=turn-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-manager.d.ts","sourceRoot":"","sources":["../src/turn-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAalC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,4EAA4E;IAC5E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,WAAW;IAwBV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAvBjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAuB;IAC3C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyC;IAC7D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAElB,IAAI,EAAE,kBAAkB;IAYrD,MAAM,IAAI,OAAO;IAIjB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB;;;OAGG;IACG,OAAO,CACX,KAAK,EAAE,gBAAgB,EACvB,KAAK,GAAE,oBAAyB,GAC/B,OAAO,CAAC,qBAAqB,CAAC;IAuD3B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA0CrE;;;;;;OAMG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,gBAAgB;IAOxB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;YAqCH,cAAc;IAgB5B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,wBAAwB;CAOjC"}
1
+ {"version":3,"file":"turn-manager.d.ts","sourceRoot":"","sources":["../src/turn-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAalC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,4EAA4E;IAC5E,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,WAAW;IAmBV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAlBjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgB;IACrD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAuB;IAC3C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyC;IAC7D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAElB,IAAI,EAAE,kBAAkB;IAYrD,MAAM,IAAI,OAAO;IAIjB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB;;;OAGG;IACG,OAAO,CACX,KAAK,EAAE,gBAAgB,EACvB,KAAK,GAAE,oBAAyB,GAC/B,OAAO,CAAC,qBAAqB,CAAC;IAmD3B,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiD7E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,gBAAgB;IAOxB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;YAsCH,cAAc;IAgB5B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,wBAAwB;CAOjC"}
@@ -13,14 +13,9 @@ export class TurnManager {
13
13
  opts;
14
14
  seenMessageIds = new Set();
15
15
  seenMessageIdOrder = [];
16
+ seenTextInputIds = new Set();
17
+ seenTextInputIdOrder = [];
16
18
  stopped = false;
17
- /**
18
- * Set once any real inbound has been accepted and handed to Codex. There is
19
- * no FIFO queue here — inbound submission folds onto Codex's active turn — so
20
- * this flag is what lets a best-effort restart-notice injection detect an
21
- * in-flight inbound and skip rather than wake the thread twice (issue #78).
22
- */
23
- inboundSubmitted = false;
24
19
  activeTurnSlot = null;
25
20
  activeTurnId = null;
26
21
  /**
@@ -69,9 +64,6 @@ export class TurnManager {
69
64
  if (!this.rememberMessageId(input.sourceId)) {
70
65
  return { status: 'duplicate' };
71
66
  }
72
- // Mark before any await so a concurrent restart-notice injection observes
73
- // that a real inbound is in flight and skips itself.
74
- this.inboundSubmitted = true;
75
67
  const threadId = this.opts.getThreadId();
76
68
  if (threadId === null) {
77
69
  await this.notifyAccepted(input, hooks);
@@ -104,12 +96,17 @@ export class TurnManager {
104
96
  return { status: 'failed', error };
105
97
  }
106
98
  }
107
- async submitSystemInput(text) {
99
+ async submitTextInput(input) {
108
100
  if (this.stopped)
109
101
  return { status: 'stopped' };
102
+ if (input.sourceId !== undefined &&
103
+ input.sourceId !== '' &&
104
+ !this.rememberTextInputId(input.sourceId)) {
105
+ return { status: 'duplicate' };
106
+ }
110
107
  const threadId = this.opts.getThreadId();
111
108
  if (threadId === null) {
112
- const error = new Error('system input submitted without thread_id');
109
+ const error = new Error('text input submitted without thread_id');
113
110
  this.log('error', error.message);
114
111
  return { status: 'failed', error };
115
112
  }
@@ -117,12 +114,12 @@ export class TurnManager {
117
114
  activeTurn.slot.pendingSubmissions += 1;
118
115
  let res;
119
116
  try {
120
- res = await submitTurnStart(this.opts.client, threadId, text, this.opts.turnCwd ?? null);
117
+ res = await submitTurnStart(this.opts.client, threadId, input.text, this.opts.turnCwd ?? null);
121
118
  }
122
119
  catch (err) {
123
120
  const error = err instanceof Error ? err : new Error(String(err));
124
121
  this.recordTurnStartFailure(activeTurn.slot, error, activeTurn.primary);
125
- this.log('error', `system turn/start submission failed: ${error.message}`, error);
122
+ this.log('error', `text turn/start submission failed: ${error.message}`, error);
126
123
  return { status: 'failed', error };
127
124
  }
128
125
  const turnId = this.recordTurnStartSuccess(activeTurn.slot, res.turn.id, activeTurn.primary);
@@ -137,40 +134,6 @@ export class TurnManager {
137
134
  return { status: 'failed', error };
138
135
  }
139
136
  }
140
- /**
141
- * Best-effort one-shot notice injected after a `daemon restart --notify-
142
- * resumed` resumes this dispatcher's thread. Skips if the manager is stopped,
143
- * if a real inbound has already woken the thread, or if no thread is bound.
144
- * A submission failure is reported, never thrown — it must not fail the
145
- * dispatcher's start or the restart.
146
- */
147
- async injectNotice(text) {
148
- if (this.stopped)
149
- return { status: 'stopped' };
150
- if (this.inboundSubmitted)
151
- return { status: 'skipped' };
152
- const threadId = this.opts.getThreadId();
153
- if (threadId === null) {
154
- const error = new Error('restart notice injected without thread_id');
155
- this.log('error', error.message);
156
- return { status: 'failed', error };
157
- }
158
- // Mark before submitting so a racing real inbound is not double-counted and
159
- // a second injection cannot fire.
160
- this.inboundSubmitted = true;
161
- try {
162
- const collector = subscribeTurnCollection(this.opts.client, threadId);
163
- const res = await submitTurnStart(this.opts.client, threadId, text, this.opts.turnCwd ?? null);
164
- this.trackTurn(res.turn.id, collector);
165
- this.log('info', `injected restart notice into thread ${threadId}`);
166
- return { status: 'submitted', turnId: res.turn.id };
167
- }
168
- catch (err) {
169
- const error = err instanceof Error ? err : new Error(String(err));
170
- this.log('warn', `restart notice injection failed: ${error.message}`, error);
171
- return { status: 'failed', error };
172
- }
173
- }
174
137
  async stop() {
175
138
  this.stopped = true;
176
139
  const activeSlot = this.activeTurnSlot;
@@ -182,7 +145,11 @@ export class TurnManager {
182
145
  // (the WS is closing). Settle each as `stopped` so an interrupted teammate
183
146
  // turn is delivered with a status rather than vanishing.
184
147
  for (const turnId of this.pendingTurnIds) {
185
- this.opts.onTurnSettled?.({ turnId, status: 'stopped' });
148
+ this.opts.onTurnSettled?.({
149
+ turnId,
150
+ status: 'stopped',
151
+ result: { text: null },
152
+ });
186
153
  }
187
154
  this.pendingTurnIds.clear();
188
155
  this.activeTurnId = null;
@@ -291,6 +258,7 @@ export class TurnManager {
291
258
  this.opts.onTurnSettled?.({
292
259
  turnId,
293
260
  status: 'failed',
261
+ result: { text: null },
294
262
  error: err instanceof Error ? err : new Error(String(err)),
295
263
  });
296
264
  this.resolveIdleWaitersIfIdle();
@@ -321,6 +289,18 @@ export class TurnManager {
321
289
  }
322
290
  return true;
323
291
  }
292
+ rememberTextInputId(id) {
293
+ if (this.seenTextInputIds.has(id))
294
+ return false;
295
+ this.seenTextInputIds.add(id);
296
+ this.seenTextInputIdOrder.push(id);
297
+ while (this.seenTextInputIdOrder.length > this.messageIdDedupeWindow) {
298
+ const evicted = this.seenTextInputIdOrder.shift();
299
+ if (evicted !== undefined)
300
+ this.seenTextInputIds.delete(evicted);
301
+ }
302
+ return true;
303
+ }
324
304
  resolveIdleWaitersIfIdle() {
325
305
  if (this.isBusy())
326
306
  return;