@ck123pm/paseo-server 0.1.80

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 (1077) hide show
  1. package/.env.example +23 -0
  2. package/README.md +111 -0
  3. package/dist/scripts/dev-runner.js +49 -0
  4. package/dist/scripts/dev-runner.js.map +1 -0
  5. package/dist/scripts/mcp-stdio-socket-bridge-cli.mjs +62 -0
  6. package/dist/scripts/supervisor-entrypoint.js +126 -0
  7. package/dist/scripts/supervisor-entrypoint.js.map +1 -0
  8. package/dist/scripts/supervisor-log-config.js +31 -0
  9. package/dist/scripts/supervisor-log-config.js.map +1 -0
  10. package/dist/scripts/supervisor.js +213 -0
  11. package/dist/scripts/supervisor.js.map +1 -0
  12. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts +8 -0
  13. package/dist/server/client/daemon-client-relay-e2ee-transport.d.ts.map +1 -0
  14. package/dist/server/client/daemon-client-relay-e2ee-transport.js +161 -0
  15. package/dist/server/client/daemon-client-relay-e2ee-transport.js.map +1 -0
  16. package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
  17. package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
  18. package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
  19. package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
  20. package/dist/server/client/daemon-client-transport-types.d.ts +36 -0
  21. package/dist/server/client/daemon-client-transport-types.d.ts.map +1 -0
  22. package/dist/server/client/daemon-client-transport-types.js +2 -0
  23. package/dist/server/client/daemon-client-transport-types.js.map +1 -0
  24. package/dist/server/client/daemon-client-transport-utils.d.ts +9 -0
  25. package/dist/server/client/daemon-client-transport-utils.d.ts.map +1 -0
  26. package/dist/server/client/daemon-client-transport-utils.js +121 -0
  27. package/dist/server/client/daemon-client-transport-utils.js.map +1 -0
  28. package/dist/server/client/daemon-client-transport.d.ts +5 -0
  29. package/dist/server/client/daemon-client-transport.d.ts.map +1 -0
  30. package/dist/server/client/daemon-client-transport.js +4 -0
  31. package/dist/server/client/daemon-client-transport.js.map +1 -0
  32. package/dist/server/client/daemon-client-websocket-transport.d.ts +8 -0
  33. package/dist/server/client/daemon-client-websocket-transport.d.ts.map +1 -0
  34. package/dist/server/client/daemon-client-websocket-transport.js +120 -0
  35. package/dist/server/client/daemon-client-websocket-transport.js.map +1 -0
  36. package/dist/server/client/daemon-client.d.ts +862 -0
  37. package/dist/server/client/daemon-client.d.ts.map +1 -0
  38. package/dist/server/client/daemon-client.js +3376 -0
  39. package/dist/server/client/daemon-client.js.map +1 -0
  40. package/dist/server/client/terminal-stream-router.d.ts +24 -0
  41. package/dist/server/client/terminal-stream-router.d.ts.map +1 -0
  42. package/dist/server/client/terminal-stream-router.js +100 -0
  43. package/dist/server/client/terminal-stream-router.js.map +1 -0
  44. package/dist/server/server/agent/activity-curator.d.ts +11 -0
  45. package/dist/server/server/agent/activity-curator.d.ts.map +1 -0
  46. package/dist/server/server/agent/activity-curator.js +150 -0
  47. package/dist/server/server/agent/activity-curator.js.map +1 -0
  48. package/dist/server/server/agent/agent-archive.d.ts +11 -0
  49. package/dist/server/server/agent/agent-archive.d.ts.map +1 -0
  50. package/dist/server/server/agent/agent-archive.js +16 -0
  51. package/dist/server/server/agent/agent-archive.js.map +1 -0
  52. package/dist/server/server/agent/agent-loading.d.ts +12 -0
  53. package/dist/server/server/agent/agent-loading.d.ts.map +1 -0
  54. package/dist/server/server/agent/agent-loading.js +51 -0
  55. package/dist/server/server/agent/agent-loading.js.map +1 -0
  56. package/dist/server/server/agent/agent-manager.d.ts +342 -0
  57. package/dist/server/server/agent/agent-manager.d.ts.map +1 -0
  58. package/dist/server/server/agent/agent-manager.js +2572 -0
  59. package/dist/server/server/agent/agent-manager.js.map +1 -0
  60. package/dist/server/server/agent/agent-metadata-generator.d.ts +27 -0
  61. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -0
  62. package/dist/server/server/agent/agent-metadata-generator.js +104 -0
  63. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -0
  64. package/dist/server/server/agent/agent-projections.d.ts +24 -0
  65. package/dist/server/server/agent/agent-projections.d.ts.map +1 -0
  66. package/dist/server/server/agent/agent-projections.js +406 -0
  67. package/dist/server/server/agent/agent-projections.js.map +1 -0
  68. package/dist/server/server/agent/agent-prompt.d.ts +72 -0
  69. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -0
  70. package/dist/server/server/agent/agent-prompt.js +196 -0
  71. package/dist/server/server/agent/agent-prompt.js.map +1 -0
  72. package/dist/server/server/agent/agent-response-loop.d.ts +62 -0
  73. package/dist/server/server/agent/agent-response-loop.d.ts.map +1 -0
  74. package/dist/server/server/agent/agent-response-loop.js +321 -0
  75. package/dist/server/server/agent/agent-response-loop.js.map +1 -0
  76. package/dist/server/server/agent/agent-sdk-types.d.ts +540 -0
  77. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -0
  78. package/dist/server/server/agent/agent-sdk-types.js +22 -0
  79. package/dist/server/server/agent/agent-sdk-types.js.map +1 -0
  80. package/dist/server/server/agent/agent-storage.d.ts +346 -0
  81. package/dist/server/server/agent/agent-storage.d.ts.map +1 -0
  82. package/dist/server/server/agent/agent-storage.js +340 -0
  83. package/dist/server/server/agent/agent-storage.js.map +1 -0
  84. package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
  85. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
  86. package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
  87. package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
  88. package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
  89. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
  90. package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
  91. package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
  92. package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
  93. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
  94. package/dist/server/server/agent/agent-timeline-store.js +263 -0
  95. package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
  96. package/dist/server/server/agent/agent-title-limits.d.ts +3 -0
  97. package/dist/server/server/agent/agent-title-limits.d.ts.map +1 -0
  98. package/dist/server/server/agent/agent-title-limits.js +3 -0
  99. package/dist/server/server/agent/agent-title-limits.js.map +1 -0
  100. package/dist/server/server/agent/audio-utils.d.ts +3 -0
  101. package/dist/server/server/agent/audio-utils.d.ts.map +1 -0
  102. package/dist/server/server/agent/audio-utils.js +19 -0
  103. package/dist/server/server/agent/audio-utils.js.map +1 -0
  104. package/dist/server/server/agent/create-agent-mode.d.ts +16 -0
  105. package/dist/server/server/agent/create-agent-mode.d.ts.map +1 -0
  106. package/dist/server/server/agent/create-agent-mode.js +26 -0
  107. package/dist/server/server/agent/create-agent-mode.js.map +1 -0
  108. package/dist/server/server/agent/create-agent-title.d.ts +8 -0
  109. package/dist/server/server/agent/create-agent-title.d.ts.map +1 -0
  110. package/dist/server/server/agent/create-agent-title.js +29 -0
  111. package/dist/server/server/agent/create-agent-title.js.map +1 -0
  112. package/dist/server/server/agent/dictation-debug.d.ts +13 -0
  113. package/dist/server/server/agent/dictation-debug.d.ts.map +1 -0
  114. package/dist/server/server/agent/dictation-debug.js +50 -0
  115. package/dist/server/server/agent/dictation-debug.js.map +1 -0
  116. package/dist/server/server/agent/foreground-run-state.d.ts +50 -0
  117. package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -0
  118. package/dist/server/server/agent/foreground-run-state.js +160 -0
  119. package/dist/server/server/agent/foreground-run-state.js.map +1 -0
  120. package/dist/server/server/agent/import-sessions.d.ts +52 -0
  121. package/dist/server/server/agent/import-sessions.d.ts.map +1 -0
  122. package/dist/server/server/agent/import-sessions.js +212 -0
  123. package/dist/server/server/agent/import-sessions.js.map +1 -0
  124. package/dist/server/server/agent/mcp-server.d.ts +46 -0
  125. package/dist/server/server/agent/mcp-server.d.ts.map +1 -0
  126. package/dist/server/server/agent/mcp-server.js +1962 -0
  127. package/dist/server/server/agent/mcp-server.js.map +1 -0
  128. package/dist/server/server/agent/mcp-shared.d.ts +316 -0
  129. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -0
  130. package/dist/server/server/agent/mcp-shared.js +194 -0
  131. package/dist/server/server/agent/mcp-shared.js.map +1 -0
  132. package/dist/server/server/agent/model-resolver.d.ts +11 -0
  133. package/dist/server/server/agent/model-resolver.d.ts.map +1 -0
  134. package/dist/server/server/agent/model-resolver.js +27 -0
  135. package/dist/server/server/agent/model-resolver.js.map +1 -0
  136. package/dist/server/server/agent/pcm16-resampler.d.ts +14 -0
  137. package/dist/server/server/agent/pcm16-resampler.d.ts.map +1 -0
  138. package/dist/server/server/agent/pcm16-resampler.js +63 -0
  139. package/dist/server/server/agent/pcm16-resampler.js.map +1 -0
  140. package/dist/server/server/agent/prompt-attachments.d.ts +7 -0
  141. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
  142. package/dist/server/server/agent/prompt-attachments.js +72 -0
  143. package/dist/server/server/agent/prompt-attachments.js.map +1 -0
  144. package/dist/server/server/agent/provider-history-timestamps.d.ts +2 -0
  145. package/dist/server/server/agent/provider-history-timestamps.d.ts.map +1 -0
  146. package/dist/server/server/agent/provider-history-timestamps.js +16 -0
  147. package/dist/server/server/agent/provider-history-timestamps.js.map +1 -0
  148. package/dist/server/server/agent/provider-launch-config.d.ts +368 -0
  149. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -0
  150. package/dist/server/server/agent/provider-launch-config.js +190 -0
  151. package/dist/server/server/agent/provider-launch-config.js.map +1 -0
  152. package/dist/server/server/agent/provider-manifest.d.ts +33 -0
  153. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -0
  154. package/dist/server/server/agent/provider-manifest.js +211 -0
  155. package/dist/server/server/agent/provider-manifest.js.map +1 -0
  156. package/dist/server/server/agent/provider-registry.d.ts +33 -0
  157. package/dist/server/server/agent/provider-registry.d.ts.map +1 -0
  158. package/dist/server/server/agent/provider-registry.js +396 -0
  159. package/dist/server/server/agent/provider-registry.js.map +1 -0
  160. package/dist/server/server/agent/provider-snapshot-manager.d.ts +49 -0
  161. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -0
  162. package/dist/server/server/agent/provider-snapshot-manager.js +348 -0
  163. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -0
  164. package/dist/server/server/agent/providers/acp-agent.d.ts +286 -0
  165. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -0
  166. package/dist/server/server/agent/providers/acp-agent.js +2070 -0
  167. package/dist/server/server/agent/providers/acp-agent.js.map +1 -0
  168. package/dist/server/server/agent/providers/claude/agent.d.ts +60 -0
  169. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -0
  170. package/dist/server/server/agent/providers/claude/agent.js +3815 -0
  171. package/dist/server/server/agent/providers/claude/agent.js.map +1 -0
  172. package/dist/server/server/agent/providers/claude/models.d.ts +10 -0
  173. package/dist/server/server/agent/providers/claude/models.d.ts.map +1 -0
  174. package/dist/server/server/agent/providers/claude/models.js +170 -0
  175. package/dist/server/server/agent/providers/claude/models.js.map +1 -0
  176. package/dist/server/server/agent/providers/claude/partial-json.d.ts +5 -0
  177. package/dist/server/server/agent/providers/claude/partial-json.d.ts.map +1 -0
  178. package/dist/server/server/agent/providers/claude/partial-json.js +306 -0
  179. package/dist/server/server/agent/providers/claude/partial-json.js.map +1 -0
  180. package/dist/server/server/agent/providers/claude/project-dir.d.ts +5 -0
  181. package/dist/server/server/agent/providers/claude/project-dir.d.ts.map +1 -0
  182. package/dist/server/server/agent/providers/claude/project-dir.js +40 -0
  183. package/dist/server/server/agent/providers/claude/project-dir.js.map +1 -0
  184. package/dist/server/server/agent/providers/claude/query.d.ts +14 -0
  185. package/dist/server/server/agent/providers/claude/query.d.ts.map +1 -0
  186. package/dist/server/server/agent/providers/claude/query.js +84 -0
  187. package/dist/server/server/agent/providers/claude/query.js.map +1 -0
  188. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +22 -0
  189. package/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts.map +1 -0
  190. package/dist/server/server/agent/providers/claude/sidechain-tracker.js +232 -0
  191. package/dist/server/server/agent/providers/claude/sidechain-tracker.js.map +1 -0
  192. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +55 -0
  193. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts.map +1 -0
  194. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js +272 -0
  195. package/dist/server/server/agent/providers/claude/task-notification-tool-call.js.map +1 -0
  196. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts +3 -0
  197. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts.map +1 -0
  198. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +130 -0
  199. package/dist/server/server/agent/providers/claude/tool-call-detail-parser.js.map +1 -0
  200. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +16 -0
  201. package/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts.map +1 -0
  202. package/dist/server/server/agent/providers/claude/tool-call-mapper.js +129 -0
  203. package/dist/server/server/agent/providers/claude/tool-call-mapper.js.map +1 -0
  204. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +32 -0
  205. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -0
  206. package/dist/server/server/agent/providers/codex/app-server-transport.js +214 -0
  207. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -0
  208. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +31 -0
  209. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts.map +1 -0
  210. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +172 -0
  211. package/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js.map +1 -0
  212. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +12 -0
  213. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts.map +1 -0
  214. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +104 -0
  215. package/dist/server/server/agent/providers/codex/tool-call-detail-parser.js.map +1 -0
  216. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +15 -0
  217. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -0
  218. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +791 -0
  219. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -0
  220. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +307 -0
  221. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -0
  222. package/dist/server/server/agent/providers/codex-app-server-agent.js +4364 -0
  223. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -0
  224. package/dist/server/server/agent/providers/codex-feature-definitions.d.ts +11 -0
  225. package/dist/server/server/agent/providers/codex-feature-definitions.d.ts.map +1 -0
  226. package/dist/server/server/agent/providers/codex-feature-definitions.js +45 -0
  227. package/dist/server/server/agent/providers/codex-feature-definitions.js.map +1 -0
  228. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts +9 -0
  229. package/dist/server/server/agent/providers/codex-rollout-timeline.d.ts.map +1 -0
  230. package/dist/server/server/agent/providers/codex-rollout-timeline.js +555 -0
  231. package/dist/server/server/agent/providers/codex-rollout-timeline.js.map +1 -0
  232. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +25 -0
  233. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -0
  234. package/dist/server/server/agent/providers/copilot-acp-agent.js +203 -0
  235. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -0
  236. package/dist/server/server/agent/providers/cursor-acp-agent.d.ts +21 -0
  237. package/dist/server/server/agent/providers/cursor-acp-agent.d.ts.map +1 -0
  238. package/dist/server/server/agent/providers/cursor-acp-agent.js +95 -0
  239. package/dist/server/server/agent/providers/cursor-acp-agent.js.map +1 -0
  240. package/dist/server/server/agent/providers/diagnostic-utils.d.ts +17 -0
  241. package/dist/server/server/agent/providers/diagnostic-utils.d.ts.map +1 -0
  242. package/dist/server/server/agent/providers/diagnostic-utils.js +127 -0
  243. package/dist/server/server/agent/providers/diagnostic-utils.js.map +1 -0
  244. package/dist/server/server/agent/providers/generic-acp-agent.d.ts +33 -0
  245. package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -0
  246. package/dist/server/server/agent/providers/generic-acp-agent.js +234 -0
  247. package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -0
  248. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +68 -0
  249. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
  250. package/dist/server/server/agent/providers/mock-load-test-agent.js +770 -0
  251. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
  252. package/dist/server/server/agent/providers/opencode/runtime.d.ts +27 -0
  253. package/dist/server/server/agent/providers/opencode/runtime.d.ts.map +1 -0
  254. package/dist/server/server/agent/providers/opencode/runtime.js +5 -0
  255. package/dist/server/server/agent/providers/opencode/runtime.js.map +1 -0
  256. package/dist/server/server/agent/providers/opencode/server-manager.d.ts +55 -0
  257. package/dist/server/server/agent/providers/opencode/server-manager.d.ts.map +1 -0
  258. package/dist/server/server/agent/providers/opencode/server-manager.js +256 -0
  259. package/dist/server/server/agent/providers/opencode/server-manager.js.map +1 -0
  260. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +22 -0
  261. package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts.map +1 -0
  262. package/dist/server/server/agent/providers/opencode/test-server-manager.js +28 -0
  263. package/dist/server/server/agent/providers/opencode/test-server-manager.js.map +1 -0
  264. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +83 -0
  265. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map +1 -0
  266. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +225 -0
  267. package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js.map +1 -0
  268. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +3 -0
  269. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts.map +1 -0
  270. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +131 -0
  271. package/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js.map +1 -0
  272. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +13 -0
  273. package/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts.map +1 -0
  274. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js +53 -0
  275. package/dist/server/server/agent/providers/opencode/tool-call-mapper.js.map +1 -0
  276. package/dist/server/server/agent/providers/opencode-agent.d.ts +231 -0
  277. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -0
  278. package/dist/server/server/agent/providers/opencode-agent.js +2443 -0
  279. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -0
  280. package/dist/server/server/agent/providers/pi/agent.d.ts +84 -0
  281. package/dist/server/server/agent/providers/pi/agent.d.ts.map +1 -0
  282. package/dist/server/server/agent/providers/pi/agent.js +828 -0
  283. package/dist/server/server/agent/providers/pi/agent.js.map +1 -0
  284. package/dist/server/server/agent/providers/pi/cli-runtime.d.ts +18 -0
  285. package/dist/server/server/agent/providers/pi/cli-runtime.d.ts.map +1 -0
  286. package/dist/server/server/agent/providers/pi/cli-runtime.js +211 -0
  287. package/dist/server/server/agent/providers/pi/cli-runtime.js.map +1 -0
  288. package/dist/server/server/agent/providers/pi/history-mapper.d.ts +5 -0
  289. package/dist/server/server/agent/providers/pi/history-mapper.d.ts.map +1 -0
  290. package/dist/server/server/agent/providers/pi/history-mapper.js +139 -0
  291. package/dist/server/server/agent/providers/pi/history-mapper.js.map +1 -0
  292. package/dist/server/server/agent/providers/pi/rpc-types.d.ts +185 -0
  293. package/dist/server/server/agent/providers/pi/rpc-types.d.ts.map +1 -0
  294. package/dist/server/server/agent/providers/pi/rpc-types.js +2 -0
  295. package/dist/server/server/agent/providers/pi/rpc-types.js.map +1 -0
  296. package/dist/server/server/agent/providers/pi/runtime.d.ts +47 -0
  297. package/dist/server/server/agent/providers/pi/runtime.d.ts.map +1 -0
  298. package/dist/server/server/agent/providers/pi/runtime.js +47 -0
  299. package/dist/server/server/agent/providers/pi/runtime.js.map +1 -0
  300. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +10 -0
  301. package/dist/server/server/agent/providers/pi/session-descriptor.d.ts.map +1 -0
  302. package/dist/server/server/agent/providers/pi/session-descriptor.js +300 -0
  303. package/dist/server/server/agent/providers/pi/session-descriptor.js.map +1 -0
  304. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +52 -0
  305. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts.map +1 -0
  306. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +109 -0
  307. package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js.map +1 -0
  308. package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts +112 -0
  309. package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts.map +1 -0
  310. package/dist/server/server/agent/providers/pi/tool-call-mapper.js +284 -0
  311. package/dist/server/server/agent/providers/pi/tool-call-mapper.js.map +1 -0
  312. package/dist/server/server/agent/providers/provider-image-output.d.ts +20 -0
  313. package/dist/server/server/agent/providers/provider-image-output.d.ts.map +1 -0
  314. package/dist/server/server/agent/providers/provider-image-output.js +51 -0
  315. package/dist/server/server/agent/providers/provider-image-output.js.map +1 -0
  316. package/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
  317. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -0
  318. package/dist/server/server/agent/providers/provider-runner.js +81 -0
  319. package/dist/server/server/agent/providers/provider-runner.js.map +1 -0
  320. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +3 -0
  321. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -0
  322. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +60 -0
  323. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -0
  324. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +1751 -0
  325. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -0
  326. package/dist/server/server/agent/providers/tool-call-detail-primitives.js +709 -0
  327. package/dist/server/server/agent/providers/tool-call-detail-primitives.js.map +1 -0
  328. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +20 -0
  329. package/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts.map +1 -0
  330. package/dist/server/server/agent/providers/tool-call-mapper-utils.js +146 -0
  331. package/dist/server/server/agent/providers/tool-call-mapper-utils.js.map +1 -0
  332. package/dist/server/server/agent/recordings-debug.d.ts +3 -0
  333. package/dist/server/server/agent/recordings-debug.d.ts.map +1 -0
  334. package/dist/server/server/agent/recordings-debug.js +19 -0
  335. package/dist/server/server/agent/recordings-debug.js.map +1 -0
  336. package/dist/server/server/agent/stt-debug.d.ts +10 -0
  337. package/dist/server/server/agent/stt-debug.d.ts.map +1 -0
  338. package/dist/server/server/agent/stt-debug.js +33 -0
  339. package/dist/server/server/agent/stt-debug.js.map +1 -0
  340. package/dist/server/server/agent/stt-manager.d.ts +38 -0
  341. package/dist/server/server/agent/stt-manager.d.ts.map +1 -0
  342. package/dist/server/server/agent/stt-manager.js +246 -0
  343. package/dist/server/server/agent/stt-manager.js.map +1 -0
  344. package/dist/server/server/agent/system-prompt.d.ts +2 -0
  345. package/dist/server/server/agent/system-prompt.d.ts.map +1 -0
  346. package/dist/server/server/agent/system-prompt.js +8 -0
  347. package/dist/server/server/agent/system-prompt.js.map +1 -0
  348. package/dist/server/server/agent/timeline-append.d.ts +10 -0
  349. package/dist/server/server/agent/timeline-append.d.ts.map +1 -0
  350. package/dist/server/server/agent/timeline-append.js +27 -0
  351. package/dist/server/server/agent/timeline-append.js.map +1 -0
  352. package/dist/server/server/agent/timeline-projection.d.ts +55 -0
  353. package/dist/server/server/agent/timeline-projection.d.ts.map +1 -0
  354. package/dist/server/server/agent/timeline-projection.js +279 -0
  355. package/dist/server/server/agent/timeline-projection.js.map +1 -0
  356. package/dist/server/server/agent/tool-name-normalization.d.ts +9 -0
  357. package/dist/server/server/agent/tool-name-normalization.d.ts.map +1 -0
  358. package/dist/server/server/agent/tool-name-normalization.js +82 -0
  359. package/dist/server/server/agent/tool-name-normalization.js.map +1 -0
  360. package/dist/server/server/agent/tts-debug.d.ts +8 -0
  361. package/dist/server/server/agent/tts-debug.d.ts.map +1 -0
  362. package/dist/server/server/agent/tts-debug.js +24 -0
  363. package/dist/server/server/agent/tts-debug.js.map +1 -0
  364. package/dist/server/server/agent/tts-manager.d.ts +41 -0
  365. package/dist/server/server/agent/tts-manager.d.ts.map +1 -0
  366. package/dist/server/server/agent/tts-manager.js +375 -0
  367. package/dist/server/server/agent/tts-manager.js.map +1 -0
  368. package/dist/server/server/agent/wait-for-agent-tracker.d.ts +15 -0
  369. package/dist/server/server/agent/wait-for-agent-tracker.d.ts.map +1 -0
  370. package/dist/server/server/agent/wait-for-agent-tracker.js +53 -0
  371. package/dist/server/server/agent/wait-for-agent-tracker.js.map +1 -0
  372. package/dist/server/server/agent-attention-policy.d.ts +20 -0
  373. package/dist/server/server/agent-attention-policy.d.ts.map +1 -0
  374. package/dist/server/server/agent-attention-policy.js +24 -0
  375. package/dist/server/server/agent-attention-policy.js.map +1 -0
  376. package/dist/server/server/auth.d.ts +25 -0
  377. package/dist/server/server/auth.d.ts.map +1 -0
  378. package/dist/server/server/auth.js +93 -0
  379. package/dist/server/server/auth.js.map +1 -0
  380. package/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts +40 -0
  381. package/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts.map +1 -0
  382. package/dist/server/server/auto-archive-on-merge/archive-if-safe.js +80 -0
  383. package/dist/server/server/auto-archive-on-merge/archive-if-safe.js.map +1 -0
  384. package/dist/server/server/auto-archive-on-merge/index.d.ts +8 -0
  385. package/dist/server/server/auto-archive-on-merge/index.d.ts.map +1 -0
  386. package/dist/server/server/auto-archive-on-merge/index.js +15 -0
  387. package/dist/server/server/auto-archive-on-merge/index.js.map +1 -0
  388. package/dist/server/server/bootstrap.d.ts +98 -0
  389. package/dist/server/server/bootstrap.d.ts.map +1 -0
  390. package/dist/server/server/bootstrap.js +800 -0
  391. package/dist/server/server/bootstrap.js.map +1 -0
  392. package/dist/server/server/chat/chat-mentions.d.ts +47 -0
  393. package/dist/server/server/chat/chat-mentions.d.ts.map +1 -0
  394. package/dist/server/server/chat/chat-mentions.js +113 -0
  395. package/dist/server/server/chat/chat-mentions.js.map +1 -0
  396. package/dist/server/server/chat/chat-rpc-schemas.d.ts +728 -0
  397. package/dist/server/server/chat/chat-rpc-schemas.d.ts.map +1 -0
  398. package/dist/server/server/chat/chat-rpc-schemas.js +103 -0
  399. package/dist/server/server/chat/chat-rpc-schemas.js.map +1 -0
  400. package/dist/server/server/chat/chat-service.d.ts +78 -0
  401. package/dist/server/server/chat/chat-service.d.ts.map +1 -0
  402. package/dist/server/server/chat/chat-service.js +339 -0
  403. package/dist/server/server/chat/chat-service.js.map +1 -0
  404. package/dist/server/server/chat/chat-types.d.ts +75 -0
  405. package/dist/server/server/chat/chat-types.d.ts.map +1 -0
  406. package/dist/server/server/chat/chat-types.js +22 -0
  407. package/dist/server/server/chat/chat-types.js.map +1 -0
  408. package/dist/server/server/checkout/status-projection.d.ts +19 -0
  409. package/dist/server/server/checkout/status-projection.d.ts.map +1 -0
  410. package/dist/server/server/checkout/status-projection.js +102 -0
  411. package/dist/server/server/checkout/status-projection.js.map +1 -0
  412. package/dist/server/server/checkout-diff-manager.d.ts +41 -0
  413. package/dist/server/server/checkout-diff-manager.d.ts.map +1 -0
  414. package/dist/server/server/checkout-diff-manager.js +189 -0
  415. package/dist/server/server/checkout-diff-manager.js.map +1 -0
  416. package/dist/server/server/checkout-git-utils.d.ts +11 -0
  417. package/dist/server/server/checkout-git-utils.d.ts.map +1 -0
  418. package/dist/server/server/checkout-git-utils.js +34 -0
  419. package/dist/server/server/checkout-git-utils.js.map +1 -0
  420. package/dist/server/server/client-message-id.d.ts +3 -0
  421. package/dist/server/server/client-message-id.d.ts.map +1 -0
  422. package/dist/server/server/client-message-id.js +12 -0
  423. package/dist/server/server/client-message-id.js.map +1 -0
  424. package/dist/server/server/config.d.ts +23 -0
  425. package/dist/server/server/config.d.ts.map +1 -0
  426. package/dist/server/server/config.js +233 -0
  427. package/dist/server/server/config.js.map +1 -0
  428. package/dist/server/server/connection-offer.d.ts +20 -0
  429. package/dist/server/server/connection-offer.d.ts.map +1 -0
  430. package/dist/server/server/connection-offer.js +59 -0
  431. package/dist/server/server/connection-offer.js.map +1 -0
  432. package/dist/server/server/daemon-config-store.d.ts +25 -0
  433. package/dist/server/server/daemon-config-store.d.ts.map +1 -0
  434. package/dist/server/server/daemon-config-store.js +138 -0
  435. package/dist/server/server/daemon-config-store.js.map +1 -0
  436. package/dist/server/server/daemon-keypair.d.ts +8 -0
  437. package/dist/server/server/daemon-keypair.d.ts.map +1 -0
  438. package/dist/server/server/daemon-keypair.js +42 -0
  439. package/dist/server/server/daemon-keypair.js.map +1 -0
  440. package/dist/server/server/daemon-version.d.ts +5 -0
  441. package/dist/server/server/daemon-version.d.ts.map +1 -0
  442. package/dist/server/server/daemon-version.js +22 -0
  443. package/dist/server/server/daemon-version.js.map +1 -0
  444. package/dist/server/server/daemon-worker.d.ts +2 -0
  445. package/dist/server/server/daemon-worker.d.ts.map +1 -0
  446. package/dist/server/server/daemon-worker.js +155 -0
  447. package/dist/server/server/daemon-worker.js.map +1 -0
  448. package/dist/server/server/dictation/dictation-stream-manager.d.ts +87 -0
  449. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -0
  450. package/dist/server/server/dictation/dictation-stream-manager.js +572 -0
  451. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -0
  452. package/dist/server/server/editor-targets.d.ts +18 -0
  453. package/dist/server/server/editor-targets.d.ts.map +1 -0
  454. package/dist/server/server/editor-targets.js +109 -0
  455. package/dist/server/server/editor-targets.js.map +1 -0
  456. package/dist/server/server/exports.d.ts +26 -0
  457. package/dist/server/server/exports.d.ts.map +1 -0
  458. package/dist/server/server/exports.js +25 -0
  459. package/dist/server/server/exports.js.map +1 -0
  460. package/dist/server/server/file-download/token-store.d.ts +24 -0
  461. package/dist/server/server/file-download/token-store.d.ts.map +1 -0
  462. package/dist/server/server/file-download/token-store.js +40 -0
  463. package/dist/server/server/file-download/token-store.js.map +1 -0
  464. package/dist/server/server/file-explorer/service.d.ts +51 -0
  465. package/dist/server/server/file-explorer/service.d.ts.map +1 -0
  466. package/dist/server/server/file-explorer/service.js +246 -0
  467. package/dist/server/server/file-explorer/service.js.map +1 -0
  468. package/dist/server/server/hostnames.d.ts +13 -0
  469. package/dist/server/server/hostnames.d.ts.map +1 -0
  470. package/dist/server/server/hostnames.js +94 -0
  471. package/dist/server/server/hostnames.js.map +1 -0
  472. package/dist/server/server/json-utils.d.ts +11 -0
  473. package/dist/server/server/json-utils.d.ts.map +1 -0
  474. package/dist/server/server/json-utils.js +45 -0
  475. package/dist/server/server/json-utils.js.map +1 -0
  476. package/dist/server/server/logger.d.ts +29 -0
  477. package/dist/server/server/logger.d.ts.map +1 -0
  478. package/dist/server/server/logger.js +125 -0
  479. package/dist/server/server/logger.js.map +1 -0
  480. package/dist/server/server/loop/rpc-schemas.d.ts +3005 -0
  481. package/dist/server/server/loop/rpc-schemas.d.ts.map +1 -0
  482. package/dist/server/server/loop/rpc-schemas.js +163 -0
  483. package/dist/server/server/loop/rpc-schemas.js.map +1 -0
  484. package/dist/server/server/loop-service.d.ts +529 -0
  485. package/dist/server/server/loop-service.d.ts.map +1 -0
  486. package/dist/server/server/loop-service.js +751 -0
  487. package/dist/server/server/loop-service.js.map +1 -0
  488. package/dist/server/server/messages.d.ts +9 -0
  489. package/dist/server/server/messages.d.ts.map +1 -0
  490. package/dist/server/server/messages.js +29 -0
  491. package/dist/server/server/messages.js.map +1 -0
  492. package/dist/server/server/package-version.d.ts +25 -0
  493. package/dist/server/server/package-version.d.ts.map +1 -0
  494. package/dist/server/server/package-version.js +60 -0
  495. package/dist/server/server/package-version.js.map +1 -0
  496. package/dist/server/server/pagination/cursor.d.ts +16 -0
  497. package/dist/server/server/pagination/cursor.d.ts.map +1 -0
  498. package/dist/server/server/pagination/cursor.js +62 -0
  499. package/dist/server/server/pagination/cursor.js.map +1 -0
  500. package/dist/server/server/pagination/sortable-pager.d.ts +24 -0
  501. package/dist/server/server/pagination/sortable-pager.d.ts.map +1 -0
  502. package/dist/server/server/pagination/sortable-pager.js +68 -0
  503. package/dist/server/server/pagination/sortable-pager.js.map +1 -0
  504. package/dist/server/server/pairing-offer.d.ts +18 -0
  505. package/dist/server/server/pairing-offer.d.ts.map +1 -0
  506. package/dist/server/server/pairing-offer.js +47 -0
  507. package/dist/server/server/pairing-offer.js.map +1 -0
  508. package/dist/server/server/pairing-qr.d.ts +7 -0
  509. package/dist/server/server/pairing-qr.d.ts.map +1 -0
  510. package/dist/server/server/pairing-qr.js +45 -0
  511. package/dist/server/server/pairing-qr.js.map +1 -0
  512. package/dist/server/server/paseo-env.d.ts +13 -0
  513. package/dist/server/server/paseo-env.d.ts.map +1 -0
  514. package/dist/server/server/paseo-env.js +53 -0
  515. package/dist/server/server/paseo-env.js.map +1 -0
  516. package/dist/server/server/paseo-home.d.ts +2 -0
  517. package/dist/server/server/paseo-home.d.ts.map +1 -0
  518. package/dist/server/server/paseo-home.js +19 -0
  519. package/dist/server/server/paseo-home.js.map +1 -0
  520. package/dist/server/server/paseo-worktree-archive-service.d.ts +43 -0
  521. package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
  522. package/dist/server/server/paseo-worktree-archive-service.js +145 -0
  523. package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
  524. package/dist/server/server/paseo-worktree-service.d.ts +43 -0
  525. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
  526. package/dist/server/server/paseo-worktree-service.js +218 -0
  527. package/dist/server/server/paseo-worktree-service.js.map +1 -0
  528. package/dist/server/server/path-utils.d.ts +4 -0
  529. package/dist/server/server/path-utils.d.ts.map +1 -0
  530. package/dist/server/server/path-utils.js +29 -0
  531. package/dist/server/server/path-utils.js.map +1 -0
  532. package/dist/server/server/persisted-config.d.ts +1056 -0
  533. package/dist/server/server/persisted-config.d.ts.map +1 -0
  534. package/dist/server/server/persisted-config.js +398 -0
  535. package/dist/server/server/persisted-config.js.map +1 -0
  536. package/dist/server/server/persistence-hooks.d.ts +33 -0
  537. package/dist/server/server/persistence-hooks.d.ts.map +1 -0
  538. package/dist/server/server/persistence-hooks.js +99 -0
  539. package/dist/server/server/persistence-hooks.js.map +1 -0
  540. package/dist/server/server/pid-lock.d.ts +46 -0
  541. package/dist/server/server/pid-lock.d.ts.map +1 -0
  542. package/dist/server/server/pid-lock.js +170 -0
  543. package/dist/server/server/pid-lock.js.map +1 -0
  544. package/dist/server/server/private-files.d.ts +7 -0
  545. package/dist/server/server/private-files.d.ts.map +1 -0
  546. package/dist/server/server/private-files.js +42 -0
  547. package/dist/server/server/private-files.js.map +1 -0
  548. package/dist/server/server/push/notifications.d.ts +9 -0
  549. package/dist/server/server/push/notifications.d.ts.map +1 -0
  550. package/dist/server/server/push/notifications.js +15 -0
  551. package/dist/server/server/push/notifications.js.map +1 -0
  552. package/dist/server/server/push/push-service.d.ts +20 -0
  553. package/dist/server/server/push/push-service.d.ts.map +1 -0
  554. package/dist/server/server/push/push-service.js +66 -0
  555. package/dist/server/server/push/push-service.js.map +1 -0
  556. package/dist/server/server/push/token-store.d.ts +18 -0
  557. package/dist/server/server/push/token-store.d.ts.map +1 -0
  558. package/dist/server/server/push/token-store.js +68 -0
  559. package/dist/server/server/push/token-store.js.map +1 -0
  560. package/dist/server/server/relay-transport.d.ts +31 -0
  561. package/dist/server/server/relay-transport.d.ts.map +1 -0
  562. package/dist/server/server/relay-transport.js +514 -0
  563. package/dist/server/server/relay-transport.js.map +1 -0
  564. package/dist/server/server/resolve-worktree-creation-intent.d.ts +29 -0
  565. package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
  566. package/dist/server/server/resolve-worktree-creation-intent.js +119 -0
  567. package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
  568. package/dist/server/server/schedule/cron.d.ts +4 -0
  569. package/dist/server/server/schedule/cron.d.ts.map +1 -0
  570. package/dist/server/server/schedule/cron.js +103 -0
  571. package/dist/server/server/schedule/cron.js.map +1 -0
  572. package/dist/server/server/schedule/rpc-schemas.d.ts +3909 -0
  573. package/dist/server/server/schedule/rpc-schemas.d.ts.map +1 -0
  574. package/dist/server/server/schedule/rpc-schemas.js +151 -0
  575. package/dist/server/server/schedule/rpc-schemas.js.map +1 -0
  576. package/dist/server/server/schedule/service.d.ts +40 -0
  577. package/dist/server/server/schedule/service.d.ts.map +1 -0
  578. package/dist/server/server/schedule/service.js +476 -0
  579. package/dist/server/server/schedule/service.js.map +1 -0
  580. package/dist/server/server/schedule/store.d.ts +13 -0
  581. package/dist/server/server/schedule/store.d.ts.map +1 -0
  582. package/dist/server/server/schedule/store.js +56 -0
  583. package/dist/server/server/schedule/store.js.map +1 -0
  584. package/dist/server/server/schedule/types.d.ts +726 -0
  585. package/dist/server/server/schedule/types.d.ts.map +1 -0
  586. package/dist/server/server/schedule/types.js +73 -0
  587. package/dist/server/server/schedule/types.js.map +1 -0
  588. package/dist/server/server/script-health-monitor.d.ts +39 -0
  589. package/dist/server/server/script-health-monitor.d.ts.map +1 -0
  590. package/dist/server/server/script-health-monitor.js +159 -0
  591. package/dist/server/server/script-health-monitor.js.map +1 -0
  592. package/dist/server/server/script-proxy.d.ts +40 -0
  593. package/dist/server/server/script-proxy.d.ts.map +1 -0
  594. package/dist/server/server/script-proxy.js +245 -0
  595. package/dist/server/server/script-proxy.js.map +1 -0
  596. package/dist/server/server/script-route-branch-handler.d.ts +10 -0
  597. package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
  598. package/dist/server/server/script-route-branch-handler.js +45 -0
  599. package/dist/server/server/script-route-branch-handler.js.map +1 -0
  600. package/dist/server/server/script-status-projection.d.ts +34 -0
  601. package/dist/server/server/script-status-projection.d.ts.map +1 -0
  602. package/dist/server/server/script-status-projection.js +152 -0
  603. package/dist/server/server/script-status-projection.js.map +1 -0
  604. package/dist/server/server/server-id.d.ts +17 -0
  605. package/dist/server/server/server-id.d.ts.map +1 -0
  606. package/dist/server/server/server-id.js +68 -0
  607. package/dist/server/server/server-id.js.map +1 -0
  608. package/dist/server/server/session.d.ts +586 -0
  609. package/dist/server/server/session.d.ts.map +1 -0
  610. package/dist/server/server/session.js +7072 -0
  611. package/dist/server/server/session.js.map +1 -0
  612. package/dist/server/server/speech/audio.d.ts +10 -0
  613. package/dist/server/server/speech/audio.d.ts.map +1 -0
  614. package/dist/server/server/speech/audio.js +101 -0
  615. package/dist/server/server/speech/audio.js.map +1 -0
  616. package/dist/server/server/speech/provider-resolver.d.ts +3 -0
  617. package/dist/server/server/speech/provider-resolver.d.ts.map +1 -0
  618. package/dist/server/server/speech/provider-resolver.js +7 -0
  619. package/dist/server/server/speech/provider-resolver.js.map +1 -0
  620. package/dist/server/server/speech/providers/local/config.d.ts +30 -0
  621. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -0
  622. package/dist/server/server/speech/providers/local/config.js +134 -0
  623. package/dist/server/server/speech/providers/local/config.js.map +1 -0
  624. package/dist/server/server/speech/providers/local/models.d.ts +11 -0
  625. package/dist/server/server/speech/providers/local/models.d.ts.map +1 -0
  626. package/dist/server/server/speech/providers/local/models.js +17 -0
  627. package/dist/server/server/speech/providers/local/models.js.map +1 -0
  628. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts +24 -0
  629. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.d.ts.map +1 -0
  630. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js +459 -0
  631. package/dist/server/server/speech/providers/local/pocket/pocket-tts-onnx.js.map +1 -0
  632. package/dist/server/server/speech/providers/local/runtime.d.ts +31 -0
  633. package/dist/server/server/speech/providers/local/runtime.d.ts.map +1 -0
  634. package/dist/server/server/speech/providers/local/runtime.js +278 -0
  635. package/dist/server/server/speech/providers/local/runtime.js.map +1 -0
  636. package/dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
  637. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +117 -0
  638. package/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts.map +1 -0
  639. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js +169 -0
  640. package/dist/server/server/speech/providers/local/sherpa/model-catalog.js.map +1 -0
  641. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts +15 -0
  642. package/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts.map +1 -0
  643. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js +167 -0
  644. package/dist/server/server/speech/providers/local/sherpa/model-downloader.js.map +1 -0
  645. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts +49 -0
  646. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts.map +1 -0
  647. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +73 -0
  648. package/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js.map +1 -0
  649. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts +56 -0
  650. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.d.ts.map +1 -0
  651. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js +91 -0
  652. package/dist/server/server/speech/providers/local/sherpa/sherpa-online-recognizer.js.map +1 -0
  653. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts +7 -0
  654. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.d.ts.map +1 -0
  655. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.js +11 -0
  656. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-loader.js.map +1 -0
  657. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +9 -0
  658. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts.map +1 -0
  659. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +107 -0
  660. package/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js.map +1 -0
  661. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts +28 -0
  662. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts.map +1 -0
  663. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +137 -0
  664. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js.map +1 -0
  665. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts +21 -0
  666. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts.map +1 -0
  667. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +133 -0
  668. package/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js.map +1 -0
  669. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts +23 -0
  670. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.d.ts.map +1 -0
  671. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js +116 -0
  672. package/dist/server/server/speech/providers/local/sherpa/sherpa-realtime-session.js.map +1 -0
  673. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +18 -0
  674. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts.map +1 -0
  675. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  676. package/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js.map +1 -0
  677. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts +23 -0
  678. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.d.ts.map +1 -0
  679. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js +141 -0
  680. package/dist/server/server/speech/providers/local/sherpa/sherpa-stt.js.map +1 -0
  681. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts +21 -0
  682. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts.map +1 -0
  683. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +115 -0
  684. package/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js.map +1 -0
  685. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts +19 -0
  686. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts.map +1 -0
  687. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +49 -0
  688. package/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js.map +1 -0
  689. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts +38 -0
  690. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts.map +1 -0
  691. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js +176 -0
  692. package/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js.map +1 -0
  693. package/dist/server/server/speech/providers/openai/config.d.ts +22 -0
  694. package/dist/server/server/speech/providers/openai/config.d.ts.map +1 -0
  695. package/dist/server/server/speech/providers/openai/config.js +107 -0
  696. package/dist/server/server/speech/providers/openai/config.js.map +1 -0
  697. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts +42 -0
  698. package/dist/server/server/speech/providers/openai/realtime-transcription-session.d.ts.map +1 -0
  699. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js +168 -0
  700. package/dist/server/server/speech/providers/openai/realtime-transcription-session.js.map +1 -0
  701. package/dist/server/server/speech/providers/openai/runtime.d.ts +29 -0
  702. package/dist/server/server/speech/providers/openai/runtime.d.ts.map +1 -0
  703. package/dist/server/server/speech/providers/openai/runtime.js +117 -0
  704. package/dist/server/server/speech/providers/openai/runtime.js.map +1 -0
  705. package/dist/server/server/speech/providers/openai/stt.d.ts +22 -0
  706. package/dist/server/server/speech/providers/openai/stt.d.ts.map +1 -0
  707. package/dist/server/server/speech/providers/openai/stt.js +207 -0
  708. package/dist/server/server/speech/providers/openai/stt.js.map +1 -0
  709. package/dist/server/server/speech/providers/openai/tts.d.ts +18 -0
  710. package/dist/server/server/speech/providers/openai/tts.d.ts.map +1 -0
  711. package/dist/server/server/speech/providers/openai/tts.js +47 -0
  712. package/dist/server/server/speech/providers/openai/tts.js.map +1 -0
  713. package/dist/server/server/speech/speech-config-resolver.d.ts +11 -0
  714. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -0
  715. package/dist/server/server/speech/speech-config-resolver.js +132 -0
  716. package/dist/server/server/speech/speech-config-resolver.js.map +1 -0
  717. package/dist/server/server/speech/speech-provider.d.ts +59 -0
  718. package/dist/server/server/speech/speech-provider.d.ts.map +1 -0
  719. package/dist/server/server/speech/speech-provider.js +2 -0
  720. package/dist/server/server/speech/speech-provider.js.map +1 -0
  721. package/dist/server/server/speech/speech-runtime.d.ts +45 -0
  722. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -0
  723. package/dist/server/server/speech/speech-runtime.js +562 -0
  724. package/dist/server/server/speech/speech-runtime.js.map +1 -0
  725. package/dist/server/server/speech/speech-types.d.ts +24 -0
  726. package/dist/server/server/speech/speech-types.d.ts.map +1 -0
  727. package/dist/server/server/speech/speech-types.js +8 -0
  728. package/dist/server/server/speech/speech-types.js.map +1 -0
  729. package/dist/server/server/speech/turn-detection-provider.d.ts +23 -0
  730. package/dist/server/server/speech/turn-detection-provider.d.ts.map +1 -0
  731. package/dist/server/server/speech/turn-detection-provider.js +2 -0
  732. package/dist/server/server/speech/turn-detection-provider.js.map +1 -0
  733. package/dist/server/server/utils/diff-highlighter.d.ts +57 -0
  734. package/dist/server/server/utils/diff-highlighter.d.ts.map +1 -0
  735. package/dist/server/server/utils/diff-highlighter.js +279 -0
  736. package/dist/server/server/utils/diff-highlighter.js.map +1 -0
  737. package/dist/server/server/voice/voice-turn-controller.d.ts +38 -0
  738. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -0
  739. package/dist/server/server/voice/voice-turn-controller.js +393 -0
  740. package/dist/server/server/voice/voice-turn-controller.js.map +1 -0
  741. package/dist/server/server/voice-config.d.ts +15 -0
  742. package/dist/server/server/voice-config.d.ts.map +1 -0
  743. package/dist/server/server/voice-config.js +54 -0
  744. package/dist/server/server/voice-config.js.map +1 -0
  745. package/dist/server/server/voice-permission-policy.d.ts +4 -0
  746. package/dist/server/server/voice-permission-policy.d.ts.map +1 -0
  747. package/dist/server/server/voice-permission-policy.js +13 -0
  748. package/dist/server/server/voice-permission-policy.js.map +1 -0
  749. package/dist/server/server/voice-types.d.ts +12 -0
  750. package/dist/server/server/voice-types.d.ts.map +1 -0
  751. package/dist/server/server/voice-types.js +2 -0
  752. package/dist/server/server/voice-types.js.map +1 -0
  753. package/dist/server/server/websocket/runtime-metrics.d.ts +71 -0
  754. package/dist/server/server/websocket/runtime-metrics.d.ts.map +1 -0
  755. package/dist/server/server/websocket/runtime-metrics.js +148 -0
  756. package/dist/server/server/websocket/runtime-metrics.js.map +1 -0
  757. package/dist/server/server/websocket-server.d.ts +153 -0
  758. package/dist/server/server/websocket-server.d.ts.map +1 -0
  759. package/dist/server/server/websocket-server.js +1300 -0
  760. package/dist/server/server/websocket-server.js.map +1 -0
  761. package/dist/server/server/workspace-archive-service.d.ts +8 -0
  762. package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
  763. package/dist/server/server/workspace-archive-service.js +17 -0
  764. package/dist/server/server/workspace-archive-service.js.map +1 -0
  765. package/dist/server/server/workspace-directory.d.ts +67 -0
  766. package/dist/server/server/workspace-directory.d.ts.map +1 -0
  767. package/dist/server/server/workspace-directory.js +214 -0
  768. package/dist/server/server/workspace-directory.js.map +1 -0
  769. package/dist/server/server/workspace-git-metadata.d.ts +24 -0
  770. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
  771. package/dist/server/server/workspace-git-metadata.js +55 -0
  772. package/dist/server/server/workspace-git-metadata.js.map +1 -0
  773. package/dist/server/server/workspace-git-service.d.ts +257 -0
  774. package/dist/server/server/workspace-git-service.d.ts.map +1 -0
  775. package/dist/server/server/workspace-git-service.js +1277 -0
  776. package/dist/server/server/workspace-git-service.js.map +1 -0
  777. package/dist/server/server/workspace-reconciliation-service.d.ts +58 -0
  778. package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
  779. package/dist/server/server/workspace-reconciliation-service.js +274 -0
  780. package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
  781. package/dist/server/server/workspace-registry-bootstrap.d.ts +13 -0
  782. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -0
  783. package/dist/server/server/workspace-registry-bootstrap.js +108 -0
  784. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -0
  785. package/dist/server/server/workspace-registry-model.d.ts +55 -0
  786. package/dist/server/server/workspace-registry-model.d.ts.map +1 -0
  787. package/dist/server/server/workspace-registry-model.js +191 -0
  788. package/dist/server/server/workspace-registry-model.js.map +1 -0
  789. package/dist/server/server/workspace-registry.d.ts +135 -0
  790. package/dist/server/server/workspace-registry.d.ts.map +1 -0
  791. package/dist/server/server/workspace-registry.js +162 -0
  792. package/dist/server/server/workspace-registry.js.map +1 -0
  793. package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
  794. package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
  795. package/dist/server/server/workspace-script-runtime-store.js +78 -0
  796. package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
  797. package/dist/server/server/workspace-service-env.d.ts +17 -0
  798. package/dist/server/server/workspace-service-env.d.ts.map +1 -0
  799. package/dist/server/server/workspace-service-env.js +80 -0
  800. package/dist/server/server/workspace-service-env.js.map +1 -0
  801. package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
  802. package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
  803. package/dist/server/server/workspace-service-port-registry.js +59 -0
  804. package/dist/server/server/workspace-service-port-registry.js.map +1 -0
  805. package/dist/server/server/worktree-bootstrap.d.ts +74 -0
  806. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -0
  807. package/dist/server/server/worktree-bootstrap.js +716 -0
  808. package/dist/server/server/worktree-bootstrap.js.map +1 -0
  809. package/dist/server/server/worktree-branch-name-generator.d.ts +21 -0
  810. package/dist/server/server/worktree-branch-name-generator.d.ts.map +1 -0
  811. package/dist/server/server/worktree-branch-name-generator.js +59 -0
  812. package/dist/server/server/worktree-branch-name-generator.js.map +1 -0
  813. package/dist/server/server/worktree-core.d.ts +29 -0
  814. package/dist/server/server/worktree-core.d.ts.map +1 -0
  815. package/dist/server/server/worktree-core.js +99 -0
  816. package/dist/server/server/worktree-core.js.map +1 -0
  817. package/dist/server/server/worktree-errors.d.ts +12 -0
  818. package/dist/server/server/worktree-errors.d.ts.map +1 -0
  819. package/dist/server/server/worktree-errors.js +28 -0
  820. package/dist/server/server/worktree-errors.js.map +1 -0
  821. package/dist/server/server/worktree-session.d.ts +149 -0
  822. package/dist/server/server/worktree-session.d.ts.map +1 -0
  823. package/dist/server/server/worktree-session.js +464 -0
  824. package/dist/server/server/worktree-session.js.map +1 -0
  825. package/dist/server/services/github-service.d.ts +279 -0
  826. package/dist/server/services/github-service.d.ts.map +1 -0
  827. package/dist/server/services/github-service.js +1666 -0
  828. package/dist/server/services/github-service.js.map +1 -0
  829. package/dist/server/shared/agent-attention-notification.d.ts +41 -0
  830. package/dist/server/shared/agent-attention-notification.d.ts.map +1 -0
  831. package/dist/server/shared/agent-attention-notification.js +140 -0
  832. package/dist/server/shared/agent-attention-notification.js.map +1 -0
  833. package/dist/server/shared/agent-labels.d.ts +2 -0
  834. package/dist/server/shared/agent-labels.d.ts.map +1 -0
  835. package/dist/server/shared/agent-labels.js +2 -0
  836. package/dist/server/shared/agent-labels.js.map +1 -0
  837. package/dist/server/shared/agent-lifecycle.d.ts +3 -0
  838. package/dist/server/shared/agent-lifecycle.d.ts.map +1 -0
  839. package/dist/server/shared/agent-lifecycle.js +8 -0
  840. package/dist/server/shared/agent-lifecycle.js.map +1 -0
  841. package/dist/server/shared/agent-state-bucket.d.ts +13 -0
  842. package/dist/server/shared/agent-state-bucket.d.ts.map +1 -0
  843. package/dist/server/shared/agent-state-bucket.js +41 -0
  844. package/dist/server/shared/agent-state-bucket.js.map +1 -0
  845. package/dist/server/shared/binary-frames/file-transfer.d.ts +56 -0
  846. package/dist/server/shared/binary-frames/file-transfer.d.ts.map +1 -0
  847. package/dist/server/shared/binary-frames/file-transfer.js +108 -0
  848. package/dist/server/shared/binary-frames/file-transfer.js.map +1 -0
  849. package/dist/server/shared/binary-frames/index.d.ts +3 -0
  850. package/dist/server/shared/binary-frames/index.d.ts.map +1 -0
  851. package/dist/server/shared/binary-frames/index.js +3 -0
  852. package/dist/server/shared/binary-frames/index.js.map +1 -0
  853. package/dist/server/shared/binary-frames/terminal.d.ts +36 -0
  854. package/dist/server/shared/binary-frames/terminal.d.ts.map +1 -0
  855. package/dist/server/shared/binary-frames/terminal.js +99 -0
  856. package/dist/server/shared/binary-frames/terminal.js.map +1 -0
  857. package/dist/server/shared/client-capabilities.d.ts +5 -0
  858. package/dist/server/shared/client-capabilities.d.ts.map +1 -0
  859. package/dist/server/shared/client-capabilities.js +4 -0
  860. package/dist/server/shared/client-capabilities.js.map +1 -0
  861. package/dist/server/shared/connection-offer.d.ts +80 -0
  862. package/dist/server/shared/connection-offer.d.ts.map +1 -0
  863. package/dist/server/shared/connection-offer.js +53 -0
  864. package/dist/server/shared/connection-offer.js.map +1 -0
  865. package/dist/server/shared/daemon-endpoints.d.ts +47 -0
  866. package/dist/server/shared/daemon-endpoints.d.ts.map +1 -0
  867. package/dist/server/shared/daemon-endpoints.js +201 -0
  868. package/dist/server/shared/daemon-endpoints.js.map +1 -0
  869. package/dist/server/shared/error-utils.d.ts +11 -0
  870. package/dist/server/shared/error-utils.d.ts.map +1 -0
  871. package/dist/server/shared/error-utils.js +27 -0
  872. package/dist/server/shared/error-utils.js.map +1 -0
  873. package/dist/server/shared/git-remote.d.ts +16 -0
  874. package/dist/server/shared/git-remote.d.ts.map +1 -0
  875. package/dist/server/shared/git-remote.js +72 -0
  876. package/dist/server/shared/git-remote.js.map +1 -0
  877. package/dist/server/shared/host-connection-schema.d.ts +23 -0
  878. package/dist/server/shared/host-connection-schema.d.ts.map +1 -0
  879. package/dist/server/shared/host-connection-schema.js +9 -0
  880. package/dist/server/shared/host-connection-schema.js.map +1 -0
  881. package/dist/server/shared/importable-providers.d.ts +7 -0
  882. package/dist/server/shared/importable-providers.d.ts.map +1 -0
  883. package/dist/server/shared/importable-providers.js +7 -0
  884. package/dist/server/shared/importable-providers.js.map +1 -0
  885. package/dist/server/shared/literal-union.d.ts +2 -0
  886. package/dist/server/shared/literal-union.d.ts.map +1 -0
  887. package/dist/server/shared/literal-union.js +2 -0
  888. package/dist/server/shared/literal-union.js.map +1 -0
  889. package/dist/server/shared/messages.d.ts +140180 -0
  890. package/dist/server/shared/messages.d.ts.map +1 -0
  891. package/dist/server/shared/messages.js +3259 -0
  892. package/dist/server/shared/messages.js.map +1 -0
  893. package/dist/server/shared/path-utils.d.ts +2 -0
  894. package/dist/server/shared/path-utils.d.ts.map +1 -0
  895. package/dist/server/shared/path-utils.js +16 -0
  896. package/dist/server/shared/path-utils.js.map +1 -0
  897. package/dist/server/shared/terminal-input-mode.d.ts +26 -0
  898. package/dist/server/shared/terminal-input-mode.d.ts.map +1 -0
  899. package/dist/server/shared/terminal-input-mode.js +151 -0
  900. package/dist/server/shared/terminal-input-mode.js.map +1 -0
  901. package/dist/server/shared/tool-call-display.d.ts +11 -0
  902. package/dist/server/shared/tool-call-display.d.ts.map +1 -0
  903. package/dist/server/shared/tool-call-display.js +135 -0
  904. package/dist/server/shared/tool-call-display.js.map +1 -0
  905. package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
  906. package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  907. package/dist/server/terminal/terminal-capture.d.ts +12 -0
  908. package/dist/server/terminal/terminal-capture.d.ts.map +1 -0
  909. package/dist/server/terminal/terminal-capture.js +43 -0
  910. package/dist/server/terminal/terminal-capture.js.map +1 -0
  911. package/dist/server/terminal/terminal-manager-factory.d.ts +3 -0
  912. package/dist/server/terminal/terminal-manager-factory.d.ts.map +1 -0
  913. package/dist/server/terminal/terminal-manager-factory.js +5 -0
  914. package/dist/server/terminal/terminal-manager-factory.js.map +1 -0
  915. package/dist/server/terminal/terminal-manager.d.ts +47 -0
  916. package/dist/server/terminal/terminal-manager.d.ts.map +1 -0
  917. package/dist/server/terminal/terminal-manager.js +183 -0
  918. package/dist/server/terminal/terminal-manager.js.map +1 -0
  919. package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
  920. package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
  921. package/dist/server/terminal/terminal-output-coalescer.js +55 -0
  922. package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
  923. package/dist/server/terminal/terminal-session-controller.d.ts +64 -0
  924. package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -0
  925. package/dist/server/terminal/terminal-session-controller.js +653 -0
  926. package/dist/server/terminal/terminal-session-controller.js.map +1 -0
  927. package/dist/server/terminal/terminal-ts-loader.mjs +20 -0
  928. package/dist/server/terminal/terminal-worker-process.d.ts +2 -0
  929. package/dist/server/terminal/terminal-worker-process.d.ts.map +1 -0
  930. package/dist/server/terminal/terminal-worker-process.js +221 -0
  931. package/dist/server/terminal/terminal-worker-process.js.map +1 -0
  932. package/dist/server/terminal/terminal-worker-protocol.d.ts +113 -0
  933. package/dist/server/terminal/terminal-worker-protocol.d.ts.map +1 -0
  934. package/dist/server/terminal/terminal-worker-protocol.js +2 -0
  935. package/dist/server/terminal/terminal-worker-protocol.js.map +1 -0
  936. package/dist/server/terminal/terminal.d.ts +99 -0
  937. package/dist/server/terminal/terminal.d.ts.map +1 -0
  938. package/dist/server/terminal/terminal.js +877 -0
  939. package/dist/server/terminal/terminal.js.map +1 -0
  940. package/dist/server/terminal/worker-terminal-manager.d.ts +19 -0
  941. package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -0
  942. package/dist/server/terminal/worker-terminal-manager.js +492 -0
  943. package/dist/server/terminal/worker-terminal-manager.js.map +1 -0
  944. package/dist/server/utils/branch-slug.d.ts +14 -0
  945. package/dist/server/utils/branch-slug.d.ts.map +1 -0
  946. package/dist/server/utils/branch-slug.js +49 -0
  947. package/dist/server/utils/branch-slug.js.map +1 -0
  948. package/dist/server/utils/build-metadata-prompt.d.ts +14 -0
  949. package/dist/server/utils/build-metadata-prompt.d.ts.map +1 -0
  950. package/dist/server/utils/build-metadata-prompt.js +28 -0
  951. package/dist/server/utils/build-metadata-prompt.js.map +1 -0
  952. package/dist/server/utils/checkout-git.d.ts +213 -0
  953. package/dist/server/utils/checkout-git.d.ts.map +1 -0
  954. package/dist/server/utils/checkout-git.js +1885 -0
  955. package/dist/server/utils/checkout-git.js.map +1 -0
  956. package/dist/server/utils/directory-suggestions.d.ts +26 -0
  957. package/dist/server/utils/directory-suggestions.d.ts.map +1 -0
  958. package/dist/server/utils/directory-suggestions.js +732 -0
  959. package/dist/server/utils/directory-suggestions.js.map +1 -0
  960. package/dist/server/utils/executable.d.ts +10 -0
  961. package/dist/server/utils/executable.d.ts.map +1 -0
  962. package/dist/server/utils/executable.js +116 -0
  963. package/dist/server/utils/executable.js.map +1 -0
  964. package/dist/server/utils/git-rev-parse-path.d.ts +3 -0
  965. package/dist/server/utils/git-rev-parse-path.d.ts.map +1 -0
  966. package/dist/server/utils/git-rev-parse-path.js +21 -0
  967. package/dist/server/utils/git-rev-parse-path.js.map +1 -0
  968. package/dist/server/utils/github-remote.d.ts +9 -0
  969. package/dist/server/utils/github-remote.d.ts.map +1 -0
  970. package/dist/server/utils/github-remote.js +62 -0
  971. package/dist/server/utils/github-remote.js.map +1 -0
  972. package/dist/server/utils/paseo-config-file.d.ts +30 -0
  973. package/dist/server/utils/paseo-config-file.d.ts.map +1 -0
  974. package/dist/server/utils/paseo-config-file.js +90 -0
  975. package/dist/server/utils/paseo-config-file.js.map +1 -0
  976. package/dist/server/utils/paseo-config-schema.d.ts +915 -0
  977. package/dist/server/utils/paseo-config-schema.d.ts.map +1 -0
  978. package/dist/server/utils/paseo-config-schema.js +77 -0
  979. package/dist/server/utils/paseo-config-schema.js.map +1 -0
  980. package/dist/server/utils/path.d.ts +16 -0
  981. package/dist/server/utils/path.d.ts.map +1 -0
  982. package/dist/server/utils/path.js +110 -0
  983. package/dist/server/utils/path.js.map +1 -0
  984. package/dist/server/utils/project-icon.d.ts +39 -0
  985. package/dist/server/utils/project-icon.d.ts.map +1 -0
  986. package/dist/server/utils/project-icon.js +364 -0
  987. package/dist/server/utils/project-icon.js.map +1 -0
  988. package/dist/server/utils/promise-timeout.d.ts +9 -0
  989. package/dist/server/utils/promise-timeout.d.ts.map +1 -0
  990. package/dist/server/utils/promise-timeout.js +25 -0
  991. package/dist/server/utils/promise-timeout.js.map +1 -0
  992. package/dist/server/utils/run-git-command.d.ts +20 -0
  993. package/dist/server/utils/run-git-command.d.ts.map +1 -0
  994. package/dist/server/utils/run-git-command.js +146 -0
  995. package/dist/server/utils/run-git-command.js.map +1 -0
  996. package/dist/server/utils/script-hostname.d.ts +8 -0
  997. package/dist/server/utils/script-hostname.d.ts.map +1 -0
  998. package/dist/server/utils/script-hostname.js +14 -0
  999. package/dist/server/utils/script-hostname.js.map +1 -0
  1000. package/dist/server/utils/spawn.d.ts +33 -0
  1001. package/dist/server/utils/spawn.d.ts.map +1 -0
  1002. package/dist/server/utils/spawn.js +71 -0
  1003. package/dist/server/utils/spawn.js.map +1 -0
  1004. package/dist/server/utils/string-command-shell.d.ts +10 -0
  1005. package/dist/server/utils/string-command-shell.d.ts.map +1 -0
  1006. package/dist/server/utils/string-command-shell.js +21 -0
  1007. package/dist/server/utils/string-command-shell.js.map +1 -0
  1008. package/dist/server/utils/tree-kill.d.ts +18 -0
  1009. package/dist/server/utils/tree-kill.d.ts.map +1 -0
  1010. package/dist/server/utils/tree-kill.js +77 -0
  1011. package/dist/server/utils/tree-kill.js.map +1 -0
  1012. package/dist/server/utils/windows-command.d.ts +15 -0
  1013. package/dist/server/utils/windows-command.d.ts.map +1 -0
  1014. package/dist/server/utils/windows-command.js +41 -0
  1015. package/dist/server/utils/windows-command.js.map +1 -0
  1016. package/dist/server/utils/worktree-metadata.d.ts +91 -0
  1017. package/dist/server/utils/worktree-metadata.d.ts.map +1 -0
  1018. package/dist/server/utils/worktree-metadata.js +174 -0
  1019. package/dist/server/utils/worktree-metadata.js.map +1 -0
  1020. package/dist/server/utils/worktree.d.ts +195 -0
  1021. package/dist/server/utils/worktree.d.ts.map +1 -0
  1022. package/dist/server/utils/worktree.js +1004 -0
  1023. package/dist/server/utils/worktree.js.map +1 -0
  1024. package/dist/server/utils/wrap-user-instructions.d.ts +2 -0
  1025. package/dist/server/utils/wrap-user-instructions.d.ts.map +1 -0
  1026. package/dist/server/utils/wrap-user-instructions.js +13 -0
  1027. package/dist/server/utils/wrap-user-instructions.js.map +1 -0
  1028. package/dist/src/server/agent/agent-sdk-types.js +22 -0
  1029. package/dist/src/server/agent/agent-sdk-types.js.map +1 -0
  1030. package/dist/src/server/agent/agent-title-limits.js +3 -0
  1031. package/dist/src/server/agent/agent-title-limits.js.map +1 -0
  1032. package/dist/src/server/agent/provider-launch-config.js +190 -0
  1033. package/dist/src/server/agent/provider-launch-config.js.map +1 -0
  1034. package/dist/src/server/agent/provider-manifest.js +211 -0
  1035. package/dist/src/server/agent/provider-manifest.js.map +1 -0
  1036. package/dist/src/server/chat/chat-rpc-schemas.js +103 -0
  1037. package/dist/src/server/chat/chat-rpc-schemas.js.map +1 -0
  1038. package/dist/src/server/chat/chat-types.js +22 -0
  1039. package/dist/src/server/chat/chat-types.js.map +1 -0
  1040. package/dist/src/server/loop/rpc-schemas.js +163 -0
  1041. package/dist/src/server/loop/rpc-schemas.js.map +1 -0
  1042. package/dist/src/server/paseo-env.js +53 -0
  1043. package/dist/src/server/paseo-env.js.map +1 -0
  1044. package/dist/src/server/paseo-home.js +19 -0
  1045. package/dist/src/server/paseo-home.js.map +1 -0
  1046. package/dist/src/server/persisted-config.js +398 -0
  1047. package/dist/src/server/persisted-config.js.map +1 -0
  1048. package/dist/src/server/pid-lock.js +170 -0
  1049. package/dist/src/server/pid-lock.js.map +1 -0
  1050. package/dist/src/server/private-files.js +42 -0
  1051. package/dist/src/server/private-files.js.map +1 -0
  1052. package/dist/src/server/schedule/rpc-schemas.js +151 -0
  1053. package/dist/src/server/schedule/rpc-schemas.js.map +1 -0
  1054. package/dist/src/server/schedule/types.js +73 -0
  1055. package/dist/src/server/schedule/types.js.map +1 -0
  1056. package/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  1057. package/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js.map +1 -0
  1058. package/dist/src/shared/agent-lifecycle.js +8 -0
  1059. package/dist/src/shared/agent-lifecycle.js.map +1 -0
  1060. package/dist/src/shared/client-capabilities.js +4 -0
  1061. package/dist/src/shared/client-capabilities.js.map +1 -0
  1062. package/dist/src/shared/literal-union.js +2 -0
  1063. package/dist/src/shared/literal-union.js.map +1 -0
  1064. package/dist/src/shared/messages.js +3259 -0
  1065. package/dist/src/shared/messages.js.map +1 -0
  1066. package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
  1067. package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  1068. package/dist/src/utils/executable.js +116 -0
  1069. package/dist/src/utils/executable.js.map +1 -0
  1070. package/dist/src/utils/paseo-config-schema.js +77 -0
  1071. package/dist/src/utils/paseo-config-schema.js.map +1 -0
  1072. package/dist/src/utils/spawn.js +71 -0
  1073. package/dist/src/utils/spawn.js.map +1 -0
  1074. package/dist/src/utils/windows-command.js +41 -0
  1075. package/dist/src/utils/windows-command.js.map +1 -0
  1076. package/package.json +115 -0
  1077. package/src/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
@@ -0,0 +1,3259 @@
1
+ import { z } from "zod";
2
+ import { CLIENT_CAPS } from "./client-capabilities.js";
3
+ import { AGENT_LIFECYCLE_STATUSES } from "./agent-lifecycle.js";
4
+ import { MAX_EXPLICIT_AGENT_TITLE_CHARS } from "../server/agent/agent-title-limits.js";
5
+ import { AgentProviderSchema } from "../server/agent/provider-manifest.js";
6
+ import { normalizeAgentModelDefinition, TOOL_CALL_ICON_NAMES, } from "../server/agent/agent-sdk-types.js";
7
+ import { ChatCreateRequestSchema, ChatListRequestSchema, ChatInspectRequestSchema, ChatDeleteRequestSchema, ChatPostRequestSchema, ChatReadRequestSchema, ChatWaitRequestSchema, ChatCreateResponseSchema, ChatListResponseSchema, ChatInspectResponseSchema, ChatDeleteResponseSchema, ChatPostResponseSchema, ChatReadResponseSchema, ChatWaitResponseSchema, } from "../server/chat/chat-rpc-schemas.js";
8
+ import { ScheduleCreateRequestSchema, ScheduleListRequestSchema, ScheduleInspectRequestSchema, ScheduleLogsRequestSchema, SchedulePauseRequestSchema, ScheduleResumeRequestSchema, ScheduleDeleteRequestSchema, ScheduleRunOnceRequestSchema, ScheduleUpdateRequestSchema, ScheduleCreateResponseSchema, ScheduleListResponseSchema, ScheduleInspectResponseSchema, ScheduleLogsResponseSchema, SchedulePauseResponseSchema, ScheduleResumeResponseSchema, ScheduleDeleteResponseSchema, ScheduleRunOnceResponseSchema, ScheduleUpdateResponseSchema, } from "../server/schedule/rpc-schemas.js";
9
+ import { LoopRunRequestSchema, LoopListRequestSchema, LoopInspectRequestSchema, LoopLogsRequestSchema, LoopStopRequestSchema, LoopRunResponseSchema, LoopListResponseSchema, LoopInspectResponseSchema, LoopLogsResponseSchema, LoopStopResponseSchema, } from "../server/loop/rpc-schemas.js";
10
+ import { PaseoConfigRawSchema, PaseoLifecycleCommandRawSchema, PaseoMetadataGenerationEntrySchema, PaseoMetadataGenerationSchema, PaseoScriptEntryRawSchema, PaseoWorktreeConfigRawSchema, PaseoConfigRevisionSchema, ProjectConfigRpcErrorSchema, } from "../utils/paseo-config-schema.js";
11
+ export { PaseoConfigRawSchema, PaseoLifecycleCommandRawSchema, PaseoMetadataGenerationEntrySchema, PaseoMetadataGenerationSchema, PaseoScriptEntryRawSchema, PaseoWorktreeConfigRawSchema, };
12
+ // ---------------------------------------------------------------------------
13
+ // Mutable daemon config schemas (shared between server store and client)
14
+ // ---------------------------------------------------------------------------
15
+ const MutableDaemonProviderModelSchema = z
16
+ .object({
17
+ id: z.string().min(1),
18
+ label: z.string().min(1),
19
+ description: z.string().optional(),
20
+ isDefault: z.boolean().optional(),
21
+ })
22
+ .passthrough();
23
+ const MutableDaemonProviderConfigSchema = z
24
+ .object({
25
+ enabled: z.boolean().optional(),
26
+ additionalModels: z.array(MutableDaemonProviderModelSchema).optional(),
27
+ })
28
+ .passthrough();
29
+ export const MutableDaemonConfigSchema = z
30
+ .object({
31
+ mcp: z
32
+ .object({
33
+ injectIntoAgents: z.boolean(),
34
+ })
35
+ .passthrough(),
36
+ providers: z.record(z.string(), MutableDaemonProviderConfigSchema).default({}),
37
+ autoArchiveAfterMerge: z.boolean().default(false),
38
+ appendSystemPrompt: z.string().default(""),
39
+ })
40
+ .passthrough();
41
+ export const MutableDaemonConfigPatchSchema = z
42
+ .object({
43
+ mcp: MutableDaemonConfigSchema.shape.mcp.partial().optional(),
44
+ providers: z
45
+ .record(z.string(), MutableDaemonProviderConfigSchema.partial().passthrough())
46
+ .optional(),
47
+ autoArchiveAfterMerge: z.boolean().optional(),
48
+ appendSystemPrompt: z.string().optional(),
49
+ })
50
+ .partial()
51
+ .passthrough();
52
+ export const AgentStatusSchema = z.enum(AGENT_LIFECYCLE_STATUSES);
53
+ const AgentModeSchema = z.object({
54
+ id: z.string(),
55
+ label: z.string(),
56
+ description: z.string().optional(),
57
+ icon: z.string().optional(),
58
+ colorTier: z.string().optional(),
59
+ });
60
+ const ProviderStatusSchema = z.enum([
61
+ "ready",
62
+ "loading",
63
+ "error",
64
+ "unavailable",
65
+ ]);
66
+ const AgentSelectOptionSchema = z.object({
67
+ id: z.string(),
68
+ label: z.string(),
69
+ description: z.string().optional(),
70
+ isDefault: z.boolean().optional(),
71
+ metadata: z.record(z.unknown()).optional(),
72
+ });
73
+ export const AgentFeatureToggleSchema = z.object({
74
+ type: z.literal("toggle"),
75
+ id: z.string(),
76
+ label: z.string(),
77
+ description: z.string().optional(),
78
+ tooltip: z.string().optional(),
79
+ icon: z.string().optional(),
80
+ value: z.boolean(),
81
+ });
82
+ export const AgentFeatureSelectSchema = z.object({
83
+ type: z.literal("select"),
84
+ id: z.string(),
85
+ label: z.string(),
86
+ description: z.string().optional(),
87
+ tooltip: z.string().optional(),
88
+ icon: z.string().optional(),
89
+ value: z.string().nullable(),
90
+ options: z.array(AgentSelectOptionSchema),
91
+ });
92
+ export const AgentFeatureSchema = z.discriminatedUnion("type", [
93
+ AgentFeatureToggleSchema,
94
+ AgentFeatureSelectSchema,
95
+ ]);
96
+ const AgentModelDefinitionSchema = z
97
+ .object({
98
+ provider: AgentProviderSchema,
99
+ id: z.string(),
100
+ label: z.string(),
101
+ description: z.string().optional(),
102
+ isDefault: z.boolean().optional(),
103
+ metadata: z.record(z.unknown()).optional(),
104
+ thinkingOptions: z.array(AgentSelectOptionSchema).optional(),
105
+ defaultThinkingOptionId: z.string().optional(),
106
+ })
107
+ .transform(normalizeAgentModelDefinition);
108
+ export const ProviderSnapshotEntrySchema = z.object({
109
+ provider: AgentProviderSchema,
110
+ status: ProviderStatusSchema,
111
+ enabled: z.boolean().optional().default(true),
112
+ error: z.string().optional(),
113
+ models: z.array(AgentModelDefinitionSchema).optional(),
114
+ modes: z.array(AgentModeSchema).optional(),
115
+ fetchedAt: z.string().optional(),
116
+ label: z.string().optional(),
117
+ description: z.string().optional(),
118
+ defaultModeId: z.string().nullable().optional(),
119
+ });
120
+ const AgentCapabilityFlagsSchema = z.object({
121
+ supportsStreaming: z.boolean(),
122
+ supportsSessionPersistence: z.boolean(),
123
+ supportsDynamicModes: z.boolean(),
124
+ supportsMcpServers: z.boolean(),
125
+ supportsReasoningStream: z.boolean(),
126
+ supportsToolInvocations: z.boolean(),
127
+ });
128
+ const AgentUsageSchema = z.object({
129
+ inputTokens: z.number().optional(),
130
+ cachedInputTokens: z.number().optional(),
131
+ outputTokens: z.number().optional(),
132
+ totalCostUsd: z.number().optional(),
133
+ contextWindowMaxTokens: z.number().optional(),
134
+ contextWindowUsedTokens: z.number().optional(),
135
+ });
136
+ const McpStdioServerConfigSchema = z.object({
137
+ type: z.literal("stdio"),
138
+ command: z.string(),
139
+ args: z.array(z.string()).optional(),
140
+ env: z.record(z.string()).optional(),
141
+ });
142
+ const McpHttpServerConfigSchema = z.object({
143
+ type: z.literal("http"),
144
+ url: z.string(),
145
+ headers: z.record(z.string()).optional(),
146
+ });
147
+ const McpSseServerConfigSchema = z.object({
148
+ type: z.literal("sse"),
149
+ url: z.string(),
150
+ headers: z.record(z.string()).optional(),
151
+ });
152
+ const McpServerConfigSchema = z.discriminatedUnion("type", [
153
+ McpStdioServerConfigSchema,
154
+ McpHttpServerConfigSchema,
155
+ McpSseServerConfigSchema,
156
+ ]);
157
+ const AgentSessionConfigSchema = z.object({
158
+ provider: AgentProviderSchema,
159
+ cwd: z.string(),
160
+ modeId: z.string().optional(),
161
+ model: z.string().optional(),
162
+ thinkingOptionId: z.string().optional(),
163
+ featureValues: z.record(z.unknown()).optional(),
164
+ title: z.string().trim().min(1).max(MAX_EXPLICIT_AGENT_TITLE_CHARS).optional().nullable(),
165
+ approvalPolicy: z.string().optional(),
166
+ sandboxMode: z.string().optional(),
167
+ networkAccess: z.boolean().optional(),
168
+ webSearch: z.boolean().optional(),
169
+ extra: z
170
+ .object({
171
+ codex: z.record(z.unknown()).optional(),
172
+ claude: z.record(z.unknown()).optional(),
173
+ })
174
+ .partial()
175
+ .optional(),
176
+ systemPrompt: z.string().optional(),
177
+ mcpServers: z.record(McpServerConfigSchema).optional(),
178
+ });
179
+ const AgentPermissionUpdateSchema = z.record(z.unknown());
180
+ const AgentPermissionActionSchema = z.object({
181
+ id: z.string(),
182
+ label: z.string(),
183
+ behavior: z.enum(["allow", "deny"]),
184
+ variant: z.enum(["primary", "secondary", "danger"]).optional(),
185
+ intent: z.enum(["implement", "implement_resume", "dismiss"]).optional(),
186
+ });
187
+ export const AgentPermissionResponseSchema = z.union([
188
+ z.object({
189
+ behavior: z.literal("allow"),
190
+ selectedActionId: z.string().optional(),
191
+ updatedInput: z.record(z.unknown()).optional(),
192
+ updatedPermissions: z.array(AgentPermissionUpdateSchema).optional(),
193
+ }),
194
+ z.object({
195
+ behavior: z.literal("deny"),
196
+ selectedActionId: z.string().optional(),
197
+ message: z.string().optional(),
198
+ interrupt: z.boolean().optional(),
199
+ }),
200
+ ]);
201
+ export const AgentPermissionRequestPayloadSchema = z.object({
202
+ id: z.string(),
203
+ provider: AgentProviderSchema,
204
+ name: z.string(),
205
+ kind: z.enum(["tool", "plan", "question", "mode", "other"]),
206
+ title: z.string().optional(),
207
+ description: z.string().optional(),
208
+ input: z.record(z.unknown()).optional(),
209
+ detail: z.lazy(() => ToolCallDetailPayloadSchema).optional(),
210
+ suggestions: z.array(AgentPermissionUpdateSchema).optional(),
211
+ actions: z.array(AgentPermissionActionSchema).optional(),
212
+ metadata: z.record(z.unknown()).optional(),
213
+ });
214
+ const UnknownValueSchema = z.union([
215
+ z.null(),
216
+ z.boolean(),
217
+ z.number(),
218
+ z.string(),
219
+ z.array(z.unknown()),
220
+ z.object({}).passthrough(),
221
+ ]);
222
+ const NonNullUnknownSchema = z.union([
223
+ z.boolean(),
224
+ z.number(),
225
+ z.string(),
226
+ z.array(z.unknown()),
227
+ z.object({}).passthrough(),
228
+ ]);
229
+ const WorktreeSetupCommandSnapshotSchema = z.object({
230
+ index: z.number().int().positive(),
231
+ command: z.string(),
232
+ cwd: z.string(),
233
+ log: z.string().optional().default(""),
234
+ status: z.enum(["running", "completed", "failed"]),
235
+ exitCode: z.number().nullable(),
236
+ durationMs: z.number().nonnegative().optional(),
237
+ });
238
+ const WorktreeSetupDetailPayloadSchema = z.object({
239
+ type: z.literal("worktree_setup"),
240
+ worktreePath: z.string(),
241
+ branchName: z.string(),
242
+ log: z.string(),
243
+ commands: z.array(WorktreeSetupCommandSnapshotSchema),
244
+ truncated: z.boolean().optional(),
245
+ });
246
+ const ToolCallDetailPayloadSchema = z.discriminatedUnion("type", [
247
+ WorktreeSetupDetailPayloadSchema,
248
+ z.object({
249
+ type: z.literal("shell"),
250
+ command: z.string(),
251
+ cwd: z.string().optional(),
252
+ output: z.string().optional(),
253
+ exitCode: z.number().nullable().optional(),
254
+ }),
255
+ z.object({
256
+ type: z.literal("read"),
257
+ filePath: z.string(),
258
+ content: z.string().optional(),
259
+ offset: z.number().optional(),
260
+ limit: z.number().optional(),
261
+ }),
262
+ z.object({
263
+ type: z.literal("edit"),
264
+ filePath: z.string(),
265
+ oldString: z.string().optional(),
266
+ newString: z.string().optional(),
267
+ unifiedDiff: z.string().optional(),
268
+ }),
269
+ z.object({
270
+ type: z.literal("write"),
271
+ filePath: z.string(),
272
+ content: z.string().optional(),
273
+ }),
274
+ z.object({
275
+ type: z.literal("search"),
276
+ query: z.string(),
277
+ toolName: z.enum(["search", "grep", "glob", "web_search"]).optional(),
278
+ content: z.string().optional(),
279
+ filePaths: z.array(z.string()).optional(),
280
+ webResults: z
281
+ .array(z.object({
282
+ title: z.string(),
283
+ url: z.string(),
284
+ }))
285
+ .optional(),
286
+ annotations: z.array(z.string()).optional(),
287
+ numFiles: z.number().optional(),
288
+ numMatches: z.number().optional(),
289
+ durationMs: z.number().optional(),
290
+ durationSeconds: z.number().optional(),
291
+ truncated: z.boolean().optional(),
292
+ mode: z.enum(["content", "files_with_matches", "count"]).optional(),
293
+ }),
294
+ z.object({
295
+ type: z.literal("fetch"),
296
+ url: z.string(),
297
+ prompt: z.string().optional(),
298
+ result: z.string().optional(),
299
+ code: z.number().optional(),
300
+ codeText: z.string().optional(),
301
+ bytes: z.number().optional(),
302
+ durationMs: z.number().optional(),
303
+ }),
304
+ z.object({
305
+ type: z.literal("sub_agent"),
306
+ subAgentType: z.string().optional(),
307
+ description: z.string().optional(),
308
+ childSessionId: z.string().optional(),
309
+ log: z.string(),
310
+ // Compat cruft for clients <= 0.1.65-beta.3 that required this field. Producers still
311
+ // emit `[]`; nothing reads it. Drop the field (and the `[]` emissions) once those
312
+ // clients are no longer in the field.
313
+ actions: z
314
+ .array(z.object({
315
+ index: z.number().int().positive(),
316
+ toolName: z.string(),
317
+ summary: z.string().optional(),
318
+ }))
319
+ .optional(),
320
+ }),
321
+ z.object({
322
+ type: z.literal("plain_text"),
323
+ label: z.string().optional(),
324
+ text: z.string().optional(),
325
+ icon: z.enum(TOOL_CALL_ICON_NAMES).optional(),
326
+ }),
327
+ z.object({
328
+ type: z.literal("plan"),
329
+ text: z.string(),
330
+ }),
331
+ z.object({
332
+ type: z.literal("unknown"),
333
+ input: UnknownValueSchema,
334
+ output: UnknownValueSchema,
335
+ }),
336
+ ]);
337
+ const ToolCallBasePayloadSchema = z
338
+ .object({
339
+ type: z.literal("tool_call"),
340
+ callId: z.string(),
341
+ name: z.string(),
342
+ detail: ToolCallDetailPayloadSchema,
343
+ metadata: z.record(z.string(), z.unknown()).optional(),
344
+ })
345
+ .strict();
346
+ const ToolCallRunningPayloadSchema = ToolCallBasePayloadSchema.extend({
347
+ status: z.literal("running"),
348
+ error: z.null(),
349
+ });
350
+ const ToolCallCompletedPayloadSchema = ToolCallBasePayloadSchema.extend({
351
+ status: z.literal("completed"),
352
+ error: z.null(),
353
+ });
354
+ const ToolCallFailedPayloadSchema = ToolCallBasePayloadSchema.extend({
355
+ status: z.literal("failed"),
356
+ error: NonNullUnknownSchema,
357
+ });
358
+ const ToolCallCanceledPayloadSchema = ToolCallBasePayloadSchema.extend({
359
+ status: z.literal("canceled"),
360
+ error: z.null(),
361
+ });
362
+ const ToolCallTimelineItemPayloadSchema = z.union([
363
+ ToolCallRunningPayloadSchema,
364
+ ToolCallCompletedPayloadSchema,
365
+ ToolCallFailedPayloadSchema,
366
+ ToolCallCanceledPayloadSchema,
367
+ ]);
368
+ export const AgentTimelineItemPayloadSchema = z.union([
369
+ z.object({
370
+ type: z.literal("user_message"),
371
+ text: z.string(),
372
+ messageId: z.string().optional(),
373
+ }),
374
+ z.object({
375
+ type: z.literal("assistant_message"),
376
+ text: z.string(),
377
+ messageId: z.string().optional(),
378
+ }),
379
+ z.object({
380
+ type: z.literal("reasoning"),
381
+ text: z.string(),
382
+ }),
383
+ ToolCallTimelineItemPayloadSchema,
384
+ z.object({
385
+ type: z.literal("todo"),
386
+ items: z.array(z.object({
387
+ text: z.string(),
388
+ completed: z.boolean(),
389
+ })),
390
+ }),
391
+ z.object({
392
+ type: z.literal("error"),
393
+ message: z.string(),
394
+ }),
395
+ z.object({
396
+ type: z.literal("compaction"),
397
+ status: z.enum(["loading", "completed"]),
398
+ trigger: z.enum(["auto", "manual"]).optional(),
399
+ preTokens: z.number().optional(),
400
+ }),
401
+ ]);
402
+ export const AgentStreamEventPayloadSchema = z.discriminatedUnion("type", [
403
+ z.object({
404
+ type: z.literal("thread_started"),
405
+ sessionId: z.string(),
406
+ provider: AgentProviderSchema,
407
+ }),
408
+ z.object({
409
+ type: z.literal("turn_started"),
410
+ provider: AgentProviderSchema,
411
+ }),
412
+ z.object({
413
+ type: z.literal("turn_completed"),
414
+ provider: AgentProviderSchema,
415
+ usage: AgentUsageSchema.optional(),
416
+ }),
417
+ z.object({
418
+ type: z.literal("turn_failed"),
419
+ provider: AgentProviderSchema,
420
+ error: z.string(),
421
+ code: z.string().optional(),
422
+ diagnostic: z.string().optional(),
423
+ }),
424
+ z.object({
425
+ type: z.literal("turn_canceled"),
426
+ provider: AgentProviderSchema,
427
+ reason: z.string(),
428
+ }),
429
+ z.object({
430
+ type: z.literal("timeline"),
431
+ provider: AgentProviderSchema,
432
+ item: AgentTimelineItemPayloadSchema,
433
+ }),
434
+ z.object({
435
+ type: z.literal("permission_requested"),
436
+ provider: AgentProviderSchema,
437
+ request: AgentPermissionRequestPayloadSchema,
438
+ }),
439
+ z.object({
440
+ type: z.literal("permission_resolved"),
441
+ provider: AgentProviderSchema,
442
+ requestId: z.string(),
443
+ resolution: AgentPermissionResponseSchema,
444
+ }),
445
+ z.object({
446
+ type: z.literal("attention_required"),
447
+ provider: AgentProviderSchema,
448
+ reason: z.enum(["finished", "error", "permission"]),
449
+ timestamp: z.string(),
450
+ shouldNotify: z.boolean(),
451
+ notification: z
452
+ .object({
453
+ title: z.string(),
454
+ body: z.string(),
455
+ data: z.object({
456
+ serverId: z.string(),
457
+ agentId: z.string(),
458
+ reason: z.enum(["finished", "error", "permission"]),
459
+ }),
460
+ })
461
+ .optional(),
462
+ }),
463
+ ]);
464
+ const AgentPersistenceHandleSchema = z
465
+ .object({
466
+ provider: AgentProviderSchema,
467
+ sessionId: z.string(),
468
+ nativeHandle: z.string().optional(),
469
+ metadata: z.record(z.string(), z.unknown()).optional(),
470
+ })
471
+ .nullable();
472
+ const AgentRuntimeInfoSchema = z.object({
473
+ provider: AgentProviderSchema,
474
+ sessionId: z.string().nullable(),
475
+ model: z.string().nullable().optional(),
476
+ thinkingOptionId: z.string().nullable().optional(),
477
+ modeId: z.string().nullable().optional(),
478
+ extra: z.record(z.string(), z.unknown()).optional(),
479
+ });
480
+ export const AgentSnapshotPayloadSchema = z.object({
481
+ id: z.string(),
482
+ provider: AgentProviderSchema,
483
+ cwd: z.string(),
484
+ model: z.string().nullable(),
485
+ features: z.array(AgentFeatureSchema).optional(),
486
+ thinkingOptionId: z.string().nullable().optional(),
487
+ effectiveThinkingOptionId: z.string().nullable().optional(),
488
+ createdAt: z.string(),
489
+ updatedAt: z.string(),
490
+ lastUserMessageAt: z.string().nullable(),
491
+ status: AgentStatusSchema,
492
+ capabilities: AgentCapabilityFlagsSchema,
493
+ currentModeId: z.string().nullable(),
494
+ availableModes: z.array(AgentModeSchema),
495
+ pendingPermissions: z.array(AgentPermissionRequestPayloadSchema),
496
+ persistence: AgentPersistenceHandleSchema.nullable(),
497
+ runtimeInfo: AgentRuntimeInfoSchema.optional(),
498
+ lastUsage: AgentUsageSchema.optional(),
499
+ lastError: z.string().optional(),
500
+ title: z.string().nullable(),
501
+ labels: z.record(z.string(), z.string()).default({}),
502
+ requiresAttention: z.boolean().optional(),
503
+ attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
504
+ attentionTimestamp: z.string().nullable().optional(),
505
+ archivedAt: z.string().nullable().optional(),
506
+ providerUnavailable: z.boolean().optional(),
507
+ });
508
+ export const AgentListItemPayloadSchema = z.object({
509
+ id: z.string(),
510
+ shortId: z.string(),
511
+ title: z.string().nullable(),
512
+ provider: AgentProviderSchema,
513
+ model: z.string().nullable(),
514
+ thinkingOptionId: z.string().nullable().optional(),
515
+ effectiveThinkingOptionId: z.string().nullable().optional(),
516
+ status: AgentStatusSchema,
517
+ cwd: z.string(),
518
+ createdAt: z.string(),
519
+ updatedAt: z.string(),
520
+ lastUserMessageAt: z.string().nullable(),
521
+ archivedAt: z.string().nullable().optional(),
522
+ requiresAttention: z.boolean().optional(),
523
+ attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
524
+ attentionTimestamp: z.string().nullable().optional(),
525
+ labels: z.record(z.string(), z.string()).default({}),
526
+ providerUnavailable: z.boolean().optional(),
527
+ });
528
+ export const RecentProviderSessionDescriptorPayloadSchema = z.object({
529
+ providerId: z.string(),
530
+ providerLabel: z.string(),
531
+ providerHandleId: z.string(),
532
+ cwd: z.string(),
533
+ title: z.string().nullable(),
534
+ firstPromptPreview: z.string().nullable(),
535
+ lastPromptPreview: z.string().nullable(),
536
+ lastActivityAt: z.string(),
537
+ });
538
+ // ============================================================================
539
+ // Session Inbound Messages (Session receives these)
540
+ // ============================================================================
541
+ export const VoiceAudioChunkMessageSchema = z.object({
542
+ type: z.literal("voice_audio_chunk"),
543
+ audio: z.string(), // base64 encoded
544
+ format: z.string(),
545
+ isLast: z.boolean(),
546
+ });
547
+ export const AbortRequestMessageSchema = z.object({
548
+ type: z.literal("abort_request"),
549
+ });
550
+ export const AudioPlayedMessageSchema = z.object({
551
+ type: z.literal("audio_played"),
552
+ id: z.string(),
553
+ });
554
+ const AgentDirectoryFilterSchema = z.object({
555
+ labels: z.record(z.string()).optional(),
556
+ projectKeys: z.array(z.string()).optional(),
557
+ statuses: z.array(AgentStatusSchema).optional(),
558
+ includeArchived: z.boolean().optional(),
559
+ requiresAttention: z.boolean().optional(),
560
+ thinkingOptionId: z.string().nullable().optional(),
561
+ });
562
+ export const DeleteAgentRequestMessageSchema = z.object({
563
+ type: z.literal("delete_agent_request"),
564
+ agentId: z.string(),
565
+ requestId: z.string(),
566
+ });
567
+ export const ArchiveAgentRequestMessageSchema = z.object({
568
+ type: z.literal("archive_agent_request"),
569
+ agentId: z.string(),
570
+ requestId: z.string(),
571
+ });
572
+ export const CloseItemsRequestMessageSchema = z.object({
573
+ type: z.literal("close_items_request"),
574
+ agentIds: z.array(z.string()).default([]),
575
+ terminalIds: z.array(z.string()).default([]),
576
+ requestId: z.string(),
577
+ });
578
+ export const UpdateAgentRequestMessageSchema = z.object({
579
+ type: z.literal("update_agent_request"),
580
+ agentId: z.string(),
581
+ name: z.string().optional(),
582
+ labels: z.record(z.string()).optional(),
583
+ requestId: z.string(),
584
+ });
585
+ export const ProjectRenameRequestSchema = z.object({
586
+ type: z.literal("project.rename.request"),
587
+ projectId: z.string(),
588
+ // Null or empty string clears the override and reverts to the derived name.
589
+ customName: z.string().nullable(),
590
+ requestId: z.string(),
591
+ });
592
+ export const SetVoiceModeMessageSchema = z.object({
593
+ type: z.literal("set_voice_mode"),
594
+ enabled: z.boolean(),
595
+ agentId: z.string().optional(),
596
+ requestId: z.string().optional(),
597
+ });
598
+ export const GitHubPrAttachmentSchema = z.object({
599
+ type: z.literal("github_pr"),
600
+ mimeType: z.literal("application/github-pr"),
601
+ number: z.number().int().positive(),
602
+ title: z.string(),
603
+ url: z.string(),
604
+ body: z.string().nullable().optional(),
605
+ baseRefName: z.string().nullable().optional(),
606
+ headRefName: z.string().nullable().optional(),
607
+ });
608
+ export const GitHubIssueAttachmentSchema = z.object({
609
+ type: z.literal("github_issue"),
610
+ mimeType: z.literal("application/github-issue"),
611
+ number: z.number().int().positive(),
612
+ title: z.string(),
613
+ url: z.string(),
614
+ body: z.string().nullable().optional(),
615
+ });
616
+ export const TextAttachmentSchema = z.object({
617
+ type: z.literal("text"),
618
+ mimeType: z.literal("text/plain"),
619
+ title: z.string().nullable().optional(),
620
+ text: z.string(),
621
+ });
622
+ export const ReviewAttachmentContextLineSchema = z.object({
623
+ oldLineNumber: z.number().int().positive().nullable(),
624
+ newLineNumber: z.number().int().positive().nullable(),
625
+ type: z.enum(["add", "remove", "context"]),
626
+ content: z.string(),
627
+ });
628
+ export const ReviewAttachmentCommentSchema = z.object({
629
+ filePath: z.string(),
630
+ side: z.enum(["old", "new"]),
631
+ lineNumber: z.number().int().positive(),
632
+ body: z.string(),
633
+ context: z.object({
634
+ hunkHeader: z.string(),
635
+ targetLine: ReviewAttachmentContextLineSchema,
636
+ lines: z.array(ReviewAttachmentContextLineSchema),
637
+ }),
638
+ });
639
+ export const ReviewAttachmentSchema = z.object({
640
+ type: z.literal("review"),
641
+ mimeType: z.literal("application/paseo-review"),
642
+ cwd: z.string(),
643
+ mode: z.enum(["uncommitted", "base"]),
644
+ baseRef: z.string().nullable().optional(),
645
+ comments: z.array(ReviewAttachmentCommentSchema),
646
+ });
647
+ export const AgentAttachmentSchema = z.discriminatedUnion("type", [
648
+ GitHubPrAttachmentSchema,
649
+ GitHubIssueAttachmentSchema,
650
+ TextAttachmentSchema,
651
+ ReviewAttachmentSchema,
652
+ ]);
653
+ function normalizeAgentAttachments(input) {
654
+ if (!Array.isArray(input)) {
655
+ return [];
656
+ }
657
+ const normalized = [];
658
+ for (const item of input) {
659
+ const parsed = AgentAttachmentSchema.safeParse(item);
660
+ if (parsed.success) {
661
+ normalized.push(parsed.data);
662
+ }
663
+ }
664
+ return normalized;
665
+ }
666
+ const AgentAttachmentsSchema = z.unknown().transform(normalizeAgentAttachments).optional();
667
+ const ImageAttachmentSchema = z.object({
668
+ data: z.string(), // base64 encoded image
669
+ mimeType: z.string(), // e.g., "image/jpeg", "image/png"
670
+ });
671
+ export const SendAgentMessageSchema = z.object({
672
+ type: z.literal("send_agent_message"),
673
+ agentId: z.string(),
674
+ text: z.string(),
675
+ messageId: z.string().optional(), // Client-provided ID for deduplication
676
+ images: z.array(ImageAttachmentSchema).optional(),
677
+ attachments: AgentAttachmentsSchema,
678
+ });
679
+ // ============================================================================
680
+ // Agent RPCs (requestId-correlated)
681
+ // ============================================================================
682
+ export const FetchAgentsRequestMessageSchema = z.object({
683
+ type: z.literal("fetch_agents_request"),
684
+ requestId: z.string(),
685
+ scope: z.enum(["active"]).optional(),
686
+ filter: AgentDirectoryFilterSchema.optional(),
687
+ sort: z
688
+ .array(z.object({
689
+ key: z.enum(["status_priority", "created_at", "updated_at", "title"]),
690
+ direction: z.enum(["asc", "desc"]),
691
+ }))
692
+ .optional(),
693
+ page: z
694
+ .object({
695
+ limit: z.number().int().positive().max(200),
696
+ cursor: z.string().min(1).optional(),
697
+ })
698
+ .optional(),
699
+ subscribe: z
700
+ .object({
701
+ subscriptionId: z.string().optional(),
702
+ })
703
+ .optional(),
704
+ });
705
+ const WorkspaceStateBucketSchema = z.enum([
706
+ "needs_input",
707
+ "failed",
708
+ "running",
709
+ "attention",
710
+ "done",
711
+ ]);
712
+ export const FetchWorkspacesRequestMessageSchema = z.object({
713
+ type: z.literal("fetch_workspaces_request"),
714
+ requestId: z.string(),
715
+ filter: z
716
+ .object({
717
+ query: z.string().optional(),
718
+ projectId: z.string().optional(),
719
+ idPrefix: z.string().optional(),
720
+ })
721
+ .optional(),
722
+ sort: z
723
+ .array(z.object({
724
+ key: z.enum(["status_priority", "activity_at", "name", "project_id"]),
725
+ direction: z.enum(["asc", "desc"]),
726
+ }))
727
+ .optional(),
728
+ page: z
729
+ .object({
730
+ limit: z.number().int().positive().max(200),
731
+ cursor: z.string().min(1).optional(),
732
+ })
733
+ .optional(),
734
+ subscribe: z
735
+ .object({
736
+ subscriptionId: z.string().optional(),
737
+ })
738
+ .optional(),
739
+ });
740
+ export const FetchAgentHistoryRequestMessageSchema = z.object({
741
+ type: z.literal("fetch_agent_history_request"),
742
+ requestId: z.string(),
743
+ filter: AgentDirectoryFilterSchema.optional(),
744
+ sort: z
745
+ .array(z.object({
746
+ key: z.enum(["status_priority", "created_at", "updated_at", "title"]),
747
+ direction: z.enum(["asc", "desc"]),
748
+ }))
749
+ .optional(),
750
+ page: z
751
+ .object({
752
+ limit: z.number().int().positive().max(200),
753
+ cursor: z.string().min(1).optional(),
754
+ })
755
+ .optional(),
756
+ });
757
+ export const FetchRecentProviderSessionsRequestMessageSchema = z.object({
758
+ type: z.literal("fetch_recent_provider_sessions_request"),
759
+ requestId: z.string(),
760
+ cwd: z.string().optional(),
761
+ providers: z.array(z.string()).optional(),
762
+ since: z.string().optional(),
763
+ limit: z.number().int().positive().max(200).optional(),
764
+ });
765
+ export const FetchAgentRequestMessageSchema = z.object({
766
+ type: z.literal("fetch_agent_request"),
767
+ requestId: z.string(),
768
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
769
+ agentId: z.string(),
770
+ });
771
+ export const SendAgentMessageRequestSchema = z.object({
772
+ type: z.literal("send_agent_message_request"),
773
+ requestId: z.string(),
774
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
775
+ agentId: z.string(),
776
+ text: z.string(),
777
+ messageId: z.string().optional(), // Client-provided ID for deduplication
778
+ images: z.array(ImageAttachmentSchema).optional(),
779
+ attachments: AgentAttachmentsSchema,
780
+ });
781
+ export const WaitForFinishRequestSchema = z.object({
782
+ type: z.literal("wait_for_finish_request"),
783
+ requestId: z.string(),
784
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
785
+ agentId: z.string(),
786
+ timeoutMs: z.number().int().positive().optional(),
787
+ });
788
+ export const DaemonGetStatusRequestSchema = z.object({
789
+ type: z.literal("daemon.get_status.request"),
790
+ requestId: z.string(),
791
+ });
792
+ export const DaemonGetPairingOfferRequestSchema = z.object({
793
+ type: z.literal("daemon.get_pairing_offer.request"),
794
+ requestId: z.string(),
795
+ });
796
+ export const GetDaemonConfigRequestMessageSchema = z.object({
797
+ type: z.literal("get_daemon_config_request"),
798
+ requestId: z.string(),
799
+ });
800
+ export const SetDaemonConfigRequestMessageSchema = z.object({
801
+ type: z.literal("set_daemon_config_request"),
802
+ requestId: z.string(),
803
+ config: MutableDaemonConfigPatchSchema,
804
+ });
805
+ export const ReadProjectConfigRequestMessageSchema = z.object({
806
+ type: z.literal("read_project_config_request"),
807
+ requestId: z.string(),
808
+ repoRoot: z.string(),
809
+ });
810
+ export const WriteProjectConfigRequestMessageSchema = z.object({
811
+ type: z.literal("write_project_config_request"),
812
+ requestId: z.string(),
813
+ repoRoot: z.string(),
814
+ config: PaseoConfigRawSchema,
815
+ expectedRevision: PaseoConfigRevisionSchema.nullable(),
816
+ });
817
+ // ============================================================================
818
+ // Dictation Streaming (lossless, resumable)
819
+ // ============================================================================
820
+ export const DictationStreamStartMessageSchema = z.object({
821
+ type: z.literal("dictation_stream_start"),
822
+ dictationId: z.string(),
823
+ format: z.string(), // e.g. "audio/pcm;rate=16000;bits=16"
824
+ });
825
+ export const DictationStreamChunkMessageSchema = z.object({
826
+ type: z.literal("dictation_stream_chunk"),
827
+ dictationId: z.string(),
828
+ seq: z.number().int().nonnegative(),
829
+ audio: z.string(), // base64 encoded chunk
830
+ format: z.string(), // e.g. "audio/pcm;rate=16000;bits=16"
831
+ });
832
+ export const DictationStreamFinishMessageSchema = z.object({
833
+ type: z.literal("dictation_stream_finish"),
834
+ dictationId: z.string(),
835
+ finalSeq: z.number().int().nonnegative(),
836
+ });
837
+ export const DictationStreamCancelMessageSchema = z.object({
838
+ type: z.literal("dictation_stream_cancel"),
839
+ dictationId: z.string(),
840
+ });
841
+ const GitSetupOptionsSchema = z.object({
842
+ baseBranch: z.string().optional(),
843
+ createNewBranch: z.boolean().optional(),
844
+ newBranchName: z.string().optional(),
845
+ createWorktree: z.boolean().optional(),
846
+ worktreeSlug: z.string().optional(),
847
+ refName: z.string().min(1).optional(),
848
+ action: z.enum(["branch-off", "checkout"]).optional(),
849
+ githubPrNumber: z.number().int().positive().optional(),
850
+ });
851
+ export const CreateAgentRequestMessageSchema = z.object({
852
+ type: z.literal("create_agent_request"),
853
+ config: AgentSessionConfigSchema,
854
+ workspaceId: z.string().optional(),
855
+ worktreeName: z.string().optional(),
856
+ initialPrompt: z.string().optional(),
857
+ clientMessageId: z.string().optional(),
858
+ outputSchema: z.record(z.unknown()).optional(),
859
+ images: z.array(ImageAttachmentSchema).optional(),
860
+ attachments: AgentAttachmentsSchema,
861
+ git: GitSetupOptionsSchema.optional(),
862
+ labels: z.record(z.string()).default({}),
863
+ requestId: z.string(),
864
+ });
865
+ export const ListProviderModelsRequestMessageSchema = z.object({
866
+ type: z.literal("list_provider_models_request"),
867
+ provider: AgentProviderSchema,
868
+ cwd: z.string().optional(),
869
+ requestId: z.string(),
870
+ });
871
+ export const ListProviderModesRequestMessageSchema = z.object({
872
+ type: z.literal("list_provider_modes_request"),
873
+ provider: AgentProviderSchema,
874
+ cwd: z.string().optional(),
875
+ requestId: z.string(),
876
+ });
877
+ export const ListAvailableProvidersRequestMessageSchema = z.object({
878
+ type: z.literal("list_available_providers_request"),
879
+ requestId: z.string(),
880
+ });
881
+ export const GetProvidersSnapshotRequestMessageSchema = z.object({
882
+ type: z.literal("get_providers_snapshot_request"),
883
+ cwd: z.string().optional(),
884
+ requestId: z.string(),
885
+ });
886
+ export const RefreshProvidersSnapshotRequestMessageSchema = z.object({
887
+ type: z.literal("refresh_providers_snapshot_request"),
888
+ cwd: z.string().optional(),
889
+ providers: z.array(AgentProviderSchema).optional(),
890
+ requestId: z.string(),
891
+ });
892
+ export const ProviderDiagnosticRequestMessageSchema = z.object({
893
+ type: z.literal("provider_diagnostic_request"),
894
+ provider: AgentProviderSchema,
895
+ requestId: z.string(),
896
+ });
897
+ export const ResumeAgentRequestMessageSchema = z.object({
898
+ type: z.literal("resume_agent_request"),
899
+ handle: AgentPersistenceHandleSchema,
900
+ overrides: AgentSessionConfigSchema.partial().optional(),
901
+ requestId: z.string(),
902
+ });
903
+ export const ImportAgentRequestMessageSchema = z.object({
904
+ type: z.literal("import_agent_request"),
905
+ provider: AgentProviderSchema.optional(),
906
+ providerId: z.string().optional(),
907
+ sessionId: z.string().optional(),
908
+ providerHandleId: z.string().optional(),
909
+ cwd: z.string().optional(),
910
+ labels: z.record(z.string()).optional(),
911
+ requestId: z.string(),
912
+ });
913
+ export const RefreshAgentRequestMessageSchema = z.object({
914
+ type: z.literal("refresh_agent_request"),
915
+ agentId: z.string(),
916
+ requestId: z.string(),
917
+ });
918
+ export const CancelAgentRequestMessageSchema = z.object({
919
+ type: z.literal("cancel_agent_request"),
920
+ agentId: z.string(),
921
+ requestId: z.string().optional(),
922
+ });
923
+ export const RestartServerRequestMessageSchema = z.object({
924
+ type: z.literal("restart_server_request"),
925
+ reason: z.string().optional(),
926
+ requestId: z.string(),
927
+ });
928
+ export const ShutdownServerRequestMessageSchema = z.object({
929
+ type: z.literal("shutdown_server_request"),
930
+ requestId: z.string(),
931
+ });
932
+ export const AgentTimelineCursorSchema = z.object({
933
+ epoch: z.string(),
934
+ seq: z.number().int().nonnegative(),
935
+ });
936
+ export const FetchAgentTimelineRequestMessageSchema = z.object({
937
+ type: z.literal("fetch_agent_timeline_request"),
938
+ agentId: z.string(),
939
+ requestId: z.string(),
940
+ direction: z.enum(["tail", "before", "after"]).optional(),
941
+ cursor: AgentTimelineCursorSchema.optional(),
942
+ // 0 means "all matching rows for this query window".
943
+ limit: z.number().int().nonnegative().optional(),
944
+ // Default should be projected for app timeline loading.
945
+ projection: z.enum(["projected", "canonical"]).optional(),
946
+ });
947
+ export const SetAgentModeRequestMessageSchema = z.object({
948
+ type: z.literal("set_agent_mode_request"),
949
+ agentId: z.string(),
950
+ modeId: z.string(),
951
+ requestId: z.string(),
952
+ });
953
+ const AgentActionResponsePayloadSchema = z.object({
954
+ requestId: z.string(),
955
+ agentId: z.string(),
956
+ accepted: z.boolean(),
957
+ error: z.string().nullable(),
958
+ });
959
+ export const SetAgentModeResponseMessageSchema = z.object({
960
+ type: z.literal("set_agent_mode_response"),
961
+ payload: AgentActionResponsePayloadSchema,
962
+ });
963
+ export const SetAgentModelRequestMessageSchema = z.object({
964
+ type: z.literal("set_agent_model_request"),
965
+ agentId: z.string(),
966
+ modelId: z.string().nullable(),
967
+ requestId: z.string(),
968
+ });
969
+ export const SetAgentModelResponseMessageSchema = z.object({
970
+ type: z.literal("set_agent_model_response"),
971
+ payload: AgentActionResponsePayloadSchema,
972
+ });
973
+ export const SetAgentThinkingRequestMessageSchema = z.object({
974
+ type: z.literal("set_agent_thinking_request"),
975
+ agentId: z.string(),
976
+ thinkingOptionId: z.string().nullable(),
977
+ requestId: z.string(),
978
+ });
979
+ export const SetAgentThinkingResponseMessageSchema = z.object({
980
+ type: z.literal("set_agent_thinking_response"),
981
+ payload: AgentActionResponsePayloadSchema,
982
+ });
983
+ export const SetAgentFeatureRequestMessageSchema = z.object({
984
+ type: z.literal("set_agent_feature_request"),
985
+ agentId: z.string(),
986
+ featureId: z.string(),
987
+ value: z.unknown(),
988
+ requestId: z.string(),
989
+ });
990
+ export const SetAgentFeatureResponseMessageSchema = z.object({
991
+ type: z.literal("set_agent_feature_response"),
992
+ payload: AgentActionResponsePayloadSchema,
993
+ });
994
+ export const UpdateAgentResponseMessageSchema = z.object({
995
+ type: z.literal("update_agent_response"),
996
+ payload: AgentActionResponsePayloadSchema,
997
+ });
998
+ export const ProjectRenameResponsePayloadSchema = z.object({
999
+ requestId: z.string(),
1000
+ projectId: z.string(),
1001
+ accepted: z.boolean(),
1002
+ customName: z.string().nullable(),
1003
+ error: z.string().nullable(),
1004
+ });
1005
+ export const ProjectRenameResponseSchema = z.object({
1006
+ type: z.literal("project.rename.response"),
1007
+ payload: ProjectRenameResponsePayloadSchema,
1008
+ });
1009
+ export const SetVoiceModeResponseMessageSchema = z.object({
1010
+ type: z.literal("set_voice_mode_response"),
1011
+ payload: z.object({
1012
+ requestId: z.string(),
1013
+ enabled: z.boolean(),
1014
+ agentId: z.string().nullable(),
1015
+ accepted: z.boolean(),
1016
+ error: z.string().nullable(),
1017
+ reasonCode: z.string().optional(),
1018
+ retryable: z.boolean().optional(),
1019
+ missingModelIds: z.array(z.string()).optional(),
1020
+ }),
1021
+ });
1022
+ export const AgentPermissionResponseMessageSchema = z.object({
1023
+ type: z.literal("agent_permission_response"),
1024
+ agentId: z.string(),
1025
+ requestId: z.string(),
1026
+ response: AgentPermissionResponseSchema,
1027
+ });
1028
+ const CheckoutErrorCodeSchema = z.enum([
1029
+ "NOT_GIT_REPO",
1030
+ "NOT_ALLOWED",
1031
+ "MERGE_CONFLICT",
1032
+ "UNKNOWN",
1033
+ ]);
1034
+ const CheckoutErrorSchema = z.object({
1035
+ code: CheckoutErrorCodeSchema,
1036
+ message: z.string(),
1037
+ });
1038
+ const CheckoutDiffCompareSchema = z.object({
1039
+ mode: z.enum(["uncommitted", "base"]),
1040
+ baseRef: z.string().optional(),
1041
+ ignoreWhitespace: z.boolean().optional(),
1042
+ });
1043
+ export const CheckoutStatusRequestSchema = z.object({
1044
+ type: z.literal("checkout_status_request"),
1045
+ cwd: z.string(),
1046
+ requestId: z.string(),
1047
+ });
1048
+ export const SubscribeCheckoutDiffRequestSchema = z.object({
1049
+ type: z.literal("subscribe_checkout_diff_request"),
1050
+ subscriptionId: z.string(),
1051
+ cwd: z.string(),
1052
+ compare: CheckoutDiffCompareSchema,
1053
+ requestId: z.string(),
1054
+ });
1055
+ export const UnsubscribeCheckoutDiffRequestSchema = z.object({
1056
+ type: z.literal("unsubscribe_checkout_diff_request"),
1057
+ subscriptionId: z.string(),
1058
+ });
1059
+ export const CheckoutCommitRequestSchema = z.object({
1060
+ type: z.literal("checkout_commit_request"),
1061
+ cwd: z.string(),
1062
+ message: z.string().optional(),
1063
+ addAll: z.boolean().optional(),
1064
+ requestId: z.string(),
1065
+ });
1066
+ export const CheckoutMergeRequestSchema = z.object({
1067
+ type: z.literal("checkout_merge_request"),
1068
+ cwd: z.string(),
1069
+ baseRef: z.string().optional(),
1070
+ strategy: z.enum(["merge", "squash"]).optional(),
1071
+ requireCleanTarget: z.boolean().optional(),
1072
+ requestId: z.string(),
1073
+ });
1074
+ export const CheckoutMergeFromBaseRequestSchema = z.object({
1075
+ type: z.literal("checkout_merge_from_base_request"),
1076
+ cwd: z.string(),
1077
+ baseRef: z.string().optional(),
1078
+ requireCleanTarget: z.boolean().optional(),
1079
+ requestId: z.string(),
1080
+ });
1081
+ export const CheckoutPullRequestSchema = z.object({
1082
+ type: z.literal("checkout_pull_request"),
1083
+ cwd: z.string(),
1084
+ requestId: z.string(),
1085
+ });
1086
+ export const CheckoutPushRequestSchema = z.object({
1087
+ type: z.literal("checkout_push_request"),
1088
+ cwd: z.string(),
1089
+ requestId: z.string(),
1090
+ });
1091
+ export const CheckoutPrCreateRequestSchema = z.object({
1092
+ type: z.literal("checkout_pr_create_request"),
1093
+ cwd: z.string(),
1094
+ title: z.string().optional(),
1095
+ body: z.string().optional(),
1096
+ baseRef: z.string().optional(),
1097
+ requestId: z.string(),
1098
+ });
1099
+ export const CheckoutPrMergeRequestSchema = z.object({
1100
+ type: z.literal("checkout_pr_merge_request"),
1101
+ cwd: z.string(),
1102
+ mergeMethod: z.enum(["merge", "squash", "rebase"]),
1103
+ requestId: z.string(),
1104
+ });
1105
+ export const CheckoutGithubSetAutoMergeRequestSchema = z.object({
1106
+ type: z.literal("checkout.github.set_auto_merge.request"),
1107
+ cwd: z.string(),
1108
+ enabled: z.boolean(),
1109
+ mergeMethod: z.enum(["merge", "squash", "rebase"]).optional(),
1110
+ requestId: z.string(),
1111
+ });
1112
+ export const CheckoutPrStatusRequestSchema = z.object({
1113
+ type: z.literal("checkout_pr_status_request"),
1114
+ cwd: z.string(),
1115
+ requestId: z.string(),
1116
+ });
1117
+ export const PullRequestTimelineRequestSchema = z.object({
1118
+ type: z.literal("pull_request_timeline_request"),
1119
+ cwd: z.string(),
1120
+ prNumber: z.number(),
1121
+ repoOwner: z.string(),
1122
+ repoName: z.string(),
1123
+ requestId: z.string(),
1124
+ });
1125
+ export const ValidateBranchRequestSchema = z.object({
1126
+ type: z.literal("validate_branch_request"),
1127
+ cwd: z.string(),
1128
+ branchName: z.string(),
1129
+ requestId: z.string(),
1130
+ });
1131
+ export const CheckoutSwitchBranchRequestSchema = z.object({
1132
+ type: z.literal("checkout_switch_branch_request"),
1133
+ cwd: z.string(),
1134
+ branch: z.string(),
1135
+ requestId: z.string(),
1136
+ });
1137
+ export const CheckoutRenameBranchRequestSchema = z.object({
1138
+ type: z.literal("checkout.rename_branch.request"),
1139
+ cwd: z.string(),
1140
+ branch: z.string(),
1141
+ requestId: z.string(),
1142
+ });
1143
+ export const StashSaveRequestSchema = z.object({
1144
+ type: z.literal("stash_save_request"),
1145
+ cwd: z.string(),
1146
+ /** Branch name to tag the stash with for later identification. */
1147
+ branch: z.string().optional(),
1148
+ requestId: z.string(),
1149
+ });
1150
+ export const StashPopRequestSchema = z.object({
1151
+ type: z.literal("stash_pop_request"),
1152
+ cwd: z.string(),
1153
+ /** Zero-based index from stash_list_response. */
1154
+ stashIndex: z.number().int().min(0),
1155
+ requestId: z.string(),
1156
+ });
1157
+ export const StashListRequestSchema = z.object({
1158
+ type: z.literal("stash_list_request"),
1159
+ cwd: z.string(),
1160
+ /** If true, only return paseo-created stashes. Default true. */
1161
+ paseoOnly: z.boolean().optional(),
1162
+ requestId: z.string(),
1163
+ });
1164
+ export const BranchSuggestionsRequestSchema = z.object({
1165
+ type: z.literal("branch_suggestions_request"),
1166
+ cwd: z.string(),
1167
+ query: z.string().optional(),
1168
+ limit: z.number().int().min(1).max(200).optional(),
1169
+ requestId: z.string(),
1170
+ });
1171
+ export const GitHubSearchItemSchema = z.object({
1172
+ kind: z.enum(["issue", "pr"]),
1173
+ number: z.number(),
1174
+ title: z.string(),
1175
+ url: z.string(),
1176
+ state: z.string(),
1177
+ body: z.string().nullable(),
1178
+ labels: z.array(z.string()),
1179
+ baseRefName: z.string().nullable().optional(),
1180
+ headRefName: z.string().nullable().optional(),
1181
+ updatedAt: z.string().optional(),
1182
+ });
1183
+ export const GitHubSearchKindSchema = z.enum(["github-issue", "github-pr"]);
1184
+ export const GitHubSearchRequestSchema = z.object({
1185
+ type: z.literal("github_search_request"),
1186
+ cwd: z.string(),
1187
+ query: z.string(),
1188
+ limit: z.number().int().min(1).max(50).optional(),
1189
+ kinds: z.array(GitHubSearchKindSchema).optional(),
1190
+ requestId: z.string(),
1191
+ });
1192
+ export const DirectorySuggestionsRequestSchema = z.object({
1193
+ type: z.literal("directory_suggestions_request"),
1194
+ query: z.string(),
1195
+ cwd: z.string().optional(),
1196
+ includeFiles: z.boolean().optional(),
1197
+ includeDirectories: z.boolean().optional(),
1198
+ matchMode: z.enum(["fuzzy", "suffix"]).optional(),
1199
+ limit: z.number().int().min(1).max(100).optional(),
1200
+ requestId: z.string(),
1201
+ });
1202
+ export const PaseoWorktreeListRequestSchema = z.object({
1203
+ type: z.literal("paseo_worktree_list_request"),
1204
+ cwd: z.string().optional(),
1205
+ repoRoot: z.string().optional(),
1206
+ requestId: z.string(),
1207
+ });
1208
+ export const PaseoWorktreeArchiveRequestSchema = z.object({
1209
+ type: z.literal("paseo_worktree_archive_request"),
1210
+ worktreePath: z.string().optional(),
1211
+ repoRoot: z.string().optional(),
1212
+ branchName: z.string().optional(),
1213
+ requestId: z.string(),
1214
+ });
1215
+ export const FirstAgentContextSchema = z.object({
1216
+ prompt: z.string().optional(),
1217
+ attachments: AgentAttachmentsSchema,
1218
+ });
1219
+ export const CreatePaseoWorktreeRequestSchema = z.object({
1220
+ type: z.literal("create_paseo_worktree_request"),
1221
+ cwd: z.string(),
1222
+ projectId: z.string().optional(),
1223
+ worktreeSlug: z.string().optional(),
1224
+ nameContext: z.string().optional(),
1225
+ attachments: AgentAttachmentsSchema.optional(),
1226
+ firstAgentContext: FirstAgentContextSchema.optional(),
1227
+ refName: z.string().min(1).optional(),
1228
+ action: z.enum(["branch-off", "checkout"]).optional(),
1229
+ githubPrNumber: z.number().int().positive().optional(),
1230
+ requestId: z.string(),
1231
+ });
1232
+ export const WorkspaceSetupStatusRequestSchema = z.object({
1233
+ type: z.literal("workspace_setup_status_request"),
1234
+ workspaceId: z.string(),
1235
+ requestId: z.string(),
1236
+ });
1237
+ // TODO(2026-07): Remove once most clients are on >=0.1.50 and support arbitrary editor ids.
1238
+ export const LEGACY_EDITOR_TARGET_IDS = [
1239
+ "cursor",
1240
+ "vscode",
1241
+ "zed",
1242
+ "finder",
1243
+ "explorer",
1244
+ "file-manager",
1245
+ ];
1246
+ export const KNOWN_EDITOR_TARGET_IDS = [...LEGACY_EDITOR_TARGET_IDS, "webstorm"];
1247
+ export const KnownEditorTargetIdSchema = z.enum(KNOWN_EDITOR_TARGET_IDS);
1248
+ export const LegacyEditorTargetIdSchema = z.enum(LEGACY_EDITOR_TARGET_IDS);
1249
+ export const EditorTargetIdSchema = z.string().trim().min(1);
1250
+ const KNOWN_EDITOR_TARGET_ID_SET = new Set(KNOWN_EDITOR_TARGET_IDS);
1251
+ const LEGACY_EDITOR_TARGET_ID_SET = new Set(LEGACY_EDITOR_TARGET_IDS);
1252
+ export function isKnownEditorTargetId(value) {
1253
+ return KNOWN_EDITOR_TARGET_ID_SET.has(value);
1254
+ }
1255
+ export function isLegacyEditorTargetId(value) {
1256
+ return LEGACY_EDITOR_TARGET_ID_SET.has(value);
1257
+ }
1258
+ export const EditorTargetDescriptorPayloadSchema = z.object({
1259
+ id: EditorTargetIdSchema,
1260
+ label: z.string(),
1261
+ });
1262
+ export const ListAvailableEditorsRequestSchema = z.object({
1263
+ type: z.literal("list_available_editors_request"),
1264
+ requestId: z.string(),
1265
+ });
1266
+ export const OpenInEditorRequestSchema = z.object({
1267
+ type: z.literal("open_in_editor_request"),
1268
+ path: z.string(),
1269
+ editorId: EditorTargetIdSchema,
1270
+ requestId: z.string(),
1271
+ });
1272
+ export const OpenProjectRequestSchema = z.object({
1273
+ type: z.literal("open_project_request"),
1274
+ cwd: z.string(),
1275
+ requestId: z.string(),
1276
+ });
1277
+ export const ArchiveWorkspaceRequestSchema = z.object({
1278
+ type: z.literal("archive_workspace_request"),
1279
+ workspaceId: z.string(),
1280
+ requestId: z.string(),
1281
+ });
1282
+ // Highlighted diff token schema
1283
+ // Note: style can be a compound class name (e.g., "heading meta") from the syntax highlighter
1284
+ const HighlightTokenSchema = z.object({
1285
+ text: z.string(),
1286
+ style: z.string().nullable(),
1287
+ });
1288
+ const DiffLineSchema = z.object({
1289
+ type: z.enum(["add", "remove", "context", "header"]),
1290
+ content: z.string(),
1291
+ tokens: z.array(HighlightTokenSchema).optional(),
1292
+ });
1293
+ const DiffHunkSchema = z.object({
1294
+ oldStart: z.number(),
1295
+ oldCount: z.number(),
1296
+ newStart: z.number(),
1297
+ newCount: z.number(),
1298
+ lines: z.array(DiffLineSchema),
1299
+ });
1300
+ const ParsedDiffFileSchema = z.object({
1301
+ path: z.string(),
1302
+ isNew: z.boolean(),
1303
+ isDeleted: z.boolean(),
1304
+ additions: z.number(),
1305
+ deletions: z.number(),
1306
+ hunks: z.array(DiffHunkSchema),
1307
+ status: z.enum(["ok", "too_large", "binary"]).optional(),
1308
+ });
1309
+ const FileExplorerEntrySchema = z.object({
1310
+ name: z.string(),
1311
+ path: z.string(),
1312
+ kind: z.enum(["file", "directory"]),
1313
+ size: z.number(),
1314
+ modifiedAt: z.string(),
1315
+ });
1316
+ const FileExplorerFileSchema = z.object({
1317
+ path: z.string(),
1318
+ kind: z.enum(["text", "image", "binary"]),
1319
+ encoding: z.enum(["utf-8", "base64", "none"]),
1320
+ content: z.string().optional(),
1321
+ mimeType: z.string().optional(),
1322
+ size: z.number(),
1323
+ modifiedAt: z.string(),
1324
+ });
1325
+ const FileExplorerDirectorySchema = z.object({
1326
+ path: z.string(),
1327
+ entries: z.array(FileExplorerEntrySchema),
1328
+ });
1329
+ export const FileExplorerRequestSchema = z.object({
1330
+ type: z.literal("file_explorer_request"),
1331
+ cwd: z.string(),
1332
+ path: z.string().optional(),
1333
+ mode: z.enum(["list", "file"]),
1334
+ requestId: z.string(),
1335
+ acceptBinary: z.boolean().optional(),
1336
+ });
1337
+ export const ProjectIconRequestSchema = z.object({
1338
+ type: z.literal("project_icon_request"),
1339
+ cwd: z.string(),
1340
+ requestId: z.string(),
1341
+ });
1342
+ export const FileDownloadTokenRequestSchema = z.object({
1343
+ type: z.literal("file_download_token_request"),
1344
+ cwd: z.string(),
1345
+ path: z.string(),
1346
+ requestId: z.string(),
1347
+ });
1348
+ export const ClearAgentAttentionMessageSchema = z.object({
1349
+ type: z.literal("clear_agent_attention"),
1350
+ agentId: z.union([z.string(), z.array(z.string())]),
1351
+ requestId: z.string().optional(),
1352
+ });
1353
+ export const ClientHeartbeatMessageSchema = z.object({
1354
+ type: z.literal("client_heartbeat"),
1355
+ deviceType: z.enum(["web", "mobile"]),
1356
+ focusedAgentId: z.string().nullable(),
1357
+ lastActivityAt: z.string(),
1358
+ appVisible: z.boolean(),
1359
+ appVisibilityChangedAt: z.string().optional(),
1360
+ });
1361
+ export const PingMessageSchema = z.object({
1362
+ type: z.literal("ping"),
1363
+ requestId: z.string(),
1364
+ clientSentAt: z.number().int().optional(),
1365
+ });
1366
+ const ListCommandsDraftConfigSchema = z.object({
1367
+ provider: AgentProviderSchema,
1368
+ cwd: z.string(),
1369
+ modeId: z.string().optional(),
1370
+ model: z.string().optional(),
1371
+ thinkingOptionId: z.string().optional(),
1372
+ featureValues: z.record(z.unknown()).optional(),
1373
+ });
1374
+ export const ListProviderFeaturesRequestMessageSchema = z.object({
1375
+ type: z.literal("list_provider_features_request"),
1376
+ draftConfig: ListCommandsDraftConfigSchema,
1377
+ requestId: z.string(),
1378
+ });
1379
+ export const ListCommandsRequestSchema = z.object({
1380
+ type: z.literal("list_commands_request"),
1381
+ agentId: z.string(),
1382
+ draftConfig: ListCommandsDraftConfigSchema.optional(),
1383
+ requestId: z.string(),
1384
+ });
1385
+ export const RegisterPushTokenMessageSchema = z.object({
1386
+ type: z.literal("register_push_token"),
1387
+ token: z.string(),
1388
+ });
1389
+ // ============================================================================
1390
+ // Terminal Messages
1391
+ // ============================================================================
1392
+ export const ListTerminalsRequestSchema = z.object({
1393
+ type: z.literal("list_terminals_request"),
1394
+ cwd: z.string().optional(),
1395
+ requestId: z.string(),
1396
+ });
1397
+ export const SubscribeTerminalsRequestSchema = z.object({
1398
+ type: z.literal("subscribe_terminals_request"),
1399
+ cwd: z.string(),
1400
+ });
1401
+ export const UnsubscribeTerminalsRequestSchema = z.object({
1402
+ type: z.literal("unsubscribe_terminals_request"),
1403
+ cwd: z.string(),
1404
+ });
1405
+ export const CreateTerminalRequestSchema = z.object({
1406
+ type: z.literal("create_terminal_request"),
1407
+ cwd: z.string(),
1408
+ name: z.string().optional(),
1409
+ agentId: z.string().optional(),
1410
+ command: z.string().optional(),
1411
+ args: z.array(z.string()).optional(),
1412
+ requestId: z.string(),
1413
+ });
1414
+ export const RenameTerminalRequestSchema = z.object({
1415
+ type: z.literal("terminal.rename.request"),
1416
+ terminalId: z.string(),
1417
+ title: z.string(),
1418
+ requestId: z.string(),
1419
+ });
1420
+ export const StartWorkspaceScriptRequestSchema = z.object({
1421
+ type: z.literal("start_workspace_script_request"),
1422
+ workspaceId: z.string(),
1423
+ scriptName: z.string(),
1424
+ requestId: z.string(),
1425
+ });
1426
+ export const SubscribeTerminalRequestSchema = z.object({
1427
+ type: z.literal("subscribe_terminal_request"),
1428
+ terminalId: z.string(),
1429
+ requestId: z.string(),
1430
+ });
1431
+ export const UnsubscribeTerminalRequestSchema = z.object({
1432
+ type: z.literal("unsubscribe_terminal_request"),
1433
+ terminalId: z.string(),
1434
+ });
1435
+ const TerminalClientMessageSchema = z.discriminatedUnion("type", [
1436
+ z.object({ type: z.literal("input"), data: z.string() }),
1437
+ z.object({ type: z.literal("resize"), rows: z.number(), cols: z.number() }),
1438
+ z.object({
1439
+ type: z.literal("mouse"),
1440
+ row: z.number(),
1441
+ col: z.number(),
1442
+ button: z.number(),
1443
+ action: z.enum(["down", "up", "move"]),
1444
+ }),
1445
+ ]);
1446
+ export const TerminalInputSchema = z.object({
1447
+ type: z.literal("terminal_input"),
1448
+ terminalId: z.string(),
1449
+ message: TerminalClientMessageSchema,
1450
+ });
1451
+ export const KillTerminalRequestSchema = z.object({
1452
+ type: z.literal("kill_terminal_request"),
1453
+ terminalId: z.string(),
1454
+ requestId: z.string(),
1455
+ });
1456
+ export const CaptureTerminalRequestSchema = z.object({
1457
+ type: z.literal("capture_terminal_request"),
1458
+ terminalId: z.string(),
1459
+ start: z.number().int().optional(),
1460
+ end: z.number().int().optional(),
1461
+ stripAnsi: z.boolean().default(true),
1462
+ requestId: z.string(),
1463
+ });
1464
+ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
1465
+ VoiceAudioChunkMessageSchema,
1466
+ AbortRequestMessageSchema,
1467
+ AudioPlayedMessageSchema,
1468
+ FetchAgentsRequestMessageSchema,
1469
+ FetchAgentHistoryRequestMessageSchema,
1470
+ FetchRecentProviderSessionsRequestMessageSchema,
1471
+ FetchWorkspacesRequestMessageSchema,
1472
+ FetchAgentRequestMessageSchema,
1473
+ DeleteAgentRequestMessageSchema,
1474
+ ArchiveAgentRequestMessageSchema,
1475
+ CloseItemsRequestMessageSchema,
1476
+ UpdateAgentRequestMessageSchema,
1477
+ ProjectRenameRequestSchema,
1478
+ SetVoiceModeMessageSchema,
1479
+ SendAgentMessageRequestSchema,
1480
+ WaitForFinishRequestSchema,
1481
+ DaemonGetStatusRequestSchema,
1482
+ DaemonGetPairingOfferRequestSchema,
1483
+ GetDaemonConfigRequestMessageSchema,
1484
+ SetDaemonConfigRequestMessageSchema,
1485
+ ReadProjectConfigRequestMessageSchema,
1486
+ WriteProjectConfigRequestMessageSchema,
1487
+ DictationStreamStartMessageSchema,
1488
+ DictationStreamChunkMessageSchema,
1489
+ DictationStreamFinishMessageSchema,
1490
+ DictationStreamCancelMessageSchema,
1491
+ CreateAgentRequestMessageSchema,
1492
+ ListProviderModelsRequestMessageSchema,
1493
+ ListProviderModesRequestMessageSchema,
1494
+ ListProviderFeaturesRequestMessageSchema,
1495
+ ListAvailableProvidersRequestMessageSchema,
1496
+ GetProvidersSnapshotRequestMessageSchema,
1497
+ RefreshProvidersSnapshotRequestMessageSchema,
1498
+ ProviderDiagnosticRequestMessageSchema,
1499
+ ResumeAgentRequestMessageSchema,
1500
+ ImportAgentRequestMessageSchema,
1501
+ RefreshAgentRequestMessageSchema,
1502
+ CancelAgentRequestMessageSchema,
1503
+ ShutdownServerRequestMessageSchema,
1504
+ RestartServerRequestMessageSchema,
1505
+ FetchAgentTimelineRequestMessageSchema,
1506
+ SetAgentModeRequestMessageSchema,
1507
+ SetAgentModelRequestMessageSchema,
1508
+ SetAgentThinkingRequestMessageSchema,
1509
+ SetAgentFeatureRequestMessageSchema,
1510
+ AgentPermissionResponseMessageSchema,
1511
+ CheckoutStatusRequestSchema,
1512
+ SubscribeCheckoutDiffRequestSchema,
1513
+ UnsubscribeCheckoutDiffRequestSchema,
1514
+ CheckoutCommitRequestSchema,
1515
+ CheckoutMergeRequestSchema,
1516
+ CheckoutMergeFromBaseRequestSchema,
1517
+ CheckoutPullRequestSchema,
1518
+ CheckoutPushRequestSchema,
1519
+ CheckoutPrCreateRequestSchema,
1520
+ CheckoutPrMergeRequestSchema,
1521
+ CheckoutGithubSetAutoMergeRequestSchema,
1522
+ CheckoutPrStatusRequestSchema,
1523
+ PullRequestTimelineRequestSchema,
1524
+ CheckoutSwitchBranchRequestSchema,
1525
+ CheckoutRenameBranchRequestSchema,
1526
+ StashSaveRequestSchema,
1527
+ StashPopRequestSchema,
1528
+ StashListRequestSchema,
1529
+ ValidateBranchRequestSchema,
1530
+ BranchSuggestionsRequestSchema,
1531
+ GitHubSearchRequestSchema,
1532
+ DirectorySuggestionsRequestSchema,
1533
+ PaseoWorktreeListRequestSchema,
1534
+ PaseoWorktreeArchiveRequestSchema,
1535
+ CreatePaseoWorktreeRequestSchema,
1536
+ WorkspaceSetupStatusRequestSchema,
1537
+ ListAvailableEditorsRequestSchema,
1538
+ OpenInEditorRequestSchema,
1539
+ OpenProjectRequestSchema,
1540
+ ArchiveWorkspaceRequestSchema,
1541
+ FileExplorerRequestSchema,
1542
+ ProjectIconRequestSchema,
1543
+ FileDownloadTokenRequestSchema,
1544
+ ClearAgentAttentionMessageSchema,
1545
+ ClientHeartbeatMessageSchema,
1546
+ PingMessageSchema,
1547
+ ListCommandsRequestSchema,
1548
+ RegisterPushTokenMessageSchema,
1549
+ ListTerminalsRequestSchema,
1550
+ SubscribeTerminalsRequestSchema,
1551
+ UnsubscribeTerminalsRequestSchema,
1552
+ CreateTerminalRequestSchema,
1553
+ RenameTerminalRequestSchema,
1554
+ StartWorkspaceScriptRequestSchema,
1555
+ SubscribeTerminalRequestSchema,
1556
+ UnsubscribeTerminalRequestSchema,
1557
+ TerminalInputSchema,
1558
+ KillTerminalRequestSchema,
1559
+ CaptureTerminalRequestSchema,
1560
+ ChatCreateRequestSchema,
1561
+ ChatListRequestSchema,
1562
+ ChatInspectRequestSchema,
1563
+ ChatDeleteRequestSchema,
1564
+ ChatPostRequestSchema,
1565
+ ChatReadRequestSchema,
1566
+ ChatWaitRequestSchema,
1567
+ ScheduleCreateRequestSchema,
1568
+ ScheduleListRequestSchema,
1569
+ ScheduleInspectRequestSchema,
1570
+ ScheduleLogsRequestSchema,
1571
+ SchedulePauseRequestSchema,
1572
+ ScheduleResumeRequestSchema,
1573
+ ScheduleDeleteRequestSchema,
1574
+ ScheduleRunOnceRequestSchema,
1575
+ ScheduleUpdateRequestSchema,
1576
+ LoopRunRequestSchema,
1577
+ LoopListRequestSchema,
1578
+ LoopInspectRequestSchema,
1579
+ LoopLogsRequestSchema,
1580
+ LoopStopRequestSchema,
1581
+ ]);
1582
+ // ============================================================================
1583
+ // Session Outbound Messages (Session emits these)
1584
+ // ============================================================================
1585
+ export const ActivityLogPayloadSchema = z.object({
1586
+ id: z.string(),
1587
+ timestamp: z.coerce.date(),
1588
+ type: z.enum(["transcript", "assistant", "tool_call", "tool_result", "error", "system"]),
1589
+ content: z.string(),
1590
+ metadata: z.record(z.unknown()).optional(),
1591
+ });
1592
+ export const ActivityLogMessageSchema = z.object({
1593
+ type: z.literal("activity_log"),
1594
+ payload: ActivityLogPayloadSchema,
1595
+ });
1596
+ export const AssistantChunkMessageSchema = z.object({
1597
+ type: z.literal("assistant_chunk"),
1598
+ payload: z.object({
1599
+ chunk: z.string(),
1600
+ }),
1601
+ });
1602
+ export const AudioOutputMessageSchema = z.object({
1603
+ type: z.literal("audio_output"),
1604
+ payload: z.object({
1605
+ audio: z.string(), // base64 encoded
1606
+ format: z.string(),
1607
+ id: z.string(),
1608
+ isVoiceMode: z.boolean(), // Mode when audio was generated (for drift protection)
1609
+ groupId: z.string().optional(), // Logical utterance id
1610
+ chunkIndex: z.number().int().nonnegative().optional(),
1611
+ isLastChunk: z.boolean().optional(),
1612
+ }),
1613
+ });
1614
+ export const TranscriptionResultMessageSchema = z.object({
1615
+ type: z.literal("transcription_result"),
1616
+ payload: z.object({
1617
+ text: z.string(),
1618
+ language: z.string().optional(),
1619
+ duration: z.number().optional(),
1620
+ requestId: z.string(), // Echoed back from request for tracking
1621
+ avgLogprob: z.number().optional(),
1622
+ isLowConfidence: z.boolean().optional(),
1623
+ byteLength: z.number().optional(),
1624
+ format: z.string().optional(),
1625
+ debugRecordingPath: z.string().optional(),
1626
+ }),
1627
+ });
1628
+ export const VoiceInputStateMessageSchema = z.object({
1629
+ type: z.literal("voice_input_state"),
1630
+ payload: z.object({
1631
+ isSpeaking: z.boolean(),
1632
+ }),
1633
+ });
1634
+ export const DictationStreamAckMessageSchema = z.object({
1635
+ type: z.literal("dictation_stream_ack"),
1636
+ payload: z.object({
1637
+ dictationId: z.string(),
1638
+ ackSeq: z.number().int(),
1639
+ }),
1640
+ });
1641
+ export const DictationStreamFinishAcceptedMessageSchema = z.object({
1642
+ type: z.literal("dictation_stream_finish_accepted"),
1643
+ payload: z.object({
1644
+ dictationId: z.string(),
1645
+ timeoutMs: z.number().int().positive(),
1646
+ }),
1647
+ });
1648
+ export const DictationStreamPartialMessageSchema = z.object({
1649
+ type: z.literal("dictation_stream_partial"),
1650
+ payload: z.object({
1651
+ dictationId: z.string(),
1652
+ text: z.string(),
1653
+ }),
1654
+ });
1655
+ export const DictationStreamFinalMessageSchema = z.object({
1656
+ type: z.literal("dictation_stream_final"),
1657
+ payload: z.object({
1658
+ dictationId: z.string(),
1659
+ text: z.string(),
1660
+ debugRecordingPath: z.string().optional(),
1661
+ }),
1662
+ });
1663
+ export const DictationStreamErrorMessageSchema = z.object({
1664
+ type: z.literal("dictation_stream_error"),
1665
+ payload: z.object({
1666
+ dictationId: z.string(),
1667
+ error: z.string(),
1668
+ retryable: z.boolean(),
1669
+ reasonCode: z.string().optional(),
1670
+ missingModelIds: z.array(z.string()).optional(),
1671
+ debugRecordingPath: z.string().optional(),
1672
+ }),
1673
+ });
1674
+ export const ServerCapabilityStateSchema = z.object({
1675
+ enabled: z.boolean(),
1676
+ reason: z.string(),
1677
+ });
1678
+ export const ServerVoiceCapabilitiesSchema = z.object({
1679
+ dictation: ServerCapabilityStateSchema,
1680
+ voice: ServerCapabilityStateSchema,
1681
+ });
1682
+ export const ServerCapabilitiesSchema = z
1683
+ .object({
1684
+ voice: ServerVoiceCapabilitiesSchema.optional(),
1685
+ })
1686
+ .passthrough();
1687
+ const ServerInfoHostnameSchema = z.unknown().transform((value) => {
1688
+ if (typeof value !== "string") {
1689
+ return null;
1690
+ }
1691
+ const trimmed = value.trim();
1692
+ return trimmed.length > 0 ? trimmed : null;
1693
+ });
1694
+ const ServerInfoVersionSchema = z.unknown().transform((value) => {
1695
+ if (typeof value !== "string") {
1696
+ return null;
1697
+ }
1698
+ const trimmed = value.trim();
1699
+ return trimmed.length > 0 ? trimmed : null;
1700
+ });
1701
+ const ServerCapabilitiesFromUnknownSchema = z
1702
+ .unknown()
1703
+ .optional()
1704
+ .transform((value) => {
1705
+ if (value === undefined) {
1706
+ return undefined;
1707
+ }
1708
+ const parsed = ServerCapabilitiesSchema.safeParse(value);
1709
+ if (!parsed.success) {
1710
+ return undefined;
1711
+ }
1712
+ return parsed.data;
1713
+ });
1714
+ export const ServerInfoStatusPayloadSchema = z
1715
+ .object({
1716
+ status: z.literal("server_info"),
1717
+ serverId: z.string().trim().min(1),
1718
+ hostname: ServerInfoHostnameSchema.optional(),
1719
+ version: ServerInfoVersionSchema.optional(),
1720
+ capabilities: ServerCapabilitiesFromUnknownSchema,
1721
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
1722
+ features: z
1723
+ .object({
1724
+ providersSnapshot: z.boolean().optional(),
1725
+ checkoutGithubSetAutoMerge: z.boolean().optional(),
1726
+ // COMPAT(daemonStatusRpc): added in v0.1.76, remove gate after 2026-11-18.
1727
+ daemonStatusRpc: z.boolean().optional(),
1728
+ })
1729
+ .optional(),
1730
+ })
1731
+ .passthrough()
1732
+ .transform((payload) => ({
1733
+ ...payload,
1734
+ hostname: payload.hostname ?? null,
1735
+ version: payload.version ?? null,
1736
+ }));
1737
+ export const StatusMessageSchema = z.object({
1738
+ type: z.literal("status"),
1739
+ payload: z
1740
+ .object({
1741
+ status: z.string(),
1742
+ })
1743
+ .passthrough(), // Allow additional fields
1744
+ });
1745
+ export const PongMessageSchema = z.object({
1746
+ type: z.literal("pong"),
1747
+ payload: z.object({
1748
+ requestId: z.string(),
1749
+ clientSentAt: z.number().int().optional(),
1750
+ serverReceivedAt: z.number().int(),
1751
+ serverSentAt: z.number().int(),
1752
+ }),
1753
+ });
1754
+ export const RpcErrorMessageSchema = z.object({
1755
+ type: z.literal("rpc_error"),
1756
+ payload: z.object({
1757
+ requestId: z.string(),
1758
+ requestType: z.string().optional(),
1759
+ error: z.string(),
1760
+ code: z.string().optional(),
1761
+ }),
1762
+ });
1763
+ const AgentStatusWithRequestSchema = z.object({
1764
+ agentId: z.string(),
1765
+ requestId: z.string(),
1766
+ });
1767
+ const AgentStatusWithTimelineSchema = AgentStatusWithRequestSchema.extend({
1768
+ timelineSize: z.number().optional(),
1769
+ });
1770
+ export const AgentCreatedStatusPayloadSchema = z
1771
+ .object({
1772
+ status: z.literal("agent_created"),
1773
+ agent: AgentSnapshotPayloadSchema,
1774
+ })
1775
+ .extend(AgentStatusWithRequestSchema.shape);
1776
+ export const AgentCreateFailedStatusPayloadSchema = z.object({
1777
+ status: z.literal("agent_create_failed"),
1778
+ requestId: z.string(),
1779
+ error: z.string(),
1780
+ errorCode: z.string().optional(),
1781
+ });
1782
+ export const AgentResumedStatusPayloadSchema = z
1783
+ .object({
1784
+ status: z.literal("agent_resumed"),
1785
+ agent: AgentSnapshotPayloadSchema,
1786
+ })
1787
+ .extend(AgentStatusWithTimelineSchema.shape);
1788
+ export const AgentRefreshedStatusPayloadSchema = z
1789
+ .object({
1790
+ status: z.literal("agent_refreshed"),
1791
+ })
1792
+ .extend(AgentStatusWithTimelineSchema.shape);
1793
+ export const RestartRequestedStatusPayloadSchema = z.object({
1794
+ status: z.literal("restart_requested"),
1795
+ clientId: z.string(),
1796
+ reason: z.string().optional(),
1797
+ requestId: z.string(),
1798
+ });
1799
+ export const ShutdownRequestedStatusPayloadSchema = z.object({
1800
+ status: z.literal("shutdown_requested"),
1801
+ clientId: z.string(),
1802
+ requestId: z.string(),
1803
+ });
1804
+ export const DaemonConfigChangedStatusPayloadSchema = z
1805
+ .object({
1806
+ status: z.literal("daemon_config_changed"),
1807
+ config: MutableDaemonConfigSchema,
1808
+ })
1809
+ .passthrough();
1810
+ export const KnownStatusPayloadSchema = z.discriminatedUnion("status", [
1811
+ AgentCreatedStatusPayloadSchema,
1812
+ AgentCreateFailedStatusPayloadSchema,
1813
+ AgentResumedStatusPayloadSchema,
1814
+ AgentRefreshedStatusPayloadSchema,
1815
+ ShutdownRequestedStatusPayloadSchema,
1816
+ RestartRequestedStatusPayloadSchema,
1817
+ DaemonConfigChangedStatusPayloadSchema,
1818
+ ]);
1819
+ export const ArtifactMessageSchema = z.object({
1820
+ type: z.literal("artifact"),
1821
+ payload: z.object({
1822
+ type: z.enum(["markdown", "diff", "image", "code"]),
1823
+ id: z.string(),
1824
+ title: z.string(),
1825
+ content: z.string(),
1826
+ isBase64: z.boolean(),
1827
+ }),
1828
+ });
1829
+ export const ProjectCheckoutLiteNotGitPayloadSchema = z
1830
+ .object({
1831
+ cwd: z.string(),
1832
+ isGit: z.literal(false),
1833
+ currentBranch: z.null(),
1834
+ remoteUrl: z.null(),
1835
+ worktreeRoot: z.null().optional(),
1836
+ isPaseoOwnedWorktree: z.literal(false),
1837
+ mainRepoRoot: z.null(),
1838
+ })
1839
+ .transform((value) => ({
1840
+ ...value,
1841
+ worktreeRoot: null,
1842
+ }));
1843
+ export const ProjectCheckoutLiteGitNonPaseoPayloadSchema = z
1844
+ .object({
1845
+ cwd: z.string(),
1846
+ isGit: z.literal(true),
1847
+ currentBranch: z.string().nullable(),
1848
+ remoteUrl: z.string().nullable(),
1849
+ worktreeRoot: z.string().optional(),
1850
+ isPaseoOwnedWorktree: z.literal(false),
1851
+ mainRepoRoot: z.string().nullable().optional().default(null),
1852
+ })
1853
+ .transform((value) => ({
1854
+ ...value,
1855
+ worktreeRoot: value.worktreeRoot ?? value.cwd,
1856
+ }));
1857
+ export const ProjectCheckoutLiteGitPaseoPayloadSchema = z
1858
+ .object({
1859
+ cwd: z.string(),
1860
+ isGit: z.literal(true),
1861
+ currentBranch: z.string().nullable(),
1862
+ remoteUrl: z.string().nullable(),
1863
+ worktreeRoot: z.string().optional(),
1864
+ isPaseoOwnedWorktree: z.literal(true),
1865
+ mainRepoRoot: z.string(),
1866
+ })
1867
+ .transform((value) => ({
1868
+ ...value,
1869
+ worktreeRoot: value.worktreeRoot ?? value.cwd,
1870
+ }));
1871
+ export const ProjectCheckoutLitePayloadSchema = z.union([
1872
+ ProjectCheckoutLiteNotGitPayloadSchema,
1873
+ ProjectCheckoutLiteGitNonPaseoPayloadSchema,
1874
+ ProjectCheckoutLiteGitPaseoPayloadSchema,
1875
+ ]);
1876
+ export const ProjectPlacementPayloadSchema = z.object({
1877
+ projectKey: z.string(),
1878
+ projectName: z.string(),
1879
+ checkout: ProjectCheckoutLitePayloadSchema,
1880
+ });
1881
+ export const WorkspaceScriptLifecycleSchema = z.enum(["running", "stopped"]);
1882
+ export const WorkspaceScriptHealthSchema = z.enum(["healthy", "unhealthy"]);
1883
+ export const WorkspaceScriptPayloadSchema = z.object({
1884
+ scriptName: z.string(),
1885
+ type: z.enum(["script", "service"]).optional().default("service"),
1886
+ hostname: z.string(),
1887
+ port: z.number().int().positive().nullable(),
1888
+ proxyUrl: z.string().nullable().optional().default(null),
1889
+ lifecycle: WorkspaceScriptLifecycleSchema,
1890
+ health: WorkspaceScriptHealthSchema.nullable(),
1891
+ exitCode: z.number().nullable().optional().default(null),
1892
+ terminalId: z.string().nullable().optional().default(null),
1893
+ });
1894
+ const WorkspaceGitRuntimePayloadSchema = z
1895
+ .object({
1896
+ currentBranch: z.string().nullable().optional(),
1897
+ remoteUrl: z.string().nullable().optional(),
1898
+ isPaseoOwnedWorktree: z.boolean().optional(),
1899
+ isDirty: z.boolean().nullable().optional(),
1900
+ aheadBehind: z
1901
+ .object({
1902
+ ahead: z.number(),
1903
+ behind: z.number(),
1904
+ })
1905
+ .nullable()
1906
+ .optional(),
1907
+ aheadOfOrigin: z.number().nullable().optional(),
1908
+ behindOfOrigin: z.number().nullable().optional(),
1909
+ })
1910
+ .optional()
1911
+ .nullable();
1912
+ const WorkspaceGitHubRuntimePayloadSchema = z
1913
+ .object({
1914
+ featuresEnabled: z.boolean().optional(),
1915
+ pullRequest: z
1916
+ .object({
1917
+ url: z.string(),
1918
+ title: z.string(),
1919
+ state: z.string(),
1920
+ baseRefName: z.string(),
1921
+ headRefName: z.string(),
1922
+ isMerged: z.boolean(),
1923
+ })
1924
+ .nullable()
1925
+ .optional(),
1926
+ error: z
1927
+ .object({
1928
+ message: z.string(),
1929
+ })
1930
+ .nullable()
1931
+ .optional(),
1932
+ refreshedAt: z.string().nullable().optional(),
1933
+ })
1934
+ .optional()
1935
+ .nullable();
1936
+ export const WorkspaceDescriptorPayloadSchema = z
1937
+ .object({
1938
+ id: z.string(),
1939
+ projectId: z.string(),
1940
+ projectDisplayName: z.string(),
1941
+ // COMPAT(projectCustomName): added in v0.1.76, drop the optional gate when floor >= v0.1.76.
1942
+ // When the user has renamed a project, projectDisplayName carries the resolved
1943
+ // value (customName) and projectCustomName mirrors the raw override so the
1944
+ // settings UI can prefill its input and offer a "reset" action.
1945
+ projectCustomName: z.string().nullable().optional(),
1946
+ projectRootPath: z.string(),
1947
+ workspaceDirectory: z.string().optional(),
1948
+ projectKind: z.enum(["git", "non_git", "directory"]),
1949
+ // COMPAT(workspaces): keep legacy directory workspace kind parseable.
1950
+ workspaceKind: z.enum(["directory", "local_checkout", "checkout", "worktree"]),
1951
+ name: z.string(),
1952
+ archivingAt: z.string().nullable().optional().default(null),
1953
+ status: WorkspaceStateBucketSchema,
1954
+ activityAt: z.string().nullable(),
1955
+ diffStat: z
1956
+ .object({
1957
+ additions: z.number(),
1958
+ deletions: z.number(),
1959
+ })
1960
+ .nullable()
1961
+ .optional(),
1962
+ scripts: z.array(WorkspaceScriptPayloadSchema).default([]),
1963
+ gitRuntime: WorkspaceGitRuntimePayloadSchema,
1964
+ githubRuntime: WorkspaceGitHubRuntimePayloadSchema,
1965
+ project: ProjectPlacementPayloadSchema.optional(),
1966
+ })
1967
+ .transform((workspace) => ({
1968
+ ...workspace,
1969
+ workspaceDirectory: workspace.workspaceDirectory ?? workspace.projectRootPath,
1970
+ }));
1971
+ export const AgentUpdateMessageSchema = z.object({
1972
+ type: z.literal("agent_update"),
1973
+ payload: z.discriminatedUnion("kind", [
1974
+ z.object({
1975
+ kind: z.literal("upsert"),
1976
+ agent: AgentSnapshotPayloadSchema,
1977
+ project: ProjectPlacementPayloadSchema.nullable().optional(),
1978
+ }),
1979
+ z.object({
1980
+ kind: z.literal("remove"),
1981
+ agentId: z.string(),
1982
+ }),
1983
+ ]),
1984
+ });
1985
+ export const AgentStreamMessageSchema = z.object({
1986
+ type: z.literal("agent_stream"),
1987
+ payload: z.object({
1988
+ agentId: z.string(),
1989
+ event: AgentStreamEventPayloadSchema,
1990
+ timestamp: z.string(),
1991
+ // Present for timeline events. Maps 1:1 to canonical in-memory timeline rows.
1992
+ seq: z.number().int().nonnegative().optional(),
1993
+ epoch: z.string().optional(),
1994
+ }),
1995
+ });
1996
+ export const AgentStatusMessageSchema = z.object({
1997
+ type: z.literal("agent_status"),
1998
+ payload: z.object({
1999
+ agentId: z.string(),
2000
+ status: z.string(),
2001
+ info: AgentSnapshotPayloadSchema,
2002
+ }),
2003
+ });
2004
+ export const AgentListMessageSchema = z.object({
2005
+ type: z.literal("agent_list"),
2006
+ payload: z.object({
2007
+ agents: z.array(AgentSnapshotPayloadSchema),
2008
+ }),
2009
+ });
2010
+ const AgentDirectoryResponseEntrySchema = z.object({
2011
+ agent: AgentSnapshotPayloadSchema,
2012
+ project: ProjectPlacementPayloadSchema,
2013
+ });
2014
+ const AgentDirectoryPageInfoSchema = z.object({
2015
+ nextCursor: z.string().nullable(),
2016
+ prevCursor: z.string().nullable(),
2017
+ hasMore: z.boolean(),
2018
+ });
2019
+ export const FetchAgentsResponseMessageSchema = z.object({
2020
+ type: z.literal("fetch_agents_response"),
2021
+ payload: z.object({
2022
+ requestId: z.string(),
2023
+ subscriptionId: z.string().nullable().optional(),
2024
+ entries: z.array(AgentDirectoryResponseEntrySchema),
2025
+ pageInfo: AgentDirectoryPageInfoSchema,
2026
+ }),
2027
+ });
2028
+ export const FetchAgentHistoryResponseMessageSchema = z.object({
2029
+ type: z.literal("fetch_agent_history_response"),
2030
+ payload: z.object({
2031
+ requestId: z.string(),
2032
+ entries: z.array(AgentDirectoryResponseEntrySchema),
2033
+ pageInfo: AgentDirectoryPageInfoSchema,
2034
+ }),
2035
+ });
2036
+ export const FetchRecentProviderSessionsResponseMessageSchema = z.object({
2037
+ type: z.literal("fetch_recent_provider_sessions_response"),
2038
+ payload: z.object({
2039
+ requestId: z.string(),
2040
+ entries: z.array(RecentProviderSessionDescriptorPayloadSchema),
2041
+ filteredAlreadyImportedCount: z.number().int().nonnegative().optional(),
2042
+ }),
2043
+ });
2044
+ export const FetchWorkspacesResponseMessageSchema = z.object({
2045
+ type: z.literal("fetch_workspaces_response"),
2046
+ payload: z.object({
2047
+ requestId: z.string(),
2048
+ subscriptionId: z.string().nullable().optional(),
2049
+ entries: z.array(WorkspaceDescriptorPayloadSchema),
2050
+ pageInfo: z.object({
2051
+ nextCursor: z.string().nullable(),
2052
+ prevCursor: z.string().nullable(),
2053
+ hasMore: z.boolean(),
2054
+ }),
2055
+ }),
2056
+ });
2057
+ export const WorkspaceUpdateMessageSchema = z.object({
2058
+ type: z.literal("workspace_update"),
2059
+ payload: z.discriminatedUnion("kind", [
2060
+ z.object({
2061
+ kind: z.literal("upsert"),
2062
+ workspace: WorkspaceDescriptorPayloadSchema,
2063
+ }),
2064
+ z.object({
2065
+ kind: z.literal("remove"),
2066
+ id: z.string(),
2067
+ }),
2068
+ ]),
2069
+ });
2070
+ export const ScriptStatusUpdateMessageSchema = z.object({
2071
+ type: z.literal("script_status_update"),
2072
+ payload: z.object({
2073
+ workspaceId: z.string(),
2074
+ scripts: z.array(WorkspaceScriptPayloadSchema),
2075
+ }),
2076
+ });
2077
+ export const WorkspaceSetupProgressMessageSchema = z.object({
2078
+ type: z.literal("workspace_setup_progress"),
2079
+ payload: z.object({
2080
+ workspaceId: z.string(),
2081
+ status: z.enum(["running", "completed", "failed"]),
2082
+ detail: WorktreeSetupDetailPayloadSchema,
2083
+ error: z.string().nullable(),
2084
+ }),
2085
+ });
2086
+ export const WorkspaceSetupSnapshotSchema = z.object({
2087
+ status: z.enum(["running", "completed", "failed"]),
2088
+ detail: WorktreeSetupDetailPayloadSchema,
2089
+ error: z.string().nullable(),
2090
+ });
2091
+ export const WorkspaceSetupStatusResponseMessageSchema = z.object({
2092
+ type: z.literal("workspace_setup_status_response"),
2093
+ payload: z.object({
2094
+ requestId: z.string(),
2095
+ workspaceId: z.string(),
2096
+ snapshot: WorkspaceSetupSnapshotSchema.nullable(),
2097
+ }),
2098
+ });
2099
+ export const OpenProjectResponseMessageSchema = z.object({
2100
+ type: z.literal("open_project_response"),
2101
+ payload: z.object({
2102
+ requestId: z.string(),
2103
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2104
+ error: z.string().nullable(),
2105
+ }),
2106
+ });
2107
+ export const StartWorkspaceScriptResponseMessageSchema = z.object({
2108
+ type: z.literal("start_workspace_script_response"),
2109
+ payload: z.object({
2110
+ requestId: z.string(),
2111
+ workspaceId: z.string(),
2112
+ scriptName: z.string(),
2113
+ terminalId: z.string().nullable(),
2114
+ error: z.string().nullable(),
2115
+ }),
2116
+ });
2117
+ export const ListAvailableEditorsResponseMessageSchema = z.object({
2118
+ type: z.literal("list_available_editors_response"),
2119
+ payload: z.object({
2120
+ requestId: z.string(),
2121
+ editors: z.array(EditorTargetDescriptorPayloadSchema),
2122
+ error: z.string().nullable(),
2123
+ }),
2124
+ });
2125
+ export const OpenInEditorResponseMessageSchema = z.object({
2126
+ type: z.literal("open_in_editor_response"),
2127
+ payload: z.object({
2128
+ requestId: z.string(),
2129
+ error: z.string().nullable(),
2130
+ }),
2131
+ });
2132
+ export const ArchiveWorkspaceResponseMessageSchema = z.object({
2133
+ type: z.literal("archive_workspace_response"),
2134
+ payload: z.object({
2135
+ requestId: z.string(),
2136
+ workspaceId: z.string(),
2137
+ archivedAt: z.string().nullable(),
2138
+ error: z.string().nullable(),
2139
+ }),
2140
+ });
2141
+ export const FetchAgentResponseMessageSchema = z.object({
2142
+ type: z.literal("fetch_agent_response"),
2143
+ payload: z.object({
2144
+ requestId: z.string(),
2145
+ agent: AgentSnapshotPayloadSchema.nullable(),
2146
+ project: ProjectPlacementPayloadSchema.nullable().optional(),
2147
+ error: z.string().nullable(),
2148
+ }),
2149
+ });
2150
+ const AgentTimelineSeqRangeSchema = z.object({
2151
+ startSeq: z.number().int().nonnegative(),
2152
+ endSeq: z.number().int().nonnegative(),
2153
+ });
2154
+ export const AgentTimelineEntryPayloadSchema = z.object({
2155
+ provider: AgentProviderSchema,
2156
+ item: AgentTimelineItemPayloadSchema,
2157
+ timestamp: z.string(),
2158
+ seqStart: z.number().int().nonnegative(),
2159
+ seqEnd: z.number().int().nonnegative(),
2160
+ sourceSeqRanges: z.array(AgentTimelineSeqRangeSchema),
2161
+ collapsed: z.array(z.enum(["assistant_merge", "reasoning_merge", "tool_lifecycle"])),
2162
+ });
2163
+ export const FetchAgentTimelineResponseMessageSchema = z.object({
2164
+ type: z.literal("fetch_agent_timeline_response"),
2165
+ payload: z.object({
2166
+ requestId: z.string(),
2167
+ agentId: z.string(),
2168
+ agent: AgentSnapshotPayloadSchema.nullable(),
2169
+ direction: z.enum(["tail", "before", "after"]),
2170
+ projection: z.enum(["projected", "canonical"]),
2171
+ epoch: z.string(),
2172
+ reset: z.boolean(),
2173
+ staleCursor: z.boolean(),
2174
+ gap: z.boolean(),
2175
+ window: z.object({
2176
+ minSeq: z.number().int().nonnegative(),
2177
+ maxSeq: z.number().int().nonnegative(),
2178
+ nextSeq: z.number().int().nonnegative(),
2179
+ }),
2180
+ startCursor: AgentTimelineCursorSchema.nullable(),
2181
+ endCursor: AgentTimelineCursorSchema.nullable(),
2182
+ hasOlder: z.boolean(),
2183
+ hasNewer: z.boolean(),
2184
+ entries: z.array(AgentTimelineEntryPayloadSchema),
2185
+ error: z.string().nullable(),
2186
+ }),
2187
+ });
2188
+ export const CancelAgentResponseMessageSchema = z.object({
2189
+ type: z.literal("cancel_agent_response"),
2190
+ payload: z.object({
2191
+ requestId: z.string(),
2192
+ agentId: z.string(),
2193
+ agent: AgentSnapshotPayloadSchema.nullable(),
2194
+ }),
2195
+ });
2196
+ export const ClearAgentAttentionResponseMessageSchema = z.object({
2197
+ type: z.literal("clear_agent_attention_response"),
2198
+ payload: z.object({
2199
+ requestId: z.string(),
2200
+ agentId: z.string().or(z.array(z.string())),
2201
+ agents: z.array(AgentSnapshotPayloadSchema),
2202
+ }),
2203
+ });
2204
+ export const SendAgentMessageResponseMessageSchema = z.object({
2205
+ type: z.literal("send_agent_message_response"),
2206
+ payload: z.object({
2207
+ requestId: z.string(),
2208
+ agentId: z.string(),
2209
+ accepted: z.boolean(),
2210
+ error: z.string().nullable(),
2211
+ }),
2212
+ });
2213
+ export const WaitForFinishResponseMessageSchema = z.object({
2214
+ type: z.literal("wait_for_finish_response"),
2215
+ payload: z.object({
2216
+ requestId: z.string(),
2217
+ status: z.enum(["idle", "error", "permission", "timeout"]),
2218
+ final: AgentSnapshotPayloadSchema.nullable(),
2219
+ error: z.string().nullable(),
2220
+ lastMessage: z.string().nullable(),
2221
+ }),
2222
+ });
2223
+ export const GetDaemonConfigResponseMessageSchema = z.object({
2224
+ type: z.literal("get_daemon_config_response"),
2225
+ payload: z
2226
+ .object({
2227
+ requestId: z.string(),
2228
+ config: MutableDaemonConfigSchema,
2229
+ })
2230
+ .passthrough(),
2231
+ });
2232
+ export const DaemonGetStatusResponseSchema = z.object({
2233
+ type: z.literal("daemon.get_status.response"),
2234
+ payload: z
2235
+ .object({
2236
+ requestId: z.string(),
2237
+ serverId: z.string(),
2238
+ version: z.string().nullable().optional(),
2239
+ pid: z.number(),
2240
+ nodePath: z.string(),
2241
+ startedAt: z.string().nullable().optional(),
2242
+ listen: z.string().nullable(),
2243
+ relay: z
2244
+ .object({
2245
+ enabled: z.boolean(),
2246
+ endpoint: z.string(),
2247
+ publicEndpoint: z.string(),
2248
+ useTls: z.boolean(),
2249
+ publicUseTls: z.boolean(),
2250
+ })
2251
+ .nullable()
2252
+ .optional(),
2253
+ providers: z.array(z.object({
2254
+ provider: z.string(),
2255
+ available: z.boolean(),
2256
+ error: z.string().nullable().optional(),
2257
+ })),
2258
+ })
2259
+ .passthrough(),
2260
+ });
2261
+ export const DaemonGetPairingOfferResponseSchema = z.object({
2262
+ type: z.literal("daemon.get_pairing_offer.response"),
2263
+ payload: z
2264
+ .object({
2265
+ requestId: z.string(),
2266
+ url: z.string(),
2267
+ qr: z.string().nullable().optional(),
2268
+ relayEnabled: z.boolean(),
2269
+ })
2270
+ .passthrough(),
2271
+ });
2272
+ export const SetDaemonConfigResponseMessageSchema = z.object({
2273
+ type: z.literal("set_daemon_config_response"),
2274
+ payload: z
2275
+ .object({
2276
+ requestId: z.string(),
2277
+ config: MutableDaemonConfigSchema,
2278
+ })
2279
+ .passthrough(),
2280
+ });
2281
+ export const ReadProjectConfigResponseMessageSchema = z.object({
2282
+ type: z.literal("read_project_config_response"),
2283
+ payload: z.discriminatedUnion("ok", [
2284
+ z.object({
2285
+ requestId: z.string(),
2286
+ repoRoot: z.string(),
2287
+ ok: z.literal(true),
2288
+ config: PaseoConfigRawSchema.nullable(),
2289
+ revision: PaseoConfigRevisionSchema.nullable(),
2290
+ }),
2291
+ z.object({
2292
+ requestId: z.string(),
2293
+ repoRoot: z.string(),
2294
+ ok: z.literal(false),
2295
+ error: ProjectConfigRpcErrorSchema,
2296
+ }),
2297
+ ]),
2298
+ });
2299
+ export const WriteProjectConfigResponseMessageSchema = z.object({
2300
+ type: z.literal("write_project_config_response"),
2301
+ payload: z.discriminatedUnion("ok", [
2302
+ z.object({
2303
+ requestId: z.string(),
2304
+ repoRoot: z.string(),
2305
+ ok: z.literal(true),
2306
+ config: PaseoConfigRawSchema,
2307
+ revision: PaseoConfigRevisionSchema,
2308
+ }),
2309
+ z.object({
2310
+ requestId: z.string(),
2311
+ repoRoot: z.string(),
2312
+ ok: z.literal(false),
2313
+ error: ProjectConfigRpcErrorSchema,
2314
+ }),
2315
+ ]),
2316
+ });
2317
+ export const AgentPermissionRequestMessageSchema = z.object({
2318
+ type: z.literal("agent_permission_request"),
2319
+ payload: z.object({
2320
+ agentId: z.string(),
2321
+ request: AgentPermissionRequestPayloadSchema,
2322
+ }),
2323
+ });
2324
+ export const AgentPermissionResolvedMessageSchema = z.object({
2325
+ type: z.literal("agent_permission_resolved"),
2326
+ payload: z.object({
2327
+ agentId: z.string(),
2328
+ requestId: z.string(),
2329
+ resolution: AgentPermissionResponseSchema,
2330
+ }),
2331
+ });
2332
+ export const AgentDeletedMessageSchema = z.object({
2333
+ type: z.literal("agent_deleted"),
2334
+ payload: z.object({
2335
+ agentId: z.string(),
2336
+ requestId: z.string(),
2337
+ }),
2338
+ });
2339
+ export const AgentArchivedMessageSchema = z.object({
2340
+ type: z.literal("agent_archived"),
2341
+ payload: z.object({
2342
+ agentId: z.string(),
2343
+ archivedAt: z.string(),
2344
+ requestId: z.string(),
2345
+ }),
2346
+ });
2347
+ const CloseItemsAgentResultSchema = z.object({
2348
+ agentId: z.string(),
2349
+ archivedAt: z.string(),
2350
+ });
2351
+ const CloseItemsTerminalResultSchema = z.object({
2352
+ terminalId: z.string(),
2353
+ success: z.boolean(),
2354
+ });
2355
+ export const CloseItemsResponseSchema = z.object({
2356
+ type: z.literal("close_items_response"),
2357
+ payload: z.object({
2358
+ agents: z.array(CloseItemsAgentResultSchema),
2359
+ terminals: z.array(CloseItemsTerminalResultSchema),
2360
+ requestId: z.string(),
2361
+ }),
2362
+ });
2363
+ const AheadBehindSchema = z.object({
2364
+ ahead: z.number(),
2365
+ behind: z.number(),
2366
+ });
2367
+ const CheckoutStatusCommonSchema = z.object({
2368
+ cwd: z.string(),
2369
+ error: CheckoutErrorSchema.nullable(),
2370
+ requestId: z.string(),
2371
+ });
2372
+ const CheckoutStatusNotGitSchema = CheckoutStatusCommonSchema.extend({
2373
+ isGit: z.literal(false),
2374
+ isPaseoOwnedWorktree: z.literal(false),
2375
+ repoRoot: z.null(),
2376
+ currentBranch: z.null(),
2377
+ isDirty: z.null(),
2378
+ baseRef: z.null(),
2379
+ aheadBehind: z.null(),
2380
+ aheadOfOrigin: z.null(),
2381
+ behindOfOrigin: z.null(),
2382
+ hasRemote: z.boolean(),
2383
+ remoteUrl: z.null(),
2384
+ });
2385
+ const CheckoutStatusGitNonPaseoSchema = CheckoutStatusCommonSchema.extend({
2386
+ isGit: z.literal(true),
2387
+ isPaseoOwnedWorktree: z.literal(false),
2388
+ repoRoot: z.string(),
2389
+ mainRepoRoot: z.string().nullable().optional().default(null),
2390
+ currentBranch: z.string().nullable(),
2391
+ isDirty: z.boolean(),
2392
+ baseRef: z.string().nullable(),
2393
+ aheadBehind: AheadBehindSchema.nullable(),
2394
+ aheadOfOrigin: z.number().nullable(),
2395
+ behindOfOrigin: z.number().nullable(),
2396
+ hasRemote: z.boolean(),
2397
+ remoteUrl: z.string().nullable(),
2398
+ });
2399
+ const CheckoutStatusGitPaseoSchema = CheckoutStatusCommonSchema.extend({
2400
+ isGit: z.literal(true),
2401
+ isPaseoOwnedWorktree: z.literal(true),
2402
+ repoRoot: z.string(),
2403
+ mainRepoRoot: z.string(),
2404
+ currentBranch: z.string().nullable(),
2405
+ isDirty: z.boolean(),
2406
+ baseRef: z.string(),
2407
+ aheadBehind: AheadBehindSchema.nullable(),
2408
+ aheadOfOrigin: z.number().nullable(),
2409
+ behindOfOrigin: z.number().nullable(),
2410
+ hasRemote: z.boolean(),
2411
+ remoteUrl: z.string().nullable(),
2412
+ });
2413
+ export const CheckoutStatusResponseSchema = z.object({
2414
+ type: z.literal("checkout_status_response"),
2415
+ payload: z.union([
2416
+ CheckoutStatusNotGitSchema,
2417
+ CheckoutStatusGitNonPaseoSchema,
2418
+ CheckoutStatusGitPaseoSchema,
2419
+ ]),
2420
+ });
2421
+ const CheckoutPrGithubAutoMergeRequestSchema = z
2422
+ .object({
2423
+ enabledAt: z.string().nullable().optional().default(null),
2424
+ mergeMethod: z.string().nullable().optional().default(null),
2425
+ enabledBy: z.string().nullable().optional().default(null),
2426
+ })
2427
+ .nullable()
2428
+ .optional()
2429
+ .default(null);
2430
+ const CheckoutPrGithubRepositoryPolicySchema = z
2431
+ .object({
2432
+ autoMergeAllowed: z.boolean().optional().default(false),
2433
+ mergeCommitAllowed: z.boolean().optional().default(false),
2434
+ squashMergeAllowed: z.boolean().optional().default(false),
2435
+ rebaseMergeAllowed: z.boolean().optional().default(false),
2436
+ viewerDefaultMergeMethod: z.string().nullable().optional().default(null),
2437
+ })
2438
+ .optional()
2439
+ .default({
2440
+ autoMergeAllowed: false,
2441
+ mergeCommitAllowed: false,
2442
+ squashMergeAllowed: false,
2443
+ rebaseMergeAllowed: false,
2444
+ viewerDefaultMergeMethod: null,
2445
+ });
2446
+ const CheckoutPrGithubStatusSchema = z
2447
+ .object({
2448
+ mergeStateStatus: z.string().nullable().optional().default(null),
2449
+ autoMergeRequest: CheckoutPrGithubAutoMergeRequestSchema,
2450
+ viewerCanEnableAutoMerge: z.boolean().optional().default(false),
2451
+ viewerCanDisableAutoMerge: z.boolean().optional().default(false),
2452
+ viewerCanMergeAsAdmin: z.boolean().optional().default(false),
2453
+ viewerCanUpdateBranch: z.boolean().optional().default(false),
2454
+ repository: CheckoutPrGithubRepositoryPolicySchema,
2455
+ isMergeQueueEnabled: z.boolean().optional().default(false),
2456
+ isInMergeQueue: z.boolean().optional().default(false),
2457
+ })
2458
+ .optional();
2459
+ export const CheckoutPrStatusSchema = z.object({
2460
+ number: z.number().optional(),
2461
+ url: z.string(),
2462
+ title: z.string(),
2463
+ state: z.string(),
2464
+ baseRefName: z.string(),
2465
+ headRefName: z.string(),
2466
+ isMerged: z.boolean(),
2467
+ isDraft: z.boolean().optional().default(false),
2468
+ mergeable: z
2469
+ .enum(["MERGEABLE", "CONFLICTING", "UNKNOWN"])
2470
+ .catch("UNKNOWN")
2471
+ .optional()
2472
+ .default("UNKNOWN"),
2473
+ checks: z
2474
+ .array(z.object({
2475
+ name: z.string(),
2476
+ status: z.string(),
2477
+ url: z.string().nullable(),
2478
+ workflow: z.string().optional(),
2479
+ duration: z.string().optional(),
2480
+ }))
2481
+ .optional()
2482
+ .default([]),
2483
+ checksStatus: z.string().optional(),
2484
+ reviewDecision: z.string().nullable().optional(),
2485
+ repoOwner: z.string().optional(),
2486
+ repoName: z.string().optional(),
2487
+ github: CheckoutPrGithubStatusSchema,
2488
+ });
2489
+ const CheckoutPrStatusPayloadSchema = z.object({
2490
+ cwd: z.string(),
2491
+ status: CheckoutPrStatusSchema.nullable(),
2492
+ githubFeaturesEnabled: z.boolean(),
2493
+ error: CheckoutErrorSchema.nullable(),
2494
+ requestId: z.string(),
2495
+ });
2496
+ const CheckoutStatusUpdateMetadataSchema = z.object({
2497
+ prStatus: CheckoutPrStatusPayloadSchema.optional(),
2498
+ });
2499
+ export const CheckoutStatusUpdateSchema = z.object({
2500
+ type: z.literal("checkout_status_update"),
2501
+ payload: z
2502
+ .union([
2503
+ CheckoutStatusNotGitSchema,
2504
+ CheckoutStatusGitNonPaseoSchema,
2505
+ CheckoutStatusGitPaseoSchema,
2506
+ ])
2507
+ .and(CheckoutStatusUpdateMetadataSchema),
2508
+ });
2509
+ const CheckoutDiffSubscriptionPayloadSchema = z.object({
2510
+ subscriptionId: z.string(),
2511
+ cwd: z.string(),
2512
+ files: z.array(ParsedDiffFileSchema),
2513
+ error: CheckoutErrorSchema.nullable(),
2514
+ });
2515
+ export const SubscribeCheckoutDiffResponseSchema = z.object({
2516
+ type: z.literal("subscribe_checkout_diff_response"),
2517
+ payload: CheckoutDiffSubscriptionPayloadSchema.extend({
2518
+ requestId: z.string(),
2519
+ }),
2520
+ });
2521
+ export const CheckoutDiffUpdateSchema = z.object({
2522
+ type: z.literal("checkout_diff_update"),
2523
+ payload: CheckoutDiffSubscriptionPayloadSchema,
2524
+ });
2525
+ export const CheckoutCommitResponseSchema = z.object({
2526
+ type: z.literal("checkout_commit_response"),
2527
+ payload: z.object({
2528
+ cwd: z.string(),
2529
+ success: z.boolean(),
2530
+ error: CheckoutErrorSchema.nullable(),
2531
+ requestId: z.string(),
2532
+ }),
2533
+ });
2534
+ export const CheckoutMergeResponseSchema = z.object({
2535
+ type: z.literal("checkout_merge_response"),
2536
+ payload: z.object({
2537
+ cwd: z.string(),
2538
+ success: z.boolean(),
2539
+ error: CheckoutErrorSchema.nullable(),
2540
+ requestId: z.string(),
2541
+ }),
2542
+ });
2543
+ export const CheckoutMergeFromBaseResponseSchema = z.object({
2544
+ type: z.literal("checkout_merge_from_base_response"),
2545
+ payload: z.object({
2546
+ cwd: z.string(),
2547
+ success: z.boolean(),
2548
+ error: CheckoutErrorSchema.nullable(),
2549
+ requestId: z.string(),
2550
+ }),
2551
+ });
2552
+ export const CheckoutPullResponseSchema = z.object({
2553
+ type: z.literal("checkout_pull_response"),
2554
+ payload: z.object({
2555
+ cwd: z.string(),
2556
+ success: z.boolean(),
2557
+ error: CheckoutErrorSchema.nullable(),
2558
+ requestId: z.string(),
2559
+ }),
2560
+ });
2561
+ export const CheckoutPushResponseSchema = z.object({
2562
+ type: z.literal("checkout_push_response"),
2563
+ payload: z.object({
2564
+ cwd: z.string(),
2565
+ success: z.boolean(),
2566
+ error: CheckoutErrorSchema.nullable(),
2567
+ requestId: z.string(),
2568
+ }),
2569
+ });
2570
+ export const CheckoutPrCreateResponseSchema = z.object({
2571
+ type: z.literal("checkout_pr_create_response"),
2572
+ payload: z.object({
2573
+ cwd: z.string(),
2574
+ url: z.string().nullable(),
2575
+ number: z.number().nullable(),
2576
+ error: CheckoutErrorSchema.nullable(),
2577
+ requestId: z.string(),
2578
+ }),
2579
+ });
2580
+ export const CheckoutPrMergeResponseSchema = z.object({
2581
+ type: z.literal("checkout_pr_merge_response"),
2582
+ payload: z.object({
2583
+ cwd: z.string(),
2584
+ success: z.boolean(),
2585
+ error: CheckoutErrorSchema.nullable(),
2586
+ requestId: z.string(),
2587
+ }),
2588
+ });
2589
+ export const CheckoutGithubSetAutoMergeResponseSchema = z.object({
2590
+ type: z.literal("checkout.github.set_auto_merge.response"),
2591
+ payload: z.object({
2592
+ cwd: z.string(),
2593
+ enabled: z.boolean(),
2594
+ success: z.boolean(),
2595
+ error: CheckoutErrorSchema.nullable(),
2596
+ requestId: z.string(),
2597
+ }),
2598
+ });
2599
+ export const CheckoutPrStatusResponseSchema = z.object({
2600
+ type: z.literal("checkout_pr_status_response"),
2601
+ payload: CheckoutPrStatusPayloadSchema,
2602
+ });
2603
+ const PullRequestTimelineKnownErrorSchema = z.discriminatedUnion("kind", [
2604
+ z.object({
2605
+ kind: z.literal("not_found"),
2606
+ message: z.string().optional().default(""),
2607
+ }),
2608
+ z.object({
2609
+ kind: z.literal("forbidden"),
2610
+ message: z.string().optional().default(""),
2611
+ }),
2612
+ z.object({
2613
+ kind: z.literal("unknown"),
2614
+ message: z.string().optional().default(""),
2615
+ }),
2616
+ ]);
2617
+ const PullRequestTimelineErrorSchema = z.preprocess((value) => {
2618
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
2619
+ return { kind: "unknown", message: "" };
2620
+ }
2621
+ const error = value;
2622
+ if (error.kind === "not_found" || error.kind === "forbidden" || error.kind === "unknown") {
2623
+ return error;
2624
+ }
2625
+ return { ...error, kind: "unknown" };
2626
+ }, PullRequestTimelineKnownErrorSchema);
2627
+ const PullRequestTimelineReviewItemSchema = z.object({
2628
+ id: z.string().optional().default(""),
2629
+ kind: z.literal("review"),
2630
+ author: z.string().optional().default("unknown"),
2631
+ body: z.string().optional().default(""),
2632
+ createdAt: z.number().optional().default(0),
2633
+ url: z.string().optional().default(""),
2634
+ reviewState: z
2635
+ .enum(["approved", "changes_requested", "commented"])
2636
+ .optional()
2637
+ .default("commented"),
2638
+ });
2639
+ const PullRequestTimelineCommentItemSchema = z.object({
2640
+ id: z.string().optional().default(""),
2641
+ kind: z.literal("comment"),
2642
+ author: z.string().optional().default("unknown"),
2643
+ body: z.string().optional().default(""),
2644
+ createdAt: z.number().optional().default(0),
2645
+ url: z.string().optional().default(""),
2646
+ });
2647
+ export const PullRequestTimelineItemSchema = z.preprocess((value) => {
2648
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
2649
+ return value;
2650
+ }
2651
+ const item = value;
2652
+ if (item.kind === "review" || item.kind === "comment") {
2653
+ return item;
2654
+ }
2655
+ return { ...item, kind: "comment" };
2656
+ }, z.discriminatedUnion("kind", [
2657
+ PullRequestTimelineReviewItemSchema,
2658
+ PullRequestTimelineCommentItemSchema,
2659
+ ]));
2660
+ export const PullRequestTimelineResponseSchema = z.object({
2661
+ type: z.literal("pull_request_timeline_response"),
2662
+ payload: z
2663
+ .object({
2664
+ cwd: z.string().optional().default(""),
2665
+ prNumber: z.number().nullable().optional().default(null),
2666
+ items: z.array(PullRequestTimelineItemSchema).optional().default([]),
2667
+ truncated: z.boolean().optional().default(false),
2668
+ error: PullRequestTimelineErrorSchema.nullable().optional().default(null),
2669
+ requestId: z.string().optional().default(""),
2670
+ githubFeaturesEnabled: z.boolean().optional().default(true),
2671
+ })
2672
+ .optional()
2673
+ .default({}),
2674
+ });
2675
+ export const CheckoutSwitchBranchResponseSchema = z.object({
2676
+ type: z.literal("checkout_switch_branch_response"),
2677
+ payload: z.object({
2678
+ cwd: z.string(),
2679
+ success: z.boolean(),
2680
+ branch: z.string(),
2681
+ source: z.enum(["local", "remote"]).optional(),
2682
+ error: CheckoutErrorSchema.nullable(),
2683
+ requestId: z.string(),
2684
+ }),
2685
+ });
2686
+ export const CheckoutRenameBranchResponseSchema = z.object({
2687
+ type: z.literal("checkout.rename_branch.response"),
2688
+ payload: z.object({
2689
+ requestId: z.string(),
2690
+ success: z.boolean(),
2691
+ cwd: z.string(),
2692
+ currentBranch: z.string().nullable(),
2693
+ error: CheckoutErrorSchema.nullable(),
2694
+ }),
2695
+ });
2696
+ const StashEntrySchema = z.object({
2697
+ index: z.number().int().min(0),
2698
+ message: z.string(),
2699
+ branch: z.string().nullable(),
2700
+ isPaseo: z.boolean(),
2701
+ });
2702
+ export const StashSaveResponseSchema = z.object({
2703
+ type: z.literal("stash_save_response"),
2704
+ payload: z.object({
2705
+ cwd: z.string(),
2706
+ success: z.boolean(),
2707
+ error: CheckoutErrorSchema.nullable(),
2708
+ requestId: z.string(),
2709
+ }),
2710
+ });
2711
+ export const StashPopResponseSchema = z.object({
2712
+ type: z.literal("stash_pop_response"),
2713
+ payload: z.object({
2714
+ cwd: z.string(),
2715
+ success: z.boolean(),
2716
+ error: CheckoutErrorSchema.nullable(),
2717
+ requestId: z.string(),
2718
+ }),
2719
+ });
2720
+ export const StashListResponseSchema = z.object({
2721
+ type: z.literal("stash_list_response"),
2722
+ payload: z.object({
2723
+ cwd: z.string(),
2724
+ entries: z.array(StashEntrySchema),
2725
+ error: CheckoutErrorSchema.nullable(),
2726
+ requestId: z.string(),
2727
+ }),
2728
+ });
2729
+ export const ValidateBranchResponseSchema = z.object({
2730
+ type: z.literal("validate_branch_response"),
2731
+ payload: z.object({
2732
+ exists: z.boolean(),
2733
+ resolvedRef: z.string().nullable(),
2734
+ isRemote: z.boolean(),
2735
+ error: z.string().nullable(),
2736
+ requestId: z.string(),
2737
+ }),
2738
+ });
2739
+ export const BranchSuggestionsResponseSchema = z.object({
2740
+ type: z.literal("branch_suggestions_response"),
2741
+ payload: z.object({
2742
+ branches: z.array(z.string()),
2743
+ branchDetails: z
2744
+ .array(z.object({
2745
+ name: z.string(),
2746
+ committerDate: z.number(),
2747
+ hasLocal: z.boolean().optional(),
2748
+ hasRemote: z.boolean().optional(),
2749
+ }))
2750
+ .optional(),
2751
+ error: z.string().nullable(),
2752
+ requestId: z.string(),
2753
+ }),
2754
+ });
2755
+ export const GitHubSearchResponseSchema = z.object({
2756
+ type: z.literal("github_search_response"),
2757
+ payload: z.object({
2758
+ items: z.array(GitHubSearchItemSchema),
2759
+ githubFeaturesEnabled: z.boolean(),
2760
+ error: z.string().nullable(),
2761
+ requestId: z.string(),
2762
+ }),
2763
+ });
2764
+ export const DirectorySuggestionsResponseSchema = z.object({
2765
+ type: z.literal("directory_suggestions_response"),
2766
+ payload: z.object({
2767
+ directories: z.array(z.string()),
2768
+ entries: z
2769
+ .array(z.object({
2770
+ path: z.string(),
2771
+ kind: z.enum(["file", "directory"]),
2772
+ }))
2773
+ .optional()
2774
+ .default([]),
2775
+ error: z.string().nullable(),
2776
+ requestId: z.string(),
2777
+ }),
2778
+ });
2779
+ const PaseoWorktreeSchema = z.object({
2780
+ worktreePath: z.string(),
2781
+ createdAt: z.string(),
2782
+ branchName: z.string().nullable().optional(),
2783
+ head: z.string().nullable().optional(),
2784
+ });
2785
+ export const PaseoWorktreeListResponseSchema = z.object({
2786
+ type: z.literal("paseo_worktree_list_response"),
2787
+ payload: z.object({
2788
+ worktrees: z.array(PaseoWorktreeSchema),
2789
+ error: CheckoutErrorSchema.nullable(),
2790
+ requestId: z.string(),
2791
+ }),
2792
+ });
2793
+ export const PaseoWorktreeArchiveResponseSchema = z.object({
2794
+ type: z.literal("paseo_worktree_archive_response"),
2795
+ payload: z.object({
2796
+ success: z.boolean(),
2797
+ removedAgents: z.array(z.string()).optional(),
2798
+ error: CheckoutErrorSchema.nullable(),
2799
+ requestId: z.string(),
2800
+ }),
2801
+ });
2802
+ export const CreatePaseoWorktreeResponseSchema = z.object({
2803
+ type: z.literal("create_paseo_worktree_response"),
2804
+ payload: z.object({
2805
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2806
+ error: z.string().nullable(),
2807
+ errorCode: z.string().optional(),
2808
+ setupTerminalId: z.string().nullable(),
2809
+ requestId: z.string(),
2810
+ }),
2811
+ });
2812
+ export const FileExplorerResponseSchema = z.object({
2813
+ type: z.literal("file_explorer_response"),
2814
+ payload: z.object({
2815
+ cwd: z.string(),
2816
+ path: z.string(),
2817
+ mode: z.enum(["list", "file"]),
2818
+ directory: FileExplorerDirectorySchema.nullable(),
2819
+ file: FileExplorerFileSchema.nullable(),
2820
+ error: z.string().nullable(),
2821
+ requestId: z.string(),
2822
+ }),
2823
+ });
2824
+ const ProjectIconSchema = z.object({
2825
+ data: z.string(),
2826
+ mimeType: z.string(),
2827
+ });
2828
+ export const ProjectIconResponseSchema = z.object({
2829
+ type: z.literal("project_icon_response"),
2830
+ payload: z.object({
2831
+ cwd: z.string(),
2832
+ icon: ProjectIconSchema.nullable(),
2833
+ error: z.string().nullable(),
2834
+ requestId: z.string(),
2835
+ }),
2836
+ });
2837
+ export const FileDownloadTokenResponseSchema = z.object({
2838
+ type: z.literal("file_download_token_response"),
2839
+ payload: z.object({
2840
+ cwd: z.string(),
2841
+ path: z.string(),
2842
+ token: z.string().nullable(),
2843
+ fileName: z.string().nullable(),
2844
+ mimeType: z.string().nullable(),
2845
+ size: z.number().nullable(),
2846
+ error: z.string().nullable(),
2847
+ requestId: z.string(),
2848
+ }),
2849
+ });
2850
+ export const ListProviderModelsResponseMessageSchema = z.object({
2851
+ type: z.literal("list_provider_models_response"),
2852
+ payload: z.object({
2853
+ provider: AgentProviderSchema,
2854
+ models: z.array(AgentModelDefinitionSchema).optional(),
2855
+ error: z.string().nullable().optional(),
2856
+ fetchedAt: z.string(),
2857
+ requestId: z.string(),
2858
+ }),
2859
+ });
2860
+ export const ListProviderModesResponseMessageSchema = z.object({
2861
+ type: z.literal("list_provider_modes_response"),
2862
+ payload: z.object({
2863
+ provider: AgentProviderSchema,
2864
+ modes: z.array(AgentModeSchema).optional(),
2865
+ error: z.string().nullable().optional(),
2866
+ fetchedAt: z.string(),
2867
+ requestId: z.string(),
2868
+ }),
2869
+ });
2870
+ export const ListProviderFeaturesResponseMessageSchema = z.object({
2871
+ type: z.literal("list_provider_features_response"),
2872
+ payload: z.object({
2873
+ provider: AgentProviderSchema,
2874
+ features: z.array(AgentFeatureSchema).optional(),
2875
+ error: z.string().nullable().optional(),
2876
+ fetchedAt: z.string(),
2877
+ requestId: z.string(),
2878
+ }),
2879
+ });
2880
+ const ProviderAvailabilitySchema = z.object({
2881
+ provider: AgentProviderSchema,
2882
+ available: z.boolean(),
2883
+ error: z.string().nullable().optional(),
2884
+ });
2885
+ export const ListAvailableProvidersResponseSchema = z.object({
2886
+ type: z.literal("list_available_providers_response"),
2887
+ payload: z.object({
2888
+ providers: z.array(ProviderAvailabilitySchema),
2889
+ error: z.string().nullable().optional(),
2890
+ fetchedAt: z.string(),
2891
+ requestId: z.string(),
2892
+ }),
2893
+ });
2894
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
2895
+ export const GetProvidersSnapshotResponseMessageSchema = z.object({
2896
+ type: z.literal("get_providers_snapshot_response"),
2897
+ payload: z.object({
2898
+ entries: z.array(ProviderSnapshotEntrySchema),
2899
+ generatedAt: z.string(),
2900
+ requestId: z.string(),
2901
+ }),
2902
+ });
2903
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
2904
+ export const ProvidersSnapshotUpdateMessageSchema = z.object({
2905
+ type: z.literal("providers_snapshot_update"),
2906
+ payload: z.object({
2907
+ cwd: z.string().optional(),
2908
+ entries: z.array(ProviderSnapshotEntrySchema),
2909
+ generatedAt: z.string(),
2910
+ }),
2911
+ });
2912
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
2913
+ export const RefreshProvidersSnapshotResponseMessageSchema = z.object({
2914
+ type: z.literal("refresh_providers_snapshot_response"),
2915
+ payload: z.object({
2916
+ requestId: z.string(),
2917
+ acknowledged: z.boolean(),
2918
+ }),
2919
+ });
2920
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
2921
+ export const ProviderDiagnosticResponseMessageSchema = z.object({
2922
+ type: z.literal("provider_diagnostic_response"),
2923
+ payload: z.object({
2924
+ provider: AgentProviderSchema,
2925
+ diagnostic: z.string(),
2926
+ requestId: z.string(),
2927
+ }),
2928
+ });
2929
+ const AgentSlashCommandSchema = z.object({
2930
+ name: z.string(),
2931
+ description: z.string(),
2932
+ argumentHint: z.string(),
2933
+ });
2934
+ export const ListCommandsResponseSchema = z.object({
2935
+ type: z.literal("list_commands_response"),
2936
+ payload: z.object({
2937
+ agentId: z.string(),
2938
+ commands: z.array(AgentSlashCommandSchema),
2939
+ error: z.string().nullable(),
2940
+ requestId: z.string(),
2941
+ }),
2942
+ });
2943
+ // ============================================================================
2944
+ // Terminal Outbound Messages
2945
+ // ============================================================================
2946
+ const TerminalInfoSchema = z.object({
2947
+ id: z.string(),
2948
+ name: z.string(),
2949
+ cwd: z.string(),
2950
+ title: z.string().optional(),
2951
+ });
2952
+ export const TerminalCellSchema = z
2953
+ .object({
2954
+ char: z.string(),
2955
+ fg: z.number().optional(),
2956
+ bg: z.number().optional(),
2957
+ fgMode: z.number().optional(),
2958
+ bgMode: z.number().optional(),
2959
+ bold: z.boolean().optional(),
2960
+ italic: z.boolean().optional(),
2961
+ underline: z.boolean().optional(),
2962
+ dim: z.boolean().optional(),
2963
+ inverse: z.boolean().optional(),
2964
+ strikethrough: z.boolean().optional(),
2965
+ })
2966
+ .strict();
2967
+ export const TerminalCursorStyleSchema = z.enum(["block", "underline", "bar"]);
2968
+ export const TerminalCursorSchema = z
2969
+ .object({
2970
+ row: z.number(),
2971
+ col: z.number(),
2972
+ hidden: z.boolean().optional(),
2973
+ style: TerminalCursorStyleSchema.optional(),
2974
+ blink: z.boolean().optional(),
2975
+ })
2976
+ .strict();
2977
+ export const TerminalStateSchema = z
2978
+ .object({
2979
+ rows: z.number(),
2980
+ cols: z.number(),
2981
+ grid: z.array(z.array(TerminalCellSchema)),
2982
+ scrollback: z.array(z.array(TerminalCellSchema)),
2983
+ cursor: TerminalCursorSchema,
2984
+ title: z.string().optional(),
2985
+ })
2986
+ .strict();
2987
+ export const ListTerminalsResponseSchema = z.object({
2988
+ type: z.literal("list_terminals_response"),
2989
+ payload: z.object({
2990
+ cwd: z.string().optional(),
2991
+ terminals: z.array(TerminalInfoSchema.omit({ cwd: true })),
2992
+ requestId: z.string(),
2993
+ }),
2994
+ });
2995
+ export const TerminalsChangedSchema = z.object({
2996
+ type: z.literal("terminals_changed"),
2997
+ payload: z.object({
2998
+ cwd: z.string(),
2999
+ terminals: z.array(TerminalInfoSchema.omit({ cwd: true })),
3000
+ }),
3001
+ });
3002
+ export const CreateTerminalResponseSchema = z.object({
3003
+ type: z.literal("create_terminal_response"),
3004
+ payload: z.object({
3005
+ terminal: TerminalInfoSchema.nullable(),
3006
+ error: z.string().nullable(),
3007
+ requestId: z.string(),
3008
+ }),
3009
+ });
3010
+ export const RenameTerminalResponseSchema = z.object({
3011
+ type: z.literal("terminal.rename.response"),
3012
+ payload: z.object({
3013
+ requestId: z.string(),
3014
+ success: z.boolean(),
3015
+ error: z.string().nullable(),
3016
+ }),
3017
+ });
3018
+ export const SubscribeTerminalResponseSchema = z.object({
3019
+ type: z.literal("subscribe_terminal_response"),
3020
+ payload: z.union([
3021
+ z.object({
3022
+ terminalId: z.string(),
3023
+ slot: z.number().int().min(0).max(255),
3024
+ error: z.null(),
3025
+ requestId: z.string(),
3026
+ }),
3027
+ z.object({
3028
+ terminalId: z.string(),
3029
+ error: z.string(),
3030
+ requestId: z.string(),
3031
+ }),
3032
+ ]),
3033
+ });
3034
+ export const KillTerminalResponseSchema = z.object({
3035
+ type: z.literal("kill_terminal_response"),
3036
+ payload: z.object({
3037
+ terminalId: z.string(),
3038
+ success: z.boolean(),
3039
+ requestId: z.string(),
3040
+ }),
3041
+ });
3042
+ export const CaptureTerminalResponseSchema = z.object({
3043
+ type: z.literal("capture_terminal_response"),
3044
+ payload: z.object({
3045
+ terminalId: z.string(),
3046
+ lines: z.array(z.string()),
3047
+ totalLines: z.number().int().nonnegative(),
3048
+ requestId: z.string(),
3049
+ }),
3050
+ });
3051
+ export const TerminalStreamExitSchema = z.object({
3052
+ type: z.literal("terminal_stream_exit"),
3053
+ payload: z.object({
3054
+ terminalId: z.string(),
3055
+ }),
3056
+ });
3057
+ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
3058
+ ActivityLogMessageSchema,
3059
+ AssistantChunkMessageSchema,
3060
+ AudioOutputMessageSchema,
3061
+ TranscriptionResultMessageSchema,
3062
+ VoiceInputStateMessageSchema,
3063
+ DictationStreamAckMessageSchema,
3064
+ DictationStreamFinishAcceptedMessageSchema,
3065
+ DictationStreamPartialMessageSchema,
3066
+ DictationStreamFinalMessageSchema,
3067
+ DictationStreamErrorMessageSchema,
3068
+ StatusMessageSchema,
3069
+ PongMessageSchema,
3070
+ RpcErrorMessageSchema,
3071
+ ArtifactMessageSchema,
3072
+ AgentUpdateMessageSchema,
3073
+ WorkspaceUpdateMessageSchema,
3074
+ ScriptStatusUpdateMessageSchema,
3075
+ WorkspaceSetupProgressMessageSchema,
3076
+ WorkspaceSetupStatusResponseMessageSchema,
3077
+ AgentStreamMessageSchema,
3078
+ AgentStatusMessageSchema,
3079
+ FetchAgentsResponseMessageSchema,
3080
+ FetchAgentHistoryResponseMessageSchema,
3081
+ FetchRecentProviderSessionsResponseMessageSchema,
3082
+ FetchWorkspacesResponseMessageSchema,
3083
+ OpenProjectResponseMessageSchema,
3084
+ StartWorkspaceScriptResponseMessageSchema,
3085
+ ListAvailableEditorsResponseMessageSchema,
3086
+ OpenInEditorResponseMessageSchema,
3087
+ ArchiveWorkspaceResponseMessageSchema,
3088
+ FetchAgentResponseMessageSchema,
3089
+ FetchAgentTimelineResponseMessageSchema,
3090
+ CancelAgentResponseMessageSchema,
3091
+ ClearAgentAttentionResponseMessageSchema,
3092
+ SendAgentMessageResponseMessageSchema,
3093
+ SetVoiceModeResponseMessageSchema,
3094
+ DaemonGetStatusResponseSchema,
3095
+ DaemonGetPairingOfferResponseSchema,
3096
+ GetDaemonConfigResponseMessageSchema,
3097
+ SetDaemonConfigResponseMessageSchema,
3098
+ ReadProjectConfigResponseMessageSchema,
3099
+ WriteProjectConfigResponseMessageSchema,
3100
+ SetAgentModeResponseMessageSchema,
3101
+ SetAgentModelResponseMessageSchema,
3102
+ SetAgentThinkingResponseMessageSchema,
3103
+ SetAgentFeatureResponseMessageSchema,
3104
+ UpdateAgentResponseMessageSchema,
3105
+ ProjectRenameResponseSchema,
3106
+ WaitForFinishResponseMessageSchema,
3107
+ AgentPermissionRequestMessageSchema,
3108
+ AgentPermissionResolvedMessageSchema,
3109
+ AgentDeletedMessageSchema,
3110
+ AgentArchivedMessageSchema,
3111
+ CloseItemsResponseSchema,
3112
+ CheckoutStatusResponseSchema,
3113
+ CheckoutStatusUpdateSchema,
3114
+ SubscribeCheckoutDiffResponseSchema,
3115
+ CheckoutDiffUpdateSchema,
3116
+ CheckoutCommitResponseSchema,
3117
+ CheckoutMergeResponseSchema,
3118
+ CheckoutMergeFromBaseResponseSchema,
3119
+ CheckoutPullResponseSchema,
3120
+ CheckoutPushResponseSchema,
3121
+ CheckoutPrCreateResponseSchema,
3122
+ CheckoutPrMergeResponseSchema,
3123
+ CheckoutGithubSetAutoMergeResponseSchema,
3124
+ CheckoutPrStatusResponseSchema,
3125
+ PullRequestTimelineResponseSchema,
3126
+ CheckoutSwitchBranchResponseSchema,
3127
+ CheckoutRenameBranchResponseSchema,
3128
+ StashSaveResponseSchema,
3129
+ StashPopResponseSchema,
3130
+ StashListResponseSchema,
3131
+ ValidateBranchResponseSchema,
3132
+ BranchSuggestionsResponseSchema,
3133
+ GitHubSearchResponseSchema,
3134
+ DirectorySuggestionsResponseSchema,
3135
+ PaseoWorktreeListResponseSchema,
3136
+ PaseoWorktreeArchiveResponseSchema,
3137
+ CreatePaseoWorktreeResponseSchema,
3138
+ FileExplorerResponseSchema,
3139
+ ProjectIconResponseSchema,
3140
+ FileDownloadTokenResponseSchema,
3141
+ ListProviderModelsResponseMessageSchema,
3142
+ ListProviderModesResponseMessageSchema,
3143
+ ListProviderFeaturesResponseMessageSchema,
3144
+ ListAvailableProvidersResponseSchema,
3145
+ GetProvidersSnapshotResponseMessageSchema,
3146
+ ProvidersSnapshotUpdateMessageSchema,
3147
+ RefreshProvidersSnapshotResponseMessageSchema,
3148
+ ProviderDiagnosticResponseMessageSchema,
3149
+ ListCommandsResponseSchema,
3150
+ ListTerminalsResponseSchema,
3151
+ TerminalsChangedSchema,
3152
+ CreateTerminalResponseSchema,
3153
+ RenameTerminalResponseSchema,
3154
+ SubscribeTerminalResponseSchema,
3155
+ KillTerminalResponseSchema,
3156
+ CaptureTerminalResponseSchema,
3157
+ TerminalStreamExitSchema,
3158
+ ChatCreateResponseSchema,
3159
+ ChatListResponseSchema,
3160
+ ChatInspectResponseSchema,
3161
+ ChatDeleteResponseSchema,
3162
+ ChatPostResponseSchema,
3163
+ ChatReadResponseSchema,
3164
+ ChatWaitResponseSchema,
3165
+ ScheduleCreateResponseSchema,
3166
+ ScheduleListResponseSchema,
3167
+ ScheduleInspectResponseSchema,
3168
+ ScheduleLogsResponseSchema,
3169
+ SchedulePauseResponseSchema,
3170
+ ScheduleResumeResponseSchema,
3171
+ ScheduleDeleteResponseSchema,
3172
+ ScheduleRunOnceResponseSchema,
3173
+ ScheduleUpdateResponseSchema,
3174
+ LoopRunResponseSchema,
3175
+ LoopListResponseSchema,
3176
+ LoopInspectResponseSchema,
3177
+ LoopLogsResponseSchema,
3178
+ LoopStopResponseSchema,
3179
+ ]);
3180
+ // ============================================================================
3181
+ // WebSocket Level Messages (wraps session messages)
3182
+ // ============================================================================
3183
+ // WebSocket-only messages (not session messages)
3184
+ export const WSPingMessageSchema = z.object({
3185
+ type: z.literal("ping"),
3186
+ });
3187
+ export const WSPongMessageSchema = z.object({
3188
+ type: z.literal("pong"),
3189
+ });
3190
+ export const WSHelloMessageSchema = z.object({
3191
+ type: z.literal("hello"),
3192
+ clientId: z.string().min(1),
3193
+ clientType: z.enum(["mobile", "browser", "cli", "mcp"]),
3194
+ protocolVersion: z.number().int(),
3195
+ appVersion: z.string().optional(),
3196
+ capabilities: z
3197
+ .object({
3198
+ voice: z.boolean().optional(),
3199
+ pushNotifications: z.boolean().optional(),
3200
+ [CLIENT_CAPS.reasoningMergeEnum]: z.boolean().optional(),
3201
+ })
3202
+ .passthrough()
3203
+ .optional(),
3204
+ });
3205
+ export const WSRecordingStateMessageSchema = z.object({
3206
+ type: z.literal("recording_state"),
3207
+ isRecording: z.boolean(),
3208
+ });
3209
+ // Wrapped session message
3210
+ export const WSSessionInboundSchema = z.object({
3211
+ type: z.literal("session"),
3212
+ message: SessionInboundMessageSchema,
3213
+ });
3214
+ export const WSSessionOutboundSchema = z.object({
3215
+ type: z.literal("session"),
3216
+ message: SessionOutboundMessageSchema,
3217
+ });
3218
+ // Complete WebSocket message schemas
3219
+ export const WSInboundMessageSchema = z.discriminatedUnion("type", [
3220
+ WSPingMessageSchema,
3221
+ WSHelloMessageSchema,
3222
+ WSRecordingStateMessageSchema,
3223
+ WSSessionInboundSchema,
3224
+ ]);
3225
+ export const WSOutboundMessageSchema = z.discriminatedUnion("type", [
3226
+ WSPongMessageSchema,
3227
+ WSSessionOutboundSchema,
3228
+ ]);
3229
+ // ============================================================================
3230
+ // Helper functions for message conversion
3231
+ // ============================================================================
3232
+ /**
3233
+ * Extract session message from WebSocket message
3234
+ * Returns null if message should be handled at WS level only
3235
+ */
3236
+ export function extractSessionMessage(wsMsg) {
3237
+ if (wsMsg.type === "session") {
3238
+ return wsMsg.message;
3239
+ }
3240
+ // Ping and recording_state are WS-level only
3241
+ return null;
3242
+ }
3243
+ /**
3244
+ * Wrap session message in WebSocket envelope
3245
+ */
3246
+ export function wrapSessionMessage(sessionMsg) {
3247
+ return {
3248
+ type: "session",
3249
+ message: sessionMsg,
3250
+ };
3251
+ }
3252
+ export function parseServerInfoStatusPayload(payload) {
3253
+ const parsed = ServerInfoStatusPayloadSchema.safeParse(payload);
3254
+ if (!parsed.success) {
3255
+ return null;
3256
+ }
3257
+ return parsed.data;
3258
+ }
3259
+ //# sourceMappingURL=messages.js.map