@jrkropp/codex-js 0.1.2 → 0.1.4

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 (134) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +2 -2
  3. package/dist/ClientNotification-B6-FhXQf.d.ts +5 -0
  4. package/dist/DynamicToolCallResponse-82DFjES2.d.ts +8 -0
  5. package/dist/DynamicToolSpec-CfnhqAYK.d.ts +29 -0
  6. package/dist/PermissionsRequestApprovalResponse-DxzPPDRb.d.ts +55 -0
  7. package/dist/ProviderStatusBanner-BlP6lzwE.d.ts +441 -0
  8. package/dist/ServerRequest-B5cKVJjr.d.ts +2181 -0
  9. package/dist/{session-DPhHN7RZ.d.ts → ThreadResumeResponse-DvmE1juU.d.ts} +3 -306
  10. package/dist/ToolRequestUserInputQuestion-CeZa5X1J.d.ts +23 -0
  11. package/dist/ToolRequestUserInputResponse-zcPLwbiK.d.ts +17 -0
  12. package/dist/TurnSteerResponse-0kBCfplh.d.ts +209 -0
  13. package/dist/WebSearchToolConfig-D3ep0625.d.ts +18 -0
  14. package/dist/chat-runtime-9RkXHC_w.d.ts +382 -0
  15. package/dist/chunk-2DZRMCI2.js +1258 -0
  16. package/dist/chunk-2DZRMCI2.js.map +1 -0
  17. package/dist/chunk-4DPLJPB5.js +396 -0
  18. package/dist/chunk-4DPLJPB5.js.map +1 -0
  19. package/dist/chunk-5JMJ6OI5.js +3 -0
  20. package/dist/chunk-5JMJ6OI5.js.map +1 -0
  21. package/dist/chunk-6ZMJ34KE.js +1153 -0
  22. package/dist/chunk-6ZMJ34KE.js.map +1 -0
  23. package/dist/chunk-CGBS37IU.js +128 -0
  24. package/dist/chunk-CGBS37IU.js.map +1 -0
  25. package/dist/chunk-DCMKA2A6.js +18 -0
  26. package/dist/chunk-DCMKA2A6.js.map +1 -0
  27. package/dist/chunk-DYLHN3HG.js +937 -0
  28. package/dist/chunk-DYLHN3HG.js.map +1 -0
  29. package/dist/{chunk-SVK6PLGO.js → chunk-LWQNX4LI.js} +12009 -18768
  30. package/dist/chunk-LWQNX4LI.js.map +1 -0
  31. package/dist/{chunk-JLDH4U5L.js → chunk-NCI4MAWZ.js} +317 -1967
  32. package/dist/chunk-NCI4MAWZ.js.map +1 -0
  33. package/dist/chunk-O44XP7LH.js +214 -0
  34. package/dist/chunk-O44XP7LH.js.map +1 -0
  35. package/dist/chunk-PST3ZWX2.js +555 -0
  36. package/dist/chunk-PST3ZWX2.js.map +1 -0
  37. package/dist/chunk-SYPHCDRD.js +1133 -0
  38. package/dist/chunk-SYPHCDRD.js.map +1 -0
  39. package/dist/chunk-V4BMZWBM.js +2401 -0
  40. package/dist/chunk-V4BMZWBM.js.map +1 -0
  41. package/dist/chunk-W7S6HFCQ.js +1983 -0
  42. package/dist/chunk-W7S6HFCQ.js.map +1 -0
  43. package/dist/chunk-YHVCFD2D.js +117 -0
  44. package/dist/chunk-YHVCFD2D.js.map +1 -0
  45. package/dist/chunk-Z63UPBS3.js +152 -0
  46. package/dist/chunk-Z63UPBS3.js.map +1 -0
  47. package/dist/client/index.d.ts +16 -4
  48. package/dist/client/index.js +13 -1
  49. package/dist/codex-rs/app-server/index.d.ts +161 -0
  50. package/dist/codex-rs/app-server/index.js +13 -0
  51. package/dist/codex-rs/app-server/index.js.map +1 -0
  52. package/dist/codex-rs/app-server-protocol/index.d.ts +1722 -0
  53. package/dist/codex-rs/app-server-protocol/index.js +6 -0
  54. package/dist/codex-rs/app-server-protocol/index.js.map +1 -0
  55. package/dist/codex-rs/app-server-protocol/protocol.d.ts +19 -0
  56. package/dist/codex-rs/app-server-protocol/protocol.js +4 -0
  57. package/dist/codex-rs/app-server-protocol/protocol.js.map +1 -0
  58. package/dist/codex-rs/codex-api/index.d.ts +104 -0
  59. package/dist/codex-rs/codex-api/index.js +11 -0
  60. package/dist/codex-rs/codex-api/index.js.map +1 -0
  61. package/dist/codex-rs/config/index.d.ts +88 -0
  62. package/dist/codex-rs/config/index.js +4 -0
  63. package/dist/codex-rs/config/index.js.map +1 -0
  64. package/dist/codex-rs/core/config/index.d.ts +61 -0
  65. package/dist/codex-rs/core/config/index.js +5 -0
  66. package/dist/codex-rs/core/config/index.js.map +1 -0
  67. package/dist/codex-rs/core/index.d.ts +1393 -0
  68. package/dist/codex-rs/core/index.js +11 -0
  69. package/dist/codex-rs/core/index.js.map +1 -0
  70. package/dist/codex-rs/model-provider/index.d.ts +2 -0
  71. package/dist/codex-rs/model-provider/index.js +4 -0
  72. package/dist/codex-rs/model-provider/index.js.map +1 -0
  73. package/dist/codex-rs/models-manager/index.d.ts +2 -0
  74. package/dist/codex-rs/models-manager/index.js +4 -0
  75. package/dist/codex-rs/models-manager/index.js.map +1 -0
  76. package/dist/codex-rs/parity.d.ts +26 -0
  77. package/dist/codex-rs/parity.js +3 -0
  78. package/dist/codex-rs/parity.js.map +1 -0
  79. package/dist/codex-rs/thread-store/index.d.ts +5 -0
  80. package/dist/codex-rs/thread-store/index.js +4 -0
  81. package/dist/codex-rs/thread-store/index.js.map +1 -0
  82. package/dist/codex-rs/unsupported.d.ts +15 -0
  83. package/dist/codex-rs/unsupported.js +22 -0
  84. package/dist/codex-rs/unsupported.js.map +1 -0
  85. package/dist/codex-rs/utils/output-truncation.d.ts +21 -0
  86. package/dist/codex-rs/utils/output-truncation.js +4 -0
  87. package/dist/codex-rs/utils/output-truncation.js.map +1 -0
  88. package/dist/codex-rs/utils/string.d.ts +7 -0
  89. package/dist/codex-rs/utils/string.js +3 -0
  90. package/dist/codex-rs/utils/string.js.map +1 -0
  91. package/dist/common-CTyph5x8.d.ts +40 -0
  92. package/dist/event-mapping-CbISdQ1D.d.ts +43 -0
  93. package/dist/history-CfM-4V7b.d.ts +1654 -0
  94. package/dist/index-77U_Oc-a.d.ts +63 -0
  95. package/dist/index-CoDZosq0.d.ts +261 -0
  96. package/dist/index.d.ts +18 -7
  97. package/dist/index.js +16 -2
  98. package/dist/lib-nXlaKiS-.d.ts +48 -0
  99. package/dist/live-thread-BMvlflzM.d.ts +30 -0
  100. package/dist/merge-B_AWVmnI.d.ts +24 -0
  101. package/dist/mod-DYVLSWO4.d.ts +91 -0
  102. package/dist/plan-mode-Cv6KWb_S.d.ts +14 -0
  103. package/dist/proposed-plan-DpN1ma0Y.d.ts +53 -0
  104. package/dist/protocol-mpBcYHrm.d.ts +1655 -0
  105. package/dist/react/index.d.ts +56 -48
  106. package/dist/react/index.js +16 -2
  107. package/dist/{remote-_6TDvg-g.d.ts → remote-ClZbq9KN.d.ts} +3 -1
  108. package/dist/rendered-thread-AOxw3V5b.d.ts +29 -0
  109. package/dist/responses_websocket-BhxSgCzK.d.ts +183 -0
  110. package/dist/runtime-Cm6ml53h.d.ts +528 -0
  111. package/dist/server/index.d.ts +29 -2416
  112. package/dist/server/index.js +13 -1
  113. package/dist/session-BRYzi8OT.d.ts +46 -0
  114. package/dist/shadcn/index.d.ts +1 -1
  115. package/dist/{sidebar-DT2XoitN.d.ts → sidebar-DMMij22z.d.ts} +1 -1
  116. package/dist/spec_plan_types-CmsJ-Tfn.d.ts +260 -0
  117. package/dist/{store-GYldc9EJ.d.ts → store-AGRxhgQ3.d.ts} +2 -1
  118. package/dist/t3code/apps/web/components/chat.d.ts +508 -0
  119. package/dist/t3code/apps/web/components/chat.js +12 -0
  120. package/dist/t3code/apps/web/components/chat.js.map +1 -0
  121. package/dist/t3code/apps/web/index.d.ts +12 -0
  122. package/dist/t3code/apps/web/index.js +13 -0
  123. package/dist/t3code/apps/web/index.js.map +1 -0
  124. package/dist/testing/index.d.ts +9 -91
  125. package/dist/testing/index.js +13 -1
  126. package/dist/thread-history-builder-zW0zeqcS.d.ts +58 -0
  127. package/dist/thread_event_store-C0zYzukG.d.ts +77 -0
  128. package/dist/types-BTeabLYr.d.ts +126 -0
  129. package/package.json +152 -88
  130. package/dist/chat-runtime-D7wu_KbX.d.ts +0 -747
  131. package/dist/chunk-JLDH4U5L.js.map +0 -1
  132. package/dist/chunk-SVK6PLGO.js.map +0 -1
  133. package/dist/index-CB9la6xE.d.ts +0 -112
  134. package/dist/thread_event_store-B9CoQUIA.d.ts +0 -3868
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/upstream/codex-rs/app-server-protocol/src/protocol/event-mapping.ts","../src/upstream/codex-rs/app-server-protocol/src/protocol/thread-resume.ts","../src/upstream/codex-rs/app-server-protocol/src/protocol/common.ts"],"names":["notification","request","epochSeconds"],"mappings":"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","file":"chunk-2DZRMCI2.js","sourcesContent":["import type {\n\tEventMsg,\n\tRateLimitSnapshot,\n\tTokenUsage,\n\tTokenUsageInfo,\n\tUserInput,\n} from \"../../../core/src/protocol\";\nimport type {\n\tMessagePhase,\n\tServerNotification,\n\tServerRequest,\n} from \"../../schema/typescript\";\nimport type {\n\tRateLimitSnapshot as AppServerRateLimitSnapshot,\n\tThreadItem,\n\tThreadTokenUsage,\n\tTurn,\n} from \"../../schema/typescript/v2\";\nimport type { MemoryCitation as AppServerMemoryCitation } from \"../../schema/typescript/v2\";\nimport type { UserInput as AppServerUserInput } from \"../../schema/typescript/v2\";\n\nexport type ServerRequestCoreTarget =\n\t| { responseId: string; type: \"user_input\" }\n\t| { callId: string; type: \"request_permissions\" }\n\t| { callId: string; type: \"dynamic_tool\" }\n\t| { requestId: string | number; serverName: string; type: \"mcp_elicitation\" };\n\nexport type AppServerProtocolEvent =\n\t| { notification: ServerNotification; type: \"server_notification\" }\n\t| {\n\t\t\tcoreTarget?: ServerRequestCoreTarget;\n\t\t\trequest: ServerRequest;\n\t\t\ttype: \"server_request\";\n\t };\n\nexport type EventMappingContext = {\n\tactiveTurn?: Turn | null;\n\tthreadId: string;\n\tterminalTurn?: Turn | null;\n\tturnId?: string | null;\n};\n\ntype ServerRequestInput =\n\t| ServerRequest\n\t| (ServerRequest extends infer T\n\t\t\t? T extends { id: unknown }\n\t\t\t\t? Omit<T, \"id\"> & { id?: never }\n\t\t\t\t: never\n\t\t\t: never);\n\nexport function eventMsgToAppServerEvents(\n\tmsg: EventMsg,\n\tcontext: EventMappingContext,\n): AppServerProtocolEvent[] {\n\tif (msg.type === \"token_count\") {\n\t\tconst events: AppServerProtocolEvent[] = [];\n\t\tconst turnId = turnIdFromEventMsg(msg, context);\n\t\tif (msg.info) {\n\t\t\tevents.push(\n\t\t\t\tturnId\n\t\t\t\t\t? notification({\n\t\t\t\t\t\t\tmethod: \"thread/tokenUsage/updated\",\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tthreadId: context.threadId,\n\t\t\t\t\t\t\t\tturnId,\n\t\t\t\t\t\t\t\ttokenUsage: threadTokenUsageFromTokenUsageInfo(msg.info),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t: missingTurnIdWarning(context.threadId, msg.type),\n\t\t\t);\n\t\t}\n\t\tif (msg.rate_limits) {\n\t\t\tevents.push(notification({\n\t\t\t\tmethod: \"account/rateLimits/updated\",\n\t\t\t\tparams: {\n\t\t\t\t\trateLimits: appServerRateLimitSnapshot(msg.rate_limits),\n\t\t\t\t},\n\t\t\t}));\n\t\t}\n\t\treturn events;\n\t}\n\tif (msg.type === \"dynamic_tool_call_request\") {\n\t\tconst threadId = context.threadId;\n\t\treturn [\n\t\t\tnotification({\n\t\t\t\tmethod: \"item/started\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\tstartedAtMs: msg.started_at_ms ?? Date.now(),\n\t\t\t\t\titem: {\n\t\t\t\t\t\ttype: \"dynamicToolCall\",\n\t\t\t\t\t\tid: msg.call_id,\n\t\t\t\t\t\tnamespace: msg.namespace ?? null,\n\t\t\t\t\t\ttool: msg.tool,\n\t\t\t\t\t\targuments: msg.arguments as never,\n\t\t\t\t\t\tstatus: \"inProgress\",\n\t\t\t\t\t\tcontentItems: null,\n\t\t\t\t\t\tsuccess: null,\n\t\t\t\t\t\tdurationMs: null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t\trequest(\n\t\t\t\t{\n\t\t\t\t\tmethod: \"item/tool/call\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\t\tcallId: msg.call_id,\n\t\t\t\t\t\tnamespace: msg.namespace ?? null,\n\t\t\t\t\t\ttool: msg.tool,\n\t\t\t\t\t\targuments: msg.arguments as never,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ type: \"dynamic_tool\", callId: msg.call_id },\n\t\t\t),\n\t\t];\n\t}\n\tif (msg.type === \"agent_message\") {\n\t\treturn [];\n\t}\n\treturn [eventMsgToAppServerEvent(msg, context)];\n}\n\nexport function eventMsgToAppServerEvent(\n\tmsg: EventMsg,\n\tcontext: EventMappingContext,\n): AppServerProtocolEvent {\n\tconst threadId = context.threadId;\n\tconst turnId = turnIdFromEventMsg(msg, context);\n\tswitch (msg.type) {\n\t\tcase \"turn_started\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"turn/started\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturn: {\n\t\t\t\t\t\t...(context.activeTurn ?? {}),\n\t\t\t\t\t\tid: msg.turn_id,\n\t\t\t\t\t\titems: [],\n\t\t\t\t\t\titemsView: \"notLoaded\",\n\t\t\t\t\t\tstatus: \"inProgress\",\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tstartedAt: epochSeconds(msg.started_at),\n\t\t\t\t\t\tcompletedAt: null,\n\t\t\t\t\t\tdurationMs: null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"turn_complete\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"turn/completed\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturn: completedTurnFromEvent({\n\t\t\t\t\t\tcompletedAt: epochSeconds(msg.completed_at),\n\t\t\t\t\t\tdurationMs: msg.duration_ms ?? null,\n\t\t\t\t\t\tfallbackTurnId: msg.turn_id,\n\t\t\t\t\t\tstatus: \"completed\",\n\t\t\t\t\t\tterminalTurn: context.terminalTurn,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"turn_aborted\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"turn/completed\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturn: completedTurnFromEvent({\n\t\t\t\t\t\tcompletedAt: epochSeconds(msg.completed_at ?? msg.aborted_at),\n\t\t\t\t\t\tdurationMs: msg.duration_ms ?? null,\n\t\t\t\t\t\tfallbackTurnId: msg.turn_id,\n\t\t\t\t\t\tstatus: \"interrupted\",\n\t\t\t\t\t\tterminalTurn: context.terminalTurn,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"agent_message_content_delta\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"item/agentMessage/delta\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId: msg.thread_id,\n\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\titemId: msg.item_id,\n\t\t\t\t\tdelta: msg.delta,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"plan_delta\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"item/plan/delta\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId: msg.thread_id,\n\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\titemId: msg.item_id,\n\t\t\t\t\tdelta: msg.delta,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"plan_update\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"turn/plan/updated\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\texplanation: msg.explanation ?? null,\n\t\t\t\t\tplan: msg.plan.map((step) => ({\n\t\t\t\t\t\tstep: step.step,\n\t\t\t\t\t\tstatus:\n\t\t\t\t\t\t\tstep.status === \"in_progress\" ? \"inProgress\" : step.status,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"item_started\": {\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\tconst item = coreTurnItemToThreadItem(msg.item);\n\t\t\treturn item\n\t\t\t\t? notification({\n\t\t\t\t\t\tmethod: \"item/started\",\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\tturnId: msg.turn_id ?? turnId,\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\tstartedAtMs: Date.now(),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: warning(threadId, `Unmapped Codex item_started: ${msg.item.type}`);\n\t\t}\n\t\tcase \"item_completed\": {\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\tconst item = coreTurnItemToThreadItem(msg.item);\n\t\t\treturn item\n\t\t\t\t? notification({\n\t\t\t\t\t\tmethod: \"item/completed\",\n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\t\tturnId: msg.turn_id ?? turnId,\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\tcompletedAtMs: Date.now(),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t: warning(threadId, `Unmapped Codex item_completed: ${msg.item.type}`);\n\t\t}\n\t\tcase \"user_message\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"item/completed\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\tcompletedAtMs: Date.now(),\n\t\t\t\t\titem: {\n\t\t\t\t\t\ttype: \"userMessage\",\n\t\t\t\t\t\tid: `user-${turnId}`,\n\t\t\t\t\t\tcontent: userInputsFromUserMessage(msg),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"raw_response_item\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"rawResponseItem/completed\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\titem: msg.item as never,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"request_user_input\":\n\t\t\treturn request(\n\t\t\t\t{\n\t\t\t\t\tmethod: \"item/tool/requestUserInput\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\t\titemId: msg.call_id,\n\t\t\t\t\t\tquestions: msg.questions.map((question) => ({\n\t\t\t\t\t\t\tid: question.id,\n\t\t\t\t\t\t\theader: question.header,\n\t\t\t\t\t\t\tquestion: question.question,\n\t\t\t\t\t\t\tisOther: question.isOther,\n\t\t\t\t\t\t\tisSecret: question.isSecret,\n\t\t\t\t\t\t\toptions: question.options.map((option) => ({ ...option })),\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ type: \"user_input\", responseId: msg.turn_id },\n\t\t\t);\n\t\tcase \"request_permissions\":\n\t\t\treturn request(\n\t\t\t\t{\n\t\t\t\t\tmethod: \"item/permissions/requestApproval\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\t\titemId: msg.call_id,\n\t\t\t\t\t\tcwd: msg.cwd ?? \"\",\n\t\t\t\t\t\treason: msg.reason ?? null,\n\t\t\t\t\t\tpermissions: msg.permissions as never,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ type: \"request_permissions\", callId: msg.call_id },\n\t\t\t);\n\t\tcase \"command_approval_request\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn request({\n\t\t\t\tmethod: \"item/commandExecution/requestApproval\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\titemId: msg.call_id,\n\t\t\t\t\tapprovalId: null,\n\t\t\t\t\treason: msg.reason ?? null,\n\t\t\t\t\tcommand: msg.command.join(\" \"),\n\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\tcommandActions: [],\n\t\t\t\t\tnetworkApprovalContext: null,\n\t\t\t\t\tproposedExecpolicyAmendment: null,\n\t\t\t\t\tproposedNetworkPolicyAmendments: null,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"file_change_approval_request\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn request({\n\t\t\t\tmethod: \"item/fileChange/requestApproval\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\titemId: msg.call_id,\n\t\t\t\t\treason: msg.reason ?? null,\n\t\t\t\t\tgrantRoot: null,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"dynamic_tool_call_request\":\n\t\t\treturn request(\n\t\t\t\t{\n\t\t\t\t\tmethod: \"item/tool/call\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\t\tcallId: msg.call_id,\n\t\t\t\t\t\tnamespace: msg.namespace ?? null,\n\t\t\t\t\t\ttool: msg.tool,\n\t\t\t\t\t\targuments: msg.arguments as never,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ type: \"dynamic_tool\", callId: msg.call_id },\n\t\t\t);\n\t\tcase \"dynamic_tool_call_response\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"item/completed\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\tcompletedAtMs: msg.completed_at_ms ?? Date.now(),\n\t\t\t\t\titem: {\n\t\t\t\t\t\ttype: \"dynamicToolCall\",\n\t\t\t\t\t\tid: msg.call_id,\n\t\t\t\t\t\tnamespace: msg.namespace ?? null,\n\t\t\t\t\t\ttool: msg.tool,\n\t\t\t\t\t\targuments: msg.arguments as never,\n\t\t\t\t\t\tstatus: msg.success ? \"completed\" : \"failed\",\n\t\t\t\t\t\tcontentItems: msg.content_items.map((item) =>\n\t\t\t\t\t\t\titem.type === \"inputText\"\n\t\t\t\t\t\t\t\t? { type: \"inputText\", text: item.text }\n\t\t\t\t\t\t\t\t: { type: \"inputImage\", imageUrl: item.imageUrl },\n\t\t\t\t\t\t),\n\t\t\t\t\t\tsuccess: msg.success,\n\t\t\t\t\t\tdurationMs: durationMsFromString(msg.duration),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t\tcase \"mcp_server_elicitation_request\":\n\t\t\treturn request(\n\t\t\t\t{\n\t\t\t\t\tmethod: \"mcpServer/elicitation/request\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tturnId: msg.turn_id,\n\t\t\t\t\t\tserverName: msg.server_name,\n\t\t\t\t\t\t...(msg.request.type === \"url\"\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tmode: \"url\" as const,\n\t\t\t\t\t\t\t\t\tmessage: msg.request.message,\n\t\t\t\t\t\t\t\t\t_meta: msg.request.meta ?? null,\n\t\t\t\t\t\t\t\t\turl: msg.request.url,\n\t\t\t\t\t\t\t\t\telicitationId: msg.request.elicitation_id ?? \"\",\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tmode: \"form\" as const,\n\t\t\t\t\t\t\t\t\tmessage: msg.request.message,\n\t\t\t\t\t\t\t\t\t_meta: msg.request.meta ?? null,\n\t\t\t\t\t\t\t\t\trequestedSchema: msg.request.requested_schema as never,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: \"mcp_elicitation\",\n\t\t\t\t\tserverName: msg.server_name,\n\t\t\t\t\trequestId: msg.id,\n\t\t\t\t},\n\t\t\t);\n\t\tcase \"context_compacted\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"thread/compacted\",\n\t\t\t\tparams: { threadId, turnId },\n\t\t\t});\n\t\tcase \"realtime_conversation_started\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"thread/realtime/started\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\trealtimeSessionId: msg.realtime_session_id ?? null,\n\t\t\t\t\tversion: msg.version,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"realtime_conversation_sdp\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"thread/realtime/sdp\",\n\t\t\t\tparams: { threadId, sdp: msg.sdp },\n\t\t\t});\n\t\tcase \"realtime_conversation_realtime\":\n\t\t\tif (\n\t\t\t\ttypeof msg.payload === \"object\" &&\n\t\t\t\tmsg.payload !== null &&\n\t\t\t\t(msg.payload as { type?: unknown }).type === \"error\"\n\t\t\t) {\n\t\t\t\treturn notification({\n\t\t\t\t\tmethod: \"thread/realtime/error\",\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tthreadId,\n\t\t\t\t\t\tmessage: String(\n\t\t\t\t\t\t\t(msg.payload as { message?: unknown }).message ??\n\t\t\t\t\t\t\t\t\"Realtime conversation error.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"thread/realtime/itemAdded\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\titem: msg.payload as never,\n\t\t\t\t},\n\t\t\t});\n\t\tcase \"realtime_conversation_closed\":\n\t\t\treturn notification({\n\t\t\t\tmethod: \"thread/realtime/closed\",\n\t\t\t\tparams: { threadId, reason: msg.reason ?? null },\n\t\t\t});\n\t\tcase \"warning\":\n\t\t\treturn warning(threadId, msg.message);\n\t\tcase \"error\":\n\t\t\tif (!turnId) {\n\t\t\t\treturn missingTurnIdWarning(threadId, msg.type);\n\t\t\t}\n\t\t\treturn notification({\n\t\t\t\tmethod: \"error\",\n\t\t\t\tparams: {\n\t\t\t\t\tthreadId,\n\t\t\t\t\tturnId,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tmessage: msg.message,\n\t\t\t\t\t\tcodexErrorInfo: null,\n\t\t\t\t\t\tadditionalDetails: null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\tdefault:\n\t\t\treturn warning(threadId, `Unmapped Codex event: ${msg.type}`);\n\t}\n}\n\nexport const eventMsgToServerProtocolEvent = eventMsgToAppServerEvent;\nexport const eventMsgToServerProtocolEvents = eventMsgToAppServerEvents;\n\nexport function serverRequestResolvedNotification(input: {\n\trequestId: string | number;\n\tthreadId: string;\n}): AppServerProtocolEvent {\n\treturn notification({\n\t\tmethod: \"serverRequest/resolved\",\n\t\tparams: {\n\t\t\tthreadId: input.threadId,\n\t\t\trequestId: input.requestId,\n\t\t},\n\t});\n}\n\nfunction notification(notification: ServerNotification): AppServerProtocolEvent {\n\treturn { notification, type: \"server_notification\" };\n}\n\nfunction request(\n\trequest: ServerRequestInput,\n\tcoreTarget?: ServerRequestCoreTarget,\n): AppServerProtocolEvent {\n\treturn {\n\t\t...(coreTarget ? { coreTarget } : {}),\n\t\trequest: request as ServerRequest,\n\t\ttype: \"server_request\",\n\t};\n}\n\nfunction warning(threadId: string, message: string): AppServerProtocolEvent {\n\treturn notification({\n\t\tmethod: \"warning\",\n\t\tparams: { threadId, message },\n\t});\n}\n\nfunction missingTurnIdWarning(\n\tthreadId: string,\n\teventType: string,\n): AppServerProtocolEvent {\n\treturn warning(threadId, `Codex event ${eventType} was missing a turn id.`);\n}\n\nfunction turnIdFromEventMsg(\n\tmsg: EventMsg,\n\tcontext: EventMappingContext,\n): string | null {\n\tif (\"turn_id\" in msg && typeof msg.turn_id === \"string\") {\n\t\treturn msg.turn_id;\n\t}\n\treturn context.turnId ?? null;\n}\n\nfunction epochSeconds(value: number | null | undefined): number | null {\n\treturn typeof value === \"number\" ? value / 1000 : null;\n}\n\nfunction durationMsFromString(value: string | null | undefined): number | null {\n\tif (!value) {\n\t\treturn null;\n\t}\n\tconst parsed = Number.parseFloat(value);\n\treturn Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction completedTurnFromEvent(input: {\n\tcompletedAt: number | null;\n\tdurationMs: number | null;\n\tfallbackTurnId: string;\n\tstatus: \"completed\" | \"interrupted\";\n\tterminalTurn?: Turn | null;\n}): Turn {\n\tconst turn =\n\t\tinput.terminalTurn?.id === input.fallbackTurnId ? input.terminalTurn : null;\n\treturn {\n\t\tid: input.fallbackTurnId,\n\t\titems: turn?.items ?? [],\n\t\titemsView: turn?.itemsView ?? \"notLoaded\",\n\t\tstatus:\n\t\t\tturn?.status === \"failed\" && input.status === \"completed\"\n\t\t\t\t? \"failed\"\n\t\t\t\t: input.status,\n\t\terror: turn?.error ?? null,\n\t\tstartedAt: turn?.startedAt ?? null,\n\t\tcompletedAt: input.completedAt,\n\t\tdurationMs: input.durationMs,\n\t};\n}\n\nexport function threadTokenUsageFromTokenUsageInfo(info: TokenUsageInfo): ThreadTokenUsage {\n\treturn {\n\t\ttotal: appServerTokenUsageBreakdown(info.total_token_usage),\n\t\tlast: appServerTokenUsageBreakdown(info.last_token_usage),\n\t\tmodelContextWindow: info.model_context_window ?? null,\n\t};\n}\n\nfunction appServerTokenUsageBreakdown(usage: TokenUsage): ThreadTokenUsage[\"total\"] {\n\treturn {\n\t\ttotalTokens: usage.total_tokens,\n\t\tinputTokens: usage.input_tokens,\n\t\tcachedInputTokens: usage.cached_input_tokens,\n\t\toutputTokens: usage.output_tokens,\n\t\treasoningOutputTokens: usage.reasoning_output_tokens,\n\t};\n}\n\nfunction appServerRateLimitSnapshot(\n\tsnapshot: RateLimitSnapshot,\n): AppServerRateLimitSnapshot {\n\treturn {\n\t\tlimitId: valueAsStringOrNull(snapshot.limit_id),\n\t\tlimitName: valueAsStringOrNull(snapshot.limit_name),\n\t\tprimary: appServerRateLimitWindow(snapshot.primary),\n\t\tsecondary: appServerRateLimitWindow(snapshot.secondary),\n\t\tcredits: (snapshot.credits ?? null) as never,\n\t\tplanType: (snapshot.plan_type ?? null) as never,\n\t\trateLimitReachedType: (snapshot.rate_limit_reached_type ?? null) as never,\n\t};\n}\n\nfunction appServerRateLimitWindow(\n\twindow: unknown,\n): AppServerRateLimitSnapshot[\"primary\"] {\n\tif (!window || typeof window !== \"object\") {\n\t\treturn null;\n\t}\n\tconst record = window as {\n\t\treset_seconds?: unknown;\n\t\tresets_at?: unknown;\n\t\tused_percent?: unknown;\n\t\tusedPercent?: unknown;\n\t\twindow_duration_mins?: unknown;\n\t\twindowDurationMins?: unknown;\n\t};\n\tconst resetSeconds =\n\t\ttypeof record.reset_seconds === \"number\" ? record.reset_seconds : null;\n\tconst resetsAt =\n\t\ttypeof record.resets_at === \"number\"\n\t\t\t? record.resets_at\n\t\t\t: resetSeconds === null\n\t\t\t\t? null\n\t\t\t\t: Math.floor(Date.now() / 1000) + resetSeconds;\n\treturn {\n\t\tusedPercent: numberOrZero(record.usedPercent ?? record.used_percent),\n\t\twindowDurationMins:\n\t\t\ttypeof record.windowDurationMins === \"number\"\n\t\t\t\t? record.windowDurationMins\n\t\t\t\t: typeof record.window_duration_mins === \"number\"\n\t\t\t\t\t? record.window_duration_mins\n\t\t\t\t\t: null,\n\t\tresetsAt,\n\t};\n}\n\nfunction numberOrZero(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\n\nfunction valueAsStringOrNull(value: unknown): string | null {\n\treturn typeof value === \"string\" ? value : null;\n}\n\nfunction userInputsFromUserMessage(\n\tmsg: Extract<EventMsg, { type: \"user_message\" }>,\n): AppServerUserInput[] {\n\tconst inputs: AppServerUserInput[] = [\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\ttext: msg.message,\n\t\t\ttext_elements: appServerTextElementsFromCore(msg.text_elements ?? []),\n\t\t},\n\t];\n\tfor (const url of msg.images ?? []) {\n\t\tinputs.push({ type: \"image\", url });\n\t}\n\tfor (const path of msg.local_images ?? []) {\n\t\tinputs.push({ type: \"localImage\", path });\n\t}\n\treturn inputs;\n}\n\nfunction appServerUserInputsFromCore(inputs: UserInput[]): AppServerUserInput[] {\n\treturn inputs.map((input) => {\n\t\tif (input.type === \"text\") {\n\t\t\treturn {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: input.text,\n\t\t\t\ttext_elements: appServerTextElementsFromCore(input.text_elements ?? []),\n\t\t\t};\n\t\t}\n\t\tif (input.type === \"image\") {\n\t\t\treturn { type: \"image\", url: input.image_url };\n\t\t}\n\t\tif (input.type === \"local_image\") {\n\t\t\treturn { type: \"localImage\", path: input.path };\n\t\t}\n\t\treturn input;\n\t});\n}\n\nfunction appServerTextElementsFromCore(\n\telements: NonNullable<Extract<UserInput, { type: \"text\" }>[\"text_elements\"]>,\n): Extract<AppServerUserInput, { type: \"text\" }>[\"text_elements\"] {\n\treturn elements.map((element) => ({\n\t\tbyteRange: element.byte_range,\n\t\tplaceholder: element.placeholder ?? null,\n\t}));\n}\n\nfunction appServerMessagePhase(value: unknown): MessagePhase | null {\n\treturn value === \"commentary\" || value === \"final_answer\" ? value : null;\n}\n\nfunction appServerMemoryCitationFromCore(\n\tcitation: { entries: AppServerMemoryCitation[\"entries\"]; rolloutIds?: string[] } | null,\n): AppServerMemoryCitation | null {\n\treturn citation\n\t\t? {\n\t\t\t\tentries: citation.entries,\n\t\t\t\tthreadIds: citation.rolloutIds ?? [],\n\t\t\t}\n\t\t: null;\n}\n\nexport function coreTurnItemToThreadItem(item: unknown): ThreadItem | null {\n\tif (!item || typeof item !== \"object\" || !(\"type\" in item)) {\n\t\treturn null;\n\t}\n\tconst value = item as Record<string, unknown>;\n\tswitch (value.type) {\n\t\tcase \"UserMessage\":\n\t\t\treturn {\n\t\t\t\ttype: \"userMessage\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tcontent: appServerUserInputsFromCore((value.content ?? []) as UserInput[]),\n\t\t\t};\n\t\tcase \"AgentMessage\":\n\t\t\treturn {\n\t\t\t\ttype: \"agentMessage\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\ttext: ((value.content as Array<{ text?: string }> | undefined) ?? [])\n\t\t\t\t\t.map((part) => part.text ?? \"\")\n\t\t\t\t\t.join(\"\"),\n\t\t\t\tphase: appServerMessagePhase(value.phase),\n\t\t\t\tmemoryCitation: appServerMemoryCitationFromCore(\n\t\t\t\t\t(value.memory_citation as never) ?? null,\n\t\t\t\t),\n\t\t\t};\n\t\tcase \"Plan\":\n\t\t\treturn {\n\t\t\t\ttype: \"plan\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\ttext: String(value.text ?? \"\"),\n\t\t\t};\n\t\tcase \"Reasoning\":\n\t\t\treturn {\n\t\t\t\ttype: \"reasoning\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tsummary: (value.summary_text ?? []) as string[],\n\t\t\t\tcontent: (value.raw_content ?? []) as string[],\n\t\t\t};\n\t\tcase \"WebSearch\": {\n\t\t\tconst action = appServerWebSearchAction(value.action);\n\t\t\treturn {\n\t\t\t\ttype: \"webSearch\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tquery:\n\t\t\t\t\ttypeof value.query === \"string\"\n\t\t\t\t\t\t? value.query\n\t\t\t\t\t\t: webSearchActionDetail(action),\n\t\t\t\taction,\n\t\t\t};\n\t\t}\n\t\tcase \"CommandExecution\":\n\t\t\treturn {\n\t\t\t\ttype: \"commandExecution\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tcommand: ((value.command as string[] | undefined) ?? []).join(\" \"),\n\t\t\t\tcwd: String(value.cwd ?? \"\"),\n\t\t\t\tprocessId: null,\n\t\t\t\tsource: \"agent\",\n\t\t\t\tstatus: commandStatusToAppServer(value.status),\n\t\t\t\tcommandActions: [],\n\t\t\t\taggregatedOutput:\n\t\t\t\t\t[value.stdout, value.stderr].filter(Boolean).join(\"\") || null,\n\t\t\t\texitCode:\n\t\t\t\t\ttypeof value.exit_code === \"number\" ? value.exit_code : null,\n\t\t\t\tdurationMs:\n\t\t\t\t\ttypeof value.duration_ms === \"number\" ? value.duration_ms : null,\n\t\t\t};\n\t\tcase \"FileChange\":\n\t\t\treturn {\n\t\t\t\ttype: \"fileChange\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tchanges: [],\n\t\t\t\tstatus: (value.status as never) ?? \"completed\",\n\t\t\t};\n\t\tcase \"DynamicToolCall\":\n\t\t\treturn {\n\t\t\t\ttype: \"dynamicToolCall\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t\tnamespace: (value.namespace as string | null | undefined) ?? null,\n\t\t\t\ttool: String(value.tool ?? \"\"),\n\t\t\t\targuments: (value.arguments ?? null) as never,\n\t\t\t\tstatus: dynamicToolStatusToAppServer(value.status),\n\t\t\t\tcontentItems: (value.content_items as never) ?? null,\n\t\t\t\tsuccess: (value.success as boolean | null | undefined) ?? null,\n\t\t\t\tdurationMs: durationMsFromString(value.duration as string | undefined),\n\t\t\t};\n\t\tcase \"ContextCompaction\":\n\t\t\treturn {\n\t\t\t\ttype: \"contextCompaction\",\n\t\t\t\tid: String(value.id ?? \"\"),\n\t\t\t};\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nfunction appServerWebSearchAction(action: unknown) {\n\tif (!action || typeof action !== \"object\") {\n\t\treturn { type: \"other\" as const };\n\t}\n\tconst record = action as Record<string, unknown>;\n\tif (record.type === \"search\") {\n\t\treturn {\n\t\t\ttype: \"search\" as const,\n\t\t\tquery: typeof record.query === \"string\" ? record.query : null,\n\t\t\tqueries: Array.isArray(record.queries)\n\t\t\t\t? record.queries.filter((query): query is string => typeof query === \"string\")\n\t\t\t\t: null,\n\t\t};\n\t}\n\tif (record.type === \"open_page\" || record.type === \"openPage\") {\n\t\treturn {\n\t\t\ttype: \"openPage\" as const,\n\t\t\turl: typeof record.url === \"string\" ? record.url : null,\n\t\t};\n\t}\n\tif (record.type === \"find_in_page\" || record.type === \"findInPage\") {\n\t\treturn {\n\t\t\ttype: \"findInPage\" as const,\n\t\t\turl: typeof record.url === \"string\" ? record.url : null,\n\t\t\tpattern: typeof record.pattern === \"string\" ? record.pattern : null,\n\t\t};\n\t}\n\treturn { type: \"other\" as const };\n}\n\nfunction webSearchActionDetail(action: ReturnType<typeof appServerWebSearchAction>): string {\n\tswitch (action.type) {\n\t\tcase \"search\":\n\t\t\treturn action.query ?? action.queries?.join(\", \") ?? \"\";\n\t\tcase \"openPage\":\n\t\t\treturn action.url ?? \"\";\n\t\tcase \"findInPage\": {\n\t\t\tconst pattern = action.pattern ?? \"\";\n\t\t\tconst url = action.url ?? \"\";\n\t\t\treturn pattern && url ? `'${pattern}' in ${url}` : (pattern || url);\n\t\t}\n\t\tcase \"other\":\n\t\t\treturn \"\";\n\t}\n}\n\nfunction commandStatusToAppServer(value: unknown): ThreadItem extends infer T\n\t? T extends { type: \"commandExecution\"; status: infer S }\n\t\t? S\n\t\t: never\n\t: never {\n\tif (value === \"completed\" || value === \"failed\") {\n\t\treturn value as never;\n\t}\n\tif (value === \"cancelled\") {\n\t\treturn \"failed\" as never;\n\t}\n\treturn \"inProgress\" as never;\n}\n\nfunction dynamicToolStatusToAppServer(value: unknown): ThreadItem extends infer T\n\t? T extends { type: \"dynamicToolCall\"; status: infer S }\n\t\t? S\n\t\t: never\n\t: never {\n\tif (value === \"completed\" || value === \"failed\") {\n\t\treturn value as never;\n\t}\n\treturn \"inProgress\" as never;\n}\n","import type {\n\tThread,\n\tThreadItem,\n\tThreadResumeResponse,\n\tTurn,\n} from \"../../schema/typescript/v2\";\nimport type { StoredThread, StoredThreadHistory } from \"../../../core/src/thread-store\";\nimport { renderThreadFromHistory } from \"../../../core/src/rendered-thread\";\nimport type { Turn as CoreTurn } from \"../../../core/src/thread-history-builder\";\nimport type { ThreadId } from \"../../../core/src/ids\";\nimport type { TurnItem as CoreTurnItem } from \"../../../core/src/items\";\nimport type { UserInput as CoreUserInput } from \"../../../core/src/protocol\";\nimport { coreTurnItemToThreadItem } from \"./event-mapping\";\n\nexport type ThreadResumeSnapshotInput = {\n\thistory: StoredThreadHistory;\n\tthread: StoredThread;\n};\n\nexport function buildThreadResumeResponseFromHistory(\n\tinput: ThreadResumeSnapshotInput,\n): ThreadResumeResponse {\n\tconst thread = threadHistoryToAppServerThread(input);\n\treturn {\n\t\tthread,\n\t\tmodel: input.thread.model ?? \"gpt-5.4\",\n\t\tmodelProvider: input.thread.model_provider,\n\t\tserviceTier: null,\n\t\tcwd: input.thread.cwd,\n\t\tinstructionSources: [],\n\t\tapprovalPolicy: approvalPolicyFromStoredThread(input.thread),\n\t\tapprovalsReviewer: \"user\",\n\t\tsandbox: sandboxPolicyFromStoredThread(input.thread),\n\t\treasoningEffort: reasoningEffortFromStoredThread(input.thread),\n\t};\n}\n\nexport function threadHistoryToAppServerThread(\n\tinput: ThreadResumeSnapshotInput,\n): Thread {\n\tconst rendered = renderThreadFromHistory(input.history);\n\treturn {\n\t\tid: input.thread.thread_id,\n\t\tsessionId: input.thread.rollout_path ?? input.thread.thread_id,\n\t\tforkedFromId: input.thread.forked_from_id ?? null,\n\t\tpreview: input.thread.preview,\n\t\tephemeral: false,\n\t\tmodelProvider: input.thread.model_provider,\n\t\tcreatedAt: epochSecondsFromIso(input.thread.created_at),\n\t\tupdatedAt: epochSecondsFromIso(input.thread.updated_at),\n\t\tstatus: { type: \"idle\" },\n\t\tpath: input.thread.rollout_path ?? null,\n\t\tcwd: input.thread.cwd,\n\t\tcliVersion: input.thread.cli_version ?? \"\",\n\t\tsource: sessionSourceFromStoredThread(input.thread.source),\n\t\tthreadSource: threadSourceFromStoredThread(input.thread.thread_source),\n\t\tagentNickname: input.thread.agent_nickname ?? null,\n\t\tagentRole: input.thread.agent_role ?? null,\n\t\tgitInfo: gitInfoFromStoredThread(input.thread.git_info),\n\t\tname: input.thread.name ?? null,\n\t\tturns: rendered.turns.map(appServerTurnFromCoreTurn),\n\t};\n}\n\nexport function renderableHistoryFromAppServerThread(\n\tthread: Thread,\n): StoredThreadHistory {\n\treturn {\n\t\tthread_id: thread.id as ThreadId,\n\t\titems: thread.turns.flatMap((turn) => {\n\t\t\tconst items = [\n\t\t\t\t{\n\t\t\t\t\ttype: \"event_msg\" as const,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\ttype: \"turn_started\" as const,\n\t\t\t\t\t\tturn_id: turn.id,\n\t\t\t\t\t\tstarted_at:\n\t\t\t\t\t\t\ttypeof turn.startedAt === \"number\"\n\t\t\t\t\t\t\t\t? turn.startedAt * 1000\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...turn.items\n\t\t\t\t\t.map((item) => rolloutItemFromThreadItem(item, turn.id))\n\t\t\t\t\t.filter((item) => item !== null),\n\t\t\t];\n\t\t\tif (turn.status === \"inProgress\") {\n\t\t\t\treturn items;\n\t\t\t}\n\t\t\treturn [\n\t\t\t\t...items,\n\t\t\t\t{\n\t\t\t\t\ttype: \"event_msg\" as const,\n\t\t\t\t\tpayload:\n\t\t\t\t\t\tturn.status === \"interrupted\"\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttype: \"turn_aborted\" as const,\n\t\t\t\t\t\t\t\t\tturn_id: turn.id,\n\t\t\t\t\t\t\t\t\treason: \"interrupted\",\n\t\t\t\t\t\t\t\t\tcompleted_at:\n\t\t\t\t\t\t\t\t\t\ttypeof turn.completedAt === \"number\"\n\t\t\t\t\t\t\t\t\t\t\t? turn.completedAt * 1000\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tduration_ms: turn.durationMs,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\ttype: \"turn_complete\" as const,\n\t\t\t\t\t\t\t\t\tturn_id: turn.id,\n\t\t\t\t\t\t\t\t\tcompleted_at:\n\t\t\t\t\t\t\t\t\t\ttypeof turn.completedAt === \"number\"\n\t\t\t\t\t\t\t\t\t\t\t? turn.completedAt * 1000\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\tduration_ms: turn.durationMs,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\t\t}),\n\t};\n}\n\nexport function appServerTurnFromCoreTurn(turn: CoreTurn): Turn {\n\treturn {\n\t\tid: turn.id,\n\t\titems: turn.items\n\t\t\t.map(coreTurnItemToThreadItem)\n\t\t\t.filter((item): item is ThreadItem => item !== null),\n\t\titemsView: turn.items_view === \"not_loaded\" ? \"notLoaded\" : turn.items_view,\n\t\tstatus: coreTurnStatusToAppServer(turn.status),\n\t\terror: turn.error\n\t\t\t? {\n\t\t\t\t\tmessage: turn.error.message,\n\t\t\t\t\tcodexErrorInfo: (turn.error.codex_error_info ?? null) as never,\n\t\t\t\t\tadditionalDetails: turn.error.additional_details ?? null,\n\t\t\t\t}\n\t\t\t: null,\n\t\tstartedAt: epochSeconds(turn.started_at),\n\t\tcompletedAt: epochSeconds(turn.completed_at),\n\t\tdurationMs: turn.duration_ms,\n\t};\n}\n\nfunction rolloutItemFromThreadItem(item: ThreadItem, turnId: string) {\n\tconst coreItem = coreTurnItemFromThreadItem(item);\n\tif (!coreItem) {\n\t\treturn null;\n\t}\n\treturn {\n\t\ttype: \"event_msg\" as const,\n\t\tpayload: {\n\t\t\ttype: \"item_completed\" as const,\n\t\t\tturn_id: turnId,\n\t\t\titem: coreItem,\n\t\t},\n\t};\n}\n\nfunction coreTurnItemFromThreadItem(item: ThreadItem): CoreTurnItem | null {\n\tswitch (item.type) {\n\t\tcase \"userMessage\":\n\t\t\treturn {\n\t\t\t\ttype: \"UserMessage\",\n\t\t\t\tid: item.id,\n\t\t\t\tcontent: item.content.map((input) => {\n\t\t\t\t\tif (input.type === \"image\") {\n\t\t\t\t\t\treturn { type: \"image\", image_url: input.url };\n\t\t\t\t\t}\n\t\t\t\t\tif (input.type === \"localImage\") {\n\t\t\t\t\t\treturn { type: \"local_image\", path: input.path };\n\t\t\t\t\t}\n\t\t\t\t\tif (input.type !== \"text\") {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: input.name,\n\t\t\t\t\t\t\ttext_elements: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: input.text,\n\t\t\t\t\t\ttext_elements: input.text_elements.map((element) => ({\n\t\t\t\t\t\t\tbyte_range: element.byteRange,\n\t\t\t\t\t\t\tplaceholder: element.placeholder ?? undefined,\n\t\t\t\t\t\t})),\n\t\t\t\t\t};\n\t\t\t\t}) as CoreUserInput[],\n\t\t\t};\n\t\tcase \"agentMessage\":\n\t\t\treturn {\n\t\t\t\ttype: \"AgentMessage\",\n\t\t\t\tid: item.id,\n\t\t\t\tcontent: [{ type: \"Text\", text: item.text }],\n\t\t\t\tphase: item.phase,\n\t\t\t\tmemory_citation: item.memoryCitation\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tentries: item.memoryCitation.entries,\n\t\t\t\t\t\t\trolloutIds: item.memoryCitation.threadIds,\n\t\t\t\t\t\t}\n\t\t\t\t\t: null,\n\t\t\t};\n\t\tcase \"plan\":\n\t\t\treturn { type: \"Plan\", id: item.id, text: item.text };\n\t\tcase \"reasoning\":\n\t\t\treturn {\n\t\t\t\ttype: \"Reasoning\",\n\t\t\t\tid: item.id,\n\t\t\t\tsummary_text: item.summary,\n\t\t\t\traw_content: item.content,\n\t\t\t};\n\t\tcase \"webSearch\":\n\t\t\treturn {\n\t\t\t\ttype: \"WebSearch\",\n\t\t\t\tid: item.id,\n\t\t\t\tquery: item.query,\n\t\t\t\taction: coreWebSearchActionFromAppServer(item.action),\n\t\t\t};\n\t\tcase \"commandExecution\":\n\t\t\treturn {\n\t\t\t\ttype: \"CommandExecution\",\n\t\t\t\tid: item.id,\n\t\t\t\tcommand: [item.command],\n\t\t\t\tcwd: item.cwd,\n\t\t\t\tstatus: coreCommandStatusFromAppServer(item.status),\n\t\t\t\tstdout: item.aggregatedOutput ?? \"\",\n\t\t\t\texit_code: item.exitCode,\n\t\t\t\tduration_ms: item.durationMs,\n\t\t\t};\n\t\tcase \"fileChange\":\n\t\t\treturn {\n\t\t\t\ttype: \"FileChange\",\n\t\t\t\tid: item.id,\n\t\t\t\tchanges: {},\n\t\t\t\tstatus:\n\t\t\t\t\titem.status === \"completed\" ||\n\t\t\t\t\titem.status === \"failed\" ||\n\t\t\t\t\titem.status === \"declined\"\n\t\t\t\t\t\t? item.status\n\t\t\t\t\t\t: null,\n\t\t\t\tauto_approved: false,\n\t\t\t\tstdout: \"\",\n\t\t\t\tstderr: \"\",\n\t\t\t};\n\t\tcase \"dynamicToolCall\":\n\t\t\treturn {\n\t\t\t\ttype: \"DynamicToolCall\",\n\t\t\t\tid: item.id,\n\t\t\t\tnamespace: item.namespace,\n\t\t\t\ttool: item.tool,\n\t\t\t\targuments: item.arguments,\n\t\t\t\tstatus: item.status,\n\t\t\t\tcontent_items: item.contentItems ?? [],\n\t\t\t\tsuccess: item.success,\n\t\t\t\tduration: item.durationMs === null ? null : String(item.durationMs),\n\t\t\t};\n\t\tcase \"contextCompaction\":\n\t\t\treturn { type: \"ContextCompaction\", id: item.id };\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nfunction coreWebSearchActionFromAppServer(\n\taction: Extract<ThreadItem, { type: \"webSearch\" }>[\"action\"],\n): CoreTurnItem extends infer T\n\t? T extends { type: \"WebSearch\"; action: infer A }\n\t\t? A\n\t\t: never\n\t: never {\n\tif (!action) {\n\t\treturn { type: \"other\" } as never;\n\t}\n\tswitch (action.type) {\n\t\tcase \"search\":\n\t\t\treturn {\n\t\t\t\ttype: \"search\",\n\t\t\t\t...(action.query ? { query: action.query } : {}),\n\t\t\t\t...(action.queries ? { queries: action.queries } : {}),\n\t\t\t} as never;\n\t\tcase \"openPage\":\n\t\t\treturn {\n\t\t\t\ttype: \"open_page\",\n\t\t\t\t...(action.url ? { url: action.url } : {}),\n\t\t\t} as never;\n\t\tcase \"findInPage\":\n\t\t\treturn {\n\t\t\t\ttype: \"find_in_page\",\n\t\t\t\t...(action.url ? { url: action.url } : {}),\n\t\t\t\t...(action.pattern ? { pattern: action.pattern } : {}),\n\t\t\t} as never;\n\t\tcase \"other\":\n\t\t\treturn { type: \"other\" } as never;\n\t}\n}\n\nfunction coreTurnStatusToAppServer(status: CoreTurn[\"status\"]): Turn[\"status\"] {\n\tif (status === \"in_progress\") {\n\t\treturn \"inProgress\";\n\t}\n\treturn status;\n}\n\nfunction coreCommandStatusFromAppServer(status: Extract<ThreadItem, { type: \"commandExecution\" }>[\"status\"]) {\n\tif (status === \"declined\") {\n\t\treturn \"failed\";\n\t}\n\treturn status === \"inProgress\" ? \"in_progress\" : status;\n}\n\nfunction epochSeconds(value: number | null | undefined): number | null {\n\treturn typeof value === \"number\" ? value / 1000 : null;\n}\n\nfunction epochSecondsFromIso(value: string): number {\n\tconst parsed = Date.parse(value);\n\treturn Number.isFinite(parsed) ? Math.floor(parsed / 1000) : 0;\n}\n\nfunction sessionSourceFromStoredThread(source: string): Thread[\"source\"] {\n\tif (source === \"cli\" || source === \"vscode\" || source === \"exec\" || source === \"unknown\") {\n\t\treturn source;\n\t}\n\tif (source === \"appServer\" || source === \"app-server\") {\n\t\treturn \"appServer\";\n\t}\n\treturn { custom: source };\n}\n\nfunction threadSourceFromStoredThread(source: string | null | undefined): Thread[\"threadSource\"] {\n\tif (source === \"user\" || source === \"subagent\" || source === \"memory_consolidation\") {\n\t\treturn source;\n\t}\n\treturn null;\n}\n\nfunction gitInfoFromStoredThread(gitInfo: unknown): Thread[\"gitInfo\"] {\n\tif (!gitInfo || typeof gitInfo !== \"object\") {\n\t\treturn null;\n\t}\n\tconst value = gitInfo as Record<string, unknown>;\n\treturn {\n\t\tsha: typeof value.sha === \"string\" ? value.sha : typeof value.commit_hash === \"string\" ? value.commit_hash : null,\n\t\tbranch: typeof value.branch === \"string\" ? value.branch : null,\n\t\toriginUrl:\n\t\t\ttypeof value.originUrl === \"string\"\n\t\t\t\t? value.originUrl\n\t\t\t\t: typeof value.repository_url === \"string\"\n\t\t\t\t\t? value.repository_url\n\t\t\t\t\t: null,\n\t};\n}\n\nfunction approvalPolicyFromStoredThread(thread: StoredThread): ThreadResumeResponse[\"approvalPolicy\"] {\n\tif (\n\t\tthread.approval_mode === \"untrusted\" ||\n\t\tthread.approval_mode === \"on-failure\" ||\n\t\tthread.approval_mode === \"on-request\" ||\n\t\tthread.approval_mode === \"never\"\n\t) {\n\t\treturn thread.approval_mode;\n\t}\n\treturn \"on-request\";\n}\n\nfunction sandboxPolicyFromStoredThread(thread: StoredThread): ThreadResumeResponse[\"sandbox\"] {\n\tif (thread.sandbox_policy && typeof thread.sandbox_policy === \"object\") {\n\t\treturn thread.sandbox_policy as ThreadResumeResponse[\"sandbox\"];\n\t}\n\tif (thread.sandbox_policy === \"read-only\") {\n\t\treturn { type: \"readOnly\", networkAccess: false };\n\t}\n\treturn { type: \"dangerFullAccess\" };\n}\n\nfunction reasoningEffortFromStoredThread(\n\tthread: StoredThread,\n): ThreadResumeResponse[\"reasoningEffort\"] {\n\tif (\n\t\tthread.reasoning_effort === \"none\" ||\n\t\tthread.reasoning_effort === \"minimal\" ||\n\t\tthread.reasoning_effort === \"low\" ||\n\t\tthread.reasoning_effort === \"medium\" ||\n\t\tthread.reasoning_effort === \"high\" ||\n\t\tthread.reasoning_effort === \"xhigh\"\n\t) {\n\t\treturn thread.reasoning_effort;\n\t}\n\treturn null;\n}\n","import type {\n\tClientRequest,\n\tRequestId,\n} from \"../../schema/typescript\";\n\nexport type ClientRequestSerializationScope =\n\t| { key: string; type: \"global\" }\n\t| { threadId: string; type: \"thread\" }\n\t| { path: string; type: \"threadPath\" }\n\t| { processId: string; type: \"commandExecProcess\" }\n\t| { processHandle: string; type: \"process\" }\n\t| { sessionId: string; type: \"fuzzyFileSearchSession\" }\n\t| { watchId: string; type: \"fsWatch\" }\n\t| { serverName: string; type: \"mcpOauth\" };\n\nexport function clientRequestId(request: ClientRequest): RequestId {\n\treturn request.id;\n}\n\nexport function clientRequestMethod(request: ClientRequest): string {\n\treturn request.method;\n}\n\nexport function clientRequestExperimentalReason(\n\trequest: ClientRequest | { method: string; params?: unknown },\n): string | null {\n\treturn (\n\t\tEXPERIMENTAL_METHOD_REASONS[request.method] ??\n\t\tclientRequestParamExperimentalReason(request.method, objectParams(request.params))\n\t);\n}\n\nexport function clientRequestSerializationScope(\n\trequest: ClientRequest | { method: string; params?: unknown },\n): ClientRequestSerializationScope | null {\n\tconst params = objectParams(request.params);\n\tswitch (request.method) {\n\t\tcase \"thread/resume\":\n\t\tcase \"thread/fork\":\n\t\t\treturn threadOrPathScope(params, \"threadId\", \"path\");\n\t\tcase \"thread/archive\":\n\t\tcase \"thread/unsubscribe\":\n\t\tcase \"thread/increment_elicitation\":\n\t\tcase \"thread/decrement_elicitation\":\n\t\tcase \"thread/name/set\":\n\t\tcase \"thread/goal/set\":\n\t\tcase \"thread/goal/get\":\n\t\tcase \"thread/goal/clear\":\n\t\tcase \"thread/metadata/update\":\n\t\tcase \"thread/memoryMode/set\":\n\t\tcase \"thread/unarchive\":\n\t\tcase \"thread/compact/start\":\n\t\tcase \"thread/shellCommand\":\n\t\tcase \"thread/approveGuardianDeniedAction\":\n\t\tcase \"thread/backgroundTerminals/clean\":\n\t\tcase \"thread/rollback\":\n\t\tcase \"thread/read\":\n\t\tcase \"thread/inject_items\":\n\t\tcase \"turn/start\":\n\t\tcase \"turn/steer\":\n\t\tcase \"turn/interrupt\":\n\t\tcase \"thread/realtime/start\":\n\t\tcase \"thread/realtime/appendAudio\":\n\t\tcase \"thread/realtime/appendText\":\n\t\tcase \"thread/realtime/stop\":\n\t\tcase \"review/start\":\n\t\tcase \"mcpServer/tool/call\":\n\t\t\treturn threadScope(params, \"threadId\", \"thread_id\");\n\t\tcase \"memory/reset\":\n\t\t\treturn globalScope(\"memory\");\n\t\tcase \"skills/list\":\n\t\tcase \"hooks/list\":\n\t\tcase \"marketplace/add\":\n\t\tcase \"marketplace/remove\":\n\t\tcase \"marketplace/upgrade\":\n\t\tcase \"plugin/list\":\n\t\tcase \"plugin/read\":\n\t\tcase \"plugin/skill/read\":\n\t\tcase \"plugin/share/save\":\n\t\tcase \"plugin/share/updateTargets\":\n\t\tcase \"plugin/share/list\":\n\t\tcase \"plugin/share/delete\":\n\t\tcase \"skills/config/write\":\n\t\tcase \"plugin/install\":\n\t\tcase \"plugin/uninstall\":\n\t\tcase \"experimentalFeature/list\":\n\t\tcase \"experimentalFeature/enablement/set\":\n\t\tcase \"windowsSandbox/readiness\":\n\t\tcase \"config/read\":\n\t\tcase \"externalAgentConfig/detect\":\n\t\tcase \"externalAgentConfig/import\":\n\t\tcase \"config/value/write\":\n\t\tcase \"config/batchWrite\":\n\t\tcase \"configRequirements/read\":\n\t\t\treturn globalScope(\"config\");\n\t\tcase \"device/key/create\":\n\t\tcase \"device/key/public\":\n\t\tcase \"device/key/sign\":\n\t\t\treturn globalScope(\"device-key\");\n\t\tcase \"mcpServer/oauth/login\":\n\t\t\treturn mcpOauthScope(params, \"name\");\n\t\tcase \"config/mcpServer/reload\":\n\t\tcase \"mcpServerStatus/list\":\n\t\t\treturn globalScope(\"mcp-registry\");\n\t\tcase \"mcpServer/resource/read\":\n\t\t\treturn optionalThreadScope(params, \"threadId\", \"thread_id\");\n\t\tcase \"windowsSandbox/setupStart\":\n\t\t\treturn globalScope(\"windows-sandbox-setup\");\n\t\tcase \"account/login/start\":\n\t\tcase \"account/login/cancel\":\n\t\tcase \"account/logout\":\n\t\tcase \"account/sendAddCreditsNudgeEmail\":\n\t\tcase \"account/read\":\n\t\tcase \"getAuthStatus\":\n\t\t\treturn globalScope(\"account-auth\");\n\t\tcase \"command/exec\":\n\t\t\treturn optionalCommandExecProcessScope(params, \"processId\", \"process_id\");\n\t\tcase \"command/exec/write\":\n\t\tcase \"command/exec/terminate\":\n\t\tcase \"command/exec/resize\":\n\t\t\treturn commandExecProcessScope(params, \"processId\", \"process_id\");\n\t\tcase \"process/spawn\":\n\t\tcase \"process/writeStdin\":\n\t\tcase \"process/kill\":\n\t\tcase \"process/resizePty\":\n\t\t\treturn processHandleScope(params, \"processHandle\", \"process_handle\");\n\t\tcase \"fuzzyFileSearch/sessionStart\":\n\t\tcase \"fuzzyFileSearch/sessionUpdate\":\n\t\tcase \"fuzzyFileSearch/sessionStop\":\n\t\t\treturn fuzzySessionScope(params, \"sessionId\", \"session_id\");\n\t\tcase \"fs/watch\":\n\t\tcase \"fs/unwatch\":\n\t\t\treturn fsWatchScope(params, \"watchId\", \"watch_id\");\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nconst EXPERIMENTAL_METHOD_REASONS: Record<string, string> = {\n\t\"collaborationMode/list\": \"collaborationMode/list\",\n\t\"fuzzyFileSearch/sessionStart\": \"fuzzyFileSearch/sessionStart\",\n\t\"fuzzyFileSearch/sessionStop\": \"fuzzyFileSearch/sessionStop\",\n\t\"fuzzyFileSearch/sessionUpdate\": \"fuzzyFileSearch/sessionUpdate\",\n\t\"memory/reset\": \"memory/reset\",\n\t\"mock/experimentalMethod\": \"mock/experimentalMethod\",\n\t\"process/kill\": \"process/kill\",\n\t\"process/resizePty\": \"process/resizePty\",\n\t\"process/spawn\": \"process/spawn\",\n\t\"process/writeStdin\": \"process/writeStdin\",\n\t\"thread/backgroundTerminals/clean\": \"thread/backgroundTerminals/clean\",\n\t\"thread/decrement_elicitation\": \"thread/decrement_elicitation\",\n\t\"thread/goal/clear\": \"thread/goal/clear\",\n\t\"thread/goal/get\": \"thread/goal/get\",\n\t\"thread/goal/set\": \"thread/goal/set\",\n\t\"thread/increment_elicitation\": \"thread/increment_elicitation\",\n\t\"thread/memoryMode/set\": \"thread/memoryMode/set\",\n\t\"thread/realtime/appendAudio\": \"thread/realtime/appendAudio\",\n\t\"thread/realtime/appendText\": \"thread/realtime/appendText\",\n\t\"thread/realtime/listVoices\": \"thread/realtime/listVoices\",\n\t\"thread/realtime/start\": \"thread/realtime/start\",\n\t\"thread/realtime/stop\": \"thread/realtime/stop\",\n\t\"thread/turns/list\": \"thread/turns/list\",\n};\n\nfunction clientRequestParamExperimentalReason(\n\tmethod: string,\n\tparams: Record<string, unknown>,\n): string | null {\n\tswitch (method) {\n\t\tcase \"thread/start\":\n\t\t\treturn (\n\t\t\t\tgranularApprovalReason(params) ??\n\t\t\t\tpresentFieldReason(params, \"thread/start.permissions\", \"permissions\") ??\n\t\t\t\tpresentFieldReason(params, \"thread/start.environments\", \"environments\") ??\n\t\t\t\tpresentFieldReason(params, \"thread/start.dynamicTools\", \"dynamicTools\", \"dynamic_tools\") ??\n\t\t\t\tpresentFieldReason(params, \"thread/start.mockExperimentalField\", \"mockExperimentalField\", \"mock_experimental_field\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/start.experimentalRawEvents\", \"experimentalRawEvents\", \"experimental_raw_events\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/start.persistFullHistory\", \"persistExtendedHistory\", \"persist_extended_history\")\n\t\t\t);\n\t\tcase \"thread/resume\":\n\t\t\treturn (\n\t\t\t\tpresentFieldReason(params, \"thread/resume.history\", \"history\") ??\n\t\t\t\tpresentFieldReason(params, \"thread/resume.path\", \"path\") ??\n\t\t\t\tgranularApprovalReason(params) ??\n\t\t\t\tpresentFieldReason(params, \"thread/resume.permissions\", \"permissions\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/resume.excludeTurns\", \"excludeTurns\", \"exclude_turns\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/resume.persistFullHistory\", \"persistExtendedHistory\", \"persist_extended_history\")\n\t\t\t);\n\t\tcase \"thread/fork\":\n\t\t\treturn (\n\t\t\t\tpresentFieldReason(params, \"thread/fork.path\", \"path\") ??\n\t\t\t\tgranularApprovalReason(params) ??\n\t\t\t\tpresentFieldReason(params, \"thread/fork.permissions\", \"permissions\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/fork.excludeTurns\", \"excludeTurns\", \"exclude_turns\") ??\n\t\t\t\ttruthyFieldReason(params, \"thread/fork.persistFullHistory\", \"persistExtendedHistory\", \"persist_extended_history\")\n\t\t\t);\n\t\tcase \"turn/start\":\n\t\t\treturn (\n\t\t\t\tpresentFieldReason(params, \"turn/start.responsesapiClientMetadata\", \"responsesapiClientMetadata\", \"responsesapi_client_metadata\") ??\n\t\t\t\tpresentFieldReason(params, \"turn/start.environments\", \"environments\") ??\n\t\t\t\tgranularApprovalReason(params) ??\n\t\t\t\tpresentFieldReason(params, \"turn/start.permissions\", \"permissions\") ??\n\t\t\t\tpresentFieldReason(params, \"turn/start.collaborationMode\", \"collaborationMode\", \"collaboration_mode\")\n\t\t\t);\n\t\tcase \"turn/steer\":\n\t\t\treturn presentFieldReason(params, \"turn/steer.responsesapiClientMetadata\", \"responsesapiClientMetadata\", \"responsesapi_client_metadata\");\n\t\tcase \"command/exec\":\n\t\t\treturn presentFieldReason(params, \"command/exec.permissionProfile\", \"permissionProfile\", \"permission_profile\");\n\t\tcase \"account/login/start\":\n\t\t\treturn params.type === \"chatgptAuthTokens\"\n\t\t\t\t? \"account/login/start.chatgptAuthTokens\"\n\t\t\t\t: null;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nfunction granularApprovalReason(params: Record<string, unknown>): string | null {\n\tconst approvalPolicy = params.approvalPolicy ?? params.approval_policy;\n\treturn isRecord(approvalPolicy) && \"granular\" in approvalPolicy\n\t\t? \"askForApproval.granular\"\n\t\t: null;\n}\n\nfunction presentFieldReason(\n\tparams: Record<string, unknown>,\n\treason: string,\n\t...fields: string[]\n): string | null {\n\tfor (const field of fields) {\n\t\tif (params[field] !== undefined && params[field] !== null) {\n\t\t\treturn reason;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction truthyFieldReason(\n\tparams: Record<string, unknown>,\n\treason: string,\n\t...fields: string[]\n): string | null {\n\tfor (const field of fields) {\n\t\tif (params[field] === true) {\n\t\t\treturn reason;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction objectParams(value: unknown): Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null\n\t\t? (value as Record<string, unknown>)\n\t\t: {};\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null;\n}\n\nfunction globalScope(key: string): ClientRequestSerializationScope {\n\treturn { key, type: \"global\" };\n}\n\nfunction threadScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst threadId = stringField(params, ...fields);\n\treturn threadId ? { threadId, type: \"thread\" } : null;\n}\n\nfunction optionalThreadScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\treturn threadScope(params, ...fields);\n}\n\nfunction threadOrPathScope(\n\tparams: Record<string, unknown>,\n\tthreadField: string,\n\tpathField: string,\n): ClientRequestSerializationScope | null {\n\tconst threadId = stringField(params, threadField);\n\tif (threadId) {\n\t\treturn { threadId, type: \"thread\" };\n\t}\n\tconst path = stringField(params, pathField);\n\tif (path) {\n\t\treturn { path, type: \"threadPath\" };\n\t}\n\treturn threadId === \"\" ? { threadId, type: \"thread\" } : null;\n}\n\nfunction optionalCommandExecProcessScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst processId = stringField(params, ...fields);\n\treturn processId ? { processId, type: \"commandExecProcess\" } : null;\n}\n\nfunction commandExecProcessScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst processId = stringField(params, ...fields);\n\treturn processId ? { processId, type: \"commandExecProcess\" } : null;\n}\n\nfunction processHandleScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst processHandle = stringField(params, ...fields);\n\treturn processHandle ? { processHandle, type: \"process\" } : null;\n}\n\nfunction fuzzySessionScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst sessionId = stringField(params, ...fields);\n\treturn sessionId ? { sessionId, type: \"fuzzyFileSearchSession\" } : null;\n}\n\nfunction fsWatchScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst watchId = stringField(params, ...fields);\n\treturn watchId ? { watchId, type: \"fsWatch\" } : null;\n}\n\nfunction mcpOauthScope(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): ClientRequestSerializationScope | null {\n\tconst serverName = stringField(params, ...fields);\n\treturn serverName ? { serverName, type: \"mcpOauth\" } : null;\n}\n\nfunction stringField(\n\tparams: Record<string, unknown>,\n\t...fields: string[]\n): string | null {\n\tfor (const field of fields) {\n\t\tconst value = params[field];\n\t\tif (typeof value === \"string\") {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn null;\n}\n"]}
@@ -0,0 +1,396 @@
1
+ import { ThreadMemoryMode } from './chunk-CGBS37IU.js';
2
+
3
+ // src/upstream/codex-rs/thread-store/src/in_memory.ts
4
+ var stores = /* @__PURE__ */ new Map();
5
+ var InMemoryThreadStore = class _InMemoryThreadStore {
6
+ state = {
7
+ calls: emptyCalls(),
8
+ createdThreads: /* @__PURE__ */ new Map(),
9
+ histories: /* @__PURE__ */ new Map(),
10
+ rolloutPaths: /* @__PURE__ */ new Map(),
11
+ threads: /* @__PURE__ */ new Map()
12
+ };
13
+ static forId(id) {
14
+ const existing = stores.get(id);
15
+ if (existing) {
16
+ return existing;
17
+ }
18
+ const store = new _InMemoryThreadStore();
19
+ stores.set(id, store);
20
+ return store;
21
+ }
22
+ static removeId(id) {
23
+ const store = stores.get(id) ?? null;
24
+ stores.delete(id);
25
+ return store;
26
+ }
27
+ calls() {
28
+ return { ...this.state.calls };
29
+ }
30
+ snapshot() {
31
+ return {
32
+ createdThreads: Array.from(this.state.createdThreads.entries()),
33
+ histories: Array.from(this.state.histories.entries()).map(
34
+ ([threadId, items]) => [threadId, [...items]]
35
+ ),
36
+ rolloutPaths: Array.from(this.state.rolloutPaths.entries()),
37
+ threads: Array.from(this.state.threads.entries()).map(
38
+ ([threadId, thread]) => [threadId, { ...thread }]
39
+ )
40
+ };
41
+ }
42
+ restoreSnapshot(snapshot) {
43
+ this.state.createdThreads = new Map(snapshot.createdThreads);
44
+ this.state.histories = new Map(
45
+ snapshot.histories.map(([threadId, items]) => [threadId, [...items]])
46
+ );
47
+ this.state.rolloutPaths = new Map(snapshot.rolloutPaths);
48
+ this.state.threads = new Map(
49
+ snapshot.threads.map(([threadId, thread]) => [threadId, { ...thread }])
50
+ );
51
+ }
52
+ async createThread(params) {
53
+ this.state.calls.createThread += 1;
54
+ const now = (/* @__PURE__ */ new Date()).toISOString();
55
+ this.state.createdThreads.set(params.thread_id, params);
56
+ this.state.histories.set(params.thread_id, []);
57
+ this.state.threads.set(params.thread_id, {
58
+ archived_at: null,
59
+ created_at: now,
60
+ cwd: String(params.metadata.cwd ?? "/"),
61
+ forked_from_id: params.forked_from_id ?? null,
62
+ history: null,
63
+ model: stringOrNull(params.metadata.model),
64
+ model_provider: params.metadata.model_provider,
65
+ name: null,
66
+ preview: "",
67
+ reasoning_effort: stringOrNull(params.metadata.reasoning_effort),
68
+ source: params.source,
69
+ thread_id: params.thread_id,
70
+ thread_source: params.thread_source ?? null,
71
+ token_usage: null,
72
+ updated_at: now
73
+ });
74
+ }
75
+ async resumeThread(params) {
76
+ this.state.calls.resumeThread += 1;
77
+ if (!this.state.threads.has(params.thread_id)) {
78
+ const now = (/* @__PURE__ */ new Date()).toISOString();
79
+ this.state.threads.set(params.thread_id, {
80
+ archived_at: null,
81
+ created_at: now,
82
+ cwd: String(params.metadata.cwd ?? "/"),
83
+ history: null,
84
+ model: stringOrNull(params.metadata.model),
85
+ model_provider: params.metadata.model_provider,
86
+ preview: "",
87
+ source: "appServer",
88
+ thread_id: params.thread_id,
89
+ token_usage: lastTokenInfoFromRolloutItems(params.history ?? []),
90
+ updated_at: now
91
+ });
92
+ }
93
+ this.state.histories.set(
94
+ params.thread_id,
95
+ [...params.history ?? this.state.histories.get(params.thread_id) ?? []]
96
+ );
97
+ this.updateThreadTokenUsage(
98
+ params.thread_id,
99
+ params.history ?? this.state.histories.get(params.thread_id) ?? []
100
+ );
101
+ if (params.rollout_path) {
102
+ this.state.rolloutPaths.set(params.rollout_path, params.thread_id);
103
+ }
104
+ }
105
+ async appendItems(params) {
106
+ this.state.calls.appendItems += 1;
107
+ this.history(params.thread_id).push(...params.items);
108
+ this.updateThreadTokenUsage(params.thread_id, params.items);
109
+ this.touch(params.thread_id);
110
+ }
111
+ async persistThread(threadId) {
112
+ this.state.calls.persistThread += 1;
113
+ }
114
+ async flushThread(threadId) {
115
+ this.state.calls.flushThread += 1;
116
+ }
117
+ async shutdownThread(threadId) {
118
+ this.state.calls.shutdownThread += 1;
119
+ }
120
+ async discardThread(threadId) {
121
+ this.state.calls.discardThread += 1;
122
+ }
123
+ async loadHistory(params) {
124
+ this.state.calls.loadHistory += 1;
125
+ return {
126
+ items: [...this.history(params.thread_id)],
127
+ thread_id: params.thread_id
128
+ };
129
+ }
130
+ async readThread(params) {
131
+ this.state.calls.readThread += 1;
132
+ return this.storedThread(params.thread_id, params.include_history);
133
+ }
134
+ async readThreadByRolloutPath(params) {
135
+ this.state.calls.readThreadByRolloutPath += 1;
136
+ const threadId = this.state.rolloutPaths.get(params.rollout_path);
137
+ if (!threadId) {
138
+ throw new Error(`Unknown rollout path: ${params.rollout_path}`);
139
+ }
140
+ return this.storedThread(threadId, params.include_history);
141
+ }
142
+ async listThreads(params) {
143
+ this.state.calls.listThreads += 1;
144
+ const items = Array.from(this.state.threads.values()).filter((thread) => params.archived || !thread.archived_at).sort(
145
+ (left, right) => params.sort_direction === "Asc" ? left.created_at.localeCompare(right.created_at) : right.created_at.localeCompare(left.created_at)
146
+ ).slice(0, params.page_size).map((thread) => ({ ...thread, history: null }));
147
+ return { items, next_cursor: null };
148
+ }
149
+ async updateThreadMetadata(params) {
150
+ this.state.calls.updateThreadMetadata += 1;
151
+ const thread = this.storedThread(params.thread_id, false);
152
+ const next = {
153
+ ...thread,
154
+ name: params.patch.name ?? thread.name,
155
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
156
+ };
157
+ if (params.patch.memory_mode === ThreadMemoryMode.Enabled) {
158
+ next.preview = thread.preview;
159
+ }
160
+ this.state.threads.set(params.thread_id, next);
161
+ return { ...next };
162
+ }
163
+ async archiveThread(params) {
164
+ this.state.calls.archiveThread += 1;
165
+ const thread = this.storedThread(params.thread_id, false);
166
+ this.state.threads.set(params.thread_id, {
167
+ ...thread,
168
+ archived_at: (/* @__PURE__ */ new Date()).toISOString()
169
+ });
170
+ }
171
+ async unarchiveThread(params) {
172
+ this.state.calls.unarchiveThread += 1;
173
+ const thread = this.storedThread(params.thread_id, false);
174
+ const next = { ...thread, archived_at: null };
175
+ this.state.threads.set(params.thread_id, next);
176
+ return next;
177
+ }
178
+ history(threadId) {
179
+ const history = this.state.histories.get(threadId);
180
+ if (!history) {
181
+ throw new Error(`Thread not found: ${threadId}`);
182
+ }
183
+ return history;
184
+ }
185
+ storedThread(threadId, includeHistory) {
186
+ const thread = this.state.threads.get(threadId);
187
+ if (!thread) {
188
+ throw new Error(`Thread not found: ${threadId}`);
189
+ }
190
+ return {
191
+ ...thread,
192
+ history: includeHistory ? { items: [...this.history(threadId)], thread_id: threadId } : null
193
+ };
194
+ }
195
+ touch(threadId) {
196
+ const thread = this.state.threads.get(threadId);
197
+ if (thread) {
198
+ this.state.threads.set(threadId, {
199
+ ...thread,
200
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
201
+ });
202
+ }
203
+ }
204
+ updateThreadTokenUsage(threadId, items) {
205
+ const info = lastTokenInfoFromRolloutItems(items);
206
+ if (!info) {
207
+ return;
208
+ }
209
+ const thread = this.state.threads.get(threadId);
210
+ if (!thread) {
211
+ return;
212
+ }
213
+ this.state.threads.set(threadId, {
214
+ ...thread,
215
+ token_usage: info
216
+ });
217
+ }
218
+ };
219
+ function emptyCalls() {
220
+ return {
221
+ archiveThread: 0,
222
+ appendItems: 0,
223
+ createThread: 0,
224
+ discardThread: 0,
225
+ flushThread: 0,
226
+ listThreads: 0,
227
+ loadHistory: 0,
228
+ persistThread: 0,
229
+ readThread: 0,
230
+ readThreadByRolloutPath: 0,
231
+ resumeThread: 0,
232
+ shutdownThread: 0,
233
+ unarchiveThread: 0,
234
+ updateThreadMetadata: 0
235
+ };
236
+ }
237
+ function stringOrNull(value) {
238
+ return typeof value === "string" ? value : null;
239
+ }
240
+ function lastTokenInfoFromRolloutItems(items) {
241
+ for (let index = items.length - 1; index >= 0; index -= 1) {
242
+ const item = items[index];
243
+ if (item?.type === "event_msg" && item.payload.type === "token_count" && item.payload.info) {
244
+ return item.payload.info;
245
+ }
246
+ }
247
+ return null;
248
+ }
249
+
250
+ // src/upstream/codex-rs/thread-store/src/local/mod.ts
251
+ var LocalThreadStore = class extends InMemoryThreadStore {
252
+ constructor(config) {
253
+ super();
254
+ this.config = config;
255
+ }
256
+ config;
257
+ stateDb() {
258
+ return null;
259
+ }
260
+ async createThread(params) {
261
+ await this.load();
262
+ await super.createThread(params);
263
+ this.attachRolloutPath(params.thread_id);
264
+ await this.save();
265
+ }
266
+ async resumeThread(params) {
267
+ await this.load();
268
+ await super.resumeThread({
269
+ ...params,
270
+ rollout_path: params.rollout_path ?? this.rolloutPath(params.thread_id)
271
+ });
272
+ this.attachRolloutPath(params.thread_id, params.rollout_path ?? void 0);
273
+ await this.save();
274
+ }
275
+ async appendItems(params) {
276
+ await this.load();
277
+ await super.appendItems(params);
278
+ await this.save();
279
+ }
280
+ async persistThread(threadId) {
281
+ await this.load();
282
+ await super.persistThread(threadId);
283
+ await this.save();
284
+ }
285
+ async flushThread(threadId) {
286
+ await this.load();
287
+ await super.flushThread(threadId);
288
+ await this.save();
289
+ }
290
+ async shutdownThread(threadId) {
291
+ await this.load();
292
+ await super.shutdownThread(threadId);
293
+ await this.save();
294
+ }
295
+ async discardThread(threadId) {
296
+ await this.load();
297
+ await super.discardThread(threadId);
298
+ await this.save();
299
+ }
300
+ async loadHistory(params) {
301
+ await this.load();
302
+ return super.loadHistory(params);
303
+ }
304
+ async readThread(params) {
305
+ await this.load();
306
+ return super.readThread(params);
307
+ }
308
+ async readThreadByRolloutPath(params) {
309
+ await this.load();
310
+ return super.readThreadByRolloutPath(params);
311
+ }
312
+ async listThreads(params) {
313
+ await this.load();
314
+ return super.listThreads(params);
315
+ }
316
+ async updateThreadMetadata(params) {
317
+ await this.load();
318
+ const thread = await super.updateThreadMetadata(params);
319
+ await this.save();
320
+ return thread;
321
+ }
322
+ async archiveThread(params) {
323
+ await this.load();
324
+ await super.archiveThread(params);
325
+ await this.save();
326
+ }
327
+ async unarchiveThread(params) {
328
+ await this.load();
329
+ const thread = await super.unarchiveThread(params);
330
+ await this.save();
331
+ return thread;
332
+ }
333
+ liveRolloutPath(threadId) {
334
+ return this.rolloutPath(threadId);
335
+ }
336
+ attachRolloutPath(threadId, rolloutPath) {
337
+ const snapshot = this.snapshot();
338
+ const path = rolloutPath ?? this.rolloutPath(threadId);
339
+ const threads = snapshot.threads.map(
340
+ ([candidateThreadId, thread]) => [
341
+ candidateThreadId,
342
+ candidateThreadId === threadId ? { ...thread, rollout_path: path } : thread
343
+ ]
344
+ );
345
+ const rolloutPaths = new Map(snapshot.rolloutPaths);
346
+ rolloutPaths.set(path, threadId);
347
+ this.restoreSnapshot({
348
+ ...snapshot,
349
+ rolloutPaths: Array.from(rolloutPaths.entries()),
350
+ threads
351
+ });
352
+ }
353
+ async load() {
354
+ try {
355
+ const { readFile } = await nodeFsPromises();
356
+ const raw = await readFile(this.storePath(), "utf8");
357
+ const data = JSON.parse(raw);
358
+ this.restoreSnapshot(data);
359
+ } catch (error) {
360
+ if (error.code === "ENOENT") {
361
+ return;
362
+ }
363
+ throw error;
364
+ }
365
+ }
366
+ async save() {
367
+ const { mkdir, writeFile } = await nodeFsPromises();
368
+ const path = this.storePath();
369
+ await mkdir(dirname(path), { recursive: true });
370
+ const data = {
371
+ version: 1,
372
+ ...this.snapshot()
373
+ };
374
+ await writeFile(path, `${JSON.stringify(data, null, 2)}
375
+ `, "utf8");
376
+ }
377
+ rolloutPath(threadId) {
378
+ return `${this.config.codex_home.replace(/\/+$/, "")}/sessions/${threadId}.jsonl`;
379
+ }
380
+ storePath() {
381
+ return `${this.config.codex_home.replace(/\/+$/, "")}/thread-store/store.json`;
382
+ }
383
+ };
384
+ async function nodeFsPromises() {
385
+ const moduleName = "node:fs/promises";
386
+ return import(moduleName);
387
+ }
388
+ function dirname(path) {
389
+ const normalized = path.replace(/\/+$/, "");
390
+ const separatorIndex = normalized.lastIndexOf("/");
391
+ return separatorIndex <= 0 ? "/" : normalized.slice(0, separatorIndex);
392
+ }
393
+
394
+ export { InMemoryThreadStore, LocalThreadStore };
395
+ //# sourceMappingURL=chunk-4DPLJPB5.js.map
396
+ //# sourceMappingURL=chunk-4DPLJPB5.js.map