@getpaseo/server 0.1.30 → 0.1.32

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 (498) hide show
  1. package/dist/scripts/daemon-runner.js +1 -1
  2. package/dist/scripts/daemon-runner.js.map +1 -1
  3. package/dist/scripts/dev-runner.js +1 -1
  4. package/dist/scripts/dev-runner.js.map +1 -1
  5. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -1
  6. package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -1
  7. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -1
  8. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -1
  9. package/dist/server/client/daemon-client.d.ts +108 -103
  10. package/dist/server/client/daemon-client.d.ts.map +1 -1
  11. package/dist/server/client/daemon-client.js +417 -407
  12. package/dist/server/client/daemon-client.js.map +1 -1
  13. package/dist/server/server/agent/activity-curator.d.ts.map +1 -1
  14. package/dist/server/server/agent/activity-curator.js +5 -4
  15. package/dist/server/server/agent/activity-curator.js.map +1 -1
  16. package/dist/server/server/agent/agent-management-mcp.d.ts.map +1 -1
  17. package/dist/server/server/agent/agent-management-mcp.js +13 -17
  18. package/dist/server/server/agent/agent-management-mcp.js.map +1 -1
  19. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  20. package/dist/server/server/agent/agent-manager.js +26 -26
  21. package/dist/server/server/agent/agent-manager.js.map +1 -1
  22. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  23. package/dist/server/server/agent/agent-metadata-generator.js +1 -3
  24. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  25. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  26. package/dist/server/server/agent/agent-projections.js +4 -12
  27. package/dist/server/server/agent/agent-projections.js.map +1 -1
  28. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -1
  29. package/dist/server/server/agent/agent-response-loop.js +6 -6
  30. package/dist/server/server/agent/agent-response-loop.js.map +1 -1
  31. package/dist/server/server/agent/agent-sdk-types.d.ts +23 -0
  32. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  33. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  34. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  35. package/dist/server/server/agent/agent-storage.js +2 -4
  36. package/dist/server/server/agent/agent-storage.js.map +1 -1
  37. package/dist/server/server/agent/dictation-debug.d.ts.map +1 -1
  38. package/dist/server/server/agent/dictation-debug.js.map +1 -1
  39. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  40. package/dist/server/server/agent/mcp-server.js +19 -27
  41. package/dist/server/server/agent/mcp-server.js.map +1 -1
  42. package/dist/server/server/agent/pcm16-resampler.d.ts.map +1 -1
  43. package/dist/server/server/agent/pcm16-resampler.js.map +1 -1
  44. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  45. package/dist/server/server/agent/provider-launch-config.js +4 -2
  46. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  47. package/dist/server/server/agent/provider-manifest.d.ts +2 -2
  48. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  49. package/dist/server/server/agent/provider-manifest.js +63 -9
  50. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  51. package/dist/server/server/agent/provider-registry.d.ts +2 -2
  52. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  53. package/dist/server/server/agent/provider-registry.js +1 -1
  54. package/dist/server/server/agent/provider-registry.js.map +1 -1
  55. package/dist/server/server/agent/providers/claude/model-catalog.js +10 -10
  56. package/dist/server/server/agent/providers/claude/model-catalog.js.map +1 -1
  57. package/dist/server/server/agent/providers/claude/partial-json.d.ts.map +1 -1
  58. package/dist/server/server/agent/providers/claude/partial-json.js +4 -4
  59. package/dist/server/server/agent/providers/claude/partial-json.js.map +1 -1
  60. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +20 -0
  61. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -0
  62. package/dist/server/server/agent/providers/claude/sidechain-tracker.js +230 -0
  63. package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -0
  64. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +11 -0
  65. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts.map +1 -1
  66. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js +37 -20
  67. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js.map +1 -1
  68. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts.map +1 -1
  69. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +21 -11
  70. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -1
  71. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -1
  72. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +23 -11
  73. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  74. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/claude-agent.js +486 -1134
  76. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  77. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts.map +1 -1
  78. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +2 -2
  79. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js.map +1 -1
  80. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  81. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +14 -11
  82. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  83. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  84. package/dist/server/server/agent/providers/codex-app-server-agent.js +347 -163
  85. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  86. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -1
  87. package/dist/server/server/agent/providers/codex-rollout-timeline.js +21 -32
  88. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -1
  89. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -1
  90. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +2 -2
  91. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  92. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -1
  93. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +2 -9
  94. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
  95. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  96. package/dist/server/server/agent/providers/opencode-agent.js +5 -5
  97. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  98. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +277 -1
  99. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  100. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +149 -15
  101. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  102. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -1
  103. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +1 -3
  104. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
  105. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  106. package/dist/server/server/agent/stt-manager.js +1 -2
  107. package/dist/server/server/agent/stt-manager.js.map +1 -1
  108. package/dist/server/server/agent/system-prompt.js +5 -5
  109. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -1
  110. package/dist/server/server/agent/timeline-projection.js.map +1 -1
  111. package/dist/server/server/agent/tts-manager.d.ts.map +1 -1
  112. package/dist/server/server/agent/tts-manager.js +27 -9
  113. package/dist/server/server/agent/tts-manager.js.map +1 -1
  114. package/dist/server/server/agent/wait-for-agent-tracker.d.ts.map +1 -1
  115. package/dist/server/server/agent/wait-for-agent-tracker.js.map +1 -1
  116. package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
  117. package/dist/server/server/agent-attention-policy.js.map +1 -1
  118. package/dist/server/server/allowed-hosts.d.ts.map +1 -1
  119. package/dist/server/server/allowed-hosts.js.map +1 -1
  120. package/dist/server/server/bootstrap.d.ts.map +1 -1
  121. package/dist/server/server/bootstrap.js +46 -5
  122. package/dist/server/server/bootstrap.js.map +1 -1
  123. package/dist/server/server/config.d.ts.map +1 -1
  124. package/dist/server/server/config.js +4 -11
  125. package/dist/server/server/config.js.map +1 -1
  126. package/dist/server/server/connection-offer.d.ts +1 -1
  127. package/dist/server/server/connection-offer.d.ts.map +1 -1
  128. package/dist/server/server/connection-offer.js +2 -3
  129. package/dist/server/server/connection-offer.js.map +1 -1
  130. package/dist/server/server/daemon-version.d.ts.map +1 -1
  131. package/dist/server/server/daemon-version.js +1 -1
  132. package/dist/server/server/daemon-version.js.map +1 -1
  133. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  134. package/dist/server/server/dictation/dictation-stream-manager.js +4 -1
  135. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  136. package/dist/server/server/exports.d.ts +1 -1
  137. package/dist/server/server/exports.d.ts.map +1 -1
  138. package/dist/server/server/exports.js +1 -1
  139. package/dist/server/server/exports.js.map +1 -1
  140. package/dist/server/server/file-explorer/service.d.ts +1 -1
  141. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  142. package/dist/server/server/file-explorer/service.js +5 -8
  143. package/dist/server/server/file-explorer/service.js.map +1 -1
  144. package/dist/server/server/index.js +1 -1
  145. package/dist/server/server/index.js.map +1 -1
  146. package/dist/server/server/logger.d.ts.map +1 -1
  147. package/dist/server/server/logger.js.map +1 -1
  148. package/dist/server/server/messages.d.ts.map +1 -1
  149. package/dist/server/server/messages.js.map +1 -1
  150. package/dist/server/server/package-version.d.ts.map +1 -1
  151. package/dist/server/server/package-version.js +1 -2
  152. package/dist/server/server/package-version.js.map +1 -1
  153. package/dist/server/server/persisted-config.d.ts.map +1 -1
  154. package/dist/server/server/persisted-config.js.map +1 -1
  155. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  156. package/dist/server/server/persistence-hooks.js.map +1 -1
  157. package/dist/server/server/pid-lock.d.ts.map +1 -1
  158. package/dist/server/server/pid-lock.js.map +1 -1
  159. package/dist/server/server/push/push-service.d.ts.map +1 -1
  160. package/dist/server/server/push/push-service.js.map +1 -1
  161. package/dist/server/server/relay-transport.d.ts.map +1 -1
  162. package/dist/server/server/relay-transport.js +6 -2
  163. package/dist/server/server/relay-transport.js.map +1 -1
  164. package/dist/server/server/session.d.ts +49 -37
  165. package/dist/server/server/session.d.ts.map +1 -1
  166. package/dist/server/server/session.js +1234 -998
  167. package/dist/server/server/session.js.map +1 -1
  168. package/dist/server/server/speech/audio.d.ts.map +1 -1
  169. package/dist/server/server/speech/audio.js.map +1 -1
  170. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
  171. package/dist/server/server/speech/providers/local/config.js +5 -14
  172. package/dist/server/server/speech/providers/local/config.js.map +1 -1
  173. package/dist/server/server/speech/providers/local/models.d.ts.map +1 -1
  174. package/dist/server/server/speech/providers/local/models.js +1 -1
  175. package/dist/server/server/speech/providers/local/models.js.map +1 -1
  176. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -1
  177. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +21 -7
  178. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
  179. package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -1
  180. package/dist/server/server/speech/providers/local/runtime.js +1 -23
  181. package/dist/server/server/speech/providers/local/runtime.js.map +1 -1
  182. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -1
  183. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
  184. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -1
  185. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  186. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts.map +1 -1
  187. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +9 -4
  188. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js.map +1 -1
  189. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts.map +1 -1
  190. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js +7 -2
  191. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js.map +1 -1
  192. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts.map +1 -1
  193. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +5 -1
  194. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js.map +1 -1
  195. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts.map +1 -1
  196. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +2 -4
  197. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js.map +1 -1
  198. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts.map +1 -1
  199. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +1 -3
  200. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
  201. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts.map +1 -1
  202. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +2 -4
  203. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
  204. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts.map +1 -1
  205. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +4 -1
  206. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
  207. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts.map +1 -1
  208. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +1 -1
  209. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -1
  210. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts.map +1 -1
  211. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -1
  212. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -1
  213. package/dist/server/server/speech/providers/openai/config.js +5 -24
  214. package/dist/server/server/speech/providers/openai/config.js.map +1 -1
  215. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts.map +1 -1
  216. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +6 -3
  217. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js.map +1 -1
  218. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -1
  219. package/dist/server/server/speech/providers/openai/runtime.js +2 -6
  220. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -1
  221. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -1
  222. package/dist/server/server/speech/providers/openai/stt.js +1 -3
  223. package/dist/server/server/speech/providers/openai/stt.js.map +1 -1
  224. package/dist/server/server/speech/providers/openai/tts.d.ts.map +1 -1
  225. package/dist/server/server/speech/providers/openai/tts.js.map +1 -1
  226. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
  227. package/dist/server/server/speech/speech-config-resolver.js +3 -7
  228. package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
  229. package/dist/server/server/speech/speech-provider.d.ts.map +1 -1
  230. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
  231. package/dist/server/server/speech/speech-runtime.js.map +1 -1
  232. package/dist/server/server/speech/turn-detection-provider.d.ts.map +1 -1
  233. package/dist/server/server/terminal-mcp/server.d.ts.map +1 -1
  234. package/dist/server/server/terminal-mcp/server.js +3 -11
  235. package/dist/server/server/terminal-mcp/server.js.map +1 -1
  236. package/dist/server/server/terminal-mcp/terminal-manager.d.ts.map +1 -1
  237. package/dist/server/server/terminal-mcp/terminal-manager.js +2 -14
  238. package/dist/server/server/terminal-mcp/terminal-manager.js.map +1 -1
  239. package/dist/server/server/terminal-mcp/tmux.d.ts +1 -1
  240. package/dist/server/server/terminal-mcp/tmux.d.ts.map +1 -1
  241. package/dist/server/server/terminal-mcp/tmux.js +20 -123
  242. package/dist/server/server/terminal-mcp/tmux.js.map +1 -1
  243. package/dist/server/server/utils/diff-highlighter.d.ts +11 -3
  244. package/dist/server/server/utils/diff-highlighter.d.ts.map +1 -1
  245. package/dist/server/server/utils/diff-highlighter.js +49 -36
  246. package/dist/server/server/utils/diff-highlighter.js.map +1 -1
  247. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.d.ts.map +1 -1
  248. package/dist/server/server/voice/fixed-duration-pcm-ring-buffer.js.map +1 -1
  249. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  250. package/dist/server/server/voice/voice-turn-controller.js +1 -3
  251. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  252. package/dist/server/server/voice-config.d.ts.map +1 -1
  253. package/dist/server/server/voice-config.js.map +1 -1
  254. package/dist/server/server/voice-mcp-bridge.d.ts.map +1 -1
  255. package/dist/server/server/voice-mcp-bridge.js.map +1 -1
  256. package/dist/server/server/websocket-server.d.ts +1 -0
  257. package/dist/server/server/websocket-server.d.ts.map +1 -1
  258. package/dist/server/server/websocket-server.js +20 -22
  259. package/dist/server/server/websocket-server.js.map +1 -1
  260. package/dist/server/server/workspace-registry-bootstrap.d.ts +3 -3
  261. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
  262. package/dist/server/server/workspace-registry-bootstrap.js +6 -6
  263. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
  264. package/dist/server/server/workspace-registry-model.d.ts +14 -3
  265. package/dist/server/server/workspace-registry-model.d.ts.map +1 -1
  266. package/dist/server/server/workspace-registry-model.js +40 -15
  267. package/dist/server/server/workspace-registry-model.js.map +1 -1
  268. package/dist/server/server/workspace-registry.d.ts +5 -5
  269. package/dist/server/server/workspace-registry.d.ts.map +1 -1
  270. package/dist/server/server/workspace-registry.js +16 -13
  271. package/dist/server/server/workspace-registry.js.map +1 -1
  272. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  273. package/dist/server/server/worktree-bootstrap.js +17 -6
  274. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  275. package/dist/server/shared/agent-attention-notification.d.ts.map +1 -1
  276. package/dist/server/shared/agent-attention-notification.js.map +1 -1
  277. package/dist/server/shared/agent-lifecycle.d.ts.map +1 -1
  278. package/dist/server/shared/daemon-endpoints.d.ts +1 -0
  279. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -1
  280. package/dist/server/shared/daemon-endpoints.js +11 -2
  281. package/dist/server/shared/daemon-endpoints.js.map +1 -1
  282. package/dist/server/shared/messages.d.ts +1228 -2982
  283. package/dist/server/shared/messages.d.ts.map +1 -1
  284. package/dist/server/shared/messages.js +330 -302
  285. package/dist/server/shared/messages.js.map +1 -1
  286. package/dist/server/shared/terminal-stream-protocol.d.ts +36 -0
  287. package/dist/server/shared/terminal-stream-protocol.d.ts.map +1 -0
  288. package/dist/server/shared/terminal-stream-protocol.js +99 -0
  289. package/dist/server/shared/terminal-stream-protocol.js.map +1 -0
  290. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  291. package/dist/server/shared/tool-call-display.js +6 -3
  292. package/dist/server/shared/tool-call-display.js.map +1 -1
  293. package/dist/server/terminal/terminal.d.ts +5 -48
  294. package/dist/server/terminal/terminal.d.ts.map +1 -1
  295. package/dist/server/terminal/terminal.js +44 -98
  296. package/dist/server/terminal/terminal.js.map +1 -1
  297. package/dist/server/utils/checkout-git.d.ts +1 -0
  298. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  299. package/dist/server/utils/checkout-git.js +111 -120
  300. package/dist/server/utils/checkout-git.js.map +1 -1
  301. package/dist/server/utils/directory-suggestions.d.ts +1 -1
  302. package/dist/server/utils/directory-suggestions.d.ts.map +1 -1
  303. package/dist/server/utils/directory-suggestions.js +40 -40
  304. package/dist/server/utils/directory-suggestions.js.map +1 -1
  305. package/dist/server/utils/project-icon.d.ts.map +1 -1
  306. package/dist/server/utils/project-icon.js +2 -11
  307. package/dist/server/utils/project-icon.js.map +1 -1
  308. package/dist/server/utils/worktree.d.ts +2 -0
  309. package/dist/server/utils/worktree.d.ts.map +1 -1
  310. package/dist/server/utils/worktree.js +22 -19
  311. package/dist/server/utils/worktree.js.map +1 -1
  312. package/dist/src/server/agent/activity-curator.js +5 -4
  313. package/dist/src/server/agent/activity-curator.js.map +1 -1
  314. package/dist/src/server/agent/agent-manager.js +26 -26
  315. package/dist/src/server/agent/agent-manager.js.map +1 -1
  316. package/dist/src/server/agent/agent-metadata-generator.js +1 -3
  317. package/dist/src/server/agent/agent-metadata-generator.js.map +1 -1
  318. package/dist/src/server/agent/agent-projections.js +4 -12
  319. package/dist/src/server/agent/agent-projections.js.map +1 -1
  320. package/dist/src/server/agent/agent-response-loop.js +6 -6
  321. package/dist/src/server/agent/agent-response-loop.js.map +1 -1
  322. package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
  323. package/dist/src/server/agent/agent-storage.js +2 -4
  324. package/dist/src/server/agent/agent-storage.js.map +1 -1
  325. package/dist/src/server/agent/dictation-debug.js.map +1 -1
  326. package/dist/src/server/agent/mcp-server.js +19 -27
  327. package/dist/src/server/agent/mcp-server.js.map +1 -1
  328. package/dist/src/server/agent/pcm16-resampler.js.map +1 -1
  329. package/dist/src/server/agent/provider-launch-config.js +4 -2
  330. package/dist/src/server/agent/provider-launch-config.js.map +1 -1
  331. package/dist/src/server/agent/provider-manifest.js +63 -9
  332. package/dist/src/server/agent/provider-manifest.js.map +1 -1
  333. package/dist/src/server/agent/provider-registry.js +1 -1
  334. package/dist/src/server/agent/provider-registry.js.map +1 -1
  335. package/dist/src/server/agent/providers/claude/model-catalog.js +10 -10
  336. package/dist/src/server/agent/providers/claude/model-catalog.js.map +1 -1
  337. package/dist/src/server/agent/providers/claude/partial-json.js +4 -4
  338. package/dist/src/server/agent/providers/claude/partial-json.js.map +1 -1
  339. package/dist/src/server/agent/providers/claude/sidechain-tracker.js +230 -0
  340. package/dist/src/server/agent/providers/claude/sidechain-tracker.js.map +1 -0
  341. package/dist/src/server/agent/providers/claude/task-notification-tool-call.js +37 -20
  342. package/dist/src/server/agent/providers/claude/task-notification-tool-call.js.map +1 -1
  343. package/dist/src/server/agent/providers/claude/tool-call-detail-parser.js +21 -11
  344. package/dist/src/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -1
  345. package/dist/src/server/agent/providers/claude/tool-call-mapper.js +23 -11
  346. package/dist/src/server/agent/providers/claude/tool-call-mapper.js.map +1 -1
  347. package/dist/src/server/agent/providers/claude-agent.js +486 -1134
  348. package/dist/src/server/agent/providers/claude-agent.js.map +1 -1
  349. package/dist/src/server/agent/providers/codex/tool-call-detail-parser.js +2 -2
  350. package/dist/src/server/agent/providers/codex/tool-call-detail-parser.js.map +1 -1
  351. package/dist/src/server/agent/providers/codex/tool-call-mapper.js +14 -11
  352. package/dist/src/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  353. package/dist/src/server/agent/providers/codex-app-server-agent.js +347 -163
  354. package/dist/src/server/agent/providers/codex-app-server-agent.js.map +1 -1
  355. package/dist/src/server/agent/providers/codex-rollout-timeline.js +21 -32
  356. package/dist/src/server/agent/providers/codex-rollout-timeline.js.map +1 -1
  357. package/dist/src/server/agent/providers/opencode/tool-call-detail-parser.js +2 -2
  358. package/dist/src/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -1
  359. package/dist/src/server/agent/providers/opencode/tool-call-mapper.js +2 -9
  360. package/dist/src/server/agent/providers/opencode/tool-call-mapper.js.map +1 -1
  361. package/dist/src/server/agent/providers/opencode-agent.js +5 -5
  362. package/dist/src/server/agent/providers/opencode-agent.js.map +1 -1
  363. package/dist/src/server/agent/providers/tool-call-detail-primitives.js +149 -15
  364. package/dist/src/server/agent/providers/tool-call-detail-primitives.js.map +1 -1
  365. package/dist/src/server/agent/providers/tool-call-mapper-utils.js +1 -3
  366. package/dist/src/server/agent/providers/tool-call-mapper-utils.js.map +1 -1
  367. package/dist/src/server/agent/stt-manager.js +1 -2
  368. package/dist/src/server/agent/stt-manager.js.map +1 -1
  369. package/dist/src/server/agent/timeline-projection.js.map +1 -1
  370. package/dist/src/server/agent/tts-manager.js +27 -9
  371. package/dist/src/server/agent/tts-manager.js.map +1 -1
  372. package/dist/src/server/agent/wait-for-agent-tracker.js.map +1 -1
  373. package/dist/src/server/agent-attention-policy.js.map +1 -1
  374. package/dist/src/server/allowed-hosts.js.map +1 -1
  375. package/dist/src/server/bootstrap.js +46 -5
  376. package/dist/src/server/bootstrap.js.map +1 -1
  377. package/dist/src/server/config.js +4 -11
  378. package/dist/src/server/config.js.map +1 -1
  379. package/dist/src/server/connection-offer.js +2 -3
  380. package/dist/src/server/connection-offer.js.map +1 -1
  381. package/dist/src/server/daemon-version.js +1 -1
  382. package/dist/src/server/daemon-version.js.map +1 -1
  383. package/dist/src/server/dictation/dictation-stream-manager.js +4 -1
  384. package/dist/src/server/dictation/dictation-stream-manager.js.map +1 -1
  385. package/dist/src/server/file-explorer/service.js +5 -8
  386. package/dist/src/server/file-explorer/service.js.map +1 -1
  387. package/dist/src/server/messages.js.map +1 -1
  388. package/dist/src/server/package-version.js +1 -2
  389. package/dist/src/server/package-version.js.map +1 -1
  390. package/dist/src/server/pairing-offer.js +45 -0
  391. package/dist/src/server/pairing-offer.js.map +1 -0
  392. package/dist/src/server/pairing-qr.js +45 -0
  393. package/dist/src/server/pairing-qr.js.map +1 -0
  394. package/dist/src/server/persisted-config.js.map +1 -1
  395. package/dist/src/server/persistence-hooks.js.map +1 -1
  396. package/dist/src/server/pid-lock.js.map +1 -1
  397. package/dist/src/server/push/push-service.js.map +1 -1
  398. package/dist/src/server/relay-transport.js +6 -2
  399. package/dist/src/server/relay-transport.js.map +1 -1
  400. package/dist/src/server/session.js +1234 -998
  401. package/dist/src/server/session.js.map +1 -1
  402. package/dist/src/server/speech/audio.js.map +1 -1
  403. package/dist/src/server/speech/providers/local/config.js +5 -14
  404. package/dist/src/server/speech/providers/local/config.js.map +1 -1
  405. package/dist/src/server/speech/providers/local/models.js +1 -1
  406. package/dist/src/server/speech/providers/local/models.js.map +1 -1
  407. package/dist/src/server/speech/providers/local/pocket/pocket-tts-onnx.js +21 -7
  408. package/dist/src/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -1
  409. package/dist/src/server/speech/providers/local/runtime.js +1 -23
  410. package/dist/src/server/speech/providers/local/runtime.js.map +1 -1
  411. package/dist/src/server/speech/providers/local/sherpa/model-catalog.js.map +1 -1
  412. package/dist/src/server/speech/providers/local/sherpa/model-downloader.js.map +1 -1
  413. package/dist/src/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +9 -4
  414. package/dist/src/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js.map +1 -1
  415. package/dist/src/server/speech/providers/local/sherpa/sherpa-online-recognizer.js +7 -2
  416. package/dist/src/server/speech/providers/local/sherpa/sherpa-online-recognizer.js.map +1 -1
  417. package/dist/src/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +5 -1
  418. package/dist/src/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js.map +1 -1
  419. package/dist/src/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +2 -4
  420. package/dist/src/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js.map +1 -1
  421. package/dist/src/server/speech/providers/local/sherpa/sherpa-realtime-session.js +1 -3
  422. package/dist/src/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -1
  423. package/dist/src/server/speech/providers/local/sherpa/sherpa-stt.js +2 -4
  424. package/dist/src/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -1
  425. package/dist/src/server/speech/providers/local/sherpa/sherpa-tts.js +4 -1
  426. package/dist/src/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -1
  427. package/dist/src/server/speech/providers/local/sherpa/silero-vad-provider.js +1 -1
  428. package/dist/src/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -1
  429. package/dist/src/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -1
  430. package/dist/src/server/speech/providers/openai/config.js +5 -24
  431. package/dist/src/server/speech/providers/openai/config.js.map +1 -1
  432. package/dist/src/server/speech/providers/openai/realtime-transcription-session.js +6 -3
  433. package/dist/src/server/speech/providers/openai/realtime-transcription-session.js.map +1 -1
  434. package/dist/src/server/speech/providers/openai/runtime.js +2 -6
  435. package/dist/src/server/speech/providers/openai/runtime.js.map +1 -1
  436. package/dist/src/server/speech/providers/openai/stt.js +1 -3
  437. package/dist/src/server/speech/providers/openai/stt.js.map +1 -1
  438. package/dist/src/server/speech/providers/openai/tts.js.map +1 -1
  439. package/dist/src/server/speech/speech-config-resolver.js +3 -7
  440. package/dist/src/server/speech/speech-config-resolver.js.map +1 -1
  441. package/dist/src/server/speech/speech-runtime.js.map +1 -1
  442. package/dist/src/server/utils/diff-highlighter.js +49 -36
  443. package/dist/src/server/utils/diff-highlighter.js.map +1 -1
  444. package/dist/src/server/voice/fixed-duration-pcm-ring-buffer.js.map +1 -1
  445. package/dist/src/server/voice/voice-turn-controller.js +1 -3
  446. package/dist/src/server/voice/voice-turn-controller.js.map +1 -1
  447. package/dist/src/server/voice-config.js.map +1 -1
  448. package/dist/src/server/voice-mcp-bridge.js.map +1 -1
  449. package/dist/src/server/websocket-server.js +20 -22
  450. package/dist/src/server/websocket-server.js.map +1 -1
  451. package/dist/src/server/workspace-registry-bootstrap.js +6 -6
  452. package/dist/src/server/workspace-registry-bootstrap.js.map +1 -1
  453. package/dist/src/server/workspace-registry-model.js +40 -15
  454. package/dist/src/server/workspace-registry-model.js.map +1 -1
  455. package/dist/src/server/workspace-registry.js +16 -13
  456. package/dist/src/server/workspace-registry.js.map +1 -1
  457. package/dist/src/server/worktree-bootstrap.js +17 -6
  458. package/dist/src/server/worktree-bootstrap.js.map +1 -1
  459. package/dist/src/shared/agent-attention-notification.js.map +1 -1
  460. package/dist/src/shared/daemon-endpoints.js +11 -2
  461. package/dist/src/shared/daemon-endpoints.js.map +1 -1
  462. package/dist/src/shared/messages.js +330 -302
  463. package/dist/src/shared/messages.js.map +1 -1
  464. package/dist/src/shared/terminal-stream-protocol.js +99 -0
  465. package/dist/src/shared/terminal-stream-protocol.js.map +1 -0
  466. package/dist/src/shared/tool-call-display.js +6 -3
  467. package/dist/src/shared/tool-call-display.js.map +1 -1
  468. package/dist/src/terminal/terminal.js +44 -98
  469. package/dist/src/terminal/terminal.js.map +1 -1
  470. package/dist/src/utils/checkout-git.js +111 -120
  471. package/dist/src/utils/checkout-git.js.map +1 -1
  472. package/dist/src/utils/directory-suggestions.js +40 -40
  473. package/dist/src/utils/directory-suggestions.js.map +1 -1
  474. package/dist/src/utils/project-icon.js +2 -11
  475. package/dist/src/utils/project-icon.js.map +1 -1
  476. package/dist/src/utils/worktree.js +22 -19
  477. package/dist/src/utils/worktree.js.map +1 -1
  478. package/package.json +3 -11
  479. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts +0 -43
  480. package/dist/server/client/daemon-client-terminal-stream-manager.d.ts.map +0 -1
  481. package/dist/server/client/daemon-client-terminal-stream-manager.js +0 -134
  482. package/dist/server/client/daemon-client-terminal-stream-manager.js.map +0 -1
  483. package/dist/server/server/utils/syntax-highlighter.d.ts +0 -10
  484. package/dist/server/server/utils/syntax-highlighter.d.ts.map +0 -1
  485. package/dist/server/server/utils/syntax-highlighter.js +0 -145
  486. package/dist/server/server/utils/syntax-highlighter.js.map +0 -1
  487. package/dist/server/shared/binary-mux.d.ts +0 -31
  488. package/dist/server/shared/binary-mux.d.ts.map +0 -1
  489. package/dist/server/shared/binary-mux.js +0 -114
  490. package/dist/server/shared/binary-mux.js.map +0 -1
  491. package/dist/server/shared/terminal-key-input.d.ts +0 -9
  492. package/dist/server/shared/terminal-key-input.d.ts.map +0 -1
  493. package/dist/server/shared/terminal-key-input.js +0 -132
  494. package/dist/server/shared/terminal-key-input.js.map +0 -1
  495. package/dist/src/server/utils/syntax-highlighter.js +0 -145
  496. package/dist/src/server/utils/syntax-highlighter.js.map +0 -1
  497. package/dist/src/shared/binary-mux.js +0 -114
  498. package/dist/src/shared/binary-mux.js.map +0 -1
@@ -81,6 +81,9 @@ function normalizeCodexModelId(modelId) {
81
81
  }
82
82
  return normalized;
83
83
  }
84
+ function normalizeCodexModelLabel(displayName) {
85
+ return displayName.replace(/\bgpt\b/gi, "GPT");
86
+ }
84
87
  function mergeCodexConfiguredDefaults(primary, fallback) {
85
88
  return {
86
89
  model: primary.model ?? fallback.model,
@@ -208,9 +211,7 @@ async function listCodexCustomPrompts() {
208
211
  }
209
212
  const parsed = parseFrontMatter(content);
210
213
  const description = parsed.frontMatter["description"] ?? "Custom prompt";
211
- const argumentHint = parsed.frontMatter["argument-hint"] ??
212
- parsed.frontMatter["argument_hint"] ??
213
- "";
214
+ const argumentHint = parsed.frontMatter["argument-hint"] ?? parsed.frontMatter["argument_hint"] ?? "";
214
215
  commands.push({
215
216
  name: `prompts:${name}`,
216
217
  description,
@@ -711,7 +712,9 @@ function parseCodexPatchChanges(changes) {
711
712
  }
712
713
  return {
713
714
  path: normalizedPath,
714
- kind: value && typeof value === "object" && typeof value.type === "string"
715
+ kind: value &&
716
+ typeof value === "object" &&
717
+ typeof value.type === "string"
715
718
  ? (value.type ?? undefined)
716
719
  : undefined,
717
720
  content: extractPatchLikeText(value),
@@ -744,10 +747,8 @@ function isEditToolCallWithoutContent(item) {
744
747
  if (item.detail.type !== "edit") {
745
748
  return false;
746
749
  }
747
- const hasDiff = typeof item.detail.unifiedDiff === "string" &&
748
- item.detail.unifiedDiff.trim().length > 0;
749
- const hasNewString = typeof item.detail.newString === "string" &&
750
- item.detail.newString.trim().length > 0;
750
+ const hasDiff = typeof item.detail.unifiedDiff === "string" && item.detail.unifiedDiff.trim().length > 0;
751
+ const hasNewString = typeof item.detail.newString === "string" && item.detail.newString.trim().length > 0;
751
752
  return !hasDiff && !hasNewString;
752
753
  }
753
754
  function decodeCodexOutputDeltaChunk(chunk) {
@@ -764,9 +765,7 @@ function decodeCodexOutputDeltaChunk(chunk) {
764
765
  return chunk;
765
766
  }
766
767
  const normalizedInput = trimmed.replace(/=+$/, "");
767
- const normalizedRoundTrip = Buffer.from(decoded, "utf8")
768
- .toString("base64")
769
- .replace(/=+$/, "");
768
+ const normalizedRoundTrip = Buffer.from(decoded, "utf8").toString("base64").replace(/=+$/, "");
770
769
  return normalizedRoundTrip === normalizedInput ? decoded : chunk;
771
770
  }
772
771
  catch {
@@ -780,15 +779,12 @@ function mapCodexExecNotificationToToolCall(params) {
780
779
  }
781
780
  const isFailure = params.running
782
781
  ? false
783
- : params.success === false ||
784
- (typeof params.exitCode === "number" && params.exitCode !== 0);
782
+ : params.success === false || (typeof params.exitCode === "number" && params.exitCode !== 0);
785
783
  const output = params.running
786
784
  ? null
787
785
  : {
788
786
  command,
789
- ...(params.output !== null && params.output !== undefined
790
- ? { output: params.output }
791
- : {}),
787
+ ...(params.output !== null && params.output !== undefined ? { output: params.output } : {}),
792
788
  ...(params.exitCode !== null && params.exitCode !== undefined
793
789
  ? { exitCode: params.exitCode }
794
790
  : {}),
@@ -801,9 +797,7 @@ function mapCodexExecNotificationToToolCall(params) {
801
797
  ...(params.cwd ? { cwd: params.cwd } : {}),
802
798
  },
803
799
  output,
804
- error: isFailure
805
- ? { message: params.stderr?.trim() || "Command failed" }
806
- : null,
800
+ error: isFailure ? { message: params.stderr?.trim() || "Command failed" } : null,
807
801
  cwd: params.cwd ?? null,
808
802
  });
809
803
  if (!mapped) {
@@ -864,7 +858,7 @@ function mapCodexTerminalInteractionToToolCall(params) {
864
858
  const processId = nonEmptyString(params.processId ?? undefined);
865
859
  const callId = processId
866
860
  ? `terminal-session-${processId}`
867
- : nonEmptyString(params.fallbackCallId ?? undefined) ?? "terminal-interaction";
861
+ : (nonEmptyString(params.fallbackCallId ?? undefined) ?? "terminal-interaction");
868
862
  const label = nonEmptyString(params.command ?? undefined);
869
863
  return {
870
864
  type: "tool_call",
@@ -963,13 +957,18 @@ function normalizeImageData(mimeType, data) {
963
957
  }
964
958
  return { mimeType, data };
965
959
  }
966
- const ThreadStartedNotificationSchema = z.object({
960
+ const ThreadStartedNotificationSchema = z
961
+ .object({
967
962
  thread: z.object({ id: z.string() }).passthrough(),
968
- }).passthrough();
969
- const TurnStartedNotificationSchema = z.object({
963
+ })
964
+ .passthrough();
965
+ const TurnStartedNotificationSchema = z
966
+ .object({
970
967
  turn: z.object({ id: z.string() }).passthrough(),
971
- }).passthrough();
972
- const TurnCompletedNotificationSchema = z.object({
968
+ })
969
+ .passthrough();
970
+ const TurnCompletedNotificationSchema = z
971
+ .object({
973
972
  turn: z
974
973
  .object({
975
974
  status: z.string(),
@@ -982,49 +981,65 @@ const TurnCompletedNotificationSchema = z.object({
982
981
  .optional(),
983
982
  })
984
983
  .passthrough(),
985
- }).passthrough();
986
- const TurnPlanUpdatedNotificationSchema = z.object({
984
+ })
985
+ .passthrough();
986
+ const TurnPlanUpdatedNotificationSchema = z
987
+ .object({
987
988
  plan: z.array(z
988
989
  .object({
989
990
  step: z.string().optional(),
990
991
  status: z.string().optional(),
991
992
  })
992
993
  .passthrough()),
993
- }).passthrough();
994
- const TurnDiffUpdatedNotificationSchema = z.object({
994
+ })
995
+ .passthrough();
996
+ const TurnDiffUpdatedNotificationSchema = z
997
+ .object({
995
998
  diff: z.string(),
996
- }).passthrough();
997
- const ThreadTokenUsageUpdatedNotificationSchema = z.object({
999
+ })
1000
+ .passthrough();
1001
+ const ThreadTokenUsageUpdatedNotificationSchema = z
1002
+ .object({
998
1003
  tokenUsage: z.unknown(),
999
- }).passthrough();
1000
- const ItemTextDeltaNotificationSchema = z.object({
1004
+ })
1005
+ .passthrough();
1006
+ const ItemTextDeltaNotificationSchema = z
1007
+ .object({
1001
1008
  itemId: z.string(),
1002
1009
  delta: z.string(),
1003
- }).passthrough();
1004
- const ItemLifecycleNotificationSchema = z.object({
1010
+ })
1011
+ .passthrough();
1012
+ const ItemLifecycleNotificationSchema = z
1013
+ .object({
1005
1014
  item: z
1006
1015
  .object({
1007
1016
  id: z.string().optional(),
1008
1017
  type: z.string().optional(),
1009
1018
  })
1010
1019
  .passthrough(),
1011
- }).passthrough();
1012
- const CodexEventTurnAbortedNotificationSchema = z.object({
1020
+ })
1021
+ .passthrough();
1022
+ const CodexEventTurnAbortedNotificationSchema = z
1023
+ .object({
1013
1024
  msg: z
1014
1025
  .object({
1015
1026
  type: z.literal("turn_aborted"),
1016
1027
  reason: z.string().optional(),
1017
1028
  })
1018
1029
  .passthrough(),
1019
- }).passthrough();
1020
- const CodexEventTaskCompleteNotificationSchema = z.object({
1030
+ })
1031
+ .passthrough();
1032
+ const CodexEventTaskCompleteNotificationSchema = z
1033
+ .object({
1021
1034
  msg: z
1022
1035
  .object({
1023
1036
  type: z.literal("task_complete"),
1024
1037
  })
1025
1038
  .passthrough(),
1026
- }).passthrough();
1027
- const CodexEventItemLifecycleNotificationSchema = z.object({
1039
+ })
1040
+ .passthrough();
1041
+ const CodexEventItemLifecycleNotificationSchema = z
1042
+ .object({
1028
1043
  msg: z
1029
1044
  .object({
1030
1045
  type: z.enum(["item_started", "item_completed"]),
@@ -1036,8 +1051,10 @@ const CodexEventItemLifecycleNotificationSchema = z.object({
1036
1051
  .passthrough(),
1037
1052
  })
1038
1053
  .passthrough(),
1039
- }).passthrough();
1040
- const CodexEventExecCommandBeginNotificationSchema = z.object({
1054
+ })
1055
+ .passthrough();
1056
+ const CodexEventExecCommandBeginNotificationSchema = z
1057
+ .object({
1041
1058
  msg: z
1042
1059
  .object({
1043
1060
  type: z.literal("exec_command_begin"),
@@ -1046,8 +1063,10 @@ const CodexEventExecCommandBeginNotificationSchema = z.object({
1046
1063
  cwd: z.string().optional(),
1047
1064
  })
1048
1065
  .passthrough(),
1049
- }).passthrough();
1050
- const CodexEventExecCommandEndNotificationSchema = z.object({
1066
+ })
1067
+ .passthrough();
1068
+ const CodexEventExecCommandEndNotificationSchema = z
1069
+ .object({
1051
1070
  msg: z
1052
1071
  .object({
1053
1072
  type: z.literal("exec_command_end"),
@@ -1064,8 +1083,10 @@ const CodexEventExecCommandEndNotificationSchema = z.object({
1064
1083
  success: z.boolean().optional(),
1065
1084
  })
1066
1085
  .passthrough(),
1067
- }).passthrough();
1068
- const CodexEventExecCommandOutputDeltaNotificationSchema = z.object({
1086
+ })
1087
+ .passthrough();
1088
+ const CodexEventExecCommandOutputDeltaNotificationSchema = z
1089
+ .object({
1069
1090
  msg: z
1070
1091
  .object({
1071
1092
  type: z.literal("exec_command_output_delta"),
@@ -1075,8 +1096,10 @@ const CodexEventExecCommandOutputDeltaNotificationSchema = z.object({
1075
1096
  delta: z.string().optional(),
1076
1097
  })
1077
1098
  .passthrough(),
1078
- }).passthrough();
1079
- const CodexEventTerminalInteractionNotificationSchema = z.object({
1099
+ })
1100
+ .passthrough();
1101
+ const CodexEventTerminalInteractionNotificationSchema = z
1102
+ .object({
1080
1103
  msg: z
1081
1104
  .object({
1082
1105
  type: z.literal("terminal_interaction"),
@@ -1085,13 +1108,17 @@ const CodexEventTerminalInteractionNotificationSchema = z.object({
1085
1108
  stdin: z.string().optional(),
1086
1109
  })
1087
1110
  .passthrough(),
1088
- }).passthrough();
1089
- const ItemCommandExecutionTerminalInteractionNotificationSchema = z.object({
1111
+ })
1112
+ .passthrough();
1113
+ const ItemCommandExecutionTerminalInteractionNotificationSchema = z
1114
+ .object({
1090
1115
  itemId: z.string().optional(),
1091
1116
  processId: z.union([z.string(), z.number()]).optional(),
1092
1117
  stdin: z.string().optional(),
1093
- }).passthrough();
1094
- const CodexEventPatchApplyBeginNotificationSchema = z.object({
1118
+ })
1119
+ .passthrough();
1120
+ const CodexEventPatchApplyBeginNotificationSchema = z
1121
+ .object({
1095
1122
  msg: z
1096
1123
  .object({
1097
1124
  type: z.literal("patch_apply_begin"),
@@ -1099,8 +1126,10 @@ const CodexEventPatchApplyBeginNotificationSchema = z.object({
1099
1126
  changes: z.unknown().optional(),
1100
1127
  })
1101
1128
  .passthrough(),
1102
- }).passthrough();
1103
- const CodexEventPatchApplyEndNotificationSchema = z.object({
1129
+ })
1130
+ .passthrough();
1131
+ const CodexEventPatchApplyEndNotificationSchema = z
1132
+ .object({
1104
1133
  msg: z
1105
1134
  .object({
1106
1135
  type: z.literal("patch_apply_end"),
@@ -1111,13 +1140,17 @@ const CodexEventPatchApplyEndNotificationSchema = z.object({
1111
1140
  success: z.boolean().optional(),
1112
1141
  })
1113
1142
  .passthrough(),
1114
- }).passthrough();
1115
- const ItemFileChangeOutputDeltaNotificationSchema = z.object({
1143
+ })
1144
+ .passthrough();
1145
+ const ItemFileChangeOutputDeltaNotificationSchema = z
1146
+ .object({
1116
1147
  itemId: z.string(),
1117
1148
  delta: z.string().optional(),
1118
1149
  chunk: z.string().optional(),
1119
- }).passthrough();
1120
- const CodexEventTurnDiffNotificationSchema = z.object({
1150
+ })
1151
+ .passthrough();
1152
+ const CodexEventTurnDiffNotificationSchema = z
1153
+ .object({
1121
1154
  msg: z
1122
1155
  .object({
1123
1156
  type: z.literal("turn_diff"),
@@ -1125,84 +1158,182 @@ const CodexEventTurnDiffNotificationSchema = z.object({
1125
1158
  diff: z.string().optional(),
1126
1159
  })
1127
1160
  .passthrough(),
1128
- }).passthrough();
1161
+ })
1162
+ .passthrough();
1129
1163
  const CodexNotificationSchema = z.union([
1130
- z.object({ method: z.literal("thread/started"), params: ThreadStartedNotificationSchema }).transform(({ params }) => ({ kind: "thread_started", threadId: params.thread.id })),
1131
- z.object({ method: z.literal("thread/started"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1132
- z.object({ method: z.literal("turn/started"), params: TurnStartedNotificationSchema }).transform(({ params }) => ({ kind: "turn_started", turnId: params.turn.id })),
1133
- z.object({ method: z.literal("turn/started"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1134
- z.object({ method: z.literal("turn/completed"), params: TurnCompletedNotificationSchema }).transform(({ params }) => ({
1164
+ z
1165
+ .object({ method: z.literal("thread/started"), params: ThreadStartedNotificationSchema })
1166
+ .transform(({ params }) => ({
1167
+ kind: "thread_started",
1168
+ threadId: params.thread.id,
1169
+ })),
1170
+ z.object({ method: z.literal("thread/started"), params: z.unknown() }).transform(({ method, params }) => ({
1171
+ kind: "invalid_payload",
1172
+ method,
1173
+ params,
1174
+ })),
1175
+ z
1176
+ .object({ method: z.literal("turn/started"), params: TurnStartedNotificationSchema })
1177
+ .transform(({ params }) => ({ kind: "turn_started", turnId: params.turn.id })),
1178
+ z.object({ method: z.literal("turn/started"), params: z.unknown() }).transform(({ method, params }) => ({
1179
+ kind: "invalid_payload",
1180
+ method,
1181
+ params,
1182
+ })),
1183
+ z
1184
+ .object({ method: z.literal("turn/completed"), params: TurnCompletedNotificationSchema })
1185
+ .transform(({ params }) => ({
1135
1186
  kind: "turn_completed",
1136
1187
  status: params.turn.status,
1137
1188
  errorMessage: params.turn.error?.message ?? null,
1138
1189
  })),
1139
- z.object({ method: z.literal("turn/completed"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1140
- z.object({ method: z.literal("turn/plan/updated"), params: TurnPlanUpdatedNotificationSchema }).transform(({ params }) => ({
1190
+ z.object({ method: z.literal("turn/completed"), params: z.unknown() }).transform(({ method, params }) => ({
1191
+ kind: "invalid_payload",
1192
+ method,
1193
+ params,
1194
+ })),
1195
+ z
1196
+ .object({ method: z.literal("turn/plan/updated"), params: TurnPlanUpdatedNotificationSchema })
1197
+ .transform(({ params }) => ({
1141
1198
  kind: "plan_updated",
1142
1199
  plan: params.plan.map((entry) => ({
1143
1200
  step: entry.step ?? null,
1144
1201
  status: entry.status ?? null,
1145
1202
  })),
1146
1203
  })),
1147
- z.object({ method: z.literal("turn/plan/updated"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1148
- z.object({ method: z.literal("turn/diff/updated"), params: TurnDiffUpdatedNotificationSchema }).transform(({ params }) => ({ kind: "diff_updated", diff: params.diff })),
1149
- z.object({ method: z.literal("turn/diff/updated"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1150
- z.object({
1204
+ z.object({ method: z.literal("turn/plan/updated"), params: z.unknown() }).transform(({ method, params }) => ({
1205
+ kind: "invalid_payload",
1206
+ method,
1207
+ params,
1208
+ })),
1209
+ z
1210
+ .object({ method: z.literal("turn/diff/updated"), params: TurnDiffUpdatedNotificationSchema })
1211
+ .transform(({ params }) => ({ kind: "diff_updated", diff: params.diff })),
1212
+ z.object({ method: z.literal("turn/diff/updated"), params: z.unknown() }).transform(({ method, params }) => ({
1213
+ kind: "invalid_payload",
1214
+ method,
1215
+ params,
1216
+ })),
1217
+ z
1218
+ .object({
1151
1219
  method: z.literal("thread/tokenUsage/updated"),
1152
1220
  params: ThreadTokenUsageUpdatedNotificationSchema,
1153
- }).transform(({ params }) => ({ kind: "token_usage_updated", tokenUsage: params.tokenUsage })),
1154
- z.object({ method: z.literal("thread/tokenUsage/updated"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1155
- z.object({ method: z.literal("item/agentMessage/delta"), params: ItemTextDeltaNotificationSchema }).transform(({ params }) => ({
1221
+ })
1222
+ .transform(({ params }) => ({
1223
+ kind: "token_usage_updated",
1224
+ tokenUsage: params.tokenUsage,
1225
+ })),
1226
+ z.object({ method: z.literal("thread/tokenUsage/updated"), params: z.unknown() }).transform(({ method, params }) => ({
1227
+ kind: "invalid_payload",
1228
+ method,
1229
+ params,
1230
+ })),
1231
+ z
1232
+ .object({
1233
+ method: z.literal("item/agentMessage/delta"),
1234
+ params: ItemTextDeltaNotificationSchema,
1235
+ })
1236
+ .transform(({ params }) => ({
1156
1237
  kind: "agent_message_delta",
1157
1238
  itemId: params.itemId,
1158
1239
  delta: params.delta,
1159
1240
  })),
1160
- z.object({ method: z.literal("item/agentMessage/delta"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1161
- z.object({
1241
+ z.object({ method: z.literal("item/agentMessage/delta"), params: z.unknown() }).transform(({ method, params }) => ({
1242
+ kind: "invalid_payload",
1243
+ method,
1244
+ params,
1245
+ })),
1246
+ z
1247
+ .object({
1162
1248
  method: z.literal("item/reasoning/summaryTextDelta"),
1163
1249
  params: ItemTextDeltaNotificationSchema,
1164
- }).transform(({ params }) => ({
1250
+ })
1251
+ .transform(({ params }) => ({
1165
1252
  kind: "reasoning_delta",
1166
1253
  itemId: params.itemId,
1167
1254
  delta: params.delta,
1168
1255
  })),
1169
- z.object({ method: z.literal("item/reasoning/summaryTextDelta"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1170
- z.object({ method: z.literal("item/completed"), params: ItemLifecycleNotificationSchema }).transform(({ params }) => ({ kind: "item_completed", source: "item", item: params.item })),
1171
- z.object({ method: z.literal("item/completed"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1172
- z.object({ method: z.literal("item/started"), params: ItemLifecycleNotificationSchema }).transform(({ params }) => ({ kind: "item_started", source: "item", item: params.item })),
1173
- z.object({ method: z.literal("item/started"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1174
- z.object({
1256
+ z.object({ method: z.literal("item/reasoning/summaryTextDelta"), params: z.unknown() }).transform(({ method, params }) => ({
1257
+ kind: "invalid_payload",
1258
+ method,
1259
+ params,
1260
+ })),
1261
+ z
1262
+ .object({ method: z.literal("item/completed"), params: ItemLifecycleNotificationSchema })
1263
+ .transform(({ params }) => ({
1264
+ kind: "item_completed",
1265
+ source: "item",
1266
+ item: params.item,
1267
+ })),
1268
+ z.object({ method: z.literal("item/completed"), params: z.unknown() }).transform(({ method, params }) => ({
1269
+ kind: "invalid_payload",
1270
+ method,
1271
+ params,
1272
+ })),
1273
+ z
1274
+ .object({ method: z.literal("item/started"), params: ItemLifecycleNotificationSchema })
1275
+ .transform(({ params }) => ({
1276
+ kind: "item_started",
1277
+ source: "item",
1278
+ item: params.item,
1279
+ })),
1280
+ z.object({ method: z.literal("item/started"), params: z.unknown() }).transform(({ method, params }) => ({
1281
+ kind: "invalid_payload",
1282
+ method,
1283
+ params,
1284
+ })),
1285
+ z
1286
+ .object({
1175
1287
  method: z.literal("codex/event/item_started"),
1176
1288
  params: CodexEventItemLifecycleNotificationSchema,
1177
- }).transform(({ params }) => ({
1289
+ })
1290
+ .transform(({ params }) => ({
1178
1291
  kind: "item_started",
1179
1292
  source: "codex_event",
1180
1293
  item: params.msg.item,
1181
1294
  })),
1182
- z.object({ method: z.literal("codex/event/item_started"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1183
- z.object({
1295
+ z.object({ method: z.literal("codex/event/item_started"), params: z.unknown() }).transform(({ method, params }) => ({
1296
+ kind: "invalid_payload",
1297
+ method,
1298
+ params,
1299
+ })),
1300
+ z
1301
+ .object({
1184
1302
  method: z.literal("codex/event/item_completed"),
1185
1303
  params: CodexEventItemLifecycleNotificationSchema,
1186
- }).transform(({ params }) => ({
1304
+ })
1305
+ .transform(({ params }) => ({
1187
1306
  kind: "item_completed",
1188
1307
  source: "codex_event",
1189
1308
  item: params.msg.item,
1190
1309
  })),
1191
- z.object({ method: z.literal("codex/event/item_completed"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1192
- z.object({
1310
+ z.object({ method: z.literal("codex/event/item_completed"), params: z.unknown() }).transform(({ method, params }) => ({
1311
+ kind: "invalid_payload",
1312
+ method,
1313
+ params,
1314
+ })),
1315
+ z
1316
+ .object({
1193
1317
  method: z.literal("codex/event/exec_command_begin"),
1194
1318
  params: CodexEventExecCommandBeginNotificationSchema,
1195
- }).transform(({ params }) => ({
1319
+ })
1320
+ .transform(({ params }) => ({
1196
1321
  kind: "exec_command_started",
1197
1322
  callId: params.msg.call_id ?? null,
1198
1323
  command: params.msg.command ?? null,
1199
1324
  cwd: params.msg.cwd ?? null,
1200
1325
  })),
1201
- z.object({ method: z.literal("codex/event/exec_command_begin"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1202
- z.object({
1326
+ z.object({ method: z.literal("codex/event/exec_command_begin"), params: z.unknown() }).transform(({ method, params }) => ({
1327
+ kind: "invalid_payload",
1328
+ method,
1329
+ params,
1330
+ })),
1331
+ z
1332
+ .object({
1203
1333
  method: z.literal("codex/event/exec_command_end"),
1204
1334
  params: CodexEventExecCommandEndNotificationSchema,
1205
- }).transform(({ params }) => ({
1335
+ })
1336
+ .transform(({ params }) => ({
1206
1337
  kind: "exec_command_completed",
1207
1338
  callId: params.msg.call_id ?? null,
1208
1339
  command: params.msg.command ?? null,
@@ -1216,62 +1347,98 @@ const CodexNotificationSchema = z.union([
1216
1347
  success: params.msg.success ?? null,
1217
1348
  stderr: params.msg.stderr ?? null,
1218
1349
  })),
1219
- z.object({ method: z.literal("codex/event/exec_command_end"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1220
- z.object({
1350
+ z.object({ method: z.literal("codex/event/exec_command_end"), params: z.unknown() }).transform(({ method, params }) => ({
1351
+ kind: "invalid_payload",
1352
+ method,
1353
+ params,
1354
+ })),
1355
+ z
1356
+ .object({
1221
1357
  method: z.literal("codex/event/exec_command_output_delta"),
1222
1358
  params: CodexEventExecCommandOutputDeltaNotificationSchema,
1223
- }).transform(({ params }) => ({
1359
+ })
1360
+ .transform(({ params }) => ({
1224
1361
  kind: "exec_command_output_delta",
1225
1362
  callId: params.msg.call_id ?? null,
1226
1363
  stream: params.msg.stream ?? null,
1227
1364
  chunk: params.msg.chunk ?? params.msg.delta ?? null,
1228
1365
  })),
1229
- z.object({
1366
+ z
1367
+ .object({
1230
1368
  method: z.literal("codex/event/exec_command_output_delta"),
1231
1369
  params: z.unknown(),
1232
- }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1233
- z.object({
1370
+ })
1371
+ .transform(({ method, params }) => ({
1372
+ kind: "invalid_payload",
1373
+ method,
1374
+ params,
1375
+ })),
1376
+ z
1377
+ .object({
1234
1378
  method: z.literal("codex/event/terminal_interaction"),
1235
1379
  params: CodexEventTerminalInteractionNotificationSchema,
1236
- }).transform(({ params }) => ({
1380
+ })
1381
+ .transform(({ params }) => ({
1237
1382
  kind: "terminal_interaction",
1238
1383
  source: "codex_event",
1239
1384
  callId: params.msg.call_id ?? null,
1240
1385
  processId: typeof params.msg.process_id === "number"
1241
1386
  ? String(params.msg.process_id)
1242
- : params.msg.process_id ?? null,
1387
+ : (params.msg.process_id ?? null),
1243
1388
  stdin: params.msg.stdin ?? null,
1244
1389
  })),
1245
- z.object({ method: z.literal("codex/event/terminal_interaction"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1246
- z.object({
1390
+ z
1391
+ .object({ method: z.literal("codex/event/terminal_interaction"), params: z.unknown() })
1392
+ .transform(({ method, params }) => ({
1393
+ kind: "invalid_payload",
1394
+ method,
1395
+ params,
1396
+ })),
1397
+ z
1398
+ .object({
1247
1399
  method: z.literal("item/commandExecution/terminalInteraction"),
1248
1400
  params: ItemCommandExecutionTerminalInteractionNotificationSchema,
1249
- }).transform(({ params }) => ({
1401
+ })
1402
+ .transform(({ params }) => ({
1250
1403
  kind: "terminal_interaction",
1251
1404
  source: "item",
1252
1405
  callId: params.itemId ?? null,
1253
1406
  processId: typeof params.processId === "number"
1254
1407
  ? String(params.processId)
1255
- : params.processId ?? null,
1408
+ : (params.processId ?? null),
1256
1409
  stdin: params.stdin ?? null,
1257
1410
  })),
1258
- z.object({
1411
+ z
1412
+ .object({
1259
1413
  method: z.literal("item/commandExecution/terminalInteraction"),
1260
1414
  params: z.unknown(),
1261
- }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1262
- z.object({
1415
+ })
1416
+ .transform(({ method, params }) => ({
1417
+ kind: "invalid_payload",
1418
+ method,
1419
+ params,
1420
+ })),
1421
+ z
1422
+ .object({
1263
1423
  method: z.literal("codex/event/patch_apply_begin"),
1264
1424
  params: CodexEventPatchApplyBeginNotificationSchema,
1265
- }).transform(({ params }) => ({
1425
+ })
1426
+ .transform(({ params }) => ({
1266
1427
  kind: "patch_apply_started",
1267
1428
  callId: params.msg.call_id ?? null,
1268
1429
  changes: params.msg.changes ?? null,
1269
1430
  })),
1270
- z.object({ method: z.literal("codex/event/patch_apply_begin"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1271
- z.object({
1431
+ z.object({ method: z.literal("codex/event/patch_apply_begin"), params: z.unknown() }).transform(({ method, params }) => ({
1432
+ kind: "invalid_payload",
1433
+ method,
1434
+ params,
1435
+ })),
1436
+ z
1437
+ .object({
1272
1438
  method: z.literal("codex/event/patch_apply_end"),
1273
1439
  params: CodexEventPatchApplyEndNotificationSchema,
1274
- }).transform(({ params }) => ({
1440
+ })
1441
+ .transform(({ params }) => ({
1275
1442
  kind: "patch_apply_completed",
1276
1443
  callId: params.msg.call_id ?? null,
1277
1444
  changes: params.msg.changes ?? null,
@@ -1279,43 +1446,73 @@ const CodexNotificationSchema = z.union([
1279
1446
  stderr: params.msg.stderr ?? null,
1280
1447
  success: params.msg.success ?? null,
1281
1448
  })),
1282
- z.object({ method: z.literal("codex/event/patch_apply_end"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1283
- z.object({
1449
+ z.object({ method: z.literal("codex/event/patch_apply_end"), params: z.unknown() }).transform(({ method, params }) => ({
1450
+ kind: "invalid_payload",
1451
+ method,
1452
+ params,
1453
+ })),
1454
+ z
1455
+ .object({
1284
1456
  method: z.literal("item/fileChange/outputDelta"),
1285
1457
  params: ItemFileChangeOutputDeltaNotificationSchema,
1286
- }).transform(({ params }) => ({
1458
+ })
1459
+ .transform(({ params }) => ({
1287
1460
  kind: "file_change_output_delta",
1288
1461
  itemId: params.itemId,
1289
1462
  delta: params.delta ?? params.chunk ?? null,
1290
1463
  })),
1291
- z.object({ method: z.literal("item/fileChange/outputDelta"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1292
- z.object({
1464
+ z.object({ method: z.literal("item/fileChange/outputDelta"), params: z.unknown() }).transform(({ method, params }) => ({
1465
+ kind: "invalid_payload",
1466
+ method,
1467
+ params,
1468
+ })),
1469
+ z
1470
+ .object({
1293
1471
  method: z.literal("codex/event/turn_diff"),
1294
1472
  params: CodexEventTurnDiffNotificationSchema,
1295
- }).transform(({ params }) => ({
1473
+ })
1474
+ .transform(({ params }) => ({
1296
1475
  kind: "diff_updated",
1297
1476
  diff: params.msg.unified_diff ?? params.msg.diff ?? "",
1298
1477
  })),
1299
- z.object({ method: z.literal("codex/event/turn_diff"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1300
- z.object({
1478
+ z.object({ method: z.literal("codex/event/turn_diff"), params: z.unknown() }).transform(({ method, params }) => ({
1479
+ kind: "invalid_payload",
1480
+ method,
1481
+ params,
1482
+ })),
1483
+ z
1484
+ .object({
1301
1485
  method: z.literal("codex/event/turn_aborted"),
1302
1486
  params: CodexEventTurnAbortedNotificationSchema,
1303
- }).transform(() => ({
1487
+ })
1488
+ .transform(() => ({
1304
1489
  kind: "turn_completed",
1305
1490
  status: "interrupted",
1306
1491
  errorMessage: null,
1307
1492
  })),
1308
- z.object({ method: z.literal("codex/event/turn_aborted"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1309
- z.object({
1493
+ z.object({ method: z.literal("codex/event/turn_aborted"), params: z.unknown() }).transform(({ method, params }) => ({
1494
+ kind: "invalid_payload",
1495
+ method,
1496
+ params,
1497
+ })),
1498
+ z
1499
+ .object({
1310
1500
  method: z.literal("codex/event/task_complete"),
1311
1501
  params: CodexEventTaskCompleteNotificationSchema,
1312
- }).transform(() => ({
1502
+ })
1503
+ .transform(() => ({
1313
1504
  kind: "turn_completed",
1314
1505
  status: "completed",
1315
1506
  errorMessage: null,
1316
1507
  })),
1317
- z.object({ method: z.literal("codex/event/task_complete"), params: z.unknown() }).transform(({ method, params }) => ({ kind: "invalid_payload", method, params })),
1318
- z.object({ method: z.string(), params: z.unknown() }).transform(({ method, params }) => ({ kind: "unknown_method", method, params })),
1508
+ z.object({ method: z.literal("codex/event/task_complete"), params: z.unknown() }).transform(({ method, params }) => ({
1509
+ kind: "invalid_payload",
1510
+ method,
1511
+ params,
1512
+ })),
1513
+ z
1514
+ .object({ method: z.string(), params: z.unknown() })
1515
+ .transform(({ method, params }) => ({ kind: "unknown_method", method, params })),
1319
1516
  ]);
1320
1517
  async function writeImageAttachment(mimeType, data) {
1321
1518
  const attachmentsDir = path.join(os.tmpdir(), CODEX_IMAGE_ATTACHMENT_DIR);
@@ -1628,15 +1825,11 @@ class CodexAppServerAgentSession {
1628
1825
  }
1629
1826
  const withoutPrefix = trimmed.slice(1);
1630
1827
  const firstWhitespaceIdx = withoutPrefix.search(/\s/);
1631
- const commandName = firstWhitespaceIdx === -1
1632
- ? withoutPrefix
1633
- : withoutPrefix.slice(0, firstWhitespaceIdx);
1828
+ const commandName = firstWhitespaceIdx === -1 ? withoutPrefix : withoutPrefix.slice(0, firstWhitespaceIdx);
1634
1829
  if (!commandName || commandName.includes("/")) {
1635
1830
  return null;
1636
1831
  }
1637
- const rawArgs = firstWhitespaceIdx === -1
1638
- ? ""
1639
- : withoutPrefix.slice(firstWhitespaceIdx + 1).trim();
1832
+ const rawArgs = firstWhitespaceIdx === -1 ? "" : withoutPrefix.slice(firstWhitespaceIdx + 1).trim();
1640
1833
  return rawArgs.length > 0 ? { commandName, args: rawArgs } : { commandName };
1641
1834
  }
1642
1835
  async resolveSlashCommandInvocation(prompt) {
@@ -1649,9 +1842,7 @@ class CodexAppServerAgentSession {
1649
1842
  }
1650
1843
  try {
1651
1844
  const commands = await this.listCommands();
1652
- return commands.some((command) => command.name === parsed.commandName)
1653
- ? parsed
1654
- : null;
1845
+ return commands.some((command) => command.name === parsed.commandName) ? parsed : null;
1655
1846
  }
1656
1847
  catch (error) {
1657
1848
  this.logger.warn({ err: error, commandName: parsed.commandName }, "Failed to resolve slash command; falling back to plain prompt input");
@@ -1915,20 +2106,12 @@ class CodexAppServerAgentSession {
1915
2106
  resolution: response,
1916
2107
  });
1917
2108
  if (pending.kind === "command") {
1918
- const decision = response.behavior === "allow"
1919
- ? "accept"
1920
- : response.interrupt
1921
- ? "cancel"
1922
- : "decline";
2109
+ const decision = response.behavior === "allow" ? "accept" : response.interrupt ? "cancel" : "decline";
1923
2110
  pending.resolve({ decision });
1924
2111
  return;
1925
2112
  }
1926
2113
  if (pending.kind === "file") {
1927
- const decision = response.behavior === "allow"
1928
- ? "accept"
1929
- : response.interrupt
1930
- ? "cancel"
1931
- : "decline";
2114
+ const decision = response.behavior === "allow" ? "accept" : response.interrupt ? "cancel" : "decline";
1932
2115
  pending.resolve({ decision });
1933
2116
  return;
1934
2117
  }
@@ -2108,7 +2291,11 @@ class CodexAppServerAgentSession {
2108
2291
  const parsed = CodexNotificationSchema.parse({ method, params });
2109
2292
  if (parsed.kind === "thread_started") {
2110
2293
  this.currentThreadId = parsed.threadId;
2111
- this.emitEvent({ type: "thread_started", provider: CODEX_PROVIDER, sessionId: parsed.threadId });
2294
+ this.emitEvent({
2295
+ type: "thread_started",
2296
+ provider: CODEX_PROVIDER,
2297
+ sessionId: parsed.threadId,
2298
+ });
2112
2299
  return;
2113
2300
  }
2114
2301
  if (parsed.kind === "turn_started") {
@@ -2135,7 +2322,11 @@ class CodexAppServerAgentSession {
2135
2322
  this.emitEvent({ type: "turn_canceled", provider: CODEX_PROVIDER, reason: "interrupted" });
2136
2323
  }
2137
2324
  else {
2138
- this.emitEvent({ type: "turn_completed", provider: CODEX_PROVIDER, usage: this.latestUsage });
2325
+ this.emitEvent({
2326
+ type: "turn_completed",
2327
+ provider: CODEX_PROVIDER,
2328
+ usage: this.latestUsage,
2329
+ });
2139
2330
  }
2140
2331
  this.emittedItemStartedIds.clear();
2141
2332
  this.emittedItemCompletedIds.clear();
@@ -2181,7 +2372,9 @@ class CodexAppServerAgentSession {
2181
2372
  return;
2182
2373
  }
2183
2374
  if (parsed.kind === "exec_command_output_delta") {
2184
- this.appendOutputDeltaChunk(this.pendingCommandOutputDeltas, parsed.callId, parsed.chunk, { decodeBase64: true });
2375
+ this.appendOutputDeltaChunk(this.pendingCommandOutputDeltas, parsed.callId, parsed.chunk, {
2376
+ decodeBase64: true,
2377
+ });
2185
2378
  return;
2186
2379
  }
2187
2380
  if (parsed.kind === "file_change_output_delta") {
@@ -2225,10 +2418,7 @@ class CodexAppServerAgentSession {
2225
2418
  return;
2226
2419
  }
2227
2420
  if (parsed.kind === "terminal_interaction") {
2228
- const interactionKey = [
2229
- parsed.processId ?? "",
2230
- parsed.stdin ?? "",
2231
- ].join("\u0000");
2421
+ const interactionKey = [parsed.processId ?? "", parsed.stdin ?? ""].join("\u0000");
2232
2422
  if (!this.shouldEmitTerminalInteractionKey(interactionKey)) {
2233
2423
  return;
2234
2424
  }
@@ -2297,8 +2487,7 @@ class CodexAppServerAgentSession {
2297
2487
  const itemId = parsed.item.id;
2298
2488
  // For commandExecution items, codex/event/exec_command_* is authoritative.
2299
2489
  // Keep item/completed as fallback only when no exec_command completion was seen.
2300
- if (timelineItem.type === "tool_call" &&
2301
- normalizedItemType === "commandExecution") {
2490
+ if (timelineItem.type === "tool_call" && normalizedItemType === "commandExecution") {
2302
2491
  const callId = timelineItem.callId || itemId;
2303
2492
  if (callId && this.emittedExecCommandCompletedCallIds.has(callId)) {
2304
2493
  return;
@@ -2563,7 +2752,7 @@ export class CodexAppServerAgentClient {
2563
2752
  spawnAppServer() {
2564
2753
  const launchPrefix = resolveCodexLaunchPrefix(this.runtimeSettings);
2565
2754
  this.logger.trace({
2566
- launchPrefix
2755
+ launchPrefix,
2567
2756
  }, "Spawning Codex app server");
2568
2757
  return spawn(launchPrefix.command, [...launchPrefix.args, "app-server"], {
2569
2758
  detached: process.platform !== "win32",
@@ -2621,10 +2810,7 @@ export class CodexAppServerAgentClient {
2621
2810
  itemsFromThreadRead.push(timelineItem);
2622
2811
  }
2623
2812
  }
2624
- timeline =
2625
- rolloutTimeline.length > 0
2626
- ? rolloutTimeline
2627
- : itemsFromThreadRead;
2813
+ timeline = rolloutTimeline.length > 0 ? rolloutTimeline : itemsFromThreadRead;
2628
2814
  }
2629
2815
  catch {
2630
2816
  timeline = [];
@@ -2676,9 +2862,7 @@ export class CodexAppServerAgentClient {
2676
2862
  ? models.some((model) => model?.id === configuredDefaultModelId)
2677
2863
  : false;
2678
2864
  return models.map((model) => {
2679
- const defaultReasoningEffort = normalizeCodexThinkingOptionId(typeof model.defaultReasoningEffort === "string"
2680
- ? model.defaultReasoningEffort
2681
- : null);
2865
+ const defaultReasoningEffort = normalizeCodexThinkingOptionId(typeof model.defaultReasoningEffort === "string" ? model.defaultReasoningEffort : null);
2682
2866
  const resolvedDefaultReasoningEffort = configuredDefaultThinkingOptionId ?? defaultReasoningEffort;
2683
2867
  const thinkingById = new Map();
2684
2868
  if (Array.isArray(model.supportedReasoningEfforts)) {
@@ -2714,7 +2898,7 @@ export class CodexAppServerAgentClient {
2714
2898
  return {
2715
2899
  provider: CODEX_PROVIDER,
2716
2900
  id: model.id,
2717
- label: model.displayName,
2901
+ label: normalizeCodexModelLabel(model.displayName),
2718
2902
  description: model.description,
2719
2903
  isDefault: isDefaultModel,
2720
2904
  thinkingOptions: thinkingOptions.length > 0 ? thinkingOptions : undefined,