codex-to-im 1.0.49 → 1.0.50

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/daemon.mjs CHANGED
@@ -10146,6 +10146,31 @@ var IGNORED_EVENT_MSG_TYPES = /* @__PURE__ */ new Set([
10146
10146
  var IGNORED_RESPONSE_ITEM_TYPES = /* @__PURE__ */ new Set([
10147
10147
  "web_search_call"
10148
10148
  ]);
10149
+ var TERMINAL_COMPLETION_EVENT_TYPES = /* @__PURE__ */ new Set([
10150
+ "task_complete",
10151
+ "turn.completed",
10152
+ "turn_completed"
10153
+ ]);
10154
+ function isTerminalCompletionEventType(value) {
10155
+ return typeof value === "string" && TERMINAL_COMPLETION_EVENT_TYPES.has(value.trim());
10156
+ }
10157
+ function getEventTurnId(payload) {
10158
+ return payload?.turn_id || payload?.turnId || "";
10159
+ }
10160
+ function extractTerminalCompletionText(payload) {
10161
+ if (!payload) return "";
10162
+ for (const value of [
10163
+ payload.last_agent_message,
10164
+ payload.message,
10165
+ payload.text,
10166
+ payload.final_response,
10167
+ payload.response
10168
+ ]) {
10169
+ const text2 = extractNormalizedStructuredText(value);
10170
+ if (text2) return text2;
10171
+ }
10172
+ return "";
10173
+ }
10149
10174
  function isIgnoredMirrorLineKind(line) {
10150
10175
  if (isSessionEventLine(line)) {
10151
10176
  const payloadType = typeof line.payload?.type === "string" ? line.payload.type.trim() : "";
@@ -10249,8 +10274,8 @@ function pushDesktopSessionEvent(events, parsed, rawLine) {
10249
10274
  });
10250
10275
  return;
10251
10276
  }
10252
- if (isSessionEventLine(parsed) && parsed.payload?.type === "task_complete") {
10253
- const text2 = extractNormalizedStructuredText(parsed.payload.last_agent_message);
10277
+ if (isSessionEventLine(parsed) && isTerminalCompletionEventType(parsed.payload?.type)) {
10278
+ const text2 = extractTerminalCompletionText(parsed.payload);
10254
10279
  if (!text2) return;
10255
10280
  const lastEvent = events[events.length - 1];
10256
10281
  if (lastEvent?.role === "assistant" && lastEvent.content === text2) {
@@ -10297,7 +10322,7 @@ function pushDesktopMirrorEventRecord(records, parsed, rawLine, activeTurnId) {
10297
10322
  type: "task_started",
10298
10323
  content: "",
10299
10324
  timestamp,
10300
- turnId: parsed.payload.turn_id || ""
10325
+ turnId: getEventTurnId(parsed.payload)
10301
10326
  });
10302
10327
  return true;
10303
10328
  }
@@ -10444,14 +10469,14 @@ function pushDesktopMirrorEventRecord(records, parsed, rawLine, activeTurnId) {
10444
10469
  });
10445
10470
  return true;
10446
10471
  }
10447
- if (parsed.payload?.type === "task_complete") {
10472
+ if (isTerminalCompletionEventType(parsed.payload?.type)) {
10448
10473
  records.push({
10449
10474
  signature,
10450
10475
  type: "task_complete",
10451
10476
  role: "assistant",
10452
- content: extractNormalizedStructuredText(parsed.payload.last_agent_message),
10477
+ content: extractTerminalCompletionText(parsed.payload),
10453
10478
  timestamp,
10454
- turnId: parsed.payload.turn_id || ""
10479
+ turnId: getEventTurnId(parsed.payload)
10455
10480
  });
10456
10481
  return true;
10457
10482
  }
@@ -10680,16 +10705,16 @@ function parseDesktopMirrorRecordText(content, leadingText = "", flushTrailingTe
10680
10705
  }
10681
10706
  if (isSessionEventLine(parsed) && parsed.payload?.type === "task_started") {
10682
10707
  const eventPayload = parsed.payload;
10683
- activeTurnId = eventPayload?.turn_id || activeTurnId;
10708
+ activeTurnId = getEventTurnId(eventPayload) || activeTurnId;
10684
10709
  }
10685
10710
  const handled = pushDesktopMirrorRecord(records, parsed, trimmed, activeTurnId, activeSpecialCallIds);
10686
10711
  if (!handled) {
10687
10712
  const unknownKind = describeUnhandledMirrorLineKind(parsed);
10688
10713
  if (unknownKind) unknownKinds.add(unknownKind);
10689
10714
  }
10690
- if (isSessionEventLine(parsed) && (parsed.payload?.type === "task_complete" || parsed.payload?.type === "turn_aborted")) {
10715
+ if (isSessionEventLine(parsed) && (isTerminalCompletionEventType(parsed.payload?.type) || parsed.payload?.type === "turn_aborted")) {
10691
10716
  const eventPayload = parsed.payload;
10692
- const completedTurnId = eventPayload?.turn_id || activeTurnId;
10717
+ const completedTurnId = getEventTurnId(eventPayload) || activeTurnId;
10693
10718
  if (!completedTurnId || completedTurnId === activeTurnId) {
10694
10719
  activeTurnId = null;
10695
10720
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-to-im",
3
- "version": "1.0.49",
3
+ "version": "1.0.50",
4
4
  "description": "Installable Codex-to-IM bridge with local setup UI and background service",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/zhangle1987/codex-to-im#readme",
@@ -40,11 +40,16 @@
40
40
  "prepublishOnly": "npm run typecheck && npm run build"
41
41
  },
42
42
  "dependencies": {
43
- "@larksuiteoapi/node-sdk": "^1.59.0",
44
- "@openai/codex-sdk": "^0.130.0",
43
+ "@larksuiteoapi/node-sdk": "^1.65.0",
44
+ "@openai/codex-sdk": "^0.133.0",
45
45
  "markdown-it": "^14.1.1",
46
46
  "qrcode": "^1.5.4",
47
- "ws": "^8.18.0"
47
+ "ws": "^8.20.1"
48
+ },
49
+ "overrides": {
50
+ "axios": "1.16.1",
51
+ "follow-redirects": "1.16.0",
52
+ "protobufjs": "7.5.9"
48
53
  },
49
54
  "devDependencies": {
50
55
  "@types/markdown-it": "^14.1.2",
@@ -15,7 +15,7 @@ import path from 'node:path';
15
15
  * - If upstream adds `windowsHide` natively, remove this script.
16
16
  */
17
17
  const PATCH_MARKER = 'windowsHide: process.platform === "win32"';
18
- const SUPPORTED_SDK_VERSION = /^0\.(11\d|12\d)\.\d+$/;
18
+ const SUPPORTED_SDK_VERSION = /^0\.(11\d|12\d|13[0-3])\.\d+$/;
19
19
 
20
20
  function logSkip(message) {
21
21
  console.warn(`[postinstall] ${message}`);