@excitedjs/agent-runtime-codex 0.2.0-alpha.gdd32dedd5789 → 0.2.0-beta.73

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.d.ts CHANGED
@@ -1,90 +1,27 @@
1
- /**
2
- * CodexRuntime — one running Codex-backed AgentRuntime instance.
3
- *
4
- * Owns:
5
- * - CodexProcess (child app-server)
6
- * - CodexWsClient (WS connection)
7
- * - thread_id (lazily created via thread/start or resumed)
8
- * - TurnManager (FIFO worker for this dispatcher)
9
- *
10
- * Lifecycle: declared → starting → ready → (degraded) → stopping → stopped.
11
- *
12
- * Current MVP:
13
- * - accepted inbound work is process-local and is dropped on restart;
14
- * - thread/resume failure does not degrade the whole dispatcher; we
15
- * start a fresh thread, record the lost one in last_lost_thread_id,
16
- * and post a visible warning to the next source chat.
17
- */
18
1
  import { CodexProcess, type CodexProcessOptions } from './supervisor.js';
19
2
  import { CodexWsClient } from './rpc.js';
20
3
  import type { AgentRuntime, AgentRuntimeCapabilities, AgentRuntimeIdentity, AgentRuntimeLastResult, AgentRuntimePathContext, AgentRuntimeResumeInput, AgentRuntimeSkillSource, AgentRuntimeStateCallbacks, AgentRuntimeStatus, AgentRuntimeSystemInput, AgentRuntimeTurnResult, CompletionEnvelope, DreamuxLogger, InboundDeliveryHooks, InboundTurnInput, TeamMateCompletionDeliveryResult, TurnSettledSignal } from '@excitedjs/dreamux-types';
21
4
  export interface CodexRuntimeDeps {
22
- /** Working directory the codex app-server runs in (required launch param). */
23
5
  cwd: string;
24
- /**
25
- * Launcher-supplied system-prompt content used as codex `baseInstructions`
26
- * (codex applies it as a REPLACE per its `systemPrompt` capability). Omitted
27
- * for launches that supply none (e.g. teammates).
28
- */
29
6
  systemPromptContent?: string;
30
- /** Neutral state sink the host adapts from its dispatcher store. */
31
7
  state: AgentRuntimeStateCallbacks;
32
- /** Host-supplied per-dispatcher path context (logs/spill live in the host tree). */
33
8
  paths: AgentRuntimePathContext;
34
- /**
35
- * Allocate a fresh volatile rendezvous socket path for one app-server start.
36
- * Host-supplied: the socket root is a Dreamux runtime contract this package
37
- * must not reconstruct.
38
- */
39
9
  allocateSocketPath: (id: string) => string;
40
- /**
41
- * Role-gated bundled skill sources core selected for this runtime (issue #209
42
- * slice 6). Applied via the app-server `skills/extraRoots/set` RPC after
43
- * initialize and before thread start/resume, and reapplied after every
44
- * app-server restart. Empty/omitted means no roots are set (the default for
45
- * teammates and any role core does not gate skills for).
46
- */
47
10
  skillSources?: readonly AgentRuntimeSkillSource[];
48
- /**
49
- * The host's neutral env-injection entries from the create context, merged
50
- * into the child env before this provider's own `extraEnv`. Empty/omitted
51
- * means inject nothing (the common case).
52
- */
53
11
  injectEnv?: Record<string, string>;
54
- /** Optional bin path override for tests. */
55
12
  codexBinPath?: string;
56
- /** Override process construction for tests. */
57
13
  codexProcessFactory?: (opts: CodexProcessOptions) => CodexProcess;
58
- /** Override WS client factory for tests. */
59
14
  codexClientFactory?: (socketPath: string) => CodexWsClient;
60
- /**
61
- * Optional host-owned Codex home/auth pre-start check, invoked before the
62
- * child spawns with the runtime id and cwd. The host owns its path/socket
63
- * inputs and builds its own validation context from these.
64
- */
65
15
  codexHomeDoctor?: (info: {
66
16
  runtimeId: string;
67
17
  cwd: string;
68
18
  }) => void | Promise<void>;
69
- /** Codex extraArgs (parsed from dispatcher.codex_args_json). */
70
19
  resolveExtraArgs?: () => string[];
71
- /**
72
- * Codex initialize handshake timeout (ms). From this dispatcher's
73
- * `dispatchers[].runtime.config.initialize_timeout_ms` (default 10000).
74
- */
75
20
  handshakeTimeoutMs?: number;
76
- /** Per-dispatcher environment overrides from config. */
77
21
  extraEnv?: Record<string, string>;
78
- /** Codex child/WS restart backoff base (tests may override). */
79
22
  restartBackoffBaseMs?: number;
80
- /** Codex child/WS restart backoff cap (tests may override). */
81
23
  restartBackoffMaxMs?: number;
82
- /**
83
- * Fired each time a delivered turn reaches a terminal state. Supplied by the
84
- * launcher (teammate service) and omitted for dispatcher launches.
85
- */
86
24
  onTurnSettled?: (settled: TurnSettledSignal) => void;
87
- /** Neutral logger the host passes in; a console fallback is used when absent. */
88
25
  logger?: DreamuxLogger;
89
26
  }
90
27
  export declare class CodexRuntime implements AgentRuntime {
@@ -95,35 +32,12 @@ export declare class CodexRuntime implements AgentRuntime {
95
32
  private client;
96
33
  private turnManager;
97
34
  private threadId;
98
- /**
99
- * Whether the most recent thread resolution resumed an existing Codex thread
100
- * (true) rather than starting a fresh one or recovering from a failed resume.
101
- * Consulted by the server right after the slot is ready to decide whether a
102
- * `daemon restart` notice should be injected (issue #78).
103
- */
104
35
  private threadResumed;
105
36
  private status;
106
- /** Monotonic per-attempt suffix for TeamMate delivery turn dedup ids (#110 PR8). */
107
37
  private teammateDeliverySeq;
108
- /**
109
- * Completion deliveries currently being processed. Duplicate settled events can
110
- * race into `completionInput`; coalescing by completion id keeps one logical
111
- * completion from injecting or triggering more than once concurrently.
112
- */
113
38
  private readonly inFlightCompletionDeliveries;
114
- /**
115
- * Completion ids whose trigger turn has already been accepted. A later replay
116
- * of the same settled teammate turn is an idempotent success, not a new wake-up.
117
- */
118
39
  private readonly acceptedCompletionIds;
119
40
  private readonly acceptedCompletionOrder;
120
- /**
121
- * Completion ids whose item has already been injected into the thread. The
122
- * Dispatcher Service retries `completionInput` on `failed`; if the inject
123
- * succeeded but the trigger turn failed, the retry must NOT re-inject the same
124
- * item (that would persist a duplicate completion to the rollout). Bounded so
125
- * a long-lived dispatcher does not grow this set without limit.
126
- */
127
41
  private readonly injectedCompletionIds;
128
42
  private readonly injectedCompletionOrder;
129
43
  private readonly log;
@@ -139,70 +53,19 @@ export declare class CodexRuntime implements AgentRuntime {
139
53
  getStatus(): AgentRuntimeStatus;
140
54
  getCapabilities(): AgentRuntimeCapabilities;
141
55
  getThreadId(): string | null;
142
- /** True when the live thread was resumed (not freshly started/recovered). */
143
56
  wasThreadResumed(): boolean;
144
57
  getLast(): Promise<AgentRuntimeLastResult | null>;
145
58
  getContext(): Promise<null>;
146
59
  resume(input?: AgentRuntimeResumeInput): Promise<void>;
147
60
  private submitRestartNotice;
148
- /**
149
- * Bring the dispatcher up. Order:
150
- * 1. spawn codex app-server child
151
- * 2. open WS client
152
- * 3. install fail-fast approval handler
153
- * 4. thread/start (new) or thread/resume (existing)
154
- * 5. install turn manager
155
- * 6. status = ready
156
- */
157
61
  start(): Promise<void>;
158
62
  private startCodexRuntime;
159
- /**
160
- * Apply the role-gated bundled skill sources to the live app-server via
161
- * `skills/extraRoots/set`. Codex treats each extra root as a directory whose
162
- * immediate children are skill dirs, so a `skill-dir` source maps to the
163
- * *parent* of its own directory; roots are deduped (the bundled Dreamux skills
164
- * share one parent). Empty input skips the RPC entirely (a fresh per-runtime
165
- * app-server starts with no extra roots, so nothing to clear).
166
- *
167
- * Error handling distinguishes two failure modes (issue #209 slice 6 repair):
168
- * 1. The app-server does not implement `skills/extraRoots/set` at all — a
169
- * capability/version skew against an older codex backend (it answers with
170
- * an `unknown variant`/method-not-found error). This is NOT a real
171
- * failure: fail open, warn, and continue skill-blind rather than bricking
172
- * startup against every backend that predates the RPC.
173
- * 2. The RPC exists but applying the given roots genuinely failed — fail
174
- * loud, exactly as before, so real misconfiguration is not masked.
175
- */
176
63
  private applySkillExtraRoots;
177
64
  private resolveThread;
178
- /**
179
- * Submit any accepted inbound message arriving for this dispatcher. Called by
180
- * the Feishu inbound layer.
181
- */
182
65
  channelInput(input: InboundTurnInput, hooks?: InboundDeliveryHooks): Promise<AgentRuntimeTurnResult>;
183
- /** Inject a system-originated notice (e.g. a restart notice). */
184
66
  systemInput(notice: AgentRuntimeSystemInput): Promise<AgentRuntimeTurnResult>;
185
- /**
186
- * Codex TeamMate completion delivery — the native inbox-then-trigger idiom.
187
- *
188
- * Two steps, in order:
189
- * 1. `thread/inject_items` appends the completion to the dispatcher thread's
190
- * model-visible history as a developer-role message (no fake user turn).
191
- * codex folds the item onto the active turn when one is running and never
192
- * rejects on a busy thread, so a failure here is a genuine RPC error.
193
- * 2. a minimal trigger turn through the public `channelInput` seam wakes the
194
- * idle dispatcher so it reads the just-injected notification and acts.
195
- *
196
- * The trigger turn uses a fresh, non-routable source id per attempt. The turn
197
- * manager commits its dedup id before `turn/start` and does not roll it back
198
- * on failure, so a retry that reused one id would come back `duplicate` and be
199
- * mis-counted as delivered when nothing was submitted. The Dispatcher Service
200
- * only retries on `failed` (definitely not submitted), so a unique id per
201
- * attempt re-submits the trigger safely.
202
- */
203
67
  completionInput(completion: CompletionEnvelope): Promise<TeamMateCompletionDeliveryResult>;
204
68
  private deliverCompletionInput;
205
- /** Graceful stop: stop accepting work, reap codex child. */
206
69
  stop(): Promise<void>;
207
70
  private cleanupOnFailure;
208
71
  private teardownCodexRuntime;
@@ -214,33 +77,8 @@ export declare class CodexRuntime implements AgentRuntime {
214
77
  private clearRestartTimer;
215
78
  private markReady;
216
79
  private recordCollectedTurn;
217
- /** Record a completion id as injected, evicting the oldest past a small cap. */
218
80
  private rememberInjectedCompletion;
219
- /** Record a completion id as fully accepted, evicting the oldest past a cap. */
220
81
  private rememberAcceptedCompletion;
221
82
  private setStatus;
222
83
  }
223
- /**
224
- * Classify an RPC rejection as a capability/version gap — the app-server does
225
- * not implement the requested method at all — rather than a genuine failure of
226
- * an existing method.
227
- *
228
- * The rpc layer collapses codex's structured error to `Error(message)` (it
229
- * drops the JSON-RPC error code), so the *message* is all we have. codex
230
- * surfaces an unimplemented method as a serde enum-deserialization failure of
231
- * the request's `method` field — `unknown variant \`<method>\`, expected one of
232
- * …` — while a spec-compliant JSON-RPC peer answers method-not-found (-32601).
233
- * We match those canonical phrasings only; the test stays deliberately narrow
234
- * so a real error from an *existing* method (a bad root path, a permission
235
- * failure) is NOT swallowed and still fails loud.
236
- *
237
- * The match is message-based by necessity: the rpc layer drops the structured
238
- * JSON-RPC error code, so the message is all we have. The one residual
239
- * false-positive is a server that *implements* the method but rejects a bad
240
- * *param value* with an "unknown variant `<value>`" serde error. That is safe
241
- * for our sole caller — `skills/extraRoots/set` takes a `string[]` of paths,
242
- * which codex never enum-rejects — but a future caller passing an enum-typed
243
- * param should not reuse this classifier blindly.
244
- */
245
- export declare function isUnsupportedRpcMethodError(err: unknown): boolean;
246
84
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -1,21 +1,4 @@
1
- /**
2
- * CodexRuntime — one running Codex-backed AgentRuntime instance.
3
- *
4
- * Owns:
5
- * - CodexProcess (child app-server)
6
- * - CodexWsClient (WS connection)
7
- * - thread_id (lazily created via thread/start or resumed)
8
- * - TurnManager (FIFO worker for this dispatcher)
9
- *
10
- * Lifecycle: declared → starting → ready → (degraded) → stopping → stopped.
11
- *
12
- * Current MVP:
13
- * - accepted inbound work is process-local and is dropped on restart;
14
- * - thread/resume failure does not degrade the whole dispatcher; we
15
- * start a fresh thread, record the lost one in last_lost_thread_id,
16
- * and post a visible warning to the next source chat.
17
- */
18
- import { dirname, join } from 'node:path';
1
+ import { join } from 'node:path';
19
2
  import { CodexProcess, } from './supervisor.js';
20
3
  import { CodexWsClient } from './rpc.js';
21
4
  import { performInitializeHandshake } from './handshake.js';
@@ -26,14 +9,7 @@ import { createFailFastApprovalHandler } from './approval.js';
26
9
  import { BUILTIN_CODEX_PROVIDER_REF } from './provider-ref.js';
27
10
  import { CODEX_AGENT_RUNTIME_CAPABILITIES } from './provider.js';
28
11
  import { buildCodexCompletionItem, CODEX_COMPLETION_TRIGGER_TEXT, codexProcessEnv, } from './runtime-support.js';
29
- /**
30
- * The skill-source `layout` this runtime knows how to apply. `path` is one
31
- * skill's own directory (containing `SKILL.md`); codex's `skills/extraRoots/set`
32
- * takes the *parent* of such a dir as a skills root (a root whose immediate
33
- * children are skill dirs — verified against codex 0.137's app-server schema).
34
- * Sources with any other layout are ignored by the codex mapping.
35
- */
36
- const CODEX_SKILL_DIR_LAYOUT = 'skill-dir';
12
+ import { applyCodexSkillExtraRoots } from './skill-roots.js';
37
13
  const DEFAULT_RESTART_BACKOFF_BASE_MS = 1000;
38
14
  const DEFAULT_RESTART_BACKOFF_MAX_MS = 30_000;
39
15
  const COMPLETION_ID_CACHE_LIMIT = 256;
@@ -45,35 +21,12 @@ export class CodexRuntime {
45
21
  client = null;
46
22
  turnManager = null;
47
23
  threadId = null;
48
- /**
49
- * Whether the most recent thread resolution resumed an existing Codex thread
50
- * (true) rather than starting a fresh one or recovering from a failed resume.
51
- * Consulted by the server right after the slot is ready to decide whether a
52
- * `daemon restart` notice should be injected (issue #78).
53
- */
54
24
  threadResumed = false;
55
25
  status = 'declared';
56
- /** Monotonic per-attempt suffix for TeamMate delivery turn dedup ids (#110 PR8). */
57
26
  teammateDeliverySeq = 0;
58
- /**
59
- * Completion deliveries currently being processed. Duplicate settled events can
60
- * race into `completionInput`; coalescing by completion id keeps one logical
61
- * completion from injecting or triggering more than once concurrently.
62
- */
63
27
  inFlightCompletionDeliveries = new Map();
64
- /**
65
- * Completion ids whose trigger turn has already been accepted. A later replay
66
- * of the same settled teammate turn is an idempotent success, not a new wake-up.
67
- */
68
28
  acceptedCompletionIds = new Set();
69
29
  acceptedCompletionOrder = [];
70
- /**
71
- * Completion ids whose item has already been injected into the thread. The
72
- * Dispatcher Service retries `completionInput` on `failed`; if the inject
73
- * succeeded but the trigger turn failed, the retry must NOT re-inject the same
74
- * item (that would persist a duplicate completion to the rollout). Bounded so
75
- * a long-lived dispatcher does not grow this set without limit.
76
- */
77
30
  injectedCompletionIds = new Set();
78
31
  injectedCompletionOrder = [];
79
32
  log;
@@ -114,7 +67,6 @@ export class CodexRuntime {
114
67
  getThreadId() {
115
68
  return this.threadId;
116
69
  }
117
- /** True when the live thread was resumed (not freshly started/recovered). */
118
70
  wasThreadResumed() {
119
71
  return this.threadResumed;
120
72
  }
@@ -145,15 +97,6 @@ export class CodexRuntime {
145
97
  }
146
98
  return result;
147
99
  }
148
- /**
149
- * Bring the dispatcher up. Order:
150
- * 1. spawn codex app-server child
151
- * 2. open WS client
152
- * 3. install fail-fast approval handler
153
- * 4. thread/start (new) or thread/resume (existing)
154
- * 5. install turn manager
155
- * 6. status = ready
156
- */
157
100
  async start() {
158
101
  this.stopping = false;
159
102
  this.restarting = false;
@@ -179,17 +122,11 @@ export class CodexRuntime {
179
122
  }
180
123
  async startCodexRuntime() {
181
124
  const cwd = this.deps.cwd;
182
- // Fresh random rendezvous socket per start (issue #182): held in memory
183
- // only — never persisted to durable state, never derived from state paths.
184
125
  const socketPath = this.deps.allocateSocketPath(this.dispatcherId);
185
126
  const extraArgs = this.deps.resolveExtraArgs?.() ?? [];
186
127
  if (this.deps.codexHomeDoctor !== undefined) {
187
128
  await this.deps.codexHomeDoctor({ runtimeId: this.dispatcherId, cwd });
188
129
  }
189
- // Compose the codex app-server log subpaths under the neutral central logs
190
- // root (B2): core no longer names a per-runtime log file. The host supplies
191
- // a unique, filesystem-safe `runtime_id`, so `<logsDir>/codex-app-server/
192
- // <id>.log` is collision-free across dispatchers and teammates.
193
130
  const codexLogDir = join(this.paths.logsDir(), 'codex-app-server');
194
131
  const factory = this.deps.codexProcessFactory ?? ((o) => new CodexProcess(o));
195
132
  const process = factory({
@@ -223,18 +160,12 @@ export class CodexRuntime {
223
160
  },
224
161
  });
225
162
  this.client.setServerRequestHandler(approvalHandler);
226
- // codex 0.134+ LSP-style handshake — must precede thread/start or
227
- // any other RPC, otherwise codex answers everything with
228
- // `Not initialized` (see src/codex/handshake.ts).
229
163
  const initResponse = await performInitializeHandshake(this.client, {
230
164
  ...(this.deps.handshakeTimeoutMs !== undefined
231
165
  ? { timeoutMs: this.deps.handshakeTimeoutMs }
232
166
  : {}),
233
167
  });
234
168
  this.log('info', `codex initialized: ${initResponse.userAgent} (home=${initResponse.codexHome}, ${initResponse.platformOs})`);
235
- // Role-gated bundled skills (issue #209 slice 6): set the extra skill roots
236
- // AFTER initialize and BEFORE thread start/resume, and on every restart this
237
- // method runs again so the roots are reapplied to the fresh app-server.
238
169
  await this.applySkillExtraRoots();
239
170
  await this.resolveThread();
240
171
  this.turnManager = new TurnManager({
@@ -246,57 +177,21 @@ export class CodexRuntime {
246
177
  log: this.log,
247
178
  });
248
179
  }
249
- /**
250
- * Apply the role-gated bundled skill sources to the live app-server via
251
- * `skills/extraRoots/set`. Codex treats each extra root as a directory whose
252
- * immediate children are skill dirs, so a `skill-dir` source maps to the
253
- * *parent* of its own directory; roots are deduped (the bundled Dreamux skills
254
- * share one parent). Empty input skips the RPC entirely (a fresh per-runtime
255
- * app-server starts with no extra roots, so nothing to clear).
256
- *
257
- * Error handling distinguishes two failure modes (issue #209 slice 6 repair):
258
- * 1. The app-server does not implement `skills/extraRoots/set` at all — a
259
- * capability/version skew against an older codex backend (it answers with
260
- * an `unknown variant`/method-not-found error). This is NOT a real
261
- * failure: fail open, warn, and continue skill-blind rather than bricking
262
- * startup against every backend that predates the RPC.
263
- * 2. The RPC exists but applying the given roots genuinely failed — fail
264
- * loud, exactly as before, so real misconfiguration is not masked.
265
- */
266
180
  async applySkillExtraRoots() {
267
181
  if (this.client === null)
268
182
  throw new Error('client not initialized');
269
- const sources = this.deps.skillSources ?? [];
270
- if (sources.length === 0)
271
- return;
272
- const extraRoots = [
273
- ...new Set(sources
274
- .filter((s) => s.layout === CODEX_SKILL_DIR_LAYOUT)
275
- .map((s) => dirname(s.path))),
276
- ];
277
- if (extraRoots.length === 0)
278
- return;
279
- try {
280
- await this.client.request('skills/extraRoots/set', { extraRoots });
281
- }
282
- catch (err) {
283
- if (isUnsupportedRpcMethodError(err)) {
284
- this.log('warn', `skills/extraRoots/set unsupported by this app-server; continuing skill-blind (${extraRoots.length} extra root(s) not applied)`, err);
285
- return;
286
- }
287
- throw err;
288
- }
289
- this.log('info', `applied ${extraRoots.length} skill extra root(s): ${extraRoots.join(', ')}`);
183
+ await applyCodexSkillExtraRoots({
184
+ client: this.client,
185
+ sources: this.deps.skillSources ?? [],
186
+ log: this.log,
187
+ });
290
188
  }
291
189
  async resolveThread() {
292
190
  if (this.client === null)
293
191
  throw new Error('client not initialized');
294
- // Each resolution recomputes whether we resumed; a fresh start or a
295
- // resume-failure recovery must not look like a resume to the notice gate.
296
192
  this.threadResumed = false;
297
193
  const existing = this.threadId ?? this.identity.checkpoint_id ?? null;
298
194
  if (existing === null) {
299
- // Fresh thread.
300
195
  const params = {
301
196
  baseInstructions: this.deps.systemPromptContent,
302
197
  };
@@ -317,7 +212,6 @@ export class CodexRuntime {
317
212
  this.log('info', `resumed thread ${this.threadId}`);
318
213
  }
319
214
  catch (err) {
320
- // Visible degradation (issue #2 Q11): start a fresh thread, record loss.
321
215
  const msg = err instanceof Error ? err.message : String(err);
322
216
  this.log('warn', `thread/resume failed for ${existing}: ${msg}; starting fresh thread`);
323
217
  const res = await this.client.request('thread/start', { baseInstructions: this.deps.systemPromptContent });
@@ -331,47 +225,17 @@ export class CodexRuntime {
331
225
  last_error: `thread/resume failed: ${msg}`,
332
226
  });
333
227
  }
334
- // Park a warning to be delivered with the next outbound — best-effort
335
- // queue note. For MVP we just log; full user-visible delivery on next
336
- // inbound is a follow-up (see PR review).
337
228
  }
338
229
  }
339
- /**
340
- * Submit any accepted inbound message arriving for this dispatcher. Called by
341
- * the Feishu inbound layer.
342
- */
343
230
  async channelInput(input, hooks = {}) {
344
231
  if (this.turnManager === null) {
345
232
  return { status: 'failed', error: new Error('turn manager not initialized') };
346
233
  }
347
- // This runtime owns wrapping the channel input into its delivery shape: a
348
- // structured channel turn becomes the native `<channel source="…">` block
349
- // (same envelope claude renders); a plain turn (e.g. the completion trigger)
350
- // passes through unchanged.
351
234
  return this.turnManager.enqueue({ ...input, text: renderChannelInput(input) }, hooks);
352
235
  }
353
- /** Inject a system-originated notice (e.g. a restart notice). */
354
236
  async systemInput(notice) {
355
237
  return this.submitRestartNotice(notice.text);
356
238
  }
357
- /**
358
- * Codex TeamMate completion delivery — the native inbox-then-trigger idiom.
359
- *
360
- * Two steps, in order:
361
- * 1. `thread/inject_items` appends the completion to the dispatcher thread's
362
- * model-visible history as a developer-role message (no fake user turn).
363
- * codex folds the item onto the active turn when one is running and never
364
- * rejects on a busy thread, so a failure here is a genuine RPC error.
365
- * 2. a minimal trigger turn through the public `channelInput` seam wakes the
366
- * idle dispatcher so it reads the just-injected notification and acts.
367
- *
368
- * The trigger turn uses a fresh, non-routable source id per attempt. The turn
369
- * manager commits its dedup id before `turn/start` and does not roll it back
370
- * on failure, so a retry that reused one id would come back `duplicate` and be
371
- * mis-counted as delivered when nothing was submitted. The Dispatcher Service
372
- * only retries on `failed` (definitely not submitted), so a unique id per
373
- * attempt re-submits the trigger safely.
374
- */
375
239
  async completionInput(completion) {
376
240
  if (this.acceptedCompletionIds.has(completion.id)) {
377
241
  return { status: 'accepted' };
@@ -403,9 +267,6 @@ export class CodexRuntime {
403
267
  error: new Error('teammate completion delivery has no thread id'),
404
268
  };
405
269
  }
406
- // Inject the completion item at most once per completion id. On a retry
407
- // (trigger turn failed last time) the item is already in the thread, so we
408
- // skip straight to re-triggering instead of persisting a duplicate.
409
270
  if (!this.injectedCompletionIds.has(completion.id)) {
410
271
  try {
411
272
  await injectThreadItems(this.client, threadId, [
@@ -414,9 +275,6 @@ export class CodexRuntime {
414
275
  }
415
276
  catch (err) {
416
277
  const cause = err instanceof Error ? err.message : String(err);
417
- // `thread/inject_items` exists only on codex 0.137+. On an older codex
418
- // it RPC-fails here, so surface the version requirement loudly rather
419
- // than letting the dispatcher silently never see the completion.
420
278
  return {
421
279
  status: 'failed',
422
280
  error: new Error(`teammate completion thread/inject_items failed (requires codex 0.137+): ${cause}`),
@@ -437,8 +295,6 @@ export class CodexRuntime {
437
295
  case 'failed':
438
296
  return { status: 'failed', error: delivery.error };
439
297
  case 'duplicate':
440
- // Unreachable with the per-attempt id above; if it ever happens, the
441
- // turn was NOT freshly submitted, so do not report it as delivered.
442
298
  return {
443
299
  status: 'failed',
444
300
  error: new Error('teammate completion trigger unexpectedly deduplicated'),
@@ -450,7 +306,6 @@ export class CodexRuntime {
450
306
  };
451
307
  }
452
308
  }
453
- /** Graceful stop: stop accepting work, reap codex child. */
454
309
  async stop() {
455
310
  this.stopping = true;
456
311
  this.clearRestartTimer();
@@ -507,11 +362,6 @@ export class CodexRuntime {
507
362
  const delay = this.restartDelayMs(attempt);
508
363
  this.log('warn', `${reason}; restarting in ${delay}ms`);
509
364
  this.setStatus('degraded');
510
- // scheduleRestart runs from synchronous event handlers (ws close, child
511
- // exit); the durable status write is best-effort here — persist it without
512
- // blocking, logging (never throwing) on failure. The restart timer's later
513
- // 'starting'/'ready' writes are awaited, so they cannot be reordered behind
514
- // this one within the backoff delay.
515
365
  void this.state
516
366
  .setStatus(this.dispatcherId, 'degraded', { last_error: reason })
517
367
  .catch((err) => this.log('warn', 'failed to persist degraded status', err));
@@ -582,12 +432,8 @@ export class CodexRuntime {
582
432
  if (typeof last?.text === 'string' && last.text.length > 0) {
583
433
  this.lastResult = { text: last.text };
584
434
  }
585
- // A turn reaching `turn/completed` is the `completed` terminal state. The
586
- // `stopped` settlement for interrupted turns is emitted by the turn manager
587
- // on `stop()`.
588
435
  this.deps.onTurnSettled?.({ turnId: turn.turnId, status: 'completed' });
589
436
  }
590
- /** Record a completion id as injected, evicting the oldest past a small cap. */
591
437
  rememberInjectedCompletion(id) {
592
438
  if (this.injectedCompletionIds.has(id))
593
439
  return;
@@ -599,7 +445,6 @@ export class CodexRuntime {
599
445
  this.injectedCompletionIds.delete(evicted);
600
446
  }
601
447
  }
602
- /** Record a completion id as fully accepted, evicting the oldest past a cap. */
603
448
  rememberAcceptedCompletion(id) {
604
449
  if (this.acceptedCompletionIds.has(id))
605
450
  return;
@@ -615,34 +460,4 @@ export class CodexRuntime {
615
460
  this.status = s;
616
461
  }
617
462
  }
618
- /**
619
- * Classify an RPC rejection as a capability/version gap — the app-server does
620
- * not implement the requested method at all — rather than a genuine failure of
621
- * an existing method.
622
- *
623
- * The rpc layer collapses codex's structured error to `Error(message)` (it
624
- * drops the JSON-RPC error code), so the *message* is all we have. codex
625
- * surfaces an unimplemented method as a serde enum-deserialization failure of
626
- * the request's `method` field — `unknown variant \`<method>\`, expected one of
627
- * …` — while a spec-compliant JSON-RPC peer answers method-not-found (-32601).
628
- * We match those canonical phrasings only; the test stays deliberately narrow
629
- * so a real error from an *existing* method (a bad root path, a permission
630
- * failure) is NOT swallowed and still fails loud.
631
- *
632
- * The match is message-based by necessity: the rpc layer drops the structured
633
- * JSON-RPC error code, so the message is all we have. The one residual
634
- * false-positive is a server that *implements* the method but rejects a bad
635
- * *param value* with an "unknown variant `<value>`" serde error. That is safe
636
- * for our sole caller — `skills/extraRoots/set` takes a `string[]` of paths,
637
- * which codex never enum-rejects — but a future caller passing an enum-typed
638
- * param should not reuse this classifier blindly.
639
- */
640
- export function isUnsupportedRpcMethodError(err) {
641
- const message = (err instanceof Error ? err.message : String(err)).toLowerCase();
642
- return (message.includes('unknown variant') ||
643
- message.includes('method not found') ||
644
- message.includes('unknown method') ||
645
- message.includes('no such method') ||
646
- message.includes('unsupported method'));
647
- }
648
463
  //# sourceMappingURL=runtime.js.map
@@ -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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"}
@@ -0,0 +1,14 @@
1
+ import type { AgentRuntimeSkillSource } from '@excitedjs/dreamux-types';
2
+ import type { CodexWsClient } from './rpc.js';
3
+ export declare function applyCodexSkillExtraRoots(input: {
4
+ client: CodexWsClient;
5
+ sources: readonly AgentRuntimeSkillSource[];
6
+ log: (level: 'info' | 'warn' | 'error', msg: string, err?: unknown) => void;
7
+ }): Promise<void>;
8
+ /**
9
+ * Classify an RPC rejection as a capability/version gap, not a genuine failure
10
+ * of an existing method. The rpc layer drops JSON-RPC error codes, so this must
11
+ * stay message-based and deliberately narrow.
12
+ */
13
+ export declare function isUnsupportedRpcMethodError(err: unknown): boolean;
14
+ //# sourceMappingURL=skill-roots.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,38 @@
1
+ import { dirname } from 'node:path';
2
+ const CODEX_SKILL_DIR_LAYOUT = 'skill-dir';
3
+ export async function applyCodexSkillExtraRoots(input) {
4
+ if (input.sources.length === 0)
5
+ return;
6
+ const extraRoots = [
7
+ ...new Set(input.sources
8
+ .filter((source) => source.layout === CODEX_SKILL_DIR_LAYOUT)
9
+ .map((source) => dirname(source.path))),
10
+ ];
11
+ if (extraRoots.length === 0)
12
+ return;
13
+ try {
14
+ await input.client.request('skills/extraRoots/set', { extraRoots });
15
+ }
16
+ catch (err) {
17
+ if (isUnsupportedRpcMethodError(err)) {
18
+ input.log('warn', `skills/extraRoots/set unsupported by this app-server; continuing skill-blind (${extraRoots.length} extra root(s) not applied)`, err);
19
+ return;
20
+ }
21
+ throw err;
22
+ }
23
+ input.log('info', `applied ${extraRoots.length} skill extra root(s): ${extraRoots.join(', ')}`);
24
+ }
25
+ /**
26
+ * Classify an RPC rejection as a capability/version gap, not a genuine failure
27
+ * of an existing method. The rpc layer drops JSON-RPC error codes, so this must
28
+ * stay message-based and deliberately narrow.
29
+ */
30
+ export function isUnsupportedRpcMethodError(err) {
31
+ const message = (err instanceof Error ? err.message : String(err)).toLowerCase();
32
+ return (message.includes('unknown variant') ||
33
+ message.includes('method not found') ||
34
+ message.includes('unknown method') ||
35
+ message.includes('no such method') ||
36
+ message.includes('unsupported method'));
37
+ }
38
+ //# sourceMappingURL=skill-roots.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excitedjs/agent-runtime-codex",
3
- "version": "0.2.0-alpha.gdd32dedd5789",
3
+ "version": "0.2.0-beta.73",
4
4
  "description": "Built-in Codex Agent Runtime provider for Dreamux (alias builtin:codex). Implements the @excitedjs/dreamux-types AgentRuntimeProvider contract against the Codex app-server; depends on @excitedjs/dreamux-types only, never on @excitedjs/dreamux core (issue excitedjs/dreamux#209).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,8 +32,8 @@
32
32
  "LICENSE"
33
33
  ],
34
34
  "dependencies": {
35
- "@excitedjs/dreamux-types": "0.2.0-alpha.gdd32dedd5789",
36
- "@excitedjs/dreamux-utils": "0.2.0-alpha.gdd32dedd5789",
35
+ "@excitedjs/dreamux-types": "0.2.0-beta.73",
36
+ "@excitedjs/dreamux-utils": "0.2.0-beta.73",
37
37
  "smol-toml": "^1.6.1",
38
38
  "ws": "^8.18.0"
39
39
  },