@jingyi0605/codingns 0.3.0 → 0.3.5

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.
Files changed (156) hide show
  1. package/dist/public/assets/{TerminalPage-Dfw1QUqW.js → TerminalPage-CgrfstRm.js} +19 -19
  2. package/dist/public/assets/index-Cek6u0b9.css +1 -0
  3. package/dist/public/assets/index-THHY79si.js +122 -0
  4. package/dist/public/index.html +2 -2
  5. package/dist/server/config/env.d.ts +2 -0
  6. package/dist/server/config/env.js +35 -0
  7. package/dist/server/config/env.js.map +1 -1
  8. package/dist/server/modules/auth/auth-service.d.ts +18 -1
  9. package/dist/server/modules/auth/auth-service.js +168 -7
  10. package/dist/server/modules/auth/auth-service.js.map +1 -1
  11. package/dist/server/modules/butler/butler-codex-model-policy.d.ts +1 -0
  12. package/dist/server/modules/butler/butler-codex-model-policy.js +36 -0
  13. package/dist/server/modules/butler/butler-codex-model-policy.js.map +1 -0
  14. package/dist/server/modules/butler/butler-control-session-service.d.ts +13 -1
  15. package/dist/server/modules/butler/butler-control-session-service.js +55 -231
  16. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  17. package/dist/server/modules/butler/butler-controller.d.ts +17 -0
  18. package/dist/server/modules/butler/butler-controller.js +20 -1
  19. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  20. package/dist/server/modules/butler/butler-follow-up-service.js +7 -3
  21. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  22. package/dist/server/modules/butler/butler-inbox-analysis-service.d.ts +36 -0
  23. package/dist/server/modules/butler/butler-inbox-analysis-service.js +375 -0
  24. package/dist/server/modules/butler/butler-inbox-analysis-service.js.map +1 -0
  25. package/dist/server/modules/butler/butler-inbox-instruction-adapter.d.ts +23 -0
  26. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +96 -0
  27. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -0
  28. package/dist/server/modules/butler/butler-inbox-service.d.ts +39 -2
  29. package/dist/server/modules/butler/butler-inbox-service.js +392 -2
  30. package/dist/server/modules/butler/butler-inbox-service.js.map +1 -1
  31. package/dist/server/modules/butler/butler-session-service.d.ts +8 -0
  32. package/dist/server/modules/butler/butler-session-service.js +205 -53
  33. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  34. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  35. package/dist/server/modules/butler/butler-session-summary-service.js +48 -23
  36. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  37. package/dist/server/modules/butler/butler-workspace-context.d.ts +13 -0
  38. package/dist/server/modules/butler/butler-workspace-context.js +223 -0
  39. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -0
  40. package/dist/server/modules/client/client-controller.d.ts +6 -0
  41. package/dist/server/modules/client/client-controller.js +30 -8
  42. package/dist/server/modules/client/client-controller.js.map +1 -1
  43. package/dist/server/modules/client/client-service.d.ts +22 -10
  44. package/dist/server/modules/client/client-service.js +77 -100
  45. package/dist/server/modules/client/client-service.js.map +1 -1
  46. package/dist/server/modules/client/npm-global-package-service.d.ts +21 -0
  47. package/dist/server/modules/client/npm-global-package-service.js +210 -0
  48. package/dist/server/modules/client/npm-global-package-service.js.map +1 -0
  49. package/dist/server/modules/client/service-update-task-service.d.ts +15 -0
  50. package/dist/server/modules/client/service-update-task-service.js +147 -0
  51. package/dist/server/modules/client/service-update-task-service.js.map +1 -0
  52. package/dist/server/modules/client/service-update-types.d.ts +30 -0
  53. package/dist/server/modules/client/service-update-types.js +2 -0
  54. package/dist/server/modules/client/service-update-types.js.map +1 -0
  55. package/dist/server/modules/model-switch/cc-switch-adapter.d.ts +36 -0
  56. package/dist/server/modules/model-switch/cc-switch-adapter.js +317 -0
  57. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -0
  58. package/dist/server/modules/model-switch/model-switch-controller.d.ts +11 -0
  59. package/dist/server/modules/model-switch/model-switch-controller.js +30 -0
  60. package/dist/server/modules/model-switch/model-switch-controller.js.map +1 -0
  61. package/dist/server/modules/model-switch/model-switch-service.d.ts +16 -0
  62. package/dist/server/modules/model-switch/model-switch-service.js +29 -0
  63. package/dist/server/modules/model-switch/model-switch-service.js.map +1 -0
  64. package/dist/server/modules/preferences/profile-service.d.ts +1 -0
  65. package/dist/server/modules/preferences/profile-service.js +9 -0
  66. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  67. package/dist/server/modules/sessions/codex-app-server-helper-process.js +3 -0
  68. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  69. package/dist/server/modules/sessions/session-activity-authority-service.d.ts +3 -1
  70. package/dist/server/modules/sessions/session-activity-authority-service.js +3 -0
  71. package/dist/server/modules/sessions/session-activity-authority-service.js.map +1 -1
  72. package/dist/server/modules/sessions/session-activity-inspector.d.ts +1 -1
  73. package/dist/server/modules/sessions/session-activity-inspector.js +43 -16
  74. package/dist/server/modules/sessions/session-activity-inspector.js.map +1 -1
  75. package/dist/server/modules/sessions/session-controller.d.ts +3 -3
  76. package/dist/server/modules/sessions/session-controller.js +3 -3
  77. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  78. package/dist/server/modules/sessions/session-history-service.d.ts +3 -0
  79. package/dist/server/modules/sessions/session-history-service.js +259 -39
  80. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  81. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +7 -3
  82. package/dist/server/modules/sessions/session-live-runtime-service.js +47 -11
  83. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  84. package/dist/server/modules/sessions/session-message-attachment-service.d.ts +8 -8
  85. package/dist/server/modules/sessions/session-message-attachment-service.js +25 -34
  86. package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -1
  87. package/dist/server/modules/sessions/session-provider-error-mapper.js +7 -0
  88. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  89. package/dist/server/modules/tailscale/tailscale-manager.js +5 -1
  90. package/dist/server/modules/tailscale/tailscale-manager.js.map +1 -1
  91. package/dist/server/modules/tasks/task-lane-executors.js +3 -0
  92. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  93. package/dist/server/modules/tasks/task-types.d.ts +2 -0
  94. package/dist/server/modules/tasks/task-types.js +3 -1
  95. package/dist/server/modules/tasks/task-types.js.map +1 -1
  96. package/dist/server/modules/terminal/command-template-service.js +10 -1
  97. package/dist/server/modules/terminal/command-template-service.js.map +1 -1
  98. package/dist/server/modules/terminal/template-port-runtime.d.ts +12 -1
  99. package/dist/server/modules/terminal/template-port-runtime.js +189 -17
  100. package/dist/server/modules/terminal/template-port-runtime.js.map +1 -1
  101. package/dist/server/modules/terminal/terminal-service.js +30 -3
  102. package/dist/server/modules/terminal/terminal-service.js.map +1 -1
  103. package/dist/server/modules/workspace/workspace-code-composition.js +95 -2
  104. package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -1
  105. package/dist/server/routes/butler.js +4 -0
  106. package/dist/server/routes/butler.js.map +1 -1
  107. package/dist/server/routes/client.js +2 -0
  108. package/dist/server/routes/client.js.map +1 -1
  109. package/dist/server/routes/sessions.js +1 -1
  110. package/dist/server/routes/sessions.js.map +1 -1
  111. package/dist/server/routes/system.d.ts +2 -1
  112. package/dist/server/routes/system.js +3 -1
  113. package/dist/server/routes/system.js.map +1 -1
  114. package/dist/server/server/create-server.d.ts +4 -0
  115. package/dist/server/server/create-server.js +51 -7
  116. package/dist/server/server/create-server.js.map +1 -1
  117. package/dist/server/shared/errors/app-error.d.ts +2 -0
  118. package/dist/server/shared/errors/app-error.js +2 -0
  119. package/dist/server/shared/errors/app-error.js.map +1 -1
  120. package/dist/server/shared/http/error-handler.d.ts +2 -1
  121. package/dist/server/shared/http/error-handler.js +3 -2
  122. package/dist/server/shared/http/error-handler.js.map +1 -1
  123. package/dist/server/storage/repositories/auth-login-attempt-repository.d.ts +9 -0
  124. package/dist/server/storage/repositories/auth-login-attempt-repository.js +59 -0
  125. package/dist/server/storage/repositories/auth-login-attempt-repository.js.map +1 -0
  126. package/dist/server/storage/repositories/butler-control-session-repository.d.ts +3 -0
  127. package/dist/server/storage/repositories/butler-control-session-repository.js +80 -4
  128. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
  129. package/dist/server/storage/repositories/butler-inbox-item-repository.js +54 -3
  130. package/dist/server/storage/repositories/butler-inbox-item-repository.js.map +1 -1
  131. package/dist/server/storage/repositories/terminal-instance-repository.js +1 -1
  132. package/dist/server/storage/repositories/terminal-instance-repository.js.map +1 -1
  133. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  134. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  135. package/dist/server/storage/sqlite/client.js +127 -0
  136. package/dist/server/storage/sqlite/client.js.map +1 -1
  137. package/dist/server/storage/sqlite/schema.sql +19 -1
  138. package/dist/server/types/domain.d.ts +37 -1
  139. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +23 -0
  140. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +162 -0
  141. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
  142. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -0
  143. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +89 -33
  144. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  145. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +18 -2
  146. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  147. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +3 -1
  148. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +238 -53
  149. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  150. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +1 -0
  151. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -1
  152. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +6 -2
  153. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +1 -1
  154. package/package.json +1 -1
  155. package/dist/public/assets/index-DR2rPNi7.css +0 -1
  156. package/dist/public/assets/index-DTOruahn.js +0 -114
@@ -18,6 +18,7 @@ export class ActiveRunRegistry {
18
18
  lastEventAt: null,
19
19
  completedAt: null,
20
20
  detail: null,
21
+ interruptSource: null,
21
22
  errorCode: null,
22
23
  supportsInterrupt: input.supportsInterrupt ?? false,
23
24
  interruptHandler: null,
@@ -132,13 +133,15 @@ export class ActiveRunRegistry {
132
133
  const record = this.getRecordOrThrow(sessionId);
133
134
  const timestamp = input.timestamp ?? nextTimestamp();
134
135
  const detail = input.detail ?? null;
136
+ const interruptSource = normalizeInterruptSource(input.type, input.interruptSource);
135
137
  const providerSessionId = input.providerSessionId === undefined ? record.providerSessionId : input.providerSessionId;
136
138
  const rawStoreRef = input.rawStoreRef === undefined ? record.rawStoreRef : input.rawStoreRef;
137
139
  record.providerSessionId = providerSessionId;
138
140
  record.rawStoreRef = rawStoreRef;
139
141
  record.detail = detail;
142
+ record.interruptSource = interruptSource;
140
143
  record.errorCode = input.type === "error" ? normalizeErrorCode(input.errorCode) : null;
141
- const event = this.toRuntimeEvent(record, input, timestamp, detail);
144
+ const event = this.toRuntimeEvent(record, input, timestamp, detail, interruptSource);
142
145
  this.applyEventState(record, event);
143
146
  this.rememberRecentEvent(record, event);
144
147
  for (const listener of record.listeners) {
@@ -156,6 +159,10 @@ export class ActiveRunRegistry {
156
159
  }
157
160
  record.lastEventAt = event.timestamp;
158
161
  record.detail = event.detail;
162
+ record.interruptSource =
163
+ record.runningState === "interrupted" && record.interruptSource === "user" && event.status === "interrupted"
164
+ ? "user"
165
+ : event.interruptSource;
159
166
  record.runningState = event.status;
160
167
  record.errorCode = event.type === "error" ? event.errorCode : null;
161
168
  if (event.status === "completed" ||
@@ -164,7 +171,7 @@ export class ActiveRunRegistry {
164
171
  record.completedAt = event.timestamp;
165
172
  }
166
173
  }
167
- toRuntimeEvent(record, input, timestamp, detail) {
174
+ toRuntimeEvent(record, input, timestamp, detail, interruptSource) {
168
175
  if (input.type === "message") {
169
176
  if (!input.message) {
170
177
  throw new Error("RUNTIME_MESSAGE_REQUIRED");
@@ -178,6 +185,7 @@ export class ActiveRunRegistry {
178
185
  message: input.message,
179
186
  status: null,
180
187
  detail,
188
+ interruptSource,
181
189
  errorCode: null,
182
190
  rawEventRef: input.rawEventRef ?? null,
183
191
  timestamp
@@ -191,6 +199,7 @@ export class ActiveRunRegistry {
191
199
  rawStoreRef: input.rawStoreRef ?? record.rawStoreRef,
192
200
  message: null,
193
201
  detail,
202
+ interruptSource,
194
203
  rawEventRef: input.rawEventRef ?? null,
195
204
  timestamp
196
205
  };
@@ -265,6 +274,7 @@ export class ActiveRunRegistry {
265
274
  lastEventAt: record.lastEventAt,
266
275
  completedAt: record.completedAt,
267
276
  detail: record.detail,
277
+ interruptSource: record.interruptSource,
268
278
  errorCode: record.errorCode,
269
279
  supportsInterrupt: record.supportsInterrupt
270
280
  };
@@ -286,4 +296,10 @@ function normalizeErrorCode(errorCode) {
286
296
  const normalized = errorCode?.trim();
287
297
  return normalized && normalized.length > 0 ? normalized : "PROVIDER_RUNTIME_ERROR";
288
298
  }
299
+ function normalizeInterruptSource(type, interruptSource) {
300
+ if (type !== "interrupted") {
301
+ return null;
302
+ }
303
+ return interruptSource ?? "runtime";
304
+ }
289
305
  //# sourceMappingURL=active-run-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"active-run-registry.js","sourceRoot":"","sources":["../../src/runtime/active-run-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-run-registry.js","sourceRoot":"","sources":["../../src/runtime/active-run-registry.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@ export interface CodexAppServerTransport {
29
29
  providerSessionId: string;
30
30
  rawStoreRef: string | null;
31
31
  }>;
32
- startTurn(request: ProviderRuntimeRunRequest, providerSessionId: string): Promise<void>;
32
+ startTurn(request: ProviderRuntimeRunRequest, providerSessionId: string): Promise<{
33
+ notification?: Record<string, unknown> | null;
34
+ } | void>;
33
35
  interruptTurn(): Promise<void>;
34
36
  setNotificationHandler(handler: (notification: Record<string, unknown>) => void | Promise<void>): void;
35
37
  setServerRequestHandler(handler: (request: Record<string, unknown>) => Promise<unknown>): void;
@@ -7,6 +7,7 @@ import { basename, dirname, join, resolve } from "node:path";
7
7
  import { createInterface } from "node:readline";
8
8
  import { fileURLToPath, pathToFileURL } from "node:url";
9
9
  import { appendJsonLine, createRawRef, ensureDirectory, extractTextBlocks, messageIdFromRawRef, nextTimestamp, normalizeWorkspacePath, readJsonLines } from "../providers/utils.js";
10
+ import { buildApplyPatchFromFileChangeList, extractApplyPatchTargetPathsFromToolOutput, normalizeApplyPatchText } from "../patch-builder.js";
10
11
  import { loadDatabaseSync } from "../sqlite/node-sqlite.js";
11
12
  import { createCodexThreadPermissionOptions } from "./codex-permissions.js";
12
13
  const CODEX_RUNTIME_DEBUG_ENABLED = /^(1|true|yes)$/i.test(process.env.CODINGNS_PERF_DEBUG?.trim() ?? "");
@@ -80,7 +81,7 @@ export class CodexRuntimeAdapter {
80
81
  })();
81
82
  const providerSessionId = startedSession.providerSessionId;
82
83
  const syntheticRawStoreRef = buildRuntimeRawStoreRef(resolveRuntimeStoreKey(providerSessionId, request.sessionId));
83
- const rawStoreRef = pickAvailableCodexRawStoreRef(resumedSyntheticSession
84
+ const rawStoreRef = pickAvailableCodexRawStoreRef(providerSessionId, resumedSyntheticSession
84
85
  ? [resumedSyntheticSession.rawStoreRef]
85
86
  : [startedSession.rawStoreRef, request.rawStoreRef], syntheticRawStoreRef);
86
87
  logCodexRuntimeStep("start_session.raw_store_ref_ready", launchPerfStartedAtMs, {
@@ -108,8 +109,8 @@ export class CodexRuntimeAdapter {
108
109
  if (translated.turnId) {
109
110
  eventQueue.setTurnId(translated.turnId);
110
111
  }
111
- if (translated.event) {
112
- eventQueue.push(translated.event);
112
+ for (const event of translated.events) {
113
+ eventQueue.push(event);
113
114
  }
114
115
  if (translated.terminal) {
115
116
  eventQueue.close();
@@ -136,7 +137,20 @@ export class CodexRuntimeAdapter {
136
137
  eventQueue.close();
137
138
  });
138
139
  const startTurnStartedAtMs = performance.now();
139
- await transport.startTurn(request, providerSessionId);
140
+ const startTurnResult = await transport.startTurn(request, providerSessionId);
141
+ const startTurnNotification = startTurnResult?.notification ?? null;
142
+ if (startTurnNotification) {
143
+ const translated = translateCodexAppServerNotification(startTurnNotification);
144
+ if (translated.turnId) {
145
+ eventQueue.setTurnId(translated.turnId);
146
+ }
147
+ for (const event of translated.events) {
148
+ eventQueue.push(event);
149
+ }
150
+ if (translated.terminal) {
151
+ eventQueue.close();
152
+ }
153
+ }
140
154
  logCodexRuntimeStep("start_session.turn_start", startTurnStartedAtMs, {
141
155
  sessionId: request.sessionId,
142
156
  providerSessionId
@@ -203,7 +217,7 @@ export class CodexRuntimeAdapter {
203
217
  sessionId: request.sessionId,
204
218
  providerSessionId: resolvedSessionId
205
219
  });
206
- const rawStoreRef = pickAvailableCodexRawStoreRef([request.rawStoreRef, resumed.rawStoreRef], syntheticRawStoreRef);
220
+ const rawStoreRef = pickAvailableCodexRawStoreRef(resolvedSessionId, [request.rawStoreRef, resumed.rawStoreRef], syntheticRawStoreRef);
207
221
  const abortController = new AbortController();
208
222
  const eventQueue = createAsyncEventQueue();
209
223
  logCodexRuntimeStep("continue_session.raw_store_ref_ready", runtimeStartedAtMs, {
@@ -232,8 +246,8 @@ export class CodexRuntimeAdapter {
232
246
  if (translated.turnId) {
233
247
  eventQueue.setTurnId(translated.turnId);
234
248
  }
235
- if (translated.event) {
236
- eventQueue.push(translated.event);
249
+ for (const event of translated.events) {
250
+ eventQueue.push(event);
237
251
  }
238
252
  if (translated.terminal) {
239
253
  eventQueue.close();
@@ -260,7 +274,20 @@ export class CodexRuntimeAdapter {
260
274
  eventQueue.close();
261
275
  });
262
276
  const startTurnStartedAtMs = performance.now();
263
- await transport.startTurn(request, resolvedSessionId);
277
+ const startTurnResult = await transport.startTurn(request, resolvedSessionId);
278
+ const startTurnNotification = startTurnResult?.notification ?? null;
279
+ if (startTurnNotification) {
280
+ const translated = translateCodexAppServerNotification(startTurnNotification);
281
+ if (translated.turnId) {
282
+ eventQueue.setTurnId(translated.turnId);
283
+ }
284
+ for (const event of translated.events) {
285
+ eventQueue.push(event);
286
+ }
287
+ if (translated.terminal) {
288
+ eventQueue.close();
289
+ }
290
+ }
264
291
  logCodexRuntimeStep("continue_session.turn_start", startTurnStartedAtMs, {
265
292
  sessionId: request.sessionId,
266
293
  providerSessionId: resolvedSessionId
@@ -332,6 +359,7 @@ export class CodexRuntimeAdapter {
332
359
  await sink.emit({
333
360
  type: "interrupted",
334
361
  status: "interrupted",
362
+ interruptSource: "user",
335
363
  providerSessionId: context.providerSessionId,
336
364
  rawStoreRef: context.rawStoreRef,
337
365
  detail: "codex turn interrupted",
@@ -391,6 +419,7 @@ export class CodexRuntimeAdapter {
391
419
  await context.sink.emit({
392
420
  type: "interrupted",
393
421
  status: "interrupted",
422
+ interruptSource: interrupted ? "user" : "runtime",
394
423
  providerSessionId: context.providerSessionId,
395
424
  rawStoreRef: context.rawStoreRef,
396
425
  detail: "codex turn interrupted",
@@ -443,7 +472,7 @@ export class CodexRuntimeAdapter {
443
472
  const callId = pickFirstNonEmpty(ensureText(readProp(item, "id")).trim(), ensureText(readProp(item, "call_id")).trim(), `${itemType}-${randomUUID()}`);
444
473
  const name = pickFirstNonEmpty(ensureText(readProp(item, "name")).trim(), ensureText(readProp(item, "tool")).trim(), itemType);
445
474
  if (eventType === "item.started") {
446
- const input = pickFirstNonEmpty(extractTextBlocks(readProp(item, "arguments")).trim(), extractTextBlocks(readProp(item, "input")).trim(), extractTextBlocks(readProp(item, "command")).trim());
475
+ const input = resolveCodexToolInput(name, item);
447
476
  const toolCall = {
448
477
  callId,
449
478
  name,
@@ -464,11 +493,12 @@ export class CodexRuntimeAdapter {
464
493
  return;
465
494
  }
466
495
  if (eventType === "item.updated") {
496
+ const knownName = context.toolNameByCallId.get(callId) ?? name;
497
+ const input = resolveCodexToolInput(knownName, item);
467
498
  const output = pickFirstNonEmpty(extractTextBlocks(readProp(item, "result")).trim(), extractTextBlocks(readProp(item, "output")).trim(), extractTextBlocks(readProp(item, "aggregated_output")).trim(), extractTextBlocks(readProp(item, "error")).trim());
468
499
  if (output.length === 0) {
469
500
  return;
470
501
  }
471
- const knownName = context.toolNameByCallId.get(callId) ?? name;
472
502
  context.toolNameByCallId.set(callId, knownName);
473
503
  await this.emitStableMessage(context, {
474
504
  identity: `tool:result:${callId}`,
@@ -479,7 +509,7 @@ export class CodexRuntimeAdapter {
479
509
  toolCall: {
480
510
  callId,
481
511
  name: knownName,
482
- input: "",
512
+ input,
483
513
  output,
484
514
  error: null,
485
515
  status: "running"
@@ -488,13 +518,14 @@ export class CodexRuntimeAdapter {
488
518
  return;
489
519
  }
490
520
  if (eventType === "item.completed") {
521
+ const knownName = context.toolNameByCallId.get(callId) ?? name;
522
+ const input = resolveCodexToolInput(knownName, item);
491
523
  const output = pickFirstNonEmpty(extractTextBlocks(readProp(item, "result")).trim(), extractTextBlocks(readProp(item, "output")).trim(), extractTextBlocks(readProp(item, "aggregated_output")).trim(), extractTextBlocks(readProp(item, "error")).trim());
492
524
  const success = inferToolSuccess(item, output);
493
- const knownName = context.toolNameByCallId.get(callId) ?? name;
494
525
  const toolCall = {
495
526
  callId,
496
527
  name: knownName,
497
- input: "",
528
+ input,
498
529
  output: success ? output : null,
499
530
  error: success ? null : output,
500
531
  status: success ? "completed" : "failed"
@@ -938,12 +969,16 @@ function createCodexAppServerTransport(options) {
938
969
  method: "turn/start",
939
970
  params: createTurnStartParams(request, providerSessionId)
940
971
  });
941
- activeTurnId = ensureText(readProp(readProp(result, "turn"), "id")).trim() || activeTurnId;
972
+ const turn = toRecord(result.turn);
973
+ activeTurnId = ensureText(readProp(turn, "id")).trim() || activeTurnId;
942
974
  logCodexRuntimeStep("transport.turn_start", startedAtMs, {
943
975
  sessionId: request.sessionId,
944
976
  providerSessionId,
945
977
  turnId: activeTurnId
946
978
  });
979
+ return {
980
+ notification: buildCodexTurnCompletionNotification(turn, providerSessionId)
981
+ };
947
982
  },
948
983
  async interruptTurn() {
949
984
  if (!activeThreadId || !activeTurnId) {
@@ -983,6 +1018,19 @@ function createCodexAppServerTransport(options) {
983
1018
  }
984
1019
  };
985
1020
  }
1021
+ function buildCodexTurnCompletionNotification(turn, threadId) {
1022
+ const status = ensureText(readProp(turn, "status")).trim();
1023
+ if (status !== "completed" && status !== "failed" && status !== "interrupted") {
1024
+ return null;
1025
+ }
1026
+ return {
1027
+ method: "turn/completed",
1028
+ params: {
1029
+ threadId,
1030
+ turn
1031
+ }
1032
+ };
1033
+ }
986
1034
  function createAsyncEventQueue() {
987
1035
  const values = [];
988
1036
  const waiters = [];
@@ -1047,7 +1095,7 @@ function translateCodexAppServerNotification(notification) {
1047
1095
  const params = toRecord(notification.params) ?? {};
1048
1096
  if (method === "turn/started") {
1049
1097
  return {
1050
- event: null,
1098
+ events: [],
1051
1099
  terminal: false,
1052
1100
  turnId: ensureText(readProp(readProp(params, "turn"), "id")).trim() || null
1053
1101
  };
@@ -1055,32 +1103,42 @@ function translateCodexAppServerNotification(notification) {
1055
1103
  if (method === "turn/completed") {
1056
1104
  const turn = toRecord(params.turn);
1057
1105
  const status = ensureText(turn?.status).trim();
1106
+ const itemEvents = translateCodexAppServerTurnItems(turn, "item.completed");
1058
1107
  if (status === "failed") {
1059
1108
  return {
1060
- event: {
1061
- type: "turn.failed",
1062
- timestamp: nextTimestamp(),
1063
- error: ensureText(readProp(turn?.error, "message")).trim() || "codex turn failed"
1064
- },
1109
+ events: [
1110
+ ...itemEvents,
1111
+ {
1112
+ type: "turn.failed",
1113
+ timestamp: nextTimestamp(),
1114
+ error: ensureText(readProp(turn?.error, "message")).trim() || "codex turn failed"
1115
+ }
1116
+ ],
1065
1117
  terminal: true,
1066
1118
  turnId: ensureText(turn?.id).trim() || null
1067
1119
  };
1068
1120
  }
1069
1121
  if (status === "interrupted") {
1070
1122
  return {
1071
- event: {
1072
- type: "turn.interrupted",
1073
- timestamp: nextTimestamp()
1074
- },
1123
+ events: [
1124
+ ...itemEvents,
1125
+ {
1126
+ type: "turn.interrupted",
1127
+ timestamp: nextTimestamp()
1128
+ }
1129
+ ],
1075
1130
  terminal: true,
1076
1131
  turnId: ensureText(turn?.id).trim() || null
1077
1132
  };
1078
1133
  }
1079
1134
  return {
1080
- event: {
1081
- type: "turn.completed",
1082
- timestamp: nextTimestamp()
1083
- },
1135
+ events: [
1136
+ ...itemEvents,
1137
+ {
1138
+ type: "turn.completed",
1139
+ timestamp: nextTimestamp()
1140
+ }
1141
+ ],
1084
1142
  terminal: true,
1085
1143
  turnId: ensureText(turn?.id).trim() || null
1086
1144
  };
@@ -1090,17 +1148,19 @@ function translateCodexAppServerNotification(notification) {
1090
1148
  const detail = buildCodexAppServerErrorDetail(error);
1091
1149
  if (params.willRetry === true) {
1092
1150
  return {
1093
- event: null,
1151
+ events: [],
1094
1152
  terminal: false,
1095
1153
  turnId: ensureText(params.turnId).trim() || null
1096
1154
  };
1097
1155
  }
1098
1156
  return {
1099
- event: {
1100
- type: "turn.failed",
1101
- timestamp: nextTimestamp(),
1102
- error: detail
1103
- },
1157
+ events: [
1158
+ {
1159
+ type: "turn.failed",
1160
+ timestamp: nextTimestamp(),
1161
+ error: detail
1162
+ }
1163
+ ],
1104
1164
  terminal: true,
1105
1165
  turnId: ensureText(params.turnId).trim() || null
1106
1166
  };
@@ -1109,31 +1169,78 @@ function translateCodexAppServerNotification(notification) {
1109
1169
  const item = translateCodexAppServerItem(toRecord(params.item));
1110
1170
  if (!item) {
1111
1171
  return {
1112
- event: null,
1172
+ events: [],
1113
1173
  terminal: false,
1114
1174
  turnId: null
1115
1175
  };
1116
1176
  }
1117
1177
  return {
1118
- event: {
1119
- type: method === "item/started"
1120
- ? "item.started"
1121
- : method === "item/updated"
1122
- ? "item.updated"
1123
- : "item.completed",
1124
- item,
1125
- timestamp: nextTimestamp()
1126
- },
1178
+ events: [
1179
+ {
1180
+ type: method === "item/started"
1181
+ ? "item.started"
1182
+ : method === "item/updated"
1183
+ ? "item.updated"
1184
+ : "item.completed",
1185
+ item,
1186
+ timestamp: nextTimestamp()
1187
+ }
1188
+ ],
1127
1189
  terminal: false,
1128
1190
  turnId: null
1129
1191
  };
1130
1192
  }
1131
1193
  return {
1132
- event: null,
1194
+ events: [],
1133
1195
  terminal: false,
1134
1196
  turnId: null
1135
1197
  };
1136
1198
  }
1199
+ function translateCodexAppServerTurnItems(turn, eventType) {
1200
+ const rawItems = Array.isArray(turn?.items) ? turn.items : [];
1201
+ const translatedItems = rawItems
1202
+ .map((item) => translateCodexAppServerItem(toRecord(item)))
1203
+ .filter((item) => item !== null)
1204
+ .map((item) => ({
1205
+ type: eventType,
1206
+ item,
1207
+ timestamp: nextTimestamp()
1208
+ }));
1209
+ if (translatedItems.length > 0) {
1210
+ return translatedItems;
1211
+ }
1212
+ const lastAgentMessage = normalizeCodexTurnLastAgentMessage(turn);
1213
+ if (!lastAgentMessage) {
1214
+ return [];
1215
+ }
1216
+ return [
1217
+ {
1218
+ type: eventType,
1219
+ item: {
1220
+ type: "agent_message",
1221
+ id: ensureText(turn?.id).trim() || "turn-final-message",
1222
+ text: lastAgentMessage
1223
+ },
1224
+ timestamp: nextTimestamp()
1225
+ }
1226
+ ];
1227
+ }
1228
+ function normalizeCodexTurnLastAgentMessage(turn) {
1229
+ const candidate = readProp(turn, "lastAgentMessage")
1230
+ ?? readProp(turn, "last_agent_message")
1231
+ ?? readProp(turn, "lastMessage")
1232
+ ?? readProp(turn, "last_message");
1233
+ if (typeof candidate === "string") {
1234
+ const normalized = candidate.trim();
1235
+ return normalized.length > 0 ? normalized : null;
1236
+ }
1237
+ const record = toRecord(candidate);
1238
+ if (!record) {
1239
+ return null;
1240
+ }
1241
+ const content = pickFirstNonEmpty(ensureText(record.text).trim(), extractTextBlocks(readProp(record, "content")).trim(), ensureText(readProp(record, "message")).trim());
1242
+ return content.length > 0 ? content : null;
1243
+ }
1137
1244
  function buildCodexAppServerErrorDetail(error) {
1138
1245
  const message = ensureText(error?.message).trim();
1139
1246
  const additionalDetails = ensureText(error?.additionalDetails).trim();
@@ -1348,6 +1455,9 @@ function createCodexInput(request) {
1348
1455
  });
1349
1456
  }
1350
1457
  request.options.attachments.forEach((attachment) => {
1458
+ if (attachment.kind !== "image") {
1459
+ return;
1460
+ }
1351
1461
  input.push({
1352
1462
  type: "local_image",
1353
1463
  path: attachment.filePath
@@ -1365,6 +1475,9 @@ function createCodexAppServerInput(request) {
1365
1475
  });
1366
1476
  }
1367
1477
  for (const attachment of request.options.attachments) {
1478
+ if (attachment.kind !== "image") {
1479
+ continue;
1480
+ }
1368
1481
  input.push({
1369
1482
  type: "localImage",
1370
1483
  path: attachment.filePath
@@ -1415,18 +1528,51 @@ function resolveNodeModulesCandidate(currentDirectory, relativeSegments) {
1415
1528
  function buildRuntimeRawStoreRef(providerSessionId) {
1416
1529
  return resolve(process.cwd(), "runtime", "codex", `${providerSessionId}.stream`);
1417
1530
  }
1418
- function pickAvailableCodexRawStoreRef(candidates, fallbackRawStoreRef) {
1531
+ function pickAvailableCodexRawStoreRef(providerSessionId, candidates, fallbackRawStoreRef) {
1532
+ const normalizedProviderSessionId = providerSessionId.trim();
1533
+ const normalizedCandidates = [];
1534
+ const seen = new Set();
1419
1535
  for (const candidate of candidates) {
1420
1536
  const normalized = candidate?.trim();
1421
- if (!normalized) {
1537
+ if (!normalized || seen.has(normalized) || !existsSync(normalized)) {
1422
1538
  continue;
1423
1539
  }
1424
- if (existsSync(normalized)) {
1425
- return normalized;
1540
+ seen.add(normalized);
1541
+ normalizedCandidates.push(normalized);
1542
+ }
1543
+ if (!normalizedProviderSessionId) {
1544
+ return normalizedCandidates[0] ?? fallbackRawStoreRef;
1545
+ }
1546
+ for (const candidate of normalizedCandidates) {
1547
+ if (readSessionMeta(candidate)?.threadId === normalizedProviderSessionId) {
1548
+ return candidate;
1549
+ }
1550
+ }
1551
+ for (const candidate of normalizedCandidates) {
1552
+ if (doesRawStorePathLookLikeThread(candidate, normalizedProviderSessionId)) {
1553
+ return candidate;
1554
+ }
1555
+ }
1556
+ for (const candidate of normalizedCandidates) {
1557
+ if (isSyntheticRawStoreRef(candidate)) {
1558
+ return candidate;
1559
+ }
1560
+ }
1561
+ for (const candidate of normalizedCandidates) {
1562
+ if (!readSessionMeta(candidate)) {
1563
+ return candidate;
1426
1564
  }
1427
1565
  }
1428
1566
  return fallbackRawStoreRef;
1429
1567
  }
1568
+ function doesRawStorePathLookLikeThread(rawStoreRef, providerSessionId) {
1569
+ const fileName = basename(rawStoreRef, ".jsonl").trim().toLowerCase();
1570
+ const normalizedProviderSessionId = providerSessionId.trim().toLowerCase();
1571
+ if (!fileName || !normalizedProviderSessionId) {
1572
+ return false;
1573
+ }
1574
+ return fileName === normalizedProviderSessionId || fileName.includes(normalizedProviderSessionId);
1575
+ }
1430
1576
  function resolveRuntimeStoreKey(providerSessionId, sessionId) {
1431
1577
  return providerSessionId.trim() || sessionId;
1432
1578
  }
@@ -1506,13 +1652,13 @@ function readJsonRpcResult(parsed) {
1506
1652
  }
1507
1653
  function resolveResumeThreadId(providerSessionId, rawStoreRef) {
1508
1654
  const normalizedProviderSessionId = ensureText(providerSessionId).trim();
1655
+ if (normalizedProviderSessionId.length > 0) {
1656
+ return normalizedProviderSessionId;
1657
+ }
1509
1658
  const fromRawStore = readThreadIdFromRawStore(rawStoreRef);
1510
1659
  if (fromRawStore) {
1511
1660
  return fromRawStore;
1512
1661
  }
1513
- if (normalizedProviderSessionId.length > 0) {
1514
- return normalizedProviderSessionId;
1515
- }
1516
1662
  return null;
1517
1663
  }
1518
1664
  function buildSyntheticResumeHistory(rawStoreRef) {
@@ -1919,7 +2065,7 @@ function toSyntheticRuntimeRecord(event, providerSessionId) {
1919
2065
  const callId = pickFirstNonEmpty(ensureText(readProp(item, "id")).trim(), ensureText(readProp(item, "call_id")).trim(), `${itemType}-${providerSessionId}`);
1920
2066
  const name = pickFirstNonEmpty(ensureText(readProp(item, "name")).trim(), ensureText(readProp(item, "tool")).trim(), itemType);
1921
2067
  if (eventType === "item.started") {
1922
- const input = pickFirstNonEmpty(extractTextBlocks(readProp(item, "arguments")).trim(), extractTextBlocks(readProp(item, "input")).trim(), extractTextBlocks(readProp(item, "command")).trim());
2068
+ const input = resolveCodexToolInput(name, item);
1923
2069
  return {
1924
2070
  timestamp,
1925
2071
  record: {
@@ -1977,6 +2123,16 @@ function buildCodexFileChangeOutput(value) {
1977
2123
  if (!Array.isArray(value)) {
1978
2124
  return "";
1979
2125
  }
2126
+ const structuredPatch = buildApplyPatchFromFileChangeList(value.map((change) => {
2127
+ const record = toRecord(change);
2128
+ return {
2129
+ path: ensureText(record?.path).trim() || null,
2130
+ kind: ensureText(record?.kind).trim() || null
2131
+ };
2132
+ }));
2133
+ if (structuredPatch) {
2134
+ return structuredPatch;
2135
+ }
1980
2136
  return value
1981
2137
  .map((change) => {
1982
2138
  const record = toRecord(change);
@@ -1993,4 +2149,33 @@ function buildCodexFileChangeOutput(value) {
1993
2149
  .filter((entry) => entry.length > 0)
1994
2150
  .join("\n\n");
1995
2151
  }
2152
+ function resolveCodexToolInput(name, item) {
2153
+ const rawInput = pickFirstNonEmpty(extractTextBlocks(readProp(item, "arguments")).trim(), extractTextBlocks(readProp(item, "input")).trim(), extractTextBlocks(readProp(item, "command")).trim());
2154
+ if (name.trim().toLowerCase() !== "apply_patch") {
2155
+ return rawInput;
2156
+ }
2157
+ return (normalizeApplyPatchText(rawInput, {
2158
+ fallbackPaths: collectCodexApplyPatchFallbackPaths(item)
2159
+ }) ?? rawInput);
2160
+ }
2161
+ function collectCodexApplyPatchFallbackPaths(item) {
2162
+ const directPaths = [
2163
+ ensureText(readProp(item, "path")).trim(),
2164
+ ensureText(readProp(item, "filePath")).trim(),
2165
+ ensureText(readProp(item, "file_path")).trim()
2166
+ ].filter((value) => value.length > 0);
2167
+ const rawChanges = readProp(item, "changes");
2168
+ const changes = Array.isArray(rawChanges) ? rawChanges : [];
2169
+ const changePaths = changes
2170
+ .map((change) => ensureText(readProp(change, "path")).trim())
2171
+ .filter((value) => value.length > 0);
2172
+ const outputText = pickFirstNonEmpty(extractTextBlocks(readProp(item, "result")).trim(), extractTextBlocks(readProp(item, "output")).trim(), extractTextBlocks(readProp(item, "aggregated_output")).trim(), extractTextBlocks(readProp(item, "error")).trim());
2173
+ return [
2174
+ ...new Set([
2175
+ ...directPaths,
2176
+ ...changePaths,
2177
+ ...extractApplyPatchTargetPathsFromToolOutput(outputText)
2178
+ ])
2179
+ ];
2180
+ }
1996
2181
  //# sourceMappingURL=codex-runtime.js.map