@bytetrue/byspace 0.1.0

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 (1177) hide show
  1. package/LICENSE +671 -0
  2. package/README.md +154 -0
  3. package/bin/byspace +3 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +121 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/agent/archive.d.ts +18 -0
  9. package/dist/commands/agent/archive.d.ts.map +1 -0
  10. package/dist/commands/agent/archive.js +102 -0
  11. package/dist/commands/agent/archive.js.map +1 -0
  12. package/dist/commands/agent/attach.d.ts +11 -0
  13. package/dist/commands/agent/attach.d.ts.map +1 -0
  14. package/dist/commands/agent/attach.js +159 -0
  15. package/dist/commands/agent/attach.js.map +1 -0
  16. package/dist/commands/agent/delete.d.ts +15 -0
  17. package/dist/commands/agent/delete.d.ts.map +1 -0
  18. package/dist/commands/agent/delete.js +107 -0
  19. package/dist/commands/agent/delete.js.map +1 -0
  20. package/dist/commands/agent/import.d.ts +14 -0
  21. package/dist/commands/agent/import.d.ts.map +1 -0
  22. package/dist/commands/agent/import.js +122 -0
  23. package/dist/commands/agent/import.js.map +1 -0
  24. package/dist/commands/agent/index.d.ts +3 -0
  25. package/dist/commands/agent/index.d.ts.map +1 -0
  26. package/dist/commands/agent/index.js +48 -0
  27. package/dist/commands/agent/index.js.map +1 -0
  28. package/dist/commands/agent/inspect.d.ts +15 -0
  29. package/dist/commands/agent/inspect.d.ts.map +1 -0
  30. package/dist/commands/agent/inspect.js +209 -0
  31. package/dist/commands/agent/inspect.js.map +1 -0
  32. package/dist/commands/agent/logs.d.ts +19 -0
  33. package/dist/commands/agent/logs.d.ts.map +1 -0
  34. package/dist/commands/agent/logs.js +180 -0
  35. package/dist/commands/agent/logs.js.map +1 -0
  36. package/dist/commands/agent/ls.d.ts +44 -0
  37. package/dist/commands/agent/ls.d.ts.map +1 -0
  38. package/dist/commands/agent/ls.js +204 -0
  39. package/dist/commands/agent/ls.js.map +1 -0
  40. package/dist/commands/agent/mode.d.ts +18 -0
  41. package/dist/commands/agent/mode.d.ts.map +1 -0
  42. package/dist/commands/agent/mode.js +100 -0
  43. package/dist/commands/agent/mode.js.map +1 -0
  44. package/dist/commands/agent/reload.d.ts +15 -0
  45. package/dist/commands/agent/reload.d.ts.map +1 -0
  46. package/dist/commands/agent/reload.js +75 -0
  47. package/dist/commands/agent/reload.js.map +1 -0
  48. package/dist/commands/agent/run.d.ts +44 -0
  49. package/dist/commands/agent/run.d.ts.map +1 -0
  50. package/dist/commands/agent/run.js +464 -0
  51. package/dist/commands/agent/run.js.map +1 -0
  52. package/dist/commands/agent/send.d.ts +19 -0
  53. package/dist/commands/agent/send.d.ts.map +1 -0
  54. package/dist/commands/agent/send.js +187 -0
  55. package/dist/commands/agent/send.js.map +1 -0
  56. package/dist/commands/agent/stop.d.ts +17 -0
  57. package/dist/commands/agent/stop.d.ts.map +1 -0
  58. package/dist/commands/agent/stop.js +115 -0
  59. package/dist/commands/agent/stop.js.map +1 -0
  60. package/dist/commands/agent/update.d.ts +18 -0
  61. package/dist/commands/agent/update.d.ts.map +1 -0
  62. package/dist/commands/agent/update.js +139 -0
  63. package/dist/commands/agent/update.js.map +1 -0
  64. package/dist/commands/agent/wait.d.ts +17 -0
  65. package/dist/commands/agent/wait.d.ts.map +1 -0
  66. package/dist/commands/agent/wait.js +158 -0
  67. package/dist/commands/agent/wait.js.map +1 -0
  68. package/dist/commands/chat/create.d.ts +9 -0
  69. package/dist/commands/chat/create.d.ts.map +1 -0
  70. package/dist/commands/chat/create.js +23 -0
  71. package/dist/commands/chat/create.js.map +1 -0
  72. package/dist/commands/chat/delete.d.ts +6 -0
  73. package/dist/commands/chat/delete.d.ts.map +1 -0
  74. package/dist/commands/chat/delete.js +20 -0
  75. package/dist/commands/chat/delete.js.map +1 -0
  76. package/dist/commands/chat/index.d.ts +3 -0
  77. package/dist/commands/chat/index.d.ts.map +1 -0
  78. package/dist/commands/chat/index.js +47 -0
  79. package/dist/commands/chat/index.js.map +1 -0
  80. package/dist/commands/chat/inspect.d.ts +6 -0
  81. package/dist/commands/chat/inspect.d.ts.map +1 -0
  82. package/dist/commands/chat/inspect.js +20 -0
  83. package/dist/commands/chat/inspect.js.map +1 -0
  84. package/dist/commands/chat/ls.d.ts +6 -0
  85. package/dist/commands/chat/ls.d.ts.map +1 -0
  86. package/dist/commands/chat/ls.js +20 -0
  87. package/dist/commands/chat/ls.js.map +1 -0
  88. package/dist/commands/chat/post.d.ts +9 -0
  89. package/dist/commands/chat/post.d.ts.map +1 -0
  90. package/dist/commands/chat/post.js +28 -0
  91. package/dist/commands/chat/post.js.map +1 -0
  92. package/dist/commands/chat/read.d.ts +11 -0
  93. package/dist/commands/chat/read.d.ts.map +1 -0
  94. package/dist/commands/chat/read.js +40 -0
  95. package/dist/commands/chat/read.js.map +1 -0
  96. package/dist/commands/chat/schema.d.ts +36 -0
  97. package/dist/commands/chat/schema.d.ts.map +1 -0
  98. package/dist/commands/chat/schema.js +81 -0
  99. package/dist/commands/chat/schema.js.map +1 -0
  100. package/dist/commands/chat/shared.d.ts +19 -0
  101. package/dist/commands/chat/shared.d.ts.map +1 -0
  102. package/dist/commands/chat/shared.js +118 -0
  103. package/dist/commands/chat/shared.js.map +1 -0
  104. package/dist/commands/chat/wait.d.ts +9 -0
  105. package/dist/commands/chat/wait.d.ts.map +1 -0
  106. package/dist/commands/chat/wait.js +45 -0
  107. package/dist/commands/chat/wait.js.map +1 -0
  108. package/dist/commands/clone.d.ts +17 -0
  109. package/dist/commands/clone.d.ts.map +1 -0
  110. package/dist/commands/clone.js +65 -0
  111. package/dist/commands/clone.js.map +1 -0
  112. package/dist/commands/daemon/index.d.ts +3 -0
  113. package/dist/commands/daemon/index.d.ts.map +1 -0
  114. package/dist/commands/daemon/index.js +57 -0
  115. package/dist/commands/daemon/index.js.map +1 -0
  116. package/dist/commands/daemon/local-daemon.d.ts +77 -0
  117. package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
  118. package/dist/commands/daemon/local-daemon.js +545 -0
  119. package/dist/commands/daemon/local-daemon.js.map +1 -0
  120. package/dist/commands/daemon/pair.d.ts +9 -0
  121. package/dist/commands/daemon/pair.d.ts.map +1 -0
  122. package/dist/commands/daemon/pair.js +76 -0
  123. package/dist/commands/daemon/pair.js.map +1 -0
  124. package/dist/commands/daemon/restart.d.ts +12 -0
  125. package/dist/commands/daemon/restart.d.ts.map +1 -0
  126. package/dist/commands/daemon/restart.js +99 -0
  127. package/dist/commands/daemon/restart.js.map +1 -0
  128. package/dist/commands/daemon/runtime-toolchain.d.ts +6 -0
  129. package/dist/commands/daemon/runtime-toolchain.d.ts.map +1 -0
  130. package/dist/commands/daemon/runtime-toolchain.js +87 -0
  131. package/dist/commands/daemon/runtime-toolchain.js.map +1 -0
  132. package/dist/commands/daemon/set-password.d.ts +17 -0
  133. package/dist/commands/daemon/set-password.d.ts.map +1 -0
  134. package/dist/commands/daemon/set-password.js +82 -0
  135. package/dist/commands/daemon/set-password.js.map +1 -0
  136. package/dist/commands/daemon/start.d.ts +6 -0
  137. package/dist/commands/daemon/start.d.ts.map +1 -0
  138. package/dist/commands/daemon/start.js +56 -0
  139. package/dist/commands/daemon/start.js.map +1 -0
  140. package/dist/commands/daemon/status.d.ts +10 -0
  141. package/dist/commands/daemon/status.d.ts.map +1 -0
  142. package/dist/commands/daemon/status.js +337 -0
  143. package/dist/commands/daemon/status.js.map +1 -0
  144. package/dist/commands/daemon/stop.d.ts +15 -0
  145. package/dist/commands/daemon/stop.d.ts.map +1 -0
  146. package/dist/commands/daemon/stop.js +60 -0
  147. package/dist/commands/daemon/stop.js.map +1 -0
  148. package/dist/commands/hooks.d.ts +19 -0
  149. package/dist/commands/hooks.d.ts.map +1 -0
  150. package/dist/commands/hooks.js +89 -0
  151. package/dist/commands/hooks.js.map +1 -0
  152. package/dist/commands/loop/index.d.ts +3 -0
  153. package/dist/commands/loop/index.d.ts.map +1 -0
  154. package/dist/commands/loop/index.js +18 -0
  155. package/dist/commands/loop/index.js.map +1 -0
  156. package/dist/commands/loop/inspect.d.ts +13 -0
  157. package/dist/commands/loop/inspect.d.ts.map +1 -0
  158. package/dist/commands/loop/inspect.js +100 -0
  159. package/dist/commands/loop/inspect.js.map +1 -0
  160. package/dist/commands/loop/logs.d.ts +8 -0
  161. package/dist/commands/loop/logs.d.ts.map +1 -0
  162. package/dist/commands/loop/logs.js +69 -0
  163. package/dist/commands/loop/logs.js.map +1 -0
  164. package/dist/commands/loop/ls.d.ts +18 -0
  165. package/dist/commands/loop/ls.d.ts.map +1 -0
  166. package/dist/commands/loop/ls.js +62 -0
  167. package/dist/commands/loop/ls.js.map +1 -0
  168. package/dist/commands/loop/run.d.ts +30 -0
  169. package/dist/commands/loop/run.d.ts.map +1 -0
  170. package/dist/commands/loop/run.js +162 -0
  171. package/dist/commands/loop/run.js.map +1 -0
  172. package/dist/commands/loop/stop.d.ts +15 -0
  173. package/dist/commands/loop/stop.d.ts.map +1 -0
  174. package/dist/commands/loop/stop.js +56 -0
  175. package/dist/commands/loop/stop.js.map +1 -0
  176. package/dist/commands/loop/types.d.ts +138 -0
  177. package/dist/commands/loop/types.d.ts.map +1 -0
  178. package/dist/commands/loop/types.js +2 -0
  179. package/dist/commands/loop/types.js.map +1 -0
  180. package/dist/commands/onboard.d.ts +10 -0
  181. package/dist/commands/onboard.d.ts.map +1 -0
  182. package/dist/commands/onboard.js +415 -0
  183. package/dist/commands/onboard.js.map +1 -0
  184. package/dist/commands/permit/allow.d.ts +20 -0
  185. package/dist/commands/permit/allow.d.ts.map +1 -0
  186. package/dist/commands/permit/allow.js +133 -0
  187. package/dist/commands/permit/allow.js.map +1 -0
  188. package/dist/commands/permit/deny.d.ts +12 -0
  189. package/dist/commands/permit/deny.d.ts.map +1 -0
  190. package/dist/commands/permit/deny.js +105 -0
  191. package/dist/commands/permit/deny.js.map +1 -0
  192. package/dist/commands/permit/index.d.ts +3 -0
  193. package/dist/commands/permit/index.d.ts.map +1 -0
  194. package/dist/commands/permit/index.js +27 -0
  195. package/dist/commands/permit/index.js.map +1 -0
  196. package/dist/commands/permit/ls.d.ts +18 -0
  197. package/dist/commands/permit/ls.d.ts.map +1 -0
  198. package/dist/commands/permit/ls.js +66 -0
  199. package/dist/commands/permit/ls.js.map +1 -0
  200. package/dist/commands/provider/index.d.ts +3 -0
  201. package/dist/commands/provider/index.d.ts.map +1 -0
  202. package/dist/commands/provider/index.js +16 -0
  203. package/dist/commands/provider/index.js.map +1 -0
  204. package/dist/commands/provider/ls.d.ts +19 -0
  205. package/dist/commands/provider/ls.d.ts.map +1 -0
  206. package/dist/commands/provider/ls.js +73 -0
  207. package/dist/commands/provider/ls.js.map +1 -0
  208. package/dist/commands/provider/models.d.ts +20 -0
  209. package/dist/commands/provider/models.d.ts.map +1 -0
  210. package/dist/commands/provider/models.js +53 -0
  211. package/dist/commands/provider/models.js.map +1 -0
  212. package/dist/commands/schedule/create.d.ts +18 -0
  213. package/dist/commands/schedule/create.d.ts.map +1 -0
  214. package/dist/commands/schedule/create.js +40 -0
  215. package/dist/commands/schedule/create.js.map +1 -0
  216. package/dist/commands/schedule/delete.d.ts +10 -0
  217. package/dist/commands/schedule/delete.d.ts.map +1 -0
  218. package/dist/commands/schedule/delete.js +32 -0
  219. package/dist/commands/schedule/delete.js.map +1 -0
  220. package/dist/commands/schedule/index.d.ts +3 -0
  221. package/dist/commands/schedule/index.d.ts.map +1 -0
  222. package/dist/commands/schedule/index.js +66 -0
  223. package/dist/commands/schedule/index.js.map +1 -0
  224. package/dist/commands/schedule/inspect.d.ts +6 -0
  225. package/dist/commands/schedule/inspect.d.ts.map +1 -0
  226. package/dist/commands/schedule/inspect.js +24 -0
  227. package/dist/commands/schedule/inspect.js.map +1 -0
  228. package/dist/commands/schedule/logs.d.ts +6 -0
  229. package/dist/commands/schedule/logs.d.ts.map +1 -0
  230. package/dist/commands/schedule/logs.js +23 -0
  231. package/dist/commands/schedule/logs.js.map +1 -0
  232. package/dist/commands/schedule/ls.d.ts +5 -0
  233. package/dist/commands/schedule/ls.d.ts.map +1 -0
  234. package/dist/commands/schedule/ls.js +23 -0
  235. package/dist/commands/schedule/ls.js.map +1 -0
  236. package/dist/commands/schedule/pause.d.ts +5 -0
  237. package/dist/commands/schedule/pause.d.ts.map +1 -0
  238. package/dist/commands/schedule/pause.js +23 -0
  239. package/dist/commands/schedule/pause.js.map +1 -0
  240. package/dist/commands/schedule/resume.d.ts +5 -0
  241. package/dist/commands/schedule/resume.d.ts.map +1 -0
  242. package/dist/commands/schedule/resume.js +23 -0
  243. package/dist/commands/schedule/resume.js.map +1 -0
  244. package/dist/commands/schedule/run-once.d.ts +5 -0
  245. package/dist/commands/schedule/run-once.d.ts.map +1 -0
  246. package/dist/commands/schedule/run-once.js +23 -0
  247. package/dist/commands/schedule/run-once.js.map +1 -0
  248. package/dist/commands/schedule/schema.d.ts +21 -0
  249. package/dist/commands/schedule/schema.d.ts.map +1 -0
  250. package/dist/commands/schedule/schema.js +67 -0
  251. package/dist/commands/schedule/schema.js.map +1 -0
  252. package/dist/commands/schedule/shared.d.ts +56 -0
  253. package/dist/commands/schedule/shared.d.ts.map +1 -0
  254. package/dist/commands/schedule/shared.js +346 -0
  255. package/dist/commands/schedule/shared.js.map +1 -0
  256. package/dist/commands/schedule/types.d.ts +168 -0
  257. package/dist/commands/schedule/types.d.ts.map +1 -0
  258. package/dist/commands/schedule/types.js +2 -0
  259. package/dist/commands/schedule/types.js.map +1 -0
  260. package/dist/commands/schedule/update.d.ts +21 -0
  261. package/dist/commands/schedule/update.d.ts.map +1 -0
  262. package/dist/commands/schedule/update.js +39 -0
  263. package/dist/commands/schedule/update.js.map +1 -0
  264. package/dist/commands/speech/index.d.ts +3 -0
  265. package/dist/commands/speech/index.d.ts.map +1 -0
  266. package/dist/commands/speech/index.js +5 -0
  267. package/dist/commands/speech/index.js.map +1 -0
  268. package/dist/commands/terminal/capture.d.ts +10 -0
  269. package/dist/commands/terminal/capture.d.ts.map +1 -0
  270. package/dist/commands/terminal/capture.js +68 -0
  271. package/dist/commands/terminal/capture.js.map +1 -0
  272. package/dist/commands/terminal/create.d.ts +10 -0
  273. package/dist/commands/terminal/create.d.ts.map +1 -0
  274. package/dist/commands/terminal/create.js +38 -0
  275. package/dist/commands/terminal/create.js.map +1 -0
  276. package/dist/commands/terminal/index.d.ts +3 -0
  277. package/dist/commands/terminal/index.d.ts.map +1 -0
  278. package/dist/commands/terminal/index.js +43 -0
  279. package/dist/commands/terminal/index.js.map +1 -0
  280. package/dist/commands/terminal/kill.d.ts +6 -0
  281. package/dist/commands/terminal/kill.d.ts.map +1 -0
  282. package/dist/commands/terminal/kill.js +36 -0
  283. package/dist/commands/terminal/kill.js.map +1 -0
  284. package/dist/commands/terminal/ls.d.ts +10 -0
  285. package/dist/commands/terminal/ls.d.ts.map +1 -0
  286. package/dist/commands/terminal/ls.js +21 -0
  287. package/dist/commands/terminal/ls.js.map +1 -0
  288. package/dist/commands/terminal/schema.d.ts +18 -0
  289. package/dist/commands/terminal/schema.d.ts.map +1 -0
  290. package/dist/commands/terminal/schema.js +23 -0
  291. package/dist/commands/terminal/schema.js.map +1 -0
  292. package/dist/commands/terminal/send-keys.d.ts +7 -0
  293. package/dist/commands/terminal/send-keys.d.ts.map +1 -0
  294. package/dist/commands/terminal/send-keys.js +76 -0
  295. package/dist/commands/terminal/send-keys.js.map +1 -0
  296. package/dist/commands/terminal/shared.d.ts +12 -0
  297. package/dist/commands/terminal/shared.d.ts.map +1 -0
  298. package/dist/commands/terminal/shared.js +61 -0
  299. package/dist/commands/terminal/shared.js.map +1 -0
  300. package/dist/commands/worktree/archive.d.ts +20 -0
  301. package/dist/commands/worktree/archive.d.ts.map +1 -0
  302. package/dist/commands/worktree/archive.js +104 -0
  303. package/dist/commands/worktree/archive.js.map +1 -0
  304. package/dist/commands/worktree/create-input.d.ts +15 -0
  305. package/dist/commands/worktree/create-input.d.ts.map +1 -0
  306. package/dist/commands/worktree/create-input.js +56 -0
  307. package/dist/commands/worktree/create-input.js.map +1 -0
  308. package/dist/commands/worktree/create.d.ts +11 -0
  309. package/dist/commands/worktree/create.d.ts.map +1 -0
  310. package/dist/commands/worktree/create.js +58 -0
  311. package/dist/commands/worktree/create.js.map +1 -0
  312. package/dist/commands/worktree/index.d.ts +3 -0
  313. package/dist/commands/worktree/index.d.ts.map +1 -0
  314. package/dist/commands/worktree/index.js +25 -0
  315. package/dist/commands/worktree/index.js.map +1 -0
  316. package/dist/commands/worktree/ls.d.ts +19 -0
  317. package/dist/commands/worktree/ls.d.ts.map +1 -0
  318. package/dist/commands/worktree/ls.js +97 -0
  319. package/dist/commands/worktree/ls.js.map +1 -0
  320. package/dist/index.d.ts +2 -0
  321. package/dist/index.d.ts.map +1 -0
  322. package/dist/index.js +6 -0
  323. package/dist/index.js.map +1 -0
  324. package/dist/output/index.d.ts +45 -0
  325. package/dist/output/index.d.ts.map +1 -0
  326. package/dist/output/index.js +47 -0
  327. package/dist/output/index.js.map +1 -0
  328. package/dist/output/json.d.ts +11 -0
  329. package/dist/output/json.d.ts.map +1 -0
  330. package/dist/output/json.js +37 -0
  331. package/dist/output/json.js.map +1 -0
  332. package/dist/output/quiet.d.ts +9 -0
  333. package/dist/output/quiet.d.ts.map +1 -0
  334. package/dist/output/quiet.js +22 -0
  335. package/dist/output/quiet.js.map +1 -0
  336. package/dist/output/render.d.ts +15 -0
  337. package/dist/output/render.d.ts.map +1 -0
  338. package/dist/output/render.js +83 -0
  339. package/dist/output/render.js.map +1 -0
  340. package/dist/output/table.d.ts +13 -0
  341. package/dist/output/table.d.ts.map +1 -0
  342. package/dist/output/table.js +135 -0
  343. package/dist/output/table.js.map +1 -0
  344. package/dist/output/types.d.ts +73 -0
  345. package/dist/output/types.d.ts.map +1 -0
  346. package/dist/output/types.js +8 -0
  347. package/dist/output/types.js.map +1 -0
  348. package/dist/output/with-output.d.ts +41 -0
  349. package/dist/output/with-output.d.ts.map +1 -0
  350. package/dist/output/with-output.js +87 -0
  351. package/dist/output/with-output.js.map +1 -0
  352. package/dist/output/yaml.d.ts +11 -0
  353. package/dist/output/yaml.d.ts.map +1 -0
  354. package/dist/output/yaml.js +38 -0
  355. package/dist/output/yaml.js.map +1 -0
  356. package/dist/run.d.ts +9 -0
  357. package/dist/run.d.ts.map +1 -0
  358. package/dist/run.js +15 -0
  359. package/dist/run.js.map +1 -0
  360. package/dist/utils/client-id.d.ts +2 -0
  361. package/dist/utils/client-id.d.ts.map +1 -0
  362. package/dist/utils/client-id.js +37 -0
  363. package/dist/utils/client-id.js.map +1 -0
  364. package/dist/utils/client.d.ts +53 -0
  365. package/dist/utils/client.d.ts.map +1 -0
  366. package/dist/utils/client.js +339 -0
  367. package/dist/utils/client.js.map +1 -0
  368. package/dist/utils/command-options.d.ts +6 -0
  369. package/dist/utils/command-options.d.ts.map +1 -0
  370. package/dist/utils/command-options.js +17 -0
  371. package/dist/utils/command-options.js.map +1 -0
  372. package/dist/utils/duration.d.ts +7 -0
  373. package/dist/utils/duration.d.ts.map +1 -0
  374. package/dist/utils/duration.js +38 -0
  375. package/dist/utils/duration.js.map +1 -0
  376. package/dist/utils/errors.d.ts +5 -0
  377. package/dist/utils/errors.d.ts.map +1 -0
  378. package/dist/utils/errors.js +10 -0
  379. package/dist/utils/errors.js.map +1 -0
  380. package/dist/utils/paths.d.ts +12 -0
  381. package/dist/utils/paths.d.ts.map +1 -0
  382. package/dist/utils/paths.js +22 -0
  383. package/dist/utils/paths.js.map +1 -0
  384. package/dist/utils/provider-model.d.ts +11 -0
  385. package/dist/utils/provider-model.d.ts.map +1 -0
  386. package/dist/utils/provider-model.js +49 -0
  387. package/dist/utils/provider-model.js.map +1 -0
  388. package/dist/utils/timeline.d.ts +11 -0
  389. package/dist/utils/timeline.d.ts.map +1 -0
  390. package/dist/utils/timeline.js +11 -0
  391. package/dist/utils/timeline.js.map +1 -0
  392. package/dist/version.d.ts +2 -0
  393. package/dist/version.d.ts.map +1 -0
  394. package/dist/version.js +10 -0
  395. package/dist/version.js.map +1 -0
  396. package/node_modules/@bytetrue/byspace-client/README.md +12 -0
  397. package/node_modules/@bytetrue/byspace-client/dist/compat/normalize-provider-models.d.ts +11 -0
  398. package/node_modules/@bytetrue/byspace-client/dist/compat/normalize-provider-models.js +42 -0
  399. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-relay-e2ee-transport.d.ts +8 -0
  400. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-relay-e2ee-transport.js +161 -0
  401. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-runtime-metrics.d.ts +39 -0
  402. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-runtime-metrics.js +173 -0
  403. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport-types.d.ts +36 -0
  404. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport-types.js +2 -0
  405. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport-utils.d.ts +9 -0
  406. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport-utils.js +121 -0
  407. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport.d.ts +5 -0
  408. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-transport.js +4 -0
  409. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-websocket-transport.d.ts +8 -0
  410. package/node_modules/@bytetrue/byspace-client/dist/daemon-client-websocket-transport.js +120 -0
  411. package/node_modules/@bytetrue/byspace-client/dist/daemon-client.d.ts +1008 -0
  412. package/node_modules/@bytetrue/byspace-client/dist/daemon-client.js +3828 -0
  413. package/node_modules/@bytetrue/byspace-client/dist/index.d.ts +281 -0
  414. package/node_modules/@bytetrue/byspace-client/dist/index.js +176 -0
  415. package/node_modules/@bytetrue/byspace-client/dist/terminal-stream-router.d.ts +28 -0
  416. package/node_modules/@bytetrue/byspace-client/dist/terminal-stream-router.js +108 -0
  417. package/node_modules/@bytetrue/byspace-client/package.json +47 -0
  418. package/node_modules/@bytetrue/byspace-highlight/dist/colors.d.ts +4 -0
  419. package/node_modules/@bytetrue/byspace-highlight/dist/colors.js +45 -0
  420. package/node_modules/@bytetrue/byspace-highlight/dist/highlighter.d.ts +4 -0
  421. package/node_modules/@bytetrue/byspace-highlight/dist/highlighter.js +97 -0
  422. package/node_modules/@bytetrue/byspace-highlight/dist/index.d.ts +7 -0
  423. package/node_modules/@bytetrue/byspace-highlight/dist/index.js +5 -0
  424. package/node_modules/@bytetrue/byspace-highlight/dist/parsers.d.ts +5 -0
  425. package/node_modules/@bytetrue/byspace-highlight/dist/parsers.js +85 -0
  426. package/node_modules/@bytetrue/byspace-highlight/dist/themes.d.ts +12 -0
  427. package/node_modules/@bytetrue/byspace-highlight/dist/themes.js +235 -0
  428. package/node_modules/@bytetrue/byspace-highlight/dist/types.d.ts +6 -0
  429. package/node_modules/@bytetrue/byspace-highlight/dist/types.js +2 -0
  430. package/node_modules/@bytetrue/byspace-highlight/package.json +54 -0
  431. package/node_modules/@bytetrue/byspace-protocol/README.md +12 -0
  432. package/node_modules/@bytetrue/byspace-protocol/dist/agent-attention-notification.d.ts +41 -0
  433. package/node_modules/@bytetrue/byspace-protocol/dist/agent-attention-notification.js +140 -0
  434. package/node_modules/@bytetrue/byspace-protocol/dist/agent-labels.d.ts +7 -0
  435. package/node_modules/@bytetrue/byspace-protocol/dist/agent-labels.js +11 -0
  436. package/node_modules/@bytetrue/byspace-protocol/dist/agent-lifecycle.d.ts +3 -0
  437. package/node_modules/@bytetrue/byspace-protocol/dist/agent-lifecycle.js +8 -0
  438. package/node_modules/@bytetrue/byspace-protocol/dist/agent-state-bucket.d.ts +14 -0
  439. package/node_modules/@bytetrue/byspace-protocol/dist/agent-state-bucket.js +41 -0
  440. package/node_modules/@bytetrue/byspace-protocol/dist/agent-title-limits.d.ts +2 -0
  441. package/node_modules/@bytetrue/byspace-protocol/dist/agent-title-limits.js +2 -0
  442. package/node_modules/@bytetrue/byspace-protocol/dist/agent-types.d.ts +449 -0
  443. package/node_modules/@bytetrue/byspace-protocol/dist/agent-types.js +22 -0
  444. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/demux.d.ts +11 -0
  445. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/demux.js +23 -0
  446. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/file-transfer.d.ts +50 -0
  447. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/file-transfer.js +107 -0
  448. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/index.d.ts +4 -0
  449. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/index.js +4 -0
  450. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/terminal.d.ts +31 -0
  451. package/node_modules/@bytetrue/byspace-protocol/dist/binary-frames/terminal.js +99 -0
  452. package/node_modules/@bytetrue/byspace-protocol/dist/branch-slug.d.ts +14 -0
  453. package/node_modules/@bytetrue/byspace-protocol/dist/branch-slug.js +49 -0
  454. package/node_modules/@bytetrue/byspace-protocol/dist/byspace-config-schema.d.ts +117 -0
  455. package/node_modules/@bytetrue/byspace-protocol/dist/byspace-config-schema.js +79 -0
  456. package/node_modules/@bytetrue/byspace-protocol/dist/chat/rpc-schemas.d.ts +158 -0
  457. package/node_modules/@bytetrue/byspace-protocol/dist/chat/rpc-schemas.js +103 -0
  458. package/node_modules/@bytetrue/byspace-protocol/dist/chat/types.d.ts +30 -0
  459. package/node_modules/@bytetrue/byspace-protocol/dist/chat/types.js +22 -0
  460. package/node_modules/@bytetrue/byspace-protocol/dist/client-capabilities.d.ts +8 -0
  461. package/node_modules/@bytetrue/byspace-protocol/dist/client-capabilities.js +18 -0
  462. package/node_modules/@bytetrue/byspace-protocol/dist/connection-offer.d.ts +36 -0
  463. package/node_modules/@bytetrue/byspace-protocol/dist/connection-offer.js +53 -0
  464. package/node_modules/@bytetrue/byspace-protocol/dist/daemon-endpoints.d.ts +47 -0
  465. package/node_modules/@bytetrue/byspace-protocol/dist/daemon-endpoints.js +201 -0
  466. package/node_modules/@bytetrue/byspace-protocol/dist/error-utils.d.ts +11 -0
  467. package/node_modules/@bytetrue/byspace-protocol/dist/error-utils.js +27 -0
  468. package/node_modules/@bytetrue/byspace-protocol/dist/generated/validation/ws-outbound.aot.d.ts +2 -0
  469. package/node_modules/@bytetrue/byspace-protocol/dist/generated/validation/ws-outbound.aot.js +51870 -0
  470. package/node_modules/@bytetrue/byspace-protocol/dist/git-remote.d.ts +26 -0
  471. package/node_modules/@bytetrue/byspace-protocol/dist/git-remote.js +84 -0
  472. package/node_modules/@bytetrue/byspace-protocol/dist/host-connection-schema.d.ts +11 -0
  473. package/node_modules/@bytetrue/byspace-protocol/dist/host-connection-schema.js +9 -0
  474. package/node_modules/@bytetrue/byspace-protocol/dist/literal-union.d.ts +2 -0
  475. package/node_modules/@bytetrue/byspace-protocol/dist/literal-union.js +2 -0
  476. package/node_modules/@bytetrue/byspace-protocol/dist/loop/rpc-schemas.d.ts +636 -0
  477. package/node_modules/@bytetrue/byspace-protocol/dist/loop/rpc-schemas.js +163 -0
  478. package/node_modules/@bytetrue/byspace-protocol/dist/messages.d.ts +33892 -0
  479. package/node_modules/@bytetrue/byspace-protocol/dist/messages.js +4000 -0
  480. package/node_modules/@bytetrue/byspace-protocol/dist/path-utils.d.ts +2 -0
  481. package/node_modules/@bytetrue/byspace-protocol/dist/path-utils.js +16 -0
  482. package/node_modules/@bytetrue/byspace-protocol/dist/provider-config.d.ts +126 -0
  483. package/node_modules/@bytetrue/byspace-protocol/dist/provider-config.js +110 -0
  484. package/node_modules/@bytetrue/byspace-protocol/dist/provider-icon-names.d.ts +5 -0
  485. package/node_modules/@bytetrue/byspace-protocol/dist/provider-icon-names.js +52 -0
  486. package/node_modules/@bytetrue/byspace-protocol/dist/provider-manifest.d.ts +34 -0
  487. package/node_modules/@bytetrue/byspace-protocol/dist/provider-manifest.js +230 -0
  488. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/cron-expression.d.ts +13 -0
  489. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/cron-expression.js +97 -0
  490. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/rpc-schemas.d.ts +624 -0
  491. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/rpc-schemas.js +155 -0
  492. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/types.d.ts +222 -0
  493. package/node_modules/@bytetrue/byspace-protocol/dist/schedule/types.js +78 -0
  494. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-activity.d.ts +21 -0
  495. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-activity.js +25 -0
  496. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-input-mode.d.ts +26 -0
  497. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-input-mode.js +151 -0
  498. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-key-input.d.ts +13 -0
  499. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-key-input.js +201 -0
  500. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-profiles.d.ts +6 -0
  501. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-profiles.js +28 -0
  502. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-snapshot.d.ts +3 -0
  503. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-snapshot.js +178 -0
  504. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-stream-protocol.d.ts +2 -0
  505. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-stream-protocol.js +2 -0
  506. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-subscription-key.d.ts +2 -0
  507. package/node_modules/@bytetrue/byspace-protocol/dist/terminal-subscription-key.js +9 -0
  508. package/node_modules/@bytetrue/byspace-protocol/dist/tool-call-display.d.ts +11 -0
  509. package/node_modules/@bytetrue/byspace-protocol/dist/tool-call-display.js +135 -0
  510. package/node_modules/@bytetrue/byspace-protocol/dist/tool-name-normalization.d.ts +9 -0
  511. package/node_modules/@bytetrue/byspace-protocol/dist/tool-name-normalization.js +82 -0
  512. package/node_modules/@bytetrue/byspace-protocol/dist/validation/ws-outbound-schema-metadata.d.ts +6618 -0
  513. package/node_modules/@bytetrue/byspace-protocol/dist/validation/ws-outbound-schema-metadata.js +3 -0
  514. package/node_modules/@bytetrue/byspace-protocol/dist/validation/ws-outbound.d.ts +12 -0
  515. package/node_modules/@bytetrue/byspace-protocol/dist/validation/ws-outbound.js +8 -0
  516. package/node_modules/@bytetrue/byspace-protocol/package.json +42 -0
  517. package/node_modules/@bytetrue/byspace-relay/dist/base64.d.ts +3 -0
  518. package/node_modules/@bytetrue/byspace-relay/dist/base64.js +17 -0
  519. package/node_modules/@bytetrue/byspace-relay/dist/cloudflare-adapter.d.ts +76 -0
  520. package/node_modules/@bytetrue/byspace-relay/dist/cloudflare-adapter.js +504 -0
  521. package/node_modules/@bytetrue/byspace-relay/dist/crypto.d.ts +30 -0
  522. package/node_modules/@bytetrue/byspace-relay/dist/crypto.js +132 -0
  523. package/node_modules/@bytetrue/byspace-relay/dist/cutover-proxy.d.ts +6 -0
  524. package/node_modules/@bytetrue/byspace-relay/dist/cutover-proxy.js +12 -0
  525. package/node_modules/@bytetrue/byspace-relay/dist/e2ee.d.ts +5 -0
  526. package/node_modules/@bytetrue/byspace-relay/dist/e2ee.js +3 -0
  527. package/node_modules/@bytetrue/byspace-relay/dist/encrypted-channel.d.ts +76 -0
  528. package/node_modules/@bytetrue/byspace-relay/dist/encrypted-channel.js +350 -0
  529. package/node_modules/@bytetrue/byspace-relay/dist/index.d.ts +5 -0
  530. package/node_modules/@bytetrue/byspace-relay/dist/index.js +3 -0
  531. package/node_modules/@bytetrue/byspace-relay/dist/types.d.ts +27 -0
  532. package/node_modules/@bytetrue/byspace-relay/dist/types.js +11 -0
  533. package/node_modules/@bytetrue/byspace-relay/package.json +55 -0
  534. package/node_modules/@bytetrue/byspace-server/.env.example +31 -0
  535. package/node_modules/@bytetrue/byspace-server/README.md +111 -0
  536. package/node_modules/@bytetrue/byspace-server/dist/scripts/dev-runner.js +37 -0
  537. package/node_modules/@bytetrue/byspace-server/dist/scripts/mcp-stdio-socket-bridge-cli.mjs +62 -0
  538. package/node_modules/@bytetrue/byspace-server/dist/scripts/supervisor-entrypoint.js +112 -0
  539. package/node_modules/@bytetrue/byspace-server/dist/scripts/supervisor-log-config.js +31 -0
  540. package/node_modules/@bytetrue/byspace-server/dist/scripts/supervisor.js +252 -0
  541. package/node_modules/@bytetrue/byspace-server/dist/server/executable-resolution/executable-resolution.d.ts +10 -0
  542. package/node_modules/@bytetrue/byspace-server/dist/server/executable-resolution/executable-resolution.js +118 -0
  543. package/node_modules/@bytetrue/byspace-server/dist/server/executable-resolution/windows.d.ts +18 -0
  544. package/node_modules/@bytetrue/byspace-server/dist/server/executable-resolution/windows.js +65 -0
  545. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/activity-curator.d.ts +40 -0
  546. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/activity-curator.js +243 -0
  547. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-archive.d.ts +11 -0
  548. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-archive.js +16 -0
  549. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-loading.d.ts +14 -0
  550. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-loading.js +54 -0
  551. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-manager.d.ts +442 -0
  552. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-manager.js +2937 -0
  553. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-projections.d.ts +26 -0
  554. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-projections.js +389 -0
  555. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-prompt.d.ts +76 -0
  556. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-prompt.js +235 -0
  557. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-response-loop.d.ts +72 -0
  558. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-response-loop.js +333 -0
  559. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-run-state.d.ts +67 -0
  560. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-run-state.js +194 -0
  561. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-sdk-types.d.ts +653 -0
  562. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-sdk-types.js +22 -0
  563. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-storage.d.ts +120 -0
  564. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-storage.js +302 -0
  565. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
  566. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-stream-coalescer.js +175 -0
  567. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-content.d.ts +3 -0
  568. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-content.js +55 -0
  569. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-store-types.d.ts +50 -0
  570. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-store-types.js +2 -0
  571. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-store.d.ts +27 -0
  572. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/agent-timeline-store.js +230 -0
  573. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/audio-utils.d.ts +3 -0
  574. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/audio-utils.js +19 -0
  575. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent/create.d.ts +91 -0
  576. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent/create.js +378 -0
  577. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-lifecycle-dispatch.d.ts +54 -0
  578. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-lifecycle-dispatch.js +152 -0
  579. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-mode.d.ts +13 -0
  580. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-mode.js +65 -0
  581. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-title.d.ts +10 -0
  582. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/create-agent-title.js +34 -0
  583. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/dictation-debug.d.ts +13 -0
  584. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/dictation-debug.js +50 -0
  585. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/import-sessions.d.ts +47 -0
  586. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/import-sessions.js +145 -0
  587. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/lifecycle-command.d.ts +73 -0
  588. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/lifecycle-command.js +99 -0
  589. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/mcp-server.d.ts +5 -0
  590. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/mcp-server.js +66 -0
  591. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/mcp-shared.d.ts +179 -0
  592. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/mcp-shared.js +197 -0
  593. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/pcm16-resampler.d.ts +14 -0
  594. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/pcm16-resampler.js +63 -0
  595. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/permission-response.d.ts +15 -0
  596. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/permission-response.js +14 -0
  597. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/prompt-attachments.d.ts +12 -0
  598. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/prompt-attachments.js +111 -0
  599. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-history-timestamps.d.ts +2 -0
  600. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-history-timestamps.js +16 -0
  601. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-launch-config.d.ts +43 -0
  602. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-launch-config.js +167 -0
  603. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-notices.d.ts +3 -0
  604. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-notices.js +5 -0
  605. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-registry.d.ts +41 -0
  606. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-registry.js +501 -0
  607. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-session-import.d.ts +10 -0
  608. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-session-import.js +55 -0
  609. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-snapshot-manager.d.ts +135 -0
  610. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-snapshot-manager.js +685 -0
  611. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-subagents/store.d.ts +58 -0
  612. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/provider-subagents/store.js +98 -0
  613. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/acp-agent.d.ts +373 -0
  614. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/acp-agent.js +2538 -0
  615. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/agent.d.ts +68 -0
  616. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/agent.js +4482 -0
  617. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/feature-definitions.d.ts +8 -0
  618. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/feature-definitions.js +24 -0
  619. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/model-manifest.d.ts +90 -0
  620. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/model-manifest.js +205 -0
  621. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/models.d.ts +11 -0
  622. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/models.js +97 -0
  623. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/partial-json.d.ts +5 -0
  624. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/partial-json.js +306 -0
  625. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/project-dir.d.ts +6 -0
  626. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/project-dir.js +57 -0
  627. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/query.d.ts +17 -0
  628. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/query.js +86 -0
  629. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/rewind.d.ts +30 -0
  630. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/rewind.js +30 -0
  631. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/sidechain-tracker.d.ts +26 -0
  632. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/sidechain-tracker.js +374 -0
  633. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +35 -0
  634. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/task-notification-tool-call.js +272 -0
  635. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.d.ts +24 -0
  636. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/test-rewind-claude-sdk.js +23 -0
  637. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/tool-call-detail-parser.d.ts +3 -0
  638. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/tool-call-detail-parser.js +130 -0
  639. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/tool-call-mapper.d.ts +16 -0
  640. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/claude/tool-call-mapper.js +129 -0
  641. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/app-server-transport.d.ts +90 -0
  642. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/app-server-transport.js +262 -0
  643. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/rewind.d.ts +21 -0
  644. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/rewind.js +46 -0
  645. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/test-utils/fake-app-server.d.ts +118 -0
  646. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/test-utils/fake-app-server.js +417 -0
  647. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/tool-call-detail-parser.d.ts +12 -0
  648. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/tool-call-detail-parser.js +104 -0
  649. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts +24 -0
  650. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex/tool-call-mapper.js +877 -0
  651. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex-app-server-agent.d.ts +333 -0
  652. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex-app-server-agent.js +5189 -0
  653. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex-feature-definitions.d.ts +11 -0
  654. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/codex-feature-definitions.js +45 -0
  655. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/copilot-acp-agent.d.ts +26 -0
  656. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/copilot-acp-agent.js +187 -0
  657. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/cursor-acp-agent.d.ts +17 -0
  658. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/cursor-acp-agent.js +31 -0
  659. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/diagnostic-utils.d.ts +36 -0
  660. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/diagnostic-utils.js +355 -0
  661. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/generic-acp-agent.d.ts +51 -0
  662. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/generic-acp-agent.js +174 -0
  663. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/kiro-acp-agent.d.ts +17 -0
  664. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/kiro-acp-agent.js +78 -0
  665. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/mock-load-test-agent.d.ts +86 -0
  666. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/mock-load-test-agent.js +1043 -0
  667. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/mock-slow-provider.d.ts +14 -0
  668. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/mock-slow-provider.js +39 -0
  669. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/paths.d.ts +2 -0
  670. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/paths.js +7 -0
  671. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/rewind.d.ts +18 -0
  672. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/rewind.js +14 -0
  673. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/server-manager.d.ts +95 -0
  674. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/server-manager.js +441 -0
  675. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +27 -0
  676. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/test-server-manager.js +43 -0
  677. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/test-utils/test-opencode-harness.d.ts +97 -0
  678. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/test-utils/test-opencode-harness.js +302 -0
  679. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/tool-call-detail-parser.d.ts +3 -0
  680. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/tool-call-detail-parser.js +256 -0
  681. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/tool-call-mapper.d.ts +13 -0
  682. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode/tool-call-mapper.js +53 -0
  683. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode-agent.d.ts +295 -0
  684. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/opencode-agent.js +3225 -0
  685. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/agent.d.ts +140 -0
  686. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/agent.js +1862 -0
  687. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/cli-runtime.d.ts +21 -0
  688. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/cli-runtime.js +272 -0
  689. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/history-mapper.d.ts +9 -0
  690. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/history-mapper.js +143 -0
  691. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/rewind.d.ts +8 -0
  692. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/rewind.js +8 -0
  693. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/rpc-types.d.ts +214 -0
  694. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/rpc-types.js +2 -0
  695. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/runtime.d.ts +59 -0
  696. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/runtime.js +60 -0
  697. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/session-descriptor.d.ts +16 -0
  698. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/session-descriptor.js +346 -0
  699. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +89 -0
  700. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +223 -0
  701. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts +112 -0
  702. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/pi/tool-call-mapper.js +284 -0
  703. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/provider-image-output.d.ts +25 -0
  704. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/provider-image-output.js +165 -0
  705. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/provider-runner.d.ts +27 -0
  706. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/provider-runner.js +81 -0
  707. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +3 -0
  708. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +60 -0
  709. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +884 -0
  710. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/tool-call-detail-primitives.js +778 -0
  711. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/tool-call-mapper-utils.d.ts +25 -0
  712. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/tool-call-mapper-utils.js +208 -0
  713. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/trae-acp-agent.d.ts +15 -0
  714. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/providers/trae-acp-agent.js +18 -0
  715. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/recordings-debug.d.ts +3 -0
  716. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/recordings-debug.js +19 -0
  717. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/rewind/rewind.d.ts +10 -0
  718. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/rewind/rewind.js +29 -0
  719. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/rewind/test-rewind-session.d.ts +48 -0
  720. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/rewind/test-rewind-session.js +88 -0
  721. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/runtime-mcp-config.d.ts +14 -0
  722. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/runtime-mcp-config.js +53 -0
  723. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/structured-generation-providers.d.ts +29 -0
  724. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/structured-generation-providers.js +236 -0
  725. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/stt-debug.d.ts +10 -0
  726. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/stt-debug.js +33 -0
  727. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/stt-manager.d.ts +38 -0
  728. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/stt-manager.js +246 -0
  729. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/system-prompt.d.ts +2 -0
  730. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/system-prompt.js +8 -0
  731. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/timeline-append.d.ts +10 -0
  732. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/timeline-append.js +27 -0
  733. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/timeline-projection.d.ts +71 -0
  734. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/timeline-projection.js +373 -0
  735. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tools/byspace-tools.d.ts +51 -0
  736. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tools/byspace-tools.js +2111 -0
  737. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tools/types.d.ts +36 -0
  738. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tools/types.js +2 -0
  739. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tts-debug.d.ts +8 -0
  740. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tts-debug.js +24 -0
  741. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tts-manager.d.ts +41 -0
  742. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent/tts-manager.js +375 -0
  743. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent-attention-policy.d.ts +29 -0
  744. package/node_modules/@bytetrue/byspace-server/dist/server/server/agent-attention-policy.js +36 -0
  745. package/node_modules/@bytetrue/byspace-server/dist/server/server/atomic-file.d.ts +3 -0
  746. package/node_modules/@bytetrue/byspace-server/dist/server/server/atomic-file.js +19 -0
  747. package/node_modules/@bytetrue/byspace-server/dist/server/server/auth.d.ts +38 -0
  748. package/node_modules/@bytetrue/byspace-server/dist/server/server/auth.js +143 -0
  749. package/node_modules/@bytetrue/byspace-server/dist/server/server/auto-archive-on-merge/archive-if-safe.d.ts +40 -0
  750. package/node_modules/@bytetrue/byspace-server/dist/server/server/auto-archive-on-merge/archive-if-safe.js +92 -0
  751. package/node_modules/@bytetrue/byspace-server/dist/server/server/auto-archive-on-merge/index.d.ts +8 -0
  752. package/node_modules/@bytetrue/byspace-server/dist/server/server/auto-archive-on-merge/index.js +15 -0
  753. package/node_modules/@bytetrue/byspace-server/dist/server/server/bootstrap.d.ts +121 -0
  754. package/node_modules/@bytetrue/byspace-server/dist/server/server/bootstrap.js +1110 -0
  755. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-env.d.ts +13 -0
  756. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-env.js +46 -0
  757. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-home.d.ts +2 -0
  758. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-home.js +19 -0
  759. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-worktree-service.d.ts +52 -0
  760. package/node_modules/@bytetrue/byspace-server/dist/server/server/byspace-worktree-service.js +294 -0
  761. package/node_modules/@bytetrue/byspace-server/dist/server/server/chat/chat-mentions.d.ts +47 -0
  762. package/node_modules/@bytetrue/byspace-server/dist/server/server/chat/chat-mentions.js +113 -0
  763. package/node_modules/@bytetrue/byspace-server/dist/server/server/chat/chat-service.d.ts +78 -0
  764. package/node_modules/@bytetrue/byspace-server/dist/server/server/chat/chat-service.js +337 -0
  765. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout/status-projection.d.ts +19 -0
  766. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout/status-projection.js +102 -0
  767. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout-diff-manager.d.ts +41 -0
  768. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout-diff-manager.js +189 -0
  769. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout-git-utils.d.ts +11 -0
  770. package/node_modules/@bytetrue/byspace-server/dist/server/server/checkout-git-utils.js +34 -0
  771. package/node_modules/@bytetrue/byspace-server/dist/server/server/client-message-id.d.ts +3 -0
  772. package/node_modules/@bytetrue/byspace-server/dist/server/server/client-message-id.js +12 -0
  773. package/node_modules/@bytetrue/byspace-server/dist/server/server/config.d.ts +22 -0
  774. package/node_modules/@bytetrue/byspace-server/dist/server/server/config.js +324 -0
  775. package/node_modules/@bytetrue/byspace-server/dist/server/server/connection-offer.d.ts +20 -0
  776. package/node_modules/@bytetrue/byspace-server/dist/server/server/connection-offer.js +59 -0
  777. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-config-store.d.ts +25 -0
  778. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-config-store.js +182 -0
  779. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-keypair.d.ts +8 -0
  780. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-keypair.js +42 -0
  781. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-version.d.ts +5 -0
  782. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-version.js +22 -0
  783. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-worker.d.ts +2 -0
  784. package/node_modules/@bytetrue/byspace-server/dist/server/server/daemon-worker.js +251 -0
  785. package/node_modules/@bytetrue/byspace-server/dist/server/server/dictation/dictation-stream-manager.d.ts +87 -0
  786. package/node_modules/@bytetrue/byspace-server/dist/server/server/dictation/dictation-stream-manager.js +572 -0
  787. package/node_modules/@bytetrue/byspace-server/dist/server/server/exports.d.ts +24 -0
  788. package/node_modules/@bytetrue/byspace-server/dist/server/server/exports.js +24 -0
  789. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-download/token-store.d.ts +24 -0
  790. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-download/token-store.js +40 -0
  791. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-explorer/service.d.ts +51 -0
  792. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-explorer/service.js +246 -0
  793. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-upload/index.d.ts +27 -0
  794. package/node_modules/@bytetrue/byspace-server/dist/server/server/file-upload/index.js +158 -0
  795. package/node_modules/@bytetrue/byspace-server/dist/server/server/hostnames.d.ts +13 -0
  796. package/node_modules/@bytetrue/byspace-server/dist/server/server/hostnames.js +94 -0
  797. package/node_modules/@bytetrue/byspace-server/dist/server/server/json-utils.d.ts +11 -0
  798. package/node_modules/@bytetrue/byspace-server/dist/server/server/json-utils.js +45 -0
  799. package/node_modules/@bytetrue/byspace-server/dist/server/server/lifecycle-reasons.d.ts +4 -0
  800. package/node_modules/@bytetrue/byspace-server/dist/server/server/lifecycle-reasons.js +6 -0
  801. package/node_modules/@bytetrue/byspace-server/dist/server/server/logger.d.ts +29 -0
  802. package/node_modules/@bytetrue/byspace-server/dist/server/server/logger.js +125 -0
  803. package/node_modules/@bytetrue/byspace-server/dist/server/server/loop-service.d.ts +235 -0
  804. package/node_modules/@bytetrue/byspace-server/dist/server/server/loop-service.js +837 -0
  805. package/node_modules/@bytetrue/byspace-server/dist/server/server/managed-processes/managed-processes.d.ts +76 -0
  806. package/node_modules/@bytetrue/byspace-server/dist/server/server/managed-processes/managed-processes.js +326 -0
  807. package/node_modules/@bytetrue/byspace-server/dist/server/server/messages.d.ts +9 -0
  808. package/node_modules/@bytetrue/byspace-server/dist/server/server/messages.js +29 -0
  809. package/node_modules/@bytetrue/byspace-server/dist/server/server/migrations/backfill-workspace-id.migration.d.ts +9 -0
  810. package/node_modules/@bytetrue/byspace-server/dist/server/server/migrations/backfill-workspace-id.migration.js +64 -0
  811. package/node_modules/@bytetrue/byspace-server/dist/server/server/package-version.d.ts +19 -0
  812. package/node_modules/@bytetrue/byspace-server/dist/server/server/package-version.js +60 -0
  813. package/node_modules/@bytetrue/byspace-server/dist/server/server/pagination/cursor.d.ts +16 -0
  814. package/node_modules/@bytetrue/byspace-server/dist/server/server/pagination/cursor.js +62 -0
  815. package/node_modules/@bytetrue/byspace-server/dist/server/server/pagination/sortable-pager.d.ts +24 -0
  816. package/node_modules/@bytetrue/byspace-server/dist/server/server/pagination/sortable-pager.js +68 -0
  817. package/node_modules/@bytetrue/byspace-server/dist/server/server/pairing-offer.d.ts +18 -0
  818. package/node_modules/@bytetrue/byspace-server/dist/server/server/pairing-offer.js +47 -0
  819. package/node_modules/@bytetrue/byspace-server/dist/server/server/pairing-qr.d.ts +7 -0
  820. package/node_modules/@bytetrue/byspace-server/dist/server/server/pairing-qr.js +45 -0
  821. package/node_modules/@bytetrue/byspace-server/dist/server/server/path-utils.d.ts +5 -0
  822. package/node_modules/@bytetrue/byspace-server/dist/server/server/path-utils.js +34 -0
  823. package/node_modules/@bytetrue/byspace-server/dist/server/server/persisted-config.d.ts +313 -0
  824. package/node_modules/@bytetrue/byspace-server/dist/server/server/persisted-config.js +391 -0
  825. package/node_modules/@bytetrue/byspace-server/dist/server/server/persistence-hooks.d.ts +31 -0
  826. package/node_modules/@bytetrue/byspace-server/dist/server/server/persistence-hooks.js +93 -0
  827. package/node_modules/@bytetrue/byspace-server/dist/server/server/pid-lock.d.ts +31 -0
  828. package/node_modules/@bytetrue/byspace-server/dist/server/server/pid-lock.js +168 -0
  829. package/node_modules/@bytetrue/byspace-server/dist/server/server/private-files.d.ts +6 -0
  830. package/node_modules/@bytetrue/byspace-server/dist/server/server/private-files.js +37 -0
  831. package/node_modules/@bytetrue/byspace-server/dist/server/server/process-diagnostics.d.ts +17 -0
  832. package/node_modules/@bytetrue/byspace-server/dist/server/server/process-diagnostics.js +22 -0
  833. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/notifications.d.ts +9 -0
  834. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/notifications.js +15 -0
  835. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/push-service.d.ts +20 -0
  836. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/push-service.js +66 -0
  837. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/token-store.d.ts +18 -0
  838. package/node_modules/@bytetrue/byspace-server/dist/server/server/push/token-store.js +68 -0
  839. package/node_modules/@bytetrue/byspace-server/dist/server/server/relay-transport.d.ts +31 -0
  840. package/node_modules/@bytetrue/byspace-server/dist/server/server/relay-transport.js +514 -0
  841. package/node_modules/@bytetrue/byspace-server/dist/server/server/resolve-workspace-id-for-path.d.ts +3 -0
  842. package/node_modules/@bytetrue/byspace-server/dist/server/server/resolve-workspace-id-for-path.js +41 -0
  843. package/node_modules/@bytetrue/byspace-server/dist/server/server/resolve-worktree-creation-intent.d.ts +32 -0
  844. package/node_modules/@bytetrue/byspace-server/dist/server/server/resolve-worktree-creation-intent.js +121 -0
  845. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/cron.d.ts +4 -0
  846. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/cron.js +81 -0
  847. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/service.d.ts +74 -0
  848. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/service.js +804 -0
  849. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/store.d.ts +27 -0
  850. package/node_modules/@bytetrue/byspace-server/dist/server/server/schedule/store.js +190 -0
  851. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-health-monitor.d.ts +39 -0
  852. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-health-monitor.js +159 -0
  853. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-proxy.d.ts +3 -0
  854. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-proxy.js +2 -0
  855. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-route-branch-handler.d.ts +10 -0
  856. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-route-branch-handler.js +11 -0
  857. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-status-projection.d.ts +36 -0
  858. package/node_modules/@bytetrue/byspace-server/dist/server/server/script-status-projection.js +200 -0
  859. package/node_modules/@bytetrue/byspace-server/dist/server/server/server-id.d.ts +17 -0
  860. package/node_modules/@bytetrue/byspace-server/dist/server/server/server-id.js +68 -0
  861. package/node_modules/@bytetrue/byspace-server/dist/server/server/service-proxy.d.ts +237 -0
  862. package/node_modules/@bytetrue/byspace-server/dist/server/server/service-proxy.js +714 -0
  863. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/agent-config/agent-config-session.d.ts +50 -0
  864. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/agent-config/agent-config-session.js +98 -0
  865. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/agent-updates/agent-updates-service.d.ts +59 -0
  866. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/agent-updates/agent-updates-service.js +220 -0
  867. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/chat/chat-schedule-loop-session.d.ts +120 -0
  868. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/chat/chat-schedule-loop-session.js +489 -0
  869. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/checkout/checkout-session.d.ts +140 -0
  870. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/checkout/checkout-session.js +927 -0
  871. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/checkout/git-metadata-generator.d.ts +53 -0
  872. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/checkout/git-metadata-generator.js +159 -0
  873. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-self-update-session-controller.d.ts +32 -0
  874. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-self-update-session-controller.js +88 -0
  875. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-self-updater.d.ts +32 -0
  876. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-self-updater.js +56 -0
  877. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-session.d.ts +76 -0
  878. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/daemon-session.js +148 -0
  879. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/diagnostics.d.ts +41 -0
  880. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/diagnostics.js +431 -0
  881. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/install-origin.d.ts +7 -0
  882. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/install-origin.js +64 -0
  883. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/npm-global-cli.d.ts +29 -0
  884. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/daemon/npm-global-cli.js +98 -0
  885. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/files/workspace-files-session.d.ts +43 -0
  886. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/files/workspace-files-session.js +218 -0
  887. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/git-mutation/git-mutation-service.d.ts +34 -0
  888. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/git-mutation/git-mutation-service.js +71 -0
  889. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/project-config/project-config-session.d.ts +34 -0
  890. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/project-config/project-config-session.js +125 -0
  891. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/provider/provider-catalog-session.d.ts +74 -0
  892. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/provider/provider-catalog-session.js +343 -0
  893. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/voice/voice-session.d.ts +166 -0
  894. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/voice/voice-session.js +904 -0
  895. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/voice/voice-turn-controller.d.ts +38 -0
  896. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/voice/voice-turn-controller.js +393 -0
  897. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.d.ts +36 -0
  898. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-git-observer/workspace-git-observer-service.js +134 -0
  899. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.d.ts +34 -0
  900. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-provisioning/workspace-provisioning-service.js +190 -0
  901. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-scripts/workspace-scripts-service.d.ts +41 -0
  902. package/node_modules/@bytetrue/byspace-server/dist/server/server/session/workspace-scripts/workspace-scripts-service.js +100 -0
  903. package/node_modules/@bytetrue/byspace-server/dist/server/server/session.d.ts +386 -0
  904. package/node_modules/@bytetrue/byspace-server/dist/server/server/session.js +4501 -0
  905. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/audio.d.ts +10 -0
  906. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/audio.js +101 -0
  907. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/provider-resolver.d.ts +3 -0
  908. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/provider-resolver.js +7 -0
  909. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/config.d.ts +30 -0
  910. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/config.js +134 -0
  911. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/models.d.ts +11 -0
  912. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/models.js +17 -0
  913. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/runtime.d.ts +31 -0
  914. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/runtime.js +135 -0
  915. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/assets/silero_vad.onnx +0 -0
  916. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/model-catalog.d.ts +56 -0
  917. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/model-catalog.js +74 -0
  918. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/model-downloader.d.ts +15 -0
  919. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/model-downloader.js +142 -0
  920. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.d.ts +49 -0
  921. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-offline-recognizer.js +73 -0
  922. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.d.ts +9 -0
  923. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-onnx-node-loader.js +107 -0
  924. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.d.ts +28 -0
  925. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-realtime-session.js +137 -0
  926. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.d.ts +21 -0
  927. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-parakeet-stt.js +133 -0
  928. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.d.ts +18 -0
  929. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  930. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-tts.d.ts +21 -0
  931. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/sherpa-tts.js +100 -0
  932. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.d.ts +19 -0
  933. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/silero-vad-provider.js +49 -0
  934. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/silero-vad-session.d.ts +38 -0
  935. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/sherpa/silero-vad-session.js +176 -0
  936. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-bytes.d.ts +4 -0
  937. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-bytes.js +9 -0
  938. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-client.d.ts +93 -0
  939. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-client.js +590 -0
  940. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-process.d.ts +2 -0
  941. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-process.js +270 -0
  942. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-protocol.d.ts +95 -0
  943. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/local/worker-protocol.js +2 -0
  944. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/config.d.ts +19 -0
  945. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/config.js +148 -0
  946. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/runtime.d.ts +29 -0
  947. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/runtime.js +102 -0
  948. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/stt.d.ts +23 -0
  949. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/stt.js +209 -0
  950. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/tts.d.ts +19 -0
  951. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/providers/openai/tts.js +48 -0
  952. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-config-resolver.d.ts +11 -0
  953. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-config-resolver.js +132 -0
  954. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-provider.d.ts +59 -0
  955. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-provider.js +2 -0
  956. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-runtime.d.ts +45 -0
  957. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-runtime.js +562 -0
  958. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-types.d.ts +22 -0
  959. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/speech-types.js +8 -0
  960. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/turn-detection-provider.d.ts +23 -0
  961. package/node_modules/@bytetrue/byspace-server/dist/server/server/speech/turn-detection-provider.js +2 -0
  962. package/node_modules/@bytetrue/byspace-server/dist/server/server/utils/diff-highlighter.d.ts +57 -0
  963. package/node_modules/@bytetrue/byspace-server/dist/server/server/utils/diff-highlighter.js +279 -0
  964. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-config.d.ts +15 -0
  965. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-config.js +54 -0
  966. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-permission-policy.d.ts +4 -0
  967. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-permission-policy.js +13 -0
  968. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-types.d.ts +12 -0
  969. package/node_modules/@bytetrue/byspace-server/dist/server/server/voice-types.js +2 -0
  970. package/node_modules/@bytetrue/byspace-server/dist/server/server/web-ui.d.ts +10 -0
  971. package/node_modules/@bytetrue/byspace-server/dist/server/server/web-ui.js +205 -0
  972. package/node_modules/@bytetrue/byspace-server/dist/server/server/websocket/runtime-metrics.d.ts +94 -0
  973. package/node_modules/@bytetrue/byspace-server/dist/server/server/websocket/runtime-metrics.js +148 -0
  974. package/node_modules/@bytetrue/byspace-server/dist/server/server/websocket-server.d.ts +167 -0
  975. package/node_modules/@bytetrue/byspace-server/dist/server/server/websocket-server.js +1650 -0
  976. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-archive-service.d.ts +65 -0
  977. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-archive-service.js +229 -0
  978. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-auto-name.d.ts +55 -0
  979. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-auto-name.js +128 -0
  980. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-bootstrap-dedupe.d.ts +34 -0
  981. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-bootstrap-dedupe.js +23 -0
  982. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-directory.d.ts +93 -0
  983. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-directory.js +421 -0
  984. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-git-metadata.d.ts +24 -0
  985. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-git-metadata.js +55 -0
  986. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-git-service.d.ts +257 -0
  987. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-git-service.js +1386 -0
  988. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-reconciliation-service.d.ts +57 -0
  989. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-reconciliation-service.js +278 -0
  990. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry-bootstrap.d.ts +13 -0
  991. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry-bootstrap.js +121 -0
  992. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry-model.d.ts +55 -0
  993. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry-model.js +190 -0
  994. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry.d.ts +121 -0
  995. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-registry.js +211 -0
  996. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
  997. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-script-runtime-store.js +78 -0
  998. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-service-env.d.ts +18 -0
  999. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-service-env.js +85 -0
  1000. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-service-port-registry.d.ts +19 -0
  1001. package/node_modules/@bytetrue/byspace-server/dist/server/server/workspace-service-port-registry.js +59 -0
  1002. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree/commands.d.ts +55 -0
  1003. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree/commands.js +107 -0
  1004. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-bootstrap.d.ts +76 -0
  1005. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-bootstrap.js +720 -0
  1006. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-branch-name-generator.d.ts +35 -0
  1007. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-branch-name-generator.js +91 -0
  1008. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-core.d.ts +31 -0
  1009. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-core.js +105 -0
  1010. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-errors.d.ts +12 -0
  1011. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-errors.js +28 -0
  1012. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-session.d.ts +152 -0
  1013. package/node_modules/@bytetrue/byspace-server/dist/server/server/worktree-session.js +466 -0
  1014. package/node_modules/@bytetrue/byspace-server/dist/server/services/github-service.d.ts +337 -0
  1015. package/node_modules/@bytetrue/byspace-server/dist/server/services/github-service.js +2101 -0
  1016. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/manifest.d.ts +4 -0
  1017. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/manifest.js +52 -0
  1018. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/provider.d.ts +17 -0
  1019. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/provider.js +2 -0
  1020. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/claude.d.ts +26 -0
  1021. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/claude.js +217 -0
  1022. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/codex.d.ts +23 -0
  1023. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/codex.js +211 -0
  1024. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/copilot.d.ts +17 -0
  1025. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/copilot.js +75 -0
  1026. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/cursor.d.ts +17 -0
  1027. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/cursor.js +123 -0
  1028. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/grok.d.ts +18 -0
  1029. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/grok.js +89 -0
  1030. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/kimi.d.ts +20 -0
  1031. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/kimi.js +89 -0
  1032. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/minimax.d.ts +29 -0
  1033. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/minimax.js +227 -0
  1034. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/zai.d.ts +17 -0
  1035. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/providers/zai.js +58 -0
  1036. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/service.d.ts +28 -0
  1037. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/service.js +58 -0
  1038. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/usage.d.ts +22 -0
  1039. package/node_modules/@bytetrue/byspace-server/dist/server/services/quota-fetcher/usage.js +49 -0
  1040. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/activity/terminal-activity-tracker.d.ts +20 -0
  1041. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/activity/terminal-activity-tracker.js +59 -0
  1042. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/agent-hook-installer.d.ts +62 -0
  1043. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/agent-hook-installer.js +117 -0
  1044. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/claude/claude-settings.d.ts +7 -0
  1045. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/claude/claude-settings.js +88 -0
  1046. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/claude/claude.d.ts +4 -0
  1047. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/claude/claude.js +47 -0
  1048. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/codex/codex-settings.d.ts +7 -0
  1049. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/codex/codex-settings.js +99 -0
  1050. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/codex/codex.d.ts +4 -0
  1051. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/codex/codex.js +30 -0
  1052. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/opencode/opencode-plugin.d.ts +4 -0
  1053. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/opencode/opencode-plugin.js +46 -0
  1054. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/opencode/opencode.d.ts +3 -0
  1055. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/opencode/opencode.js +23 -0
  1056. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/provider-registry.d.ts +24 -0
  1057. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/provider-registry.js +36 -0
  1058. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/terminal-agent-hook-setting.d.ts +10 -0
  1059. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/agent-hooks/terminal-agent-hook-setting.js +26 -0
  1060. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
  1061. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/shell-integration/zsh/byspace-integration.zsh +32 -0
  1062. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-capture.d.ts +12 -0
  1063. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-capture.js +43 -0
  1064. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-manager-factory.d.ts +6 -0
  1065. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-manager-factory.js +5 -0
  1066. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-manager.d.ts +80 -0
  1067. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-manager.js +321 -0
  1068. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-output-coalescer.d.ts +34 -0
  1069. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-output-coalescer.js +73 -0
  1070. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-restore.d.ts +18 -0
  1071. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-restore.js +52 -0
  1072. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-session-controller.d.ts +85 -0
  1073. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-session-controller.js +821 -0
  1074. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-ts-loader.mjs +20 -0
  1075. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-worker-process.d.ts +2 -0
  1076. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-worker-process.js +304 -0
  1077. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-worker-protocol.d.ts +121 -0
  1078. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal-worker-protocol.js +2 -0
  1079. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal.d.ts +151 -0
  1080. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/terminal.js +1157 -0
  1081. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/worker-terminal-manager.d.ts +20 -0
  1082. package/node_modules/@bytetrue/byspace-server/dist/server/terminal/worker-terminal-manager.js +688 -0
  1083. package/node_modules/@bytetrue/byspace-server/dist/server/utils/build-metadata-prompt.d.ts +19 -0
  1084. package/node_modules/@bytetrue/byspace-server/dist/server/utils/build-metadata-prompt.js +29 -0
  1085. package/node_modules/@bytetrue/byspace-server/dist/server/utils/byspace-config-file.d.ts +30 -0
  1086. package/node_modules/@bytetrue/byspace-server/dist/server/utils/byspace-config-file.js +90 -0
  1087. package/node_modules/@bytetrue/byspace-server/dist/server/utils/checkout-git.d.ts +253 -0
  1088. package/node_modules/@bytetrue/byspace-server/dist/server/utils/checkout-git.js +2238 -0
  1089. package/node_modules/@bytetrue/byspace-server/dist/server/utils/directory-suggestions.d.ts +28 -0
  1090. package/node_modules/@bytetrue/byspace-server/dist/server/utils/directory-suggestions.js +473 -0
  1091. package/node_modules/@bytetrue/byspace-server/dist/server/utils/git-rev-parse-path.d.ts +3 -0
  1092. package/node_modules/@bytetrue/byspace-server/dist/server/utils/git-rev-parse-path.js +21 -0
  1093. package/node_modules/@bytetrue/byspace-server/dist/server/utils/github-remote.d.ts +9 -0
  1094. package/node_modules/@bytetrue/byspace-server/dist/server/utils/github-remote.js +62 -0
  1095. package/node_modules/@bytetrue/byspace-server/dist/server/utils/path.d.ts +18 -0
  1096. package/node_modules/@bytetrue/byspace-server/dist/server/utils/path.js +123 -0
  1097. package/node_modules/@bytetrue/byspace-server/dist/server/utils/project-icon.d.ts +39 -0
  1098. package/node_modules/@bytetrue/byspace-server/dist/server/utils/project-icon.js +364 -0
  1099. package/node_modules/@bytetrue/byspace-server/dist/server/utils/promise-timeout.d.ts +9 -0
  1100. package/node_modules/@bytetrue/byspace-server/dist/server/utils/promise-timeout.js +25 -0
  1101. package/node_modules/@bytetrue/byspace-server/dist/server/utils/run-git-command.d.ts +37 -0
  1102. package/node_modules/@bytetrue/byspace-server/dist/server/utils/run-git-command.js +232 -0
  1103. package/node_modules/@bytetrue/byspace-server/dist/server/utils/spawn.d.ts +25 -0
  1104. package/node_modules/@bytetrue/byspace-server/dist/server/utils/spawn.js +59 -0
  1105. package/node_modules/@bytetrue/byspace-server/dist/server/utils/string-command-shell.d.ts +13 -0
  1106. package/node_modules/@bytetrue/byspace-server/dist/server/utils/string-command-shell.js +37 -0
  1107. package/node_modules/@bytetrue/byspace-server/dist/server/utils/tree-kill.d.ts +18 -0
  1108. package/node_modules/@bytetrue/byspace-server/dist/server/utils/tree-kill.js +77 -0
  1109. package/node_modules/@bytetrue/byspace-server/dist/server/utils/windows-command.d.ts +15 -0
  1110. package/node_modules/@bytetrue/byspace-server/dist/server/utils/windows-command.js +41 -0
  1111. package/node_modules/@bytetrue/byspace-server/dist/server/utils/worktree-metadata.d.ts +39 -0
  1112. package/node_modules/@bytetrue/byspace-server/dist/server/utils/worktree-metadata.js +174 -0
  1113. package/node_modules/@bytetrue/byspace-server/dist/server/utils/worktree.d.ts +205 -0
  1114. package/node_modules/@bytetrue/byspace-server/dist/server/utils/worktree.js +1129 -0
  1115. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css +1 -0
  1116. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css.br +0 -0
  1117. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/css/xterm-3bb1704bf6cb0876640973dc0244b4cb.css.gz +0 -0
  1118. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-09af1f9a582567d448f8e2abd4a93265.js +15938 -0
  1119. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-09af1f9a582567d448f8e2abd4a93265.js.br +0 -0
  1120. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/index-09af1f9a582567d448f8e2abd4a93265.js.gz +0 -0
  1121. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-2ee2179f5dd960ab4ac4484c6858cb23.js +1 -0
  1122. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-2ee2179f5dd960ab4ac4484c6858cb23.js.br +0 -0
  1123. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-2ee2179f5dd960ab4ac4484c6858cb23.js.gz +0 -0
  1124. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/apple-touch-icon.png +0 -0
  1125. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.0a328cd9c1afd0afe8e3b1ec5165b1b4.png +0 -0
  1126. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon.35ba0eaec5a4f5ed12ca16fabeae451d.png +0 -0
  1127. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55.png +0 -0
  1128. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@2x.png +0 -0
  1129. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@3x.png +0 -0
  1130. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@4x.png +0 -0
  1131. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7.png +0 -0
  1132. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@2x.png +0 -0
  1133. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@3x.png +0 -0
  1134. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@4x.png +0 -0
  1135. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon.286d67d3f74808a60a78d3ebf1a5fb57.png +0 -0
  1136. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/arrow_down.017bc6ba3fc25503e5eb5e53826d48a8.png +0 -0
  1137. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/error.d1ea1496f9057eb392d5bbf3732a61b7.png +0 -0
  1138. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/file.19eeb73b9593a38f8e9f418337fc7d10.png +0 -0
  1139. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/forward.d8b800c443b8972542883e0b9de2bdc6.png +0 -0
  1140. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/pkg.ab19f4cbc543357183a20571f68380a3.png +0 -0
  1141. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/sitemap.412dd9275b6b48ad28f5e3d81bb1f626.png +0 -0
  1142. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/__node_modules/expo-router/assets/unmatched.20e71bdf79e3a97bf55fd9e164041578.png +0 -0
  1143. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-dark-attention.882b3a27dcb2073e9e31b334f9ed9728.png +0 -0
  1144. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-dark-running.8112342ff0d39e047a7f8d4fad9402f3.png +0 -0
  1145. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-dark.8005ed36ac07a5a7c60de25780897bd4.png +0 -0
  1146. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-light-attention.882b3a27dcb2073e9e31b334f9ed9728.png +0 -0
  1147. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-light-running.8112342ff0d39e047a7f8d4fad9402f3.png +0 -0
  1148. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/favicon-light.8005ed36ac07a5a7c60de25780897bd4.png +0 -0
  1149. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/assets/assets/images/notification-icon.3bf81d33ddbf380606bdd248ba83e158.png +0 -0
  1150. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/favicon.ico +0 -0
  1151. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html +91 -0
  1152. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html.br +0 -0
  1153. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/index.html.gz +0 -0
  1154. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/manifest.json +27 -0
  1155. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/manifest.json.br +0 -0
  1156. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/manifest.json.gz +0 -0
  1157. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/metadata.json +1 -0
  1158. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/metadata.json.br +1 -0
  1159. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/metadata.json.gz +0 -0
  1160. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/pwa-icon-192.png +0 -0
  1161. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/pwa-icon-512.png +0 -0
  1162. package/node_modules/@bytetrue/byspace-server/dist/server/web-ui/robots.txt +2 -0
  1163. package/node_modules/@bytetrue/byspace-server/dist/src/executable-resolution/executable-resolution.js +118 -0
  1164. package/node_modules/@bytetrue/byspace-server/dist/src/executable-resolution/windows.js +65 -0
  1165. package/node_modules/@bytetrue/byspace-server/dist/src/server/agent/provider-launch-config.js +167 -0
  1166. package/node_modules/@bytetrue/byspace-server/dist/src/server/byspace-env.js +46 -0
  1167. package/node_modules/@bytetrue/byspace-server/dist/src/server/byspace-home.js +19 -0
  1168. package/node_modules/@bytetrue/byspace-server/dist/src/server/persisted-config.js +391 -0
  1169. package/node_modules/@bytetrue/byspace-server/dist/src/server/pid-lock.js +168 -0
  1170. package/node_modules/@bytetrue/byspace-server/dist/src/server/private-files.js +37 -0
  1171. package/node_modules/@bytetrue/byspace-server/dist/src/server/speech/providers/local/sherpa/sherpa-runtime-env.js +84 -0
  1172. package/node_modules/@bytetrue/byspace-server/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
  1173. package/node_modules/@bytetrue/byspace-server/dist/src/terminal/shell-integration/zsh/byspace-integration.zsh +32 -0
  1174. package/node_modules/@bytetrue/byspace-server/dist/src/utils/spawn.js +59 -0
  1175. package/node_modules/@bytetrue/byspace-server/dist/src/utils/windows-command.js +41 -0
  1176. package/node_modules/@bytetrue/byspace-server/package.json +119 -0
  1177. package/package.json +110 -0
@@ -0,0 +1,4000 @@
1
+ import { z } from "zod";
2
+ import { TerminalActivitySchema } from "./terminal-activity.js";
3
+ import { CLIENT_CAPS } from "./client-capabilities.js";
4
+ import { AGENT_LIFECYCLE_STATUSES } from "./agent-lifecycle.js";
5
+ import { MAX_EXPLICIT_AGENT_TITLE_CHARS } from "./agent-title-limits.js";
6
+ import { AgentProviderSchema } from "./provider-manifest.js";
7
+ import { TOOL_CALL_ICON_NAMES } from "./agent-types.js";
8
+ import { ChatCreateRequestSchema, ChatListRequestSchema, ChatInspectRequestSchema, ChatDeleteRequestSchema, ChatPostRequestSchema, ChatReadRequestSchema, ChatWaitRequestSchema, ChatCreateResponseSchema, ChatListResponseSchema, ChatInspectResponseSchema, ChatDeleteResponseSchema, ChatPostResponseSchema, ChatReadResponseSchema, ChatWaitResponseSchema, } from "./chat/rpc-schemas.js";
9
+ import { ScheduleCreateRequestSchema, ScheduleListRequestSchema, ScheduleInspectRequestSchema, ScheduleLogsRequestSchema, SchedulePauseRequestSchema, ScheduleResumeRequestSchema, ScheduleDeleteRequestSchema, ScheduleRunOnceRequestSchema, ScheduleUpdateRequestSchema, ScheduleCreateResponseSchema, ScheduleListResponseSchema, ScheduleInspectResponseSchema, ScheduleLogsResponseSchema, SchedulePauseResponseSchema, ScheduleResumeResponseSchema, ScheduleDeleteResponseSchema, ScheduleRunOnceResponseSchema, ScheduleUpdateResponseSchema, } from "./schedule/rpc-schemas.js";
10
+ import { LoopRunRequestSchema, LoopListRequestSchema, LoopInspectRequestSchema, LoopLogsRequestSchema, LoopStopRequestSchema, LoopRunResponseSchema, LoopListResponseSchema, LoopInspectResponseSchema, LoopLogsResponseSchema, LoopStopResponseSchema, } from "./loop/rpc-schemas.js";
11
+ import { BySpaceConfigRawSchema, BySpaceLifecycleCommandRawSchema, BySpaceMetadataGenerationEntrySchema, BySpaceMetadataGenerationSchema, BySpaceScriptEntryRawSchema, BySpaceWorktreeConfigRawSchema, BySpaceConfigRevisionSchema, ProjectConfigRpcErrorSchema, } from "./byspace-config-schema.js";
12
+ export { BySpaceConfigRawSchema, BySpaceLifecycleCommandRawSchema, BySpaceMetadataGenerationEntrySchema, BySpaceMetadataGenerationSchema, BySpaceScriptEntryRawSchema, BySpaceWorktreeConfigRawSchema, };
13
+ // ---------------------------------------------------------------------------
14
+ // Mutable daemon config schemas (shared between server store and client)
15
+ // ---------------------------------------------------------------------------
16
+ const MutableDaemonProviderModelSchema = z
17
+ .object({
18
+ id: z.string().min(1),
19
+ label: z.string().min(1),
20
+ description: z.string().optional(),
21
+ isDefault: z.boolean().optional(),
22
+ })
23
+ .passthrough();
24
+ const MutableDaemonProviderConfigSchema = z
25
+ .object({
26
+ enabled: z.boolean().optional(),
27
+ additionalModels: z.array(MutableDaemonProviderModelSchema).optional(),
28
+ })
29
+ .passthrough();
30
+ const MutableStructuredGenerationProviderSchema = z
31
+ .object({
32
+ provider: z.string().min(1),
33
+ model: z.string().min(1).optional(),
34
+ thinkingOptionId: z.string().min(1).optional(),
35
+ })
36
+ .passthrough();
37
+ const MutableMetadataGenerationConfigSchema = z
38
+ .object({
39
+ providers: z.array(MutableStructuredGenerationProviderSchema).default([]),
40
+ })
41
+ .passthrough();
42
+ export const TerminalProfileSchema = z
43
+ .object({
44
+ id: z.string(),
45
+ name: z.string(),
46
+ command: z.string(),
47
+ args: z.array(z.string()).optional(),
48
+ icon: z.string().optional(),
49
+ })
50
+ .passthrough();
51
+ export const MutableDaemonConfigSchema = z
52
+ .object({
53
+ mcp: z
54
+ .object({
55
+ injectIntoAgents: z.boolean(),
56
+ })
57
+ .passthrough(),
58
+ providers: z.record(z.string(), MutableDaemonProviderConfigSchema).default({}),
59
+ metadataGeneration: MutableMetadataGenerationConfigSchema.default({ providers: [] }),
60
+ autoArchiveAfterMerge: z.boolean().default(false),
61
+ enableTerminalAgentHooks: z.boolean().default(false),
62
+ appendSystemPrompt: z.string().default(""),
63
+ terminalProfiles: z.array(TerminalProfileSchema).optional(),
64
+ })
65
+ .passthrough();
66
+ export const MutableDaemonConfigPatchSchema = z
67
+ .object({
68
+ mcp: MutableDaemonConfigSchema.shape.mcp.partial().optional(),
69
+ providers: z
70
+ .record(z.string(), MutableDaemonProviderConfigSchema.partial().passthrough())
71
+ .optional(),
72
+ metadataGeneration: MutableMetadataGenerationConfigSchema.partial().optional(),
73
+ autoArchiveAfterMerge: z.boolean().optional(),
74
+ enableTerminalAgentHooks: z.boolean().optional(),
75
+ appendSystemPrompt: z.string().optional(),
76
+ terminalProfiles: z.array(TerminalProfileSchema).optional(),
77
+ })
78
+ .partial()
79
+ .passthrough();
80
+ export const AgentStatusSchema = z.enum(AGENT_LIFECYCLE_STATUSES);
81
+ const AgentModeSchema = z.object({
82
+ id: z.string(),
83
+ label: z.string(),
84
+ description: z.string().optional(),
85
+ icon: z.string().optional(),
86
+ colorTier: z.string().optional(),
87
+ });
88
+ const ProviderStatusSchema = z.enum([
89
+ "ready",
90
+ "loading",
91
+ "error",
92
+ "unavailable",
93
+ ]);
94
+ const AgentSelectOptionSchema = z.object({
95
+ id: z.string(),
96
+ label: z.string(),
97
+ description: z.string().optional(),
98
+ isDefault: z.boolean().optional(),
99
+ metadata: z.record(z.string(), z.unknown()).optional(),
100
+ });
101
+ const AgentProviderNoticeSchema = z.discriminatedUnion("type", [
102
+ z.object({ type: z.literal("info"), message: z.string() }),
103
+ z.object({ type: z.literal("warning"), message: z.string() }),
104
+ z.object({ type: z.literal("error"), message: z.string() }),
105
+ ]);
106
+ export const AgentFeatureToggleSchema = z.object({
107
+ type: z.literal("toggle"),
108
+ id: z.string(),
109
+ label: z.string(),
110
+ description: z.string().optional(),
111
+ tooltip: z.string().optional(),
112
+ icon: z.string().optional(),
113
+ value: z.boolean(),
114
+ });
115
+ export const AgentFeatureSelectSchema = z.object({
116
+ type: z.literal("select"),
117
+ id: z.string(),
118
+ label: z.string(),
119
+ description: z.string().optional(),
120
+ tooltip: z.string().optional(),
121
+ icon: z.string().optional(),
122
+ value: z.string().nullable(),
123
+ options: z.array(AgentSelectOptionSchema),
124
+ });
125
+ export const AgentFeatureSchema = z.discriminatedUnion("type", [
126
+ AgentFeatureToggleSchema,
127
+ AgentFeatureSelectSchema,
128
+ ]);
129
+ const AgentModelDefinitionSchema = z.object({
130
+ provider: AgentProviderSchema,
131
+ id: z.string(),
132
+ label: z.string(),
133
+ description: z.string().optional(),
134
+ isDefault: z.boolean().optional(),
135
+ metadata: z.record(z.string(), z.unknown()).optional(),
136
+ contextWindowMaxTokens: z.number().optional(),
137
+ thinkingOptions: z.array(AgentSelectOptionSchema).optional(),
138
+ defaultThinkingOptionId: z.string().optional(),
139
+ });
140
+ export const ProviderSnapshotEntrySchema = z.object({
141
+ provider: AgentProviderSchema,
142
+ status: ProviderStatusSchema,
143
+ enabled: z.boolean().optional().default(true),
144
+ error: z.string().optional(),
145
+ models: z.array(AgentModelDefinitionSchema).optional(),
146
+ modes: z.array(AgentModeSchema).optional(),
147
+ fetchedAt: z.string().optional(),
148
+ label: z.string().optional(),
149
+ description: z.string().optional(),
150
+ defaultModeId: z.string().nullable().optional(),
151
+ });
152
+ const AgentCapabilityFlagsSchema = z
153
+ .object({
154
+ supportsStreaming: z.boolean(),
155
+ supportsSessionPersistence: z.boolean(),
156
+ supportsSessionListing: z.boolean().optional(),
157
+ supportsDynamicModes: z.boolean(),
158
+ supportsMcpServers: z.boolean(),
159
+ supportsReasoningStream: z.boolean(),
160
+ supportsToolInvocations: z.boolean(),
161
+ // COMPAT(rewind): added in v0.1.X, drop when floor >= v0.1.X.
162
+ supportsRewindConversation: z.boolean().optional().default(false),
163
+ // COMPAT(rewind): added in v0.1.X, drop when floor >= v0.1.X.
164
+ supportsRewindFiles: z.boolean().optional().default(false),
165
+ // COMPAT(rewind): added in v0.1.X, drop when floor >= v0.1.X.
166
+ supportsRewindBoth: z.boolean().optional().default(false),
167
+ })
168
+ .catchall(z.boolean());
169
+ const AgentUsageSchema = z.object({
170
+ inputTokens: z.number().optional(),
171
+ cachedInputTokens: z.number().optional(),
172
+ outputTokens: z.number().optional(),
173
+ totalCostUsd: z.number().optional(),
174
+ contextWindowMaxTokens: z.number().optional(),
175
+ contextWindowUsedTokens: z.number().optional(),
176
+ });
177
+ const McpStdioServerConfigSchema = z.object({
178
+ type: z.literal("stdio"),
179
+ command: z.string(),
180
+ args: z.array(z.string()).optional(),
181
+ env: z.record(z.string(), z.string()).optional(),
182
+ alwaysLoad: z.boolean().optional(),
183
+ });
184
+ const McpHttpServerConfigSchema = z.object({
185
+ type: z.literal("http"),
186
+ url: z.string(),
187
+ headers: z.record(z.string(), z.string()).optional(),
188
+ alwaysLoad: z.boolean().optional(),
189
+ });
190
+ const McpSseServerConfigSchema = z.object({
191
+ type: z.literal("sse"),
192
+ url: z.string(),
193
+ headers: z.record(z.string(), z.string()).optional(),
194
+ alwaysLoad: z.boolean().optional(),
195
+ });
196
+ const McpServerConfigSchema = z.discriminatedUnion("type", [
197
+ McpStdioServerConfigSchema,
198
+ McpHttpServerConfigSchema,
199
+ McpSseServerConfigSchema,
200
+ ]);
201
+ const AgentSessionConfigSchema = z.object({
202
+ provider: AgentProviderSchema,
203
+ cwd: z.string(),
204
+ modeId: z.string().optional(),
205
+ model: z.string().optional(),
206
+ thinkingOptionId: z.string().optional(),
207
+ featureValues: z.record(z.string(), z.unknown()).optional(),
208
+ title: z.string().trim().min(1).max(MAX_EXPLICIT_AGENT_TITLE_CHARS).optional().nullable(),
209
+ approvalPolicy: z.string().optional(),
210
+ sandboxMode: z.string().optional(),
211
+ networkAccess: z.boolean().optional(),
212
+ webSearch: z.boolean().optional(),
213
+ extra: z
214
+ .object({
215
+ codex: z.record(z.string(), z.unknown()).optional(),
216
+ claude: z.record(z.string(), z.unknown()).optional(),
217
+ })
218
+ .partial()
219
+ .optional(),
220
+ systemPrompt: z.string().optional(),
221
+ mcpServers: z.record(z.string(), McpServerConfigSchema).optional(),
222
+ });
223
+ const AgentPermissionUpdateSchema = z.record(z.string(), z.unknown());
224
+ const AgentPermissionActionSchema = z.object({
225
+ id: z.string(),
226
+ label: z.string(),
227
+ behavior: z.enum(["allow", "deny"]),
228
+ variant: z.enum(["primary", "secondary", "danger"]).optional(),
229
+ intent: z.enum(["implement", "implement_resume", "dismiss"]).optional(),
230
+ });
231
+ export const AgentPermissionResponseSchema = z.discriminatedUnion("behavior", [
232
+ z.object({
233
+ behavior: z.literal("allow"),
234
+ selectedActionId: z.string().optional(),
235
+ updatedInput: z.record(z.string(), z.unknown()).optional(),
236
+ updatedPermissions: z.array(AgentPermissionUpdateSchema).optional(),
237
+ }),
238
+ z.object({
239
+ behavior: z.literal("deny"),
240
+ selectedActionId: z.string().optional(),
241
+ message: z.string().optional(),
242
+ interrupt: z.boolean().optional(),
243
+ }),
244
+ ]);
245
+ export const AgentPermissionRequestPayloadSchema = z.object({
246
+ id: z.string(),
247
+ provider: AgentProviderSchema,
248
+ name: z.string(),
249
+ kind: z.enum(["tool", "plan", "question", "mode", "other"]),
250
+ title: z.string().optional(),
251
+ description: z.string().optional(),
252
+ input: z.record(z.string(), z.unknown()).optional(),
253
+ detail: z.lazy(() => ToolCallDetailPayloadSchema).optional(),
254
+ suggestions: z.array(AgentPermissionUpdateSchema).optional(),
255
+ actions: z.array(AgentPermissionActionSchema).optional(),
256
+ metadata: z.record(z.string(), z.unknown()).optional(),
257
+ });
258
+ const UnknownValueSchema = z.union([
259
+ z.null(),
260
+ z.boolean(),
261
+ z.number(),
262
+ z.string(),
263
+ z.array(z.unknown()),
264
+ z.object({}).passthrough(),
265
+ ]);
266
+ const NonNullUnknownSchema = z.union([
267
+ z.boolean(),
268
+ z.number(),
269
+ z.string(),
270
+ z.array(z.unknown()),
271
+ z.object({}).passthrough(),
272
+ ]);
273
+ const WorktreeSetupCommandSnapshotSchema = z.object({
274
+ index: z.number().int().positive(),
275
+ command: z.string(),
276
+ cwd: z.string(),
277
+ log: z.string().optional().default(""),
278
+ status: z.enum(["running", "completed", "failed"]),
279
+ exitCode: z.number().nullable(),
280
+ durationMs: z.number().nonnegative().optional(),
281
+ });
282
+ const WorktreeSetupDetailPayloadSchema = z.object({
283
+ type: z.literal("worktree_setup"),
284
+ worktreePath: z.string(),
285
+ branchName: z.string(),
286
+ log: z.string(),
287
+ commands: z.array(WorktreeSetupCommandSnapshotSchema),
288
+ truncated: z.boolean().optional(),
289
+ });
290
+ const ToolCallDetailPayloadSchema = z.discriminatedUnion("type", [
291
+ WorktreeSetupDetailPayloadSchema,
292
+ z.object({
293
+ type: z.literal("shell"),
294
+ command: z.string(),
295
+ cwd: z.string().optional(),
296
+ output: z.string().optional(),
297
+ exitCode: z.number().nullable().optional(),
298
+ }),
299
+ z.object({
300
+ type: z.literal("read"),
301
+ filePath: z.string(),
302
+ content: z.string().optional(),
303
+ offset: z.number().optional(),
304
+ limit: z.number().optional(),
305
+ }),
306
+ z.object({
307
+ type: z.literal("edit"),
308
+ filePath: z.string(),
309
+ oldString: z.string().optional(),
310
+ newString: z.string().optional(),
311
+ unifiedDiff: z.string().optional(),
312
+ }),
313
+ z.object({
314
+ type: z.literal("write"),
315
+ filePath: z.string(),
316
+ content: z.string().optional(),
317
+ }),
318
+ z.object({
319
+ type: z.literal("search"),
320
+ query: z.string(),
321
+ toolName: z.enum(["search", "grep", "glob", "web_search"]).optional(),
322
+ content: z.string().optional(),
323
+ filePaths: z.array(z.string()).optional(),
324
+ webResults: z
325
+ .array(z.object({
326
+ title: z.string(),
327
+ url: z.string(),
328
+ }))
329
+ .optional(),
330
+ annotations: z.array(z.string()).optional(),
331
+ numFiles: z.number().optional(),
332
+ numMatches: z.number().optional(),
333
+ durationMs: z.number().optional(),
334
+ durationSeconds: z.number().optional(),
335
+ truncated: z.boolean().optional(),
336
+ mode: z.enum(["content", "files_with_matches", "count"]).optional(),
337
+ }),
338
+ z.object({
339
+ type: z.literal("fetch"),
340
+ url: z.string(),
341
+ prompt: z.string().optional(),
342
+ result: z.string().optional(),
343
+ code: z.number().optional(),
344
+ codeText: z.string().optional(),
345
+ bytes: z.number().optional(),
346
+ durationMs: z.number().optional(),
347
+ }),
348
+ z.object({
349
+ type: z.literal("sub_agent"),
350
+ subAgentType: z.string().optional(),
351
+ description: z.string().optional(),
352
+ childSessionId: z.string().optional(),
353
+ log: z.string(),
354
+ // Compat cruft for clients <= 0.1.65-beta.3 that required this field. Producers still
355
+ // emit `[]`; nothing reads it. Drop the field (and the `[]` emissions) once those
356
+ // clients are no longer in the field.
357
+ actions: z
358
+ .array(z.object({
359
+ index: z.number().int().positive(),
360
+ toolName: z.string(),
361
+ summary: z.string().optional(),
362
+ }))
363
+ .optional(),
364
+ }),
365
+ z.object({
366
+ type: z.literal("plain_text"),
367
+ label: z.string().optional(),
368
+ text: z.string().optional(),
369
+ icon: z.enum(TOOL_CALL_ICON_NAMES).optional(),
370
+ }),
371
+ z.object({
372
+ type: z.literal("plan"),
373
+ text: z.string(),
374
+ }),
375
+ z.object({
376
+ type: z.literal("unknown"),
377
+ input: UnknownValueSchema,
378
+ output: UnknownValueSchema,
379
+ }),
380
+ ]);
381
+ const ToolCallBasePayloadSchema = z.object({
382
+ type: z.literal("tool_call"),
383
+ callId: z.string(),
384
+ name: z.string(),
385
+ detail: ToolCallDetailPayloadSchema,
386
+ metadata: z.record(z.string(), z.unknown()).optional(),
387
+ });
388
+ const ToolCallRunningPayloadSchema = ToolCallBasePayloadSchema.extend({
389
+ status: z.literal("running"),
390
+ error: z.null(),
391
+ });
392
+ const ToolCallCompletedPayloadSchema = ToolCallBasePayloadSchema.extend({
393
+ status: z.literal("completed"),
394
+ error: z.null(),
395
+ });
396
+ const ToolCallFailedPayloadSchema = ToolCallBasePayloadSchema.extend({
397
+ status: z.literal("failed"),
398
+ error: NonNullUnknownSchema,
399
+ });
400
+ const ToolCallCanceledPayloadSchema = ToolCallBasePayloadSchema.extend({
401
+ status: z.literal("canceled"),
402
+ error: z.null(),
403
+ });
404
+ const ToolCallTimelineItemPayloadSchema = z.discriminatedUnion("status", [
405
+ ToolCallRunningPayloadSchema,
406
+ ToolCallCompletedPayloadSchema,
407
+ ToolCallFailedPayloadSchema,
408
+ ToolCallCanceledPayloadSchema,
409
+ ]);
410
+ // zod-aot 0.20.4 miscompiles this as a nested discriminated union by omitting
411
+ // the inner tool_call branch from the generated outer dispatch.
412
+ export const AgentTimelineItemPayloadSchema = z.union([
413
+ z.object({
414
+ type: z.literal("user_message"),
415
+ text: z.string(),
416
+ messageId: z.string().optional(),
417
+ }),
418
+ z.object({
419
+ type: z.literal("assistant_message"),
420
+ text: z.string(),
421
+ messageId: z.string().optional(),
422
+ }),
423
+ z.object({
424
+ type: z.literal("reasoning"),
425
+ text: z.string(),
426
+ }),
427
+ ToolCallTimelineItemPayloadSchema,
428
+ z.object({
429
+ type: z.literal("todo"),
430
+ items: z.array(z.object({
431
+ text: z.string(),
432
+ completed: z.boolean(),
433
+ })),
434
+ }),
435
+ z.object({
436
+ type: z.literal("error"),
437
+ message: z.string(),
438
+ }),
439
+ z.object({
440
+ type: z.literal("compaction"),
441
+ status: z.enum(["loading", "completed"]),
442
+ trigger: z.enum(["auto", "manual"]).optional(),
443
+ preTokens: z.number().optional(),
444
+ }),
445
+ ]);
446
+ export const AgentStreamEventPayloadSchema = z.discriminatedUnion("type", [
447
+ z.object({
448
+ type: z.literal("thread_started"),
449
+ sessionId: z.string(),
450
+ provider: AgentProviderSchema,
451
+ }),
452
+ z.object({
453
+ type: z.literal("turn_started"),
454
+ provider: AgentProviderSchema,
455
+ }),
456
+ z.object({
457
+ type: z.literal("turn_completed"),
458
+ provider: AgentProviderSchema,
459
+ usage: AgentUsageSchema.optional(),
460
+ }),
461
+ z.object({
462
+ type: z.literal("turn_failed"),
463
+ provider: AgentProviderSchema,
464
+ error: z.string(),
465
+ code: z.string().optional(),
466
+ diagnostic: z.string().optional(),
467
+ }),
468
+ z.object({
469
+ type: z.literal("turn_canceled"),
470
+ provider: AgentProviderSchema,
471
+ reason: z.string(),
472
+ }),
473
+ z.object({
474
+ type: z.literal("timeline"),
475
+ provider: AgentProviderSchema,
476
+ item: AgentTimelineItemPayloadSchema,
477
+ }),
478
+ z.object({
479
+ type: z.literal("permission_requested"),
480
+ provider: AgentProviderSchema,
481
+ request: AgentPermissionRequestPayloadSchema,
482
+ }),
483
+ z.object({
484
+ type: z.literal("permission_resolved"),
485
+ provider: AgentProviderSchema,
486
+ requestId: z.string(),
487
+ resolution: AgentPermissionResponseSchema,
488
+ }),
489
+ z.object({
490
+ type: z.literal("attention_required"),
491
+ provider: AgentProviderSchema,
492
+ reason: z.enum(["finished", "error", "permission"]),
493
+ timestamp: z.string(),
494
+ shouldNotify: z.boolean(),
495
+ notification: z
496
+ .object({
497
+ title: z.string(),
498
+ body: z.string(),
499
+ data: z.object({
500
+ serverId: z.string(),
501
+ agentId: z.string(),
502
+ reason: z.enum(["finished", "error", "permission"]),
503
+ }),
504
+ })
505
+ .optional(),
506
+ }),
507
+ ]);
508
+ const AgentPersistenceHandleSchema = z
509
+ .object({
510
+ provider: AgentProviderSchema,
511
+ sessionId: z.string(),
512
+ nativeHandle: z.string().optional(),
513
+ metadata: z.record(z.string(), z.unknown()).optional(),
514
+ })
515
+ .nullable();
516
+ const AgentRuntimeInfoSchema = z.object({
517
+ provider: AgentProviderSchema,
518
+ sessionId: z.string().nullable(),
519
+ model: z.string().nullable().optional(),
520
+ thinkingOptionId: z.string().nullable().optional(),
521
+ modeId: z.string().nullable().optional(),
522
+ extra: z.record(z.string(), z.unknown()).optional(),
523
+ });
524
+ export const AgentSnapshotPayloadSchema = z.object({
525
+ id: z.string(),
526
+ provider: AgentProviderSchema,
527
+ cwd: z.string(),
528
+ workspaceId: z.string().optional(),
529
+ model: z.string().nullable(),
530
+ features: z.array(AgentFeatureSchema).optional(),
531
+ thinkingOptionId: z.string().nullable().optional(),
532
+ effectiveThinkingOptionId: z.string().nullable().optional(),
533
+ createdAt: z.string(),
534
+ updatedAt: z.string(),
535
+ lastUserMessageAt: z.string().nullable(),
536
+ status: AgentStatusSchema,
537
+ capabilities: AgentCapabilityFlagsSchema,
538
+ currentModeId: z.string().nullable(),
539
+ availableModes: z.array(AgentModeSchema),
540
+ pendingPermissions: z.array(AgentPermissionRequestPayloadSchema),
541
+ persistence: AgentPersistenceHandleSchema.nullable(),
542
+ runtimeInfo: AgentRuntimeInfoSchema.optional(),
543
+ lastUsage: AgentUsageSchema.optional(),
544
+ lastError: z.string().optional(),
545
+ title: z.string().nullable(),
546
+ labels: z.record(z.string(), z.string()).default({}),
547
+ requiresAttention: z.boolean().optional(),
548
+ attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
549
+ attentionTimestamp: z.string().nullable().optional(),
550
+ archivedAt: z.string().nullable().optional(),
551
+ providerUnavailable: z.boolean().optional(),
552
+ });
553
+ export const AgentListItemPayloadSchema = z.object({
554
+ id: z.string(),
555
+ shortId: z.string(),
556
+ title: z.string().nullable(),
557
+ provider: AgentProviderSchema,
558
+ model: z.string().nullable(),
559
+ thinkingOptionId: z.string().nullable().optional(),
560
+ effectiveThinkingOptionId: z.string().nullable().optional(),
561
+ status: AgentStatusSchema,
562
+ cwd: z.string(),
563
+ createdAt: z.string(),
564
+ updatedAt: z.string(),
565
+ lastUserMessageAt: z.string().nullable(),
566
+ archivedAt: z.string().nullable().optional(),
567
+ requiresAttention: z.boolean().optional(),
568
+ attentionReason: z.enum(["finished", "error", "permission"]).nullable().optional(),
569
+ attentionTimestamp: z.string().nullable().optional(),
570
+ labels: z.record(z.string(), z.string()).default({}),
571
+ providerUnavailable: z.boolean().optional(),
572
+ });
573
+ export const RecentProviderSessionDescriptorPayloadSchema = z.object({
574
+ providerId: z.string(),
575
+ providerLabel: z.string(),
576
+ providerHandleId: z.string(),
577
+ cwd: z.string(),
578
+ title: z.string().nullable(),
579
+ firstPromptPreview: z.string().nullable(),
580
+ lastPromptPreview: z.string().nullable(),
581
+ lastActivityAt: z.string(),
582
+ });
583
+ // ============================================================================
584
+ // Session Inbound Messages (Session receives these)
585
+ // ============================================================================
586
+ export const VoiceAudioChunkMessageSchema = z.object({
587
+ type: z.literal("voice_audio_chunk"),
588
+ audio: z.string(), // base64 encoded
589
+ format: z.string(),
590
+ isLast: z.boolean(),
591
+ });
592
+ export const AbortRequestMessageSchema = z.object({
593
+ type: z.literal("abort_request"),
594
+ });
595
+ export const AudioPlayedMessageSchema = z.object({
596
+ type: z.literal("audio_played"),
597
+ id: z.string(),
598
+ });
599
+ const AgentDirectoryFilterSchema = z.object({
600
+ labels: z.record(z.string(), z.string()).optional(),
601
+ projectKeys: z.array(z.string()).optional(),
602
+ statuses: z.array(AgentStatusSchema).optional(),
603
+ includeArchived: z.boolean().optional(),
604
+ requiresAttention: z.boolean().optional(),
605
+ thinkingOptionId: z.string().nullable().optional(),
606
+ });
607
+ export const DeleteAgentRequestMessageSchema = z.object({
608
+ type: z.literal("delete_agent_request"),
609
+ agentId: z.string(),
610
+ requestId: z.string(),
611
+ });
612
+ export const ArchiveAgentRequestMessageSchema = z.object({
613
+ type: z.literal("archive_agent_request"),
614
+ agentId: z.string(),
615
+ requestId: z.string(),
616
+ });
617
+ export const CloseItemsRequestMessageSchema = z.object({
618
+ type: z.literal("close_items_request"),
619
+ agentIds: z.array(z.string()).default([]),
620
+ terminalIds: z.array(z.string()).default([]),
621
+ requestId: z.string(),
622
+ });
623
+ export const UpdateAgentRequestMessageSchema = z.object({
624
+ type: z.literal("update_agent_request"),
625
+ agentId: z.string(),
626
+ name: z.string().optional(),
627
+ labels: z.record(z.string(), z.string()).optional(),
628
+ requestId: z.string(),
629
+ });
630
+ export const ProjectRenameRequestSchema = z.object({
631
+ type: z.literal("project.rename.request"),
632
+ projectId: z.string(),
633
+ // Null or empty string clears the override and reverts to the derived name.
634
+ customName: z.string().nullable(),
635
+ requestId: z.string(),
636
+ });
637
+ export const ProjectRemoveRequestSchema = z.object({
638
+ type: z.literal("project.remove.request"),
639
+ projectId: z.string(),
640
+ requestId: z.string(),
641
+ });
642
+ export const WorkspaceTitleSetRequestSchema = z.object({
643
+ type: z.literal("workspace.title.set.request"),
644
+ workspaceId: z.string(),
645
+ // Null or empty string clears the title and reverts to the derived name.
646
+ title: z.string().nullable(),
647
+ requestId: z.string(),
648
+ });
649
+ export const WorkspacePinSetRequestSchema = z.object({
650
+ type: z.literal("workspace.pin.set.request"),
651
+ workspaceId: z.string(),
652
+ pinned: z.boolean(),
653
+ requestId: z.string(),
654
+ });
655
+ export const SetVoiceModeMessageSchema = z.object({
656
+ type: z.literal("set_voice_mode"),
657
+ enabled: z.boolean(),
658
+ agentId: z.string().optional(),
659
+ requestId: z.string().optional(),
660
+ });
661
+ export const GitHubPrAttachmentSchema = z.object({
662
+ type: z.literal("github_pr"),
663
+ mimeType: z.literal("application/github-pr"),
664
+ number: z.number().int().positive(),
665
+ title: z.string(),
666
+ url: z.string(),
667
+ body: z.string().nullable().optional(),
668
+ baseRefName: z.string().nullable().optional(),
669
+ headRefName: z.string().nullable().optional(),
670
+ });
671
+ export const GitHubIssueAttachmentSchema = z.object({
672
+ type: z.literal("github_issue"),
673
+ mimeType: z.literal("application/github-issue"),
674
+ number: z.number().int().positive(),
675
+ title: z.string(),
676
+ url: z.string(),
677
+ body: z.string().nullable().optional(),
678
+ });
679
+ export const TextAttachmentSchema = z
680
+ .object({
681
+ type: z.literal("text"),
682
+ mimeType: z.literal("text/plain"),
683
+ contextKind: z.string().optional(),
684
+ title: z.string().nullable().optional(),
685
+ text: z.string(),
686
+ })
687
+ .transform(({ contextKind, ...attachment }) => ({
688
+ ...attachment,
689
+ ...(contextKind === "chat_history" ? { contextKind } : {}),
690
+ }));
691
+ export const ReviewAttachmentContextLineSchema = z.object({
692
+ oldLineNumber: z.number().int().positive().nullable(),
693
+ newLineNumber: z.number().int().positive().nullable(),
694
+ type: z.enum(["add", "remove", "context"]),
695
+ content: z.string(),
696
+ });
697
+ export const ReviewAttachmentCommentSchema = z.object({
698
+ filePath: z.string(),
699
+ side: z.enum(["old", "new"]),
700
+ lineNumber: z.number().int().positive(),
701
+ body: z.string(),
702
+ context: z.object({
703
+ hunkHeader: z.string(),
704
+ targetLine: ReviewAttachmentContextLineSchema,
705
+ lines: z.array(ReviewAttachmentContextLineSchema),
706
+ }),
707
+ });
708
+ export const ReviewAttachmentSchema = z.object({
709
+ type: z.literal("review"),
710
+ mimeType: z.literal("application/byspace-review"),
711
+ cwd: z.string(),
712
+ mode: z.enum(["uncommitted", "base"]),
713
+ baseRef: z.string().nullable().optional(),
714
+ comments: z.array(ReviewAttachmentCommentSchema),
715
+ });
716
+ export const UploadedFileAttachmentSchema = z.object({
717
+ type: z.literal("uploaded_file"),
718
+ id: z.string(),
719
+ fileName: z.string(),
720
+ mimeType: z.string(),
721
+ size: z.number().int().nonnegative(),
722
+ path: z.string(),
723
+ });
724
+ export const AgentAttachmentSchema = z.discriminatedUnion("type", [
725
+ GitHubPrAttachmentSchema,
726
+ GitHubIssueAttachmentSchema,
727
+ TextAttachmentSchema,
728
+ ReviewAttachmentSchema,
729
+ UploadedFileAttachmentSchema,
730
+ ]);
731
+ function normalizeAgentAttachments(input) {
732
+ if (!Array.isArray(input)) {
733
+ return [];
734
+ }
735
+ const normalized = [];
736
+ for (const item of input) {
737
+ const parsed = AgentAttachmentSchema.safeParse(item);
738
+ if (parsed.success) {
739
+ normalized.push(parsed.data);
740
+ }
741
+ }
742
+ return normalized;
743
+ }
744
+ const AgentAttachmentsSchema = z.unknown().transform(normalizeAgentAttachments).optional();
745
+ const ImageAttachmentSchema = z.object({
746
+ data: z.string(), // base64 encoded image
747
+ mimeType: z.string(), // e.g., "image/jpeg", "image/png"
748
+ });
749
+ export const SendAgentMessageSchema = z.object({
750
+ type: z.literal("send_agent_message"),
751
+ agentId: z.string(),
752
+ text: z.string(),
753
+ messageId: z.string().optional(), // Client-provided ID for deduplication
754
+ images: z.array(ImageAttachmentSchema).optional(),
755
+ attachments: AgentAttachmentsSchema,
756
+ });
757
+ // ============================================================================
758
+ // Agent RPCs (requestId-correlated)
759
+ // ============================================================================
760
+ export const FetchAgentsRequestMessageSchema = z.object({
761
+ type: z.literal("fetch_agents_request"),
762
+ requestId: z.string(),
763
+ scope: z.enum(["active"]).optional(),
764
+ filter: AgentDirectoryFilterSchema.optional(),
765
+ sort: z
766
+ .array(z.object({
767
+ key: z.enum(["status_priority", "created_at", "updated_at", "title"]),
768
+ direction: z.enum(["asc", "desc"]),
769
+ }))
770
+ .optional(),
771
+ page: z
772
+ .object({
773
+ limit: z.number().int().positive().max(200),
774
+ cursor: z.string().min(1).optional(),
775
+ })
776
+ .optional(),
777
+ subscribe: z
778
+ .object({
779
+ subscriptionId: z.string().optional(),
780
+ })
781
+ .optional(),
782
+ });
783
+ const WorkspaceStateBucketSchema = z.enum([
784
+ "needs_input",
785
+ "failed",
786
+ "running",
787
+ "attention",
788
+ "done",
789
+ ]);
790
+ export const FetchWorkspacesRequestMessageSchema = z.object({
791
+ type: z.literal("fetch_workspaces_request"),
792
+ requestId: z.string(),
793
+ filter: z
794
+ .object({
795
+ query: z.string().optional(),
796
+ projectId: z.string().optional(),
797
+ // Unused: accepted so older clients still parse, but the server does not filter on it.
798
+ idPrefix: z.string().optional(),
799
+ })
800
+ .optional(),
801
+ sort: z
802
+ .array(z.object({
803
+ key: z.enum(["status_priority", "activity_at", "name", "project_id"]),
804
+ direction: z.enum(["asc", "desc"]),
805
+ }))
806
+ .optional(),
807
+ page: z
808
+ .object({
809
+ limit: z.number().int().positive().max(200),
810
+ cursor: z.string().min(1).optional(),
811
+ })
812
+ .optional(),
813
+ subscribe: z
814
+ .object({
815
+ subscriptionId: z.string().optional(),
816
+ })
817
+ .optional(),
818
+ });
819
+ export const FetchAgentHistoryRequestMessageSchema = z.object({
820
+ type: z.literal("fetch_agent_history_request"),
821
+ requestId: z.string(),
822
+ filter: AgentDirectoryFilterSchema.optional(),
823
+ sort: z
824
+ .array(z.object({
825
+ key: z.enum(["status_priority", "created_at", "updated_at", "title"]),
826
+ direction: z.enum(["asc", "desc"]),
827
+ }))
828
+ .optional(),
829
+ page: z
830
+ .object({
831
+ limit: z.number().int().positive().max(200),
832
+ cursor: z.string().min(1).optional(),
833
+ })
834
+ .optional(),
835
+ });
836
+ export const FetchRecentProviderSessionsRequestMessageSchema = z.object({
837
+ type: z.literal("fetch_recent_provider_sessions_request"),
838
+ requestId: z.string(),
839
+ cwd: z.string().optional(),
840
+ providers: z.array(z.string()).optional(),
841
+ since: z.string().optional(),
842
+ limit: z.number().int().positive().max(200).optional(),
843
+ });
844
+ export const FetchAgentRequestMessageSchema = z.object({
845
+ type: z.literal("fetch_agent_request"),
846
+ requestId: z.string(),
847
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
848
+ agentId: z.string(),
849
+ });
850
+ export const SendAgentMessageRequestSchema = z.object({
851
+ type: z.literal("send_agent_message_request"),
852
+ requestId: z.string(),
853
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
854
+ agentId: z.string(),
855
+ text: z.string(),
856
+ messageId: z.string().optional(), // Client-provided ID for deduplication
857
+ images: z.array(ImageAttachmentSchema).optional(),
858
+ attachments: AgentAttachmentsSchema,
859
+ });
860
+ export const WaitForFinishRequestSchema = z.object({
861
+ type: z.literal("wait_for_finish_request"),
862
+ requestId: z.string(),
863
+ /** Accepts full ID, unique prefix, or exact full title (server resolves). */
864
+ agentId: z.string(),
865
+ timeoutMs: z.number().int().positive().optional(),
866
+ });
867
+ export const DaemonGetStatusRequestSchema = z.object({
868
+ type: z.literal("daemon.get_status.request"),
869
+ requestId: z.string(),
870
+ });
871
+ export const DaemonGetPairingOfferRequestSchema = z.object({
872
+ type: z.literal("daemon.get_pairing_offer.request"),
873
+ requestId: z.string(),
874
+ });
875
+ export const DiagnosticsRequestSchema = z.object({
876
+ type: z.literal("diagnostics.request"),
877
+ requestId: z.string(),
878
+ });
879
+ export const GetDaemonConfigRequestMessageSchema = z.object({
880
+ type: z.literal("get_daemon_config_request"),
881
+ requestId: z.string(),
882
+ });
883
+ export const SetDaemonConfigRequestMessageSchema = z.object({
884
+ type: z.literal("set_daemon_config_request"),
885
+ requestId: z.string(),
886
+ config: MutableDaemonConfigPatchSchema,
887
+ });
888
+ export const ReadProjectConfigRequestMessageSchema = z.object({
889
+ type: z.literal("read_project_config_request"),
890
+ requestId: z.string(),
891
+ repoRoot: z.string(),
892
+ });
893
+ export const WriteProjectConfigRequestMessageSchema = z.object({
894
+ type: z.literal("write_project_config_request"),
895
+ requestId: z.string(),
896
+ repoRoot: z.string(),
897
+ config: BySpaceConfigRawSchema,
898
+ expectedRevision: BySpaceConfigRevisionSchema.nullable(),
899
+ });
900
+ // ============================================================================
901
+ // Dictation Streaming (lossless, resumable)
902
+ // ============================================================================
903
+ export const DictationStreamStartMessageSchema = z.object({
904
+ type: z.literal("dictation_stream_start"),
905
+ dictationId: z.string(),
906
+ format: z.string(), // e.g. "audio/pcm;rate=16000;bits=16"
907
+ });
908
+ export const DictationStreamChunkMessageSchema = z.object({
909
+ type: z.literal("dictation_stream_chunk"),
910
+ dictationId: z.string(),
911
+ seq: z.number().int().nonnegative(),
912
+ audio: z.string(), // base64 encoded chunk
913
+ format: z.string(), // e.g. "audio/pcm;rate=16000;bits=16"
914
+ });
915
+ export const DictationStreamFinishMessageSchema = z.object({
916
+ type: z.literal("dictation_stream_finish"),
917
+ dictationId: z.string(),
918
+ finalSeq: z.number().int().nonnegative(),
919
+ });
920
+ export const DictationStreamCancelMessageSchema = z.object({
921
+ type: z.literal("dictation_stream_cancel"),
922
+ dictationId: z.string(),
923
+ });
924
+ const GitSetupOptionsSchema = z.object({
925
+ baseBranch: z.string().optional(),
926
+ createNewBranch: z.boolean().optional(),
927
+ newBranchName: z.string().optional(),
928
+ createWorktree: z.boolean().optional(),
929
+ worktreeSlug: z.string().optional(),
930
+ refName: z.string().min(1).optional(),
931
+ action: z.enum(["branch-off", "checkout"]).optional(),
932
+ githubPrNumber: z.number().int().positive().optional(),
933
+ });
934
+ export const CreateAgentWorktreeTargetSchema = z.discriminatedUnion("mode", [
935
+ z.object({
936
+ mode: z.literal("branch-off"),
937
+ newBranch: z.string().min(1),
938
+ base: z.string().min(1).optional(),
939
+ }),
940
+ z.object({
941
+ mode: z.literal("checkout-branch"),
942
+ branch: z.string().min(1),
943
+ }),
944
+ z.object({
945
+ mode: z.literal("checkout-pr"),
946
+ prNumber: z.number().int().positive(),
947
+ }),
948
+ ]);
949
+ export const CreateAgentRequestMessageSchema = z.object({
950
+ type: z.literal("create_agent_request"),
951
+ config: AgentSessionConfigSchema,
952
+ env: z.record(z.string(), z.string()).optional(),
953
+ workspaceId: z.string().optional(),
954
+ worktreeName: z.string().optional(),
955
+ initialPrompt: z.string().optional(),
956
+ clientMessageId: z.string().optional(),
957
+ outputSchema: z.record(z.string(), z.unknown()).optional(),
958
+ images: z.array(ImageAttachmentSchema).optional(),
959
+ attachments: AgentAttachmentsSchema,
960
+ git: GitSetupOptionsSchema.optional(),
961
+ worktree: CreateAgentWorktreeTargetSchema.optional(),
962
+ autoArchive: z.boolean().optional(),
963
+ labels: z.record(z.string(), z.string()).default({}),
964
+ requestId: z.string(),
965
+ });
966
+ export const ListProviderModelsRequestMessageSchema = z.object({
967
+ type: z.literal("list_provider_models_request"),
968
+ provider: AgentProviderSchema,
969
+ cwd: z.string().optional(),
970
+ requestId: z.string(),
971
+ });
972
+ export const ListProviderModesRequestMessageSchema = z.object({
973
+ type: z.literal("list_provider_modes_request"),
974
+ provider: AgentProviderSchema,
975
+ cwd: z.string().optional(),
976
+ requestId: z.string(),
977
+ });
978
+ export const ListAvailableProvidersRequestMessageSchema = z.object({
979
+ type: z.literal("list_available_providers_request"),
980
+ requestId: z.string(),
981
+ });
982
+ export const GetProvidersSnapshotRequestMessageSchema = z.object({
983
+ type: z.literal("get_providers_snapshot_request"),
984
+ cwd: z.string().optional(),
985
+ requestId: z.string(),
986
+ });
987
+ export const RefreshProvidersSnapshotRequestMessageSchema = z.object({
988
+ type: z.literal("refresh_providers_snapshot_request"),
989
+ cwd: z.string().optional(),
990
+ providers: z.array(AgentProviderSchema).optional(),
991
+ requestId: z.string(),
992
+ });
993
+ export const ProviderDiagnosticRequestMessageSchema = z.object({
994
+ type: z.literal("provider_diagnostic_request"),
995
+ provider: AgentProviderSchema,
996
+ requestId: z.string(),
997
+ });
998
+ export const ProviderUsageListRequestMessageSchema = z.object({
999
+ type: z.literal("provider.usage.list.request"),
1000
+ requestId: z.string(),
1001
+ });
1002
+ export const ResumeAgentRequestMessageSchema = z.object({
1003
+ type: z.literal("resume_agent_request"),
1004
+ handle: AgentPersistenceHandleSchema,
1005
+ overrides: AgentSessionConfigSchema.partial().optional(),
1006
+ requestId: z.string(),
1007
+ });
1008
+ export const ImportAgentRequestMessageSchema = z.object({
1009
+ type: z.literal("import_agent_request"),
1010
+ provider: AgentProviderSchema.optional(),
1011
+ providerId: z.string().optional(),
1012
+ sessionId: z.string().optional(),
1013
+ providerHandleId: z.string().optional(),
1014
+ cwd: z.string().optional(),
1015
+ labels: z.record(z.string(), z.string()).optional(),
1016
+ requestId: z.string(),
1017
+ });
1018
+ export const RefreshAgentRequestMessageSchema = z.object({
1019
+ type: z.literal("refresh_agent_request"),
1020
+ agentId: z.string(),
1021
+ requestId: z.string(),
1022
+ });
1023
+ export const CancelAgentRequestMessageSchema = z.object({
1024
+ type: z.literal("cancel_agent_request"),
1025
+ agentId: z.string(),
1026
+ requestId: z.string().optional(),
1027
+ });
1028
+ export const RestartServerRequestMessageSchema = z.object({
1029
+ type: z.literal("restart_server_request"),
1030
+ reason: z.string().optional(),
1031
+ requestId: z.string(),
1032
+ });
1033
+ export const ShutdownServerRequestMessageSchema = z.object({
1034
+ type: z.literal("shutdown_server_request"),
1035
+ requestId: z.string(),
1036
+ });
1037
+ export const DaemonUpdateRequestMessageSchema = z.object({
1038
+ type: z.literal("daemon.update.request"),
1039
+ requestId: z.string(),
1040
+ });
1041
+ export const AgentTimelineCursorSchema = z.object({
1042
+ epoch: z.string(),
1043
+ seq: z.number().int().nonnegative(),
1044
+ });
1045
+ export const FetchAgentTimelineRequestMessageSchema = z.object({
1046
+ type: z.literal("fetch_agent_timeline_request"),
1047
+ agentId: z.string(),
1048
+ requestId: z.string(),
1049
+ direction: z.enum(["tail", "before", "after"]).optional(),
1050
+ cursor: AgentTimelineCursorSchema.optional(),
1051
+ // 0 means "all matching rows for this query window".
1052
+ limit: z.number().int().nonnegative().optional(),
1053
+ // Default should be projected for app timeline loading.
1054
+ projection: z.enum(["projected", "canonical"]).optional(),
1055
+ });
1056
+ export const ProviderSubagentListRequestMessageSchema = z.object({
1057
+ type: z.literal("agent.provider_subagents.list.request"),
1058
+ parentAgentId: z.string(),
1059
+ requestId: z.string(),
1060
+ });
1061
+ export const ProviderSubagentTimelineRequestMessageSchema = z.object({
1062
+ type: z.literal("agent.provider_subagents.timeline.get.request"),
1063
+ parentAgentId: z.string(),
1064
+ subagentId: z.string(),
1065
+ requestId: z.string(),
1066
+ direction: z.enum(["tail", "before", "after"]).optional(),
1067
+ cursor: AgentTimelineCursorSchema.optional(),
1068
+ limit: z.number().int().nonnegative().optional(),
1069
+ });
1070
+ export const AgentForkContextRequestMessageSchema = z.object({
1071
+ type: z.literal("agent.fork_context.request"),
1072
+ agentId: z.string(),
1073
+ boundaryCursor: AgentTimelineCursorSchema.optional(),
1074
+ boundaryMessageId: z.string().optional(),
1075
+ requestId: z.string(),
1076
+ });
1077
+ export const SetAgentModeRequestMessageSchema = z.object({
1078
+ type: z.literal("set_agent_mode_request"),
1079
+ agentId: z.string(),
1080
+ modeId: z.string(),
1081
+ requestId: z.string(),
1082
+ });
1083
+ const AgentActionResponsePayloadSchema = z.object({
1084
+ requestId: z.string(),
1085
+ agentId: z.string(),
1086
+ accepted: z.boolean(),
1087
+ error: z.string().nullable(),
1088
+ notice: AgentProviderNoticeSchema.nullable().optional(),
1089
+ });
1090
+ export const SetAgentModeResponseMessageSchema = z.object({
1091
+ type: z.literal("set_agent_mode_response"),
1092
+ payload: AgentActionResponsePayloadSchema,
1093
+ });
1094
+ export const SetAgentModelRequestMessageSchema = z.object({
1095
+ type: z.literal("set_agent_model_request"),
1096
+ agentId: z.string(),
1097
+ modelId: z.string().nullable(),
1098
+ requestId: z.string(),
1099
+ });
1100
+ export const SetAgentModelResponseMessageSchema = z.object({
1101
+ type: z.literal("set_agent_model_response"),
1102
+ payload: AgentActionResponsePayloadSchema,
1103
+ });
1104
+ export const SetAgentThinkingRequestMessageSchema = z.object({
1105
+ type: z.literal("set_agent_thinking_request"),
1106
+ agentId: z.string(),
1107
+ thinkingOptionId: z.string().nullable(),
1108
+ requestId: z.string(),
1109
+ });
1110
+ export const SetAgentThinkingResponseMessageSchema = z.object({
1111
+ type: z.literal("set_agent_thinking_response"),
1112
+ payload: AgentActionResponsePayloadSchema,
1113
+ });
1114
+ export const SetAgentFeatureRequestMessageSchema = z.object({
1115
+ type: z.literal("set_agent_feature_request"),
1116
+ agentId: z.string(),
1117
+ featureId: z.string(),
1118
+ value: z.unknown(),
1119
+ requestId: z.string(),
1120
+ });
1121
+ export const SetAgentFeatureResponseMessageSchema = z.object({
1122
+ type: z.literal("set_agent_feature_response"),
1123
+ payload: AgentActionResponsePayloadSchema,
1124
+ });
1125
+ export const AgentDetachRequestMessageSchema = z.object({
1126
+ type: z.literal("agent.detach.request"),
1127
+ agentId: z.string(),
1128
+ requestId: z.string(),
1129
+ });
1130
+ export const AgentDetachResponseMessageSchema = z.object({
1131
+ type: z.literal("agent.detach.response"),
1132
+ payload: AgentActionResponsePayloadSchema,
1133
+ });
1134
+ export const AgentRewindModeSchema = z.enum(["conversation", "files", "both"]);
1135
+ export const AgentRewindRequestMessageSchema = z.object({
1136
+ type: z.literal("agent.rewind.request"),
1137
+ agentId: z.string(),
1138
+ messageId: z.string(),
1139
+ mode: AgentRewindModeSchema,
1140
+ requestId: z.string(),
1141
+ });
1142
+ export const AgentRewindResponseMessageSchema = z.object({
1143
+ type: z.literal("agent.rewind.response"),
1144
+ payload: z.object({
1145
+ requestId: z.string(),
1146
+ agentId: z.string(),
1147
+ ok: z.boolean(),
1148
+ error: z.string().nullable(),
1149
+ }),
1150
+ });
1151
+ export const UpdateAgentResponseMessageSchema = z.object({
1152
+ type: z.literal("update_agent_response"),
1153
+ payload: AgentActionResponsePayloadSchema,
1154
+ });
1155
+ export const ProjectRenameResponsePayloadSchema = z.object({
1156
+ requestId: z.string(),
1157
+ projectId: z.string(),
1158
+ accepted: z.boolean(),
1159
+ customName: z.string().nullable(),
1160
+ error: z.string().nullable(),
1161
+ });
1162
+ export const ProjectRenameResponseSchema = z.object({
1163
+ type: z.literal("project.rename.response"),
1164
+ payload: ProjectRenameResponsePayloadSchema,
1165
+ });
1166
+ export const ProjectRemoveResponsePayloadSchema = z.object({
1167
+ requestId: z.string(),
1168
+ projectId: z.string(),
1169
+ accepted: z.boolean(),
1170
+ removedWorkspaceIds: z.array(z.string()).default([]),
1171
+ error: z.string().nullable(),
1172
+ });
1173
+ export const ProjectRemoveResponseSchema = z.object({
1174
+ type: z.literal("project.remove.response"),
1175
+ payload: ProjectRemoveResponsePayloadSchema,
1176
+ });
1177
+ export const WorkspaceTitleSetResponsePayloadSchema = z.object({
1178
+ requestId: z.string(),
1179
+ workspaceId: z.string(),
1180
+ accepted: z.boolean(),
1181
+ title: z.string().nullable(),
1182
+ error: z.string().nullable(),
1183
+ });
1184
+ export const WorkspaceTitleSetResponseSchema = z.object({
1185
+ type: z.literal("workspace.title.set.response"),
1186
+ payload: WorkspaceTitleSetResponsePayloadSchema,
1187
+ });
1188
+ export const WorkspacePinSetResponsePayloadSchema = z.object({
1189
+ requestId: z.string(),
1190
+ workspaceId: z.string(),
1191
+ accepted: z.boolean(),
1192
+ pinnedAt: z.string().nullable(),
1193
+ error: z.string().nullable(),
1194
+ });
1195
+ export const WorkspacePinSetResponseSchema = z.object({
1196
+ type: z.literal("workspace.pin.set.response"),
1197
+ payload: WorkspacePinSetResponsePayloadSchema,
1198
+ });
1199
+ export const SetVoiceModeResponseMessageSchema = z.object({
1200
+ type: z.literal("set_voice_mode_response"),
1201
+ payload: z.object({
1202
+ requestId: z.string(),
1203
+ enabled: z.boolean(),
1204
+ agentId: z.string().nullable(),
1205
+ accepted: z.boolean(),
1206
+ error: z.string().nullable(),
1207
+ reasonCode: z.string().optional(),
1208
+ retryable: z.boolean().optional(),
1209
+ missingModelIds: z.array(z.string()).optional(),
1210
+ }),
1211
+ });
1212
+ export const AgentPermissionResponseMessageSchema = z.object({
1213
+ type: z.literal("agent_permission_response"),
1214
+ agentId: z.string(),
1215
+ requestId: z.string(),
1216
+ response: AgentPermissionResponseSchema,
1217
+ });
1218
+ const CheckoutErrorCodeSchema = z.enum([
1219
+ "NOT_GIT_REPO",
1220
+ "NOT_ALLOWED",
1221
+ "MERGE_CONFLICT",
1222
+ "UNKNOWN",
1223
+ ]);
1224
+ const CheckoutErrorSchema = z.object({
1225
+ code: CheckoutErrorCodeSchema,
1226
+ message: z.string(),
1227
+ });
1228
+ const CheckoutDiffCompareSchema = z.object({
1229
+ mode: z.enum(["uncommitted", "base"]),
1230
+ baseRef: z.string().optional(),
1231
+ ignoreWhitespace: z.boolean().optional(),
1232
+ });
1233
+ export const CheckoutStatusRequestSchema = z.object({
1234
+ type: z.literal("checkout_status_request"),
1235
+ cwd: z.string(),
1236
+ requestId: z.string(),
1237
+ });
1238
+ export const SubscribeCheckoutDiffRequestSchema = z.object({
1239
+ type: z.literal("subscribe_checkout_diff_request"),
1240
+ subscriptionId: z.string(),
1241
+ cwd: z.string(),
1242
+ compare: CheckoutDiffCompareSchema,
1243
+ requestId: z.string(),
1244
+ });
1245
+ export const UnsubscribeCheckoutDiffRequestSchema = z.object({
1246
+ type: z.literal("unsubscribe_checkout_diff_request"),
1247
+ subscriptionId: z.string(),
1248
+ });
1249
+ export const CheckoutCommitRequestSchema = z.object({
1250
+ type: z.literal("checkout_commit_request"),
1251
+ cwd: z.string(),
1252
+ message: z.string().optional(),
1253
+ addAll: z.boolean().optional(),
1254
+ requestId: z.string(),
1255
+ });
1256
+ export const CheckoutMergeRequestSchema = z.object({
1257
+ type: z.literal("checkout_merge_request"),
1258
+ cwd: z.string(),
1259
+ baseRef: z.string().optional(),
1260
+ strategy: z.enum(["merge", "squash"]).optional(),
1261
+ requireCleanTarget: z.boolean().optional(),
1262
+ requestId: z.string(),
1263
+ });
1264
+ export const CheckoutMergeFromBaseRequestSchema = z.object({
1265
+ type: z.literal("checkout_merge_from_base_request"),
1266
+ cwd: z.string(),
1267
+ baseRef: z.string().optional(),
1268
+ requireCleanTarget: z.boolean().optional(),
1269
+ requestId: z.string(),
1270
+ });
1271
+ export const CheckoutPullRequestSchema = z.object({
1272
+ type: z.literal("checkout_pull_request"),
1273
+ cwd: z.string(),
1274
+ requestId: z.string(),
1275
+ });
1276
+ export const CheckoutPushRequestSchema = z.object({
1277
+ type: z.literal("checkout_push_request"),
1278
+ cwd: z.string(),
1279
+ requestId: z.string(),
1280
+ });
1281
+ export const CheckoutRefreshRequestSchema = z.object({
1282
+ type: z.literal("checkout.refresh.request"),
1283
+ cwd: z.string(),
1284
+ requestId: z.string(),
1285
+ });
1286
+ export const CheckoutPrCreateRequestSchema = z.object({
1287
+ type: z.literal("checkout_pr_create_request"),
1288
+ cwd: z.string(),
1289
+ title: z.string().optional(),
1290
+ body: z.string().optional(),
1291
+ baseRef: z.string().optional(),
1292
+ requestId: z.string(),
1293
+ });
1294
+ export const CheckoutPrMergeRequestSchema = z.object({
1295
+ type: z.literal("checkout_pr_merge_request"),
1296
+ cwd: z.string(),
1297
+ mergeMethod: z.enum(["merge", "squash", "rebase"]),
1298
+ requestId: z.string(),
1299
+ });
1300
+ export const CheckoutGithubSetAutoMergeRequestSchema = z.object({
1301
+ type: z.literal("checkout.github.set_auto_merge.request"),
1302
+ cwd: z.string(),
1303
+ enabled: z.boolean(),
1304
+ mergeMethod: z.enum(["merge", "squash", "rebase"]).optional(),
1305
+ requestId: z.string(),
1306
+ });
1307
+ const GitHubRepoSegmentSchema = z.string().regex(/^[A-Za-z0-9._-]+$/);
1308
+ export const CheckoutGithubGetCheckDetailsRequestSchema = z.object({
1309
+ type: z.literal("checkout.github.get_check_details.request"),
1310
+ cwd: z.string(),
1311
+ repoOwner: GitHubRepoSegmentSchema,
1312
+ repoName: GitHubRepoSegmentSchema,
1313
+ checkRunId: z.number().int().positive(),
1314
+ workflowRunId: z.number().int().positive().optional(),
1315
+ requestId: z.string(),
1316
+ });
1317
+ export const CheckoutPrStatusRequestSchema = z.object({
1318
+ type: z.literal("checkout_pr_status_request"),
1319
+ cwd: z.string(),
1320
+ requestId: z.string(),
1321
+ });
1322
+ export const PullRequestTimelineRequestSchema = z.object({
1323
+ type: z.literal("pull_request_timeline_request"),
1324
+ cwd: z.string(),
1325
+ prNumber: z.number(),
1326
+ repoOwner: z.string(),
1327
+ repoName: z.string(),
1328
+ requestId: z.string(),
1329
+ });
1330
+ export const ValidateBranchRequestSchema = z.object({
1331
+ type: z.literal("validate_branch_request"),
1332
+ cwd: z.string(),
1333
+ branchName: z.string(),
1334
+ requestId: z.string(),
1335
+ });
1336
+ export const CheckoutSwitchBranchRequestSchema = z.object({
1337
+ type: z.literal("checkout_switch_branch_request"),
1338
+ cwd: z.string(),
1339
+ branch: z.string(),
1340
+ requestId: z.string(),
1341
+ });
1342
+ export const CheckoutRenameBranchRequestSchema = z.object({
1343
+ type: z.literal("checkout.rename_branch.request"),
1344
+ cwd: z.string(),
1345
+ branch: z.string(),
1346
+ requestId: z.string(),
1347
+ });
1348
+ export const StashSaveRequestSchema = z.object({
1349
+ type: z.literal("stash_save_request"),
1350
+ cwd: z.string(),
1351
+ /** Branch name to tag the stash with for later identification. */
1352
+ branch: z.string().optional(),
1353
+ requestId: z.string(),
1354
+ });
1355
+ export const StashPopRequestSchema = z.object({
1356
+ type: z.literal("stash_pop_request"),
1357
+ cwd: z.string(),
1358
+ /** Zero-based index from stash_list_response. */
1359
+ stashIndex: z.number().int().min(0),
1360
+ requestId: z.string(),
1361
+ });
1362
+ export const StashListRequestSchema = z.object({
1363
+ type: z.literal("stash_list_request"),
1364
+ cwd: z.string(),
1365
+ /** If true, only return byspace-created stashes. Default true. */
1366
+ byspaceOnly: z.boolean().optional(),
1367
+ requestId: z.string(),
1368
+ });
1369
+ export const BranchSuggestionsRequestSchema = z.object({
1370
+ type: z.literal("branch_suggestions_request"),
1371
+ cwd: z.string(),
1372
+ query: z.string().optional(),
1373
+ limit: z.number().int().min(1).max(200).optional(),
1374
+ requestId: z.string(),
1375
+ });
1376
+ export const GitHubSearchItemSchema = z.object({
1377
+ kind: z.enum(["issue", "pr"]),
1378
+ number: z.number(),
1379
+ title: z.string(),
1380
+ url: z.string(),
1381
+ state: z.string(),
1382
+ body: z.string().nullable(),
1383
+ labels: z.array(z.string()),
1384
+ baseRefName: z.string().nullable().optional(),
1385
+ headRefName: z.string().nullable().optional(),
1386
+ updatedAt: z.string().optional(),
1387
+ });
1388
+ export const GitHubSearchKindSchema = z.enum(["github-issue", "github-pr"]);
1389
+ export const GitHubSearchRequestSchema = z.object({
1390
+ type: z.literal("github_search_request"),
1391
+ cwd: z.string(),
1392
+ query: z.string(),
1393
+ limit: z.number().int().min(1).max(50).optional(),
1394
+ kinds: z.array(GitHubSearchKindSchema).optional(),
1395
+ requestId: z.string(),
1396
+ });
1397
+ export const DirectorySuggestionsRequestSchema = z.object({
1398
+ type: z.literal("directory_suggestions_request"),
1399
+ query: z.string(),
1400
+ cwd: z.string().optional(),
1401
+ includeFiles: z.boolean().optional(),
1402
+ includeDirectories: z.boolean().optional(),
1403
+ matchMode: z.enum(["fuzzy", "suffix"]).optional(),
1404
+ limit: z.number().int().min(1).max(100).optional(),
1405
+ requestId: z.string(),
1406
+ });
1407
+ export const BySpaceWorktreeListRequestSchema = z.object({
1408
+ type: z.literal("byspace_worktree_list_request"),
1409
+ cwd: z.string().optional(),
1410
+ repoRoot: z.string().optional(),
1411
+ requestId: z.string(),
1412
+ });
1413
+ export const BySpaceWorktreeArchiveRequestSchema = z.object({
1414
+ type: z.literal("byspace_worktree_archive_request"),
1415
+ worktreePath: z.string().optional(),
1416
+ repoRoot: z.string().optional(),
1417
+ branchName: z.string().optional(),
1418
+ // COMPAT(worktreeArchiveWorkspaceId): added in v0.1.97, drop the optional gate when floor >= v0.1.97.
1419
+ // Explicit workspace record to archive. A directory can back multiple workspaces
1420
+ // (Model B), so resolving the target by cwd alone picks the wrong record. When
1421
+ // present the daemon archives this exact workspace; when absent it falls back to
1422
+ // resolving by worktreePath, preferring the worktree-kind record on a cwd tie.
1423
+ workspaceId: z.string().optional(),
1424
+ // COMPAT(worktreeArchiveScope): added in v0.1.97, drop the gate when floor >= v0.1.97.
1425
+ // Scope of the archive operation. "workspace" archives a single workspace record
1426
+ // (today's default UI behavior). "worktree" archives every active workspace whose
1427
+ // cwd resolves to the target directory, then removes the directory if it is
1428
+ // BySpace-owned. Omitted/unknown values default to "workspace" for old-client safety.
1429
+ scope: z.enum(["workspace", "worktree"]).optional().default("workspace"),
1430
+ // COMPAT(worktreeDiskDeletion): added in v0.1.97, ignored as of v0.1.97
1431
+ // (disk removal derived from scope + last-reference + ownership); field
1432
+ // retained for wire parse-compat, drop when floor >= v0.1.97.
1433
+ deleteWorktreeFromDisk: z.boolean().optional().default(false),
1434
+ requestId: z.string(),
1435
+ });
1436
+ export const FirstAgentContextSchema = z.object({
1437
+ prompt: z.string().optional(),
1438
+ attachments: AgentAttachmentsSchema,
1439
+ });
1440
+ export const CreateBySpaceWorktreeRequestSchema = z.object({
1441
+ type: z.literal("create_byspace_worktree_request"),
1442
+ cwd: z.string(),
1443
+ projectId: z.string().optional(),
1444
+ worktreeSlug: z.string().optional(),
1445
+ nameContext: z.string().optional(),
1446
+ attachments: AgentAttachmentsSchema.optional(),
1447
+ firstAgentContext: FirstAgentContextSchema.optional(),
1448
+ refName: z.string().min(1).optional(),
1449
+ action: z.enum(["branch-off", "checkout"]).optional(),
1450
+ githubPrNumber: z.number().int().positive().optional(),
1451
+ requestId: z.string(),
1452
+ });
1453
+ export const WorkspaceSetupStatusRequestSchema = z.object({
1454
+ type: z.literal("workspace_setup_status_request"),
1455
+ workspaceId: z.string(),
1456
+ requestId: z.string(),
1457
+ });
1458
+ // COMPAT(desktopEditorBridge): added in v0.1.88, remove after 2026-12-03 once old clients no longer call daemon editor RPCs.
1459
+ export const LegacyListAvailableEditorsRequestSchema = z.object({
1460
+ type: z.literal("list_available_editors_request"),
1461
+ requestId: z.string(),
1462
+ });
1463
+ export const LegacyOpenInEditorRequestSchema = z.object({
1464
+ type: z.literal("open_in_editor_request"),
1465
+ path: z.string(),
1466
+ editorId: z.string().trim().min(1),
1467
+ mode: z.enum(["open", "reveal"]).optional(),
1468
+ cwd: z.string().optional(),
1469
+ requestId: z.string(),
1470
+ });
1471
+ export const OpenProjectRequestSchema = z.object({
1472
+ type: z.literal("open_project_request"),
1473
+ // Path used only for workspace lookup/creation. Use the returned workspace.id for all subsequent references.
1474
+ cwd: z.string(),
1475
+ requestId: z.string(),
1476
+ });
1477
+ export const ProjectAddRequestSchema = z.object({
1478
+ type: z.literal("project.add.request"),
1479
+ cwd: z.string(),
1480
+ requestId: z.string(),
1481
+ });
1482
+ // Smallest shorthand repo path is "a/b": owner, slash, repository.
1483
+ const MIN_REPOSITORY_PATH_LENGTH = 3;
1484
+ export const WorkspaceGithubCloneProtocolSchema = z.enum(["https", "ssh"]);
1485
+ export const WorkspaceGithubCloneRequestSchema = z.object({
1486
+ type: z.literal("workspace.github.clone.request"),
1487
+ repo: z.string().trim().min(MIN_REPOSITORY_PATH_LENGTH),
1488
+ cloneProtocol: WorkspaceGithubCloneProtocolSchema.optional(),
1489
+ targetDirectory: z.string().trim().min(1),
1490
+ requestId: z.string(),
1491
+ });
1492
+ export const ArchiveWorkspaceRequestSchema = z.object({
1493
+ type: z.literal("archive_workspace_request"),
1494
+ workspaceId: z.string(),
1495
+ requestId: z.string(),
1496
+ });
1497
+ // Create a new workspace record. Unlike open_project, this never deduplicates by
1498
+ // directory: it always produces a fresh workspace. The source discriminates
1499
+ // between an existing local directory and a newly created byspace worktree.
1500
+ export const WorkspaceCreateRequestSchema = z.object({
1501
+ type: z.literal("workspace.create.request"),
1502
+ requestId: z.string(),
1503
+ // Optional user-set title applied to the created workspace.
1504
+ title: z.string().optional(),
1505
+ // Optional prompt context for workspace-level name/branch generation.
1506
+ firstAgentContext: FirstAgentContextSchema.optional(),
1507
+ source: z.discriminatedUnion("kind", [
1508
+ z.object({
1509
+ kind: z.literal("directory"),
1510
+ // Path of the existing checkout/directory to back the workspace.
1511
+ path: z.string(),
1512
+ projectId: z.string().optional(),
1513
+ }),
1514
+ z.object({
1515
+ kind: z.literal("worktree"),
1516
+ // The project whose repo the worktree is cut from.
1517
+ cwd: z.string().optional(),
1518
+ projectId: z.string().optional(),
1519
+ action: z.enum(["branch-off", "checkout"]).optional(),
1520
+ // Target branch name for checkout, or new branch name for branch-off.
1521
+ refName: z.string().min(1).optional(),
1522
+ baseBranch: z.string().optional(),
1523
+ githubPrNumber: z.number().int().positive().optional(),
1524
+ worktreeSlug: z.string().optional(),
1525
+ }),
1526
+ ]),
1527
+ });
1528
+ export const WorkspaceClearAttentionRequestSchema = z.object({
1529
+ type: z.literal("workspace.clear_attention.request"),
1530
+ workspaceId: z.union([z.string(), z.array(z.string())]),
1531
+ requestId: z.string(),
1532
+ });
1533
+ // Highlighted diff token schema
1534
+ // Note: style can be a compound class name (e.g., "heading meta") from the syntax highlighter
1535
+ const HighlightTokenSchema = z.object({
1536
+ text: z.string(),
1537
+ style: z.string().nullable(),
1538
+ });
1539
+ const DiffLineSchema = z.object({
1540
+ type: z.enum(["add", "remove", "context", "header"]),
1541
+ content: z.string(),
1542
+ tokens: z.array(HighlightTokenSchema).optional(),
1543
+ });
1544
+ const DiffHunkSchema = z.object({
1545
+ oldStart: z.number(),
1546
+ oldCount: z.number(),
1547
+ newStart: z.number(),
1548
+ newCount: z.number(),
1549
+ lines: z.array(DiffLineSchema),
1550
+ });
1551
+ const ParsedDiffFileSchema = z.object({
1552
+ path: z.string(),
1553
+ isNew: z.boolean(),
1554
+ isDeleted: z.boolean(),
1555
+ additions: z.number(),
1556
+ deletions: z.number(),
1557
+ hunks: z.array(DiffHunkSchema),
1558
+ status: z.enum(["ok", "too_large", "binary"]).optional(),
1559
+ });
1560
+ const FileExplorerEntrySchema = z.object({
1561
+ name: z.string(),
1562
+ path: z.string(),
1563
+ kind: z.enum(["file", "directory"]),
1564
+ size: z.number(),
1565
+ modifiedAt: z.string(),
1566
+ });
1567
+ const FileExplorerFileSchema = z.object({
1568
+ path: z.string(),
1569
+ kind: z.enum(["text", "image", "binary"]),
1570
+ encoding: z.enum(["utf-8", "base64", "none"]),
1571
+ content: z.string().optional(),
1572
+ mimeType: z.string().optional(),
1573
+ size: z.number(),
1574
+ modifiedAt: z.string(),
1575
+ });
1576
+ const FileExplorerDirectorySchema = z.object({
1577
+ path: z.string(),
1578
+ entries: z.array(FileExplorerEntrySchema),
1579
+ });
1580
+ export const FileExplorerRequestSchema = z.object({
1581
+ type: z.literal("file_explorer_request"),
1582
+ cwd: z.string(),
1583
+ path: z.string().optional(),
1584
+ mode: z.enum(["list", "file"]),
1585
+ requestId: z.string(),
1586
+ acceptBinary: z.boolean().optional(),
1587
+ });
1588
+ export const ProjectIconRequestSchema = z.object({
1589
+ type: z.literal("project_icon_request"),
1590
+ cwd: z.string(),
1591
+ requestId: z.string(),
1592
+ });
1593
+ export const FileDownloadTokenRequestSchema = z.object({
1594
+ type: z.literal("file_download_token_request"),
1595
+ cwd: z.string(),
1596
+ path: z.string(),
1597
+ requestId: z.string(),
1598
+ });
1599
+ export const FileUploadRequestSchema = z.object({
1600
+ type: z.literal("file.upload.request"),
1601
+ fileName: z.string().min(1),
1602
+ mimeType: z.string().min(1),
1603
+ size: z.number().int().nonnegative(),
1604
+ modifiedAt: z.string(),
1605
+ requestId: z.string(),
1606
+ });
1607
+ export const ClearAgentAttentionMessageSchema = z.object({
1608
+ type: z.literal("clear_agent_attention"),
1609
+ agentId: z.union([z.string(), z.array(z.string())]),
1610
+ requestId: z.string().optional(),
1611
+ });
1612
+ export const ClientHeartbeatMessageSchema = z.object({
1613
+ type: z.literal("client_heartbeat"),
1614
+ deviceType: z.enum(["web", "mobile"]),
1615
+ focusedAgentId: z.string().nullable(),
1616
+ // COMPAT(terminalFocusHeartbeat): added in v0.1.97, remove optional default after 2026-12-13 once old clients no longer send heartbeats without terminal focus.
1617
+ focusedTerminalId: z.string().nullable().optional().default(null),
1618
+ lastActivityAt: z.string(),
1619
+ appVisible: z.boolean(),
1620
+ appVisibilityChangedAt: z.string().optional(),
1621
+ });
1622
+ export const PingMessageSchema = z.object({
1623
+ type: z.literal("ping"),
1624
+ requestId: z.string(),
1625
+ clientSentAt: z.number().int().optional(),
1626
+ });
1627
+ const ListCommandsDraftConfigSchema = z.object({
1628
+ provider: AgentProviderSchema,
1629
+ cwd: z.string(),
1630
+ modeId: z.string().optional(),
1631
+ model: z.string().optional(),
1632
+ thinkingOptionId: z.string().optional(),
1633
+ featureValues: z.record(z.string(), z.unknown()).optional(),
1634
+ });
1635
+ export const ListProviderFeaturesRequestMessageSchema = z.object({
1636
+ type: z.literal("list_provider_features_request"),
1637
+ draftConfig: ListCommandsDraftConfigSchema,
1638
+ requestId: z.string(),
1639
+ });
1640
+ export const ListCommandsRequestSchema = z.object({
1641
+ type: z.literal("list_commands_request"),
1642
+ agentId: z.string(),
1643
+ draftConfig: ListCommandsDraftConfigSchema.optional(),
1644
+ requestId: z.string(),
1645
+ });
1646
+ export const RegisterPushTokenMessageSchema = z.object({
1647
+ type: z.literal("register_push_token"),
1648
+ token: z.string(),
1649
+ });
1650
+ // ============================================================================
1651
+ // Terminal Messages
1652
+ // ============================================================================
1653
+ export const ListTerminalsRequestSchema = z.object({
1654
+ type: z.literal("list_terminals_request"),
1655
+ cwd: z.string().optional(),
1656
+ workspaceId: z.string().optional(),
1657
+ requestId: z.string(),
1658
+ });
1659
+ export const SubscribeTerminalsRequestSchema = z.object({
1660
+ type: z.literal("subscribe_terminals_request"),
1661
+ cwd: z.string(),
1662
+ workspaceId: z.string().optional(),
1663
+ });
1664
+ export const UnsubscribeTerminalsRequestSchema = z.object({
1665
+ type: z.literal("unsubscribe_terminals_request"),
1666
+ cwd: z.string(),
1667
+ workspaceId: z.string().optional(),
1668
+ });
1669
+ export const CreateTerminalRequestSchema = z.object({
1670
+ type: z.literal("create_terminal_request"),
1671
+ cwd: z.string(),
1672
+ workspaceId: z.string().optional(),
1673
+ name: z.string().optional(),
1674
+ agentId: z.string().optional(),
1675
+ command: z.string().optional(),
1676
+ args: z.array(z.string()).optional(),
1677
+ // COMPAT(createTerminalSize): added in v0.1.107, drop the optional gate when floor >= v0.1.107.
1678
+ // The client seeds the PTY with its measured viewport size so a new terminal isn't born at the
1679
+ // 80x24 default and then visibly reflowed. Old daemons ignore this field and start at 80x24;
1680
+ // the client's first resize corrects it as before.
1681
+ size: z
1682
+ .object({
1683
+ rows: z.number().int().positive(),
1684
+ cols: z.number().int().positive(),
1685
+ })
1686
+ .optional(),
1687
+ requestId: z.string(),
1688
+ });
1689
+ export const RenameTerminalRequestSchema = z.object({
1690
+ type: z.literal("terminal.rename.request"),
1691
+ terminalId: z.string(),
1692
+ title: z.string(),
1693
+ requestId: z.string(),
1694
+ });
1695
+ export const StartWorkspaceScriptRequestSchema = z.object({
1696
+ type: z.literal("start_workspace_script_request"),
1697
+ workspaceId: z.string(),
1698
+ scriptName: z.string(),
1699
+ requestId: z.string(),
1700
+ });
1701
+ export const SubscribeTerminalRequestSchema = z.object({
1702
+ type: z.literal("subscribe_terminal_request"),
1703
+ terminalId: z.string(),
1704
+ requestId: z.string(),
1705
+ restore: z
1706
+ .object({
1707
+ mode: z.enum(["live", "visible-snapshot", "full-snapshot"]),
1708
+ scrollbackLines: z.number().int().nonnegative().optional(),
1709
+ size: z
1710
+ .object({
1711
+ rows: z.number().int().positive(),
1712
+ cols: z.number().int().positive(),
1713
+ })
1714
+ .optional(),
1715
+ })
1716
+ .optional(),
1717
+ });
1718
+ export const UnsubscribeTerminalRequestSchema = z.object({
1719
+ type: z.literal("unsubscribe_terminal_request"),
1720
+ terminalId: z.string(),
1721
+ });
1722
+ const TerminalClientMessageSchema = z.discriminatedUnion("type", [
1723
+ z.object({ type: z.literal("input"), data: z.string() }),
1724
+ z.object({ type: z.literal("resize"), rows: z.number(), cols: z.number() }),
1725
+ z.object({
1726
+ type: z.literal("mouse"),
1727
+ row: z.number(),
1728
+ col: z.number(),
1729
+ button: z.number(),
1730
+ action: z.enum(["down", "up", "move"]),
1731
+ }),
1732
+ ]);
1733
+ export const TerminalInputSchema = z.object({
1734
+ type: z.literal("terminal_input"),
1735
+ terminalId: z.string(),
1736
+ message: TerminalClientMessageSchema,
1737
+ });
1738
+ export const KillTerminalRequestSchema = z.object({
1739
+ type: z.literal("kill_terminal_request"),
1740
+ terminalId: z.string(),
1741
+ requestId: z.string(),
1742
+ });
1743
+ export const CaptureTerminalRequestSchema = z.object({
1744
+ type: z.literal("capture_terminal_request"),
1745
+ terminalId: z.string(),
1746
+ start: z.number().int().optional(),
1747
+ end: z.number().int().optional(),
1748
+ stripAnsi: z.boolean().default(true),
1749
+ requestId: z.string(),
1750
+ });
1751
+ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
1752
+ VoiceAudioChunkMessageSchema,
1753
+ AbortRequestMessageSchema,
1754
+ AudioPlayedMessageSchema,
1755
+ FetchAgentsRequestMessageSchema,
1756
+ FetchAgentHistoryRequestMessageSchema,
1757
+ FetchRecentProviderSessionsRequestMessageSchema,
1758
+ FetchWorkspacesRequestMessageSchema,
1759
+ FetchAgentRequestMessageSchema,
1760
+ DeleteAgentRequestMessageSchema,
1761
+ ArchiveAgentRequestMessageSchema,
1762
+ CloseItemsRequestMessageSchema,
1763
+ UpdateAgentRequestMessageSchema,
1764
+ ProjectRenameRequestSchema,
1765
+ ProjectRemoveRequestSchema,
1766
+ WorkspaceTitleSetRequestSchema,
1767
+ WorkspacePinSetRequestSchema,
1768
+ SetVoiceModeMessageSchema,
1769
+ SendAgentMessageRequestSchema,
1770
+ WaitForFinishRequestSchema,
1771
+ DaemonGetStatusRequestSchema,
1772
+ DaemonGetPairingOfferRequestSchema,
1773
+ DiagnosticsRequestSchema,
1774
+ GetDaemonConfigRequestMessageSchema,
1775
+ SetDaemonConfigRequestMessageSchema,
1776
+ ReadProjectConfigRequestMessageSchema,
1777
+ WriteProjectConfigRequestMessageSchema,
1778
+ DictationStreamStartMessageSchema,
1779
+ DictationStreamChunkMessageSchema,
1780
+ DictationStreamFinishMessageSchema,
1781
+ DictationStreamCancelMessageSchema,
1782
+ CreateAgentRequestMessageSchema,
1783
+ ListProviderModelsRequestMessageSchema,
1784
+ ListProviderModesRequestMessageSchema,
1785
+ ListProviderFeaturesRequestMessageSchema,
1786
+ ListAvailableProvidersRequestMessageSchema,
1787
+ GetProvidersSnapshotRequestMessageSchema,
1788
+ RefreshProvidersSnapshotRequestMessageSchema,
1789
+ ProviderDiagnosticRequestMessageSchema,
1790
+ ProviderUsageListRequestMessageSchema,
1791
+ ResumeAgentRequestMessageSchema,
1792
+ ImportAgentRequestMessageSchema,
1793
+ RefreshAgentRequestMessageSchema,
1794
+ CancelAgentRequestMessageSchema,
1795
+ ShutdownServerRequestMessageSchema,
1796
+ RestartServerRequestMessageSchema,
1797
+ DaemonUpdateRequestMessageSchema,
1798
+ FetchAgentTimelineRequestMessageSchema,
1799
+ ProviderSubagentListRequestMessageSchema,
1800
+ ProviderSubagentTimelineRequestMessageSchema,
1801
+ AgentForkContextRequestMessageSchema,
1802
+ SetAgentModeRequestMessageSchema,
1803
+ SetAgentModelRequestMessageSchema,
1804
+ SetAgentThinkingRequestMessageSchema,
1805
+ SetAgentFeatureRequestMessageSchema,
1806
+ AgentDetachRequestMessageSchema,
1807
+ AgentRewindRequestMessageSchema,
1808
+ AgentPermissionResponseMessageSchema,
1809
+ CheckoutStatusRequestSchema,
1810
+ SubscribeCheckoutDiffRequestSchema,
1811
+ UnsubscribeCheckoutDiffRequestSchema,
1812
+ CheckoutCommitRequestSchema,
1813
+ CheckoutMergeRequestSchema,
1814
+ CheckoutMergeFromBaseRequestSchema,
1815
+ CheckoutPullRequestSchema,
1816
+ CheckoutPushRequestSchema,
1817
+ CheckoutRefreshRequestSchema,
1818
+ CheckoutPrCreateRequestSchema,
1819
+ CheckoutPrMergeRequestSchema,
1820
+ CheckoutGithubSetAutoMergeRequestSchema,
1821
+ CheckoutGithubGetCheckDetailsRequestSchema,
1822
+ CheckoutPrStatusRequestSchema,
1823
+ PullRequestTimelineRequestSchema,
1824
+ CheckoutSwitchBranchRequestSchema,
1825
+ CheckoutRenameBranchRequestSchema,
1826
+ StashSaveRequestSchema,
1827
+ StashPopRequestSchema,
1828
+ StashListRequestSchema,
1829
+ ValidateBranchRequestSchema,
1830
+ BranchSuggestionsRequestSchema,
1831
+ GitHubSearchRequestSchema,
1832
+ DirectorySuggestionsRequestSchema,
1833
+ BySpaceWorktreeListRequestSchema,
1834
+ BySpaceWorktreeArchiveRequestSchema,
1835
+ CreateBySpaceWorktreeRequestSchema,
1836
+ WorkspaceSetupStatusRequestSchema,
1837
+ LegacyListAvailableEditorsRequestSchema,
1838
+ LegacyOpenInEditorRequestSchema,
1839
+ OpenProjectRequestSchema,
1840
+ ProjectAddRequestSchema,
1841
+ WorkspaceGithubCloneRequestSchema,
1842
+ ArchiveWorkspaceRequestSchema,
1843
+ WorkspaceCreateRequestSchema,
1844
+ WorkspaceClearAttentionRequestSchema,
1845
+ FileExplorerRequestSchema,
1846
+ ProjectIconRequestSchema,
1847
+ FileDownloadTokenRequestSchema,
1848
+ FileUploadRequestSchema,
1849
+ ClearAgentAttentionMessageSchema,
1850
+ ClientHeartbeatMessageSchema,
1851
+ PingMessageSchema,
1852
+ ListCommandsRequestSchema,
1853
+ RegisterPushTokenMessageSchema,
1854
+ ListTerminalsRequestSchema,
1855
+ SubscribeTerminalsRequestSchema,
1856
+ UnsubscribeTerminalsRequestSchema,
1857
+ CreateTerminalRequestSchema,
1858
+ RenameTerminalRequestSchema,
1859
+ StartWorkspaceScriptRequestSchema,
1860
+ SubscribeTerminalRequestSchema,
1861
+ UnsubscribeTerminalRequestSchema,
1862
+ TerminalInputSchema,
1863
+ KillTerminalRequestSchema,
1864
+ CaptureTerminalRequestSchema,
1865
+ ChatCreateRequestSchema,
1866
+ ChatListRequestSchema,
1867
+ ChatInspectRequestSchema,
1868
+ ChatDeleteRequestSchema,
1869
+ ChatPostRequestSchema,
1870
+ ChatReadRequestSchema,
1871
+ ChatWaitRequestSchema,
1872
+ ScheduleCreateRequestSchema,
1873
+ ScheduleListRequestSchema,
1874
+ ScheduleInspectRequestSchema,
1875
+ ScheduleLogsRequestSchema,
1876
+ SchedulePauseRequestSchema,
1877
+ ScheduleResumeRequestSchema,
1878
+ ScheduleDeleteRequestSchema,
1879
+ ScheduleRunOnceRequestSchema,
1880
+ ScheduleUpdateRequestSchema,
1881
+ LoopRunRequestSchema,
1882
+ LoopListRequestSchema,
1883
+ LoopInspectRequestSchema,
1884
+ LoopLogsRequestSchema,
1885
+ LoopStopRequestSchema,
1886
+ ]);
1887
+ // ============================================================================
1888
+ // Session Outbound Messages (Session emits these)
1889
+ // ============================================================================
1890
+ export const ActivityLogPayloadSchema = z.object({
1891
+ id: z.string(),
1892
+ timestamp: z.coerce.date(),
1893
+ type: z.enum(["transcript", "assistant", "tool_call", "tool_result", "error", "system"]),
1894
+ content: z.string(),
1895
+ metadata: z.record(z.string(), z.unknown()).optional(),
1896
+ });
1897
+ export const ActivityLogMessageSchema = z.object({
1898
+ type: z.literal("activity_log"),
1899
+ payload: ActivityLogPayloadSchema,
1900
+ });
1901
+ export const AssistantChunkMessageSchema = z.object({
1902
+ type: z.literal("assistant_chunk"),
1903
+ payload: z.object({
1904
+ chunk: z.string(),
1905
+ }),
1906
+ });
1907
+ export const AudioOutputMessageSchema = z.object({
1908
+ type: z.literal("audio_output"),
1909
+ payload: z.object({
1910
+ audio: z.string(), // base64 encoded
1911
+ format: z.string(),
1912
+ id: z.string(),
1913
+ isVoiceMode: z.boolean(), // Mode when audio was generated (for drift protection)
1914
+ groupId: z.string().optional(), // Logical utterance id
1915
+ chunkIndex: z.number().int().nonnegative().optional(),
1916
+ isLastChunk: z.boolean().optional(),
1917
+ }),
1918
+ });
1919
+ export const TranscriptionResultMessageSchema = z.object({
1920
+ type: z.literal("transcription_result"),
1921
+ payload: z.object({
1922
+ text: z.string(),
1923
+ language: z.string().optional(),
1924
+ duration: z.number().optional(),
1925
+ requestId: z.string(), // Echoed back from request for tracking
1926
+ avgLogprob: z.number().optional(),
1927
+ isLowConfidence: z.boolean().optional(),
1928
+ byteLength: z.number().optional(),
1929
+ format: z.string().optional(),
1930
+ debugRecordingPath: z.string().optional(),
1931
+ }),
1932
+ });
1933
+ export const VoiceInputStateMessageSchema = z.object({
1934
+ type: z.literal("voice_input_state"),
1935
+ payload: z.object({
1936
+ isSpeaking: z.boolean(),
1937
+ }),
1938
+ });
1939
+ export const DictationStreamAckMessageSchema = z.object({
1940
+ type: z.literal("dictation_stream_ack"),
1941
+ payload: z.object({
1942
+ dictationId: z.string(),
1943
+ ackSeq: z.number().int(),
1944
+ }),
1945
+ });
1946
+ export const DictationStreamFinishAcceptedMessageSchema = z.object({
1947
+ type: z.literal("dictation_stream_finish_accepted"),
1948
+ payload: z.object({
1949
+ dictationId: z.string(),
1950
+ timeoutMs: z.number().int().positive(),
1951
+ }),
1952
+ });
1953
+ export const DictationStreamPartialMessageSchema = z.object({
1954
+ type: z.literal("dictation_stream_partial"),
1955
+ payload: z.object({
1956
+ dictationId: z.string(),
1957
+ text: z.string(),
1958
+ }),
1959
+ });
1960
+ export const DictationStreamFinalMessageSchema = z.object({
1961
+ type: z.literal("dictation_stream_final"),
1962
+ payload: z.object({
1963
+ dictationId: z.string(),
1964
+ text: z.string(),
1965
+ debugRecordingPath: z.string().optional(),
1966
+ }),
1967
+ });
1968
+ export const DictationStreamErrorMessageSchema = z.object({
1969
+ type: z.literal("dictation_stream_error"),
1970
+ payload: z.object({
1971
+ dictationId: z.string(),
1972
+ error: z.string(),
1973
+ retryable: z.boolean(),
1974
+ reasonCode: z.string().optional(),
1975
+ missingModelIds: z.array(z.string()).optional(),
1976
+ debugRecordingPath: z.string().optional(),
1977
+ }),
1978
+ });
1979
+ export const ServerCapabilityStateSchema = z.object({
1980
+ enabled: z.boolean(),
1981
+ reason: z.string(),
1982
+ });
1983
+ export const ServerVoiceCapabilitiesSchema = z.object({
1984
+ dictation: ServerCapabilityStateSchema,
1985
+ voice: ServerCapabilityStateSchema,
1986
+ });
1987
+ export const ServerCapabilitiesSchema = z
1988
+ .object({
1989
+ voice: ServerVoiceCapabilitiesSchema.optional(),
1990
+ })
1991
+ .passthrough();
1992
+ const ServerInfoHostnameSchema = z.unknown().transform((value) => {
1993
+ if (typeof value !== "string") {
1994
+ return null;
1995
+ }
1996
+ const trimmed = value.trim();
1997
+ return trimmed.length > 0 ? trimmed : null;
1998
+ });
1999
+ const ServerInfoVersionSchema = z.unknown().transform((value) => {
2000
+ if (typeof value !== "string") {
2001
+ return null;
2002
+ }
2003
+ const trimmed = value.trim();
2004
+ return trimmed.length > 0 ? trimmed : null;
2005
+ });
2006
+ const ServerCapabilitiesFromUnknownSchema = z
2007
+ .unknown()
2008
+ .optional()
2009
+ .transform((value) => {
2010
+ if (value === undefined) {
2011
+ return undefined;
2012
+ }
2013
+ const parsed = ServerCapabilitiesSchema.safeParse(value);
2014
+ if (!parsed.success) {
2015
+ return undefined;
2016
+ }
2017
+ return parsed.data;
2018
+ });
2019
+ export const ServerInfoStatusPayloadSchema = z
2020
+ .object({
2021
+ status: z.literal("server_info"),
2022
+ serverId: z.string().trim().min(1),
2023
+ hostname: ServerInfoHostnameSchema.optional(),
2024
+ version: ServerInfoVersionSchema.optional(),
2025
+ capabilities: ServerCapabilitiesFromUnknownSchema.optional(),
2026
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
2027
+ features: z
2028
+ .object({
2029
+ providersSnapshot: z.boolean().optional(),
2030
+ checkoutGithubSetAutoMerge: z.boolean().optional(),
2031
+ // COMPAT(githubCheckDetails): added in v0.1.92, remove gate after 2026-12-08.
2032
+ githubCheckDetails: z.boolean().optional(),
2033
+ // COMPAT(daemonStatusRpc): added in v0.1.76, remove gate after 2026-11-18.
2034
+ daemonStatusRpc: z.boolean().optional(),
2035
+ // COMPAT(terminalRestoreModes): added in v0.1.81, remove gate after 2026-11-23.
2036
+ "terminal-restore-modes": z.boolean().optional(),
2037
+ // COMPAT(rewind): added in v0.1.X, drop the gate when floor >= v0.1.X.
2038
+ rewind: z.boolean().optional(),
2039
+ // COMPAT(checkoutRefresh): added in v0.1.86, remove gate after 2026-11-29.
2040
+ checkoutRefresh: z.boolean().optional(),
2041
+ // COMPAT(workspaceMultiplicity): added in v0.1.97, drop the gate when floor >= v0.1.97
2042
+ workspaceMultiplicity: z.boolean().optional(),
2043
+ // COMPAT(projectRemove): added in v0.1.97, drop the gate when floor >= v0.1.97.
2044
+ projectRemove: z.boolean().optional(),
2045
+ // COMPAT(projectAdd): added in v0.1.97, drop the gate when floor >= v0.1.97.
2046
+ projectAdd: z.boolean().optional(),
2047
+ // COMPAT(worktreeRestore): added in v0.1.97, drop the gate when floor >= v0.1.97
2048
+ worktreeRestore: z.boolean().optional(),
2049
+ // COMPAT(providerUsageList): added in v0.1.98, drop the gate when daemon floor >= v0.1.98.
2050
+ providerUsageList: z.boolean().optional(),
2051
+ // COMPAT(agentDetach): added in v0.1.98, remove gate after 2026-12-19 once daemon floor >= v0.1.98.
2052
+ agentDetach: z.boolean().optional(),
2053
+ // COMPAT(daemonDiagnostics): added in v0.1.100, remove gate after 2026-12-25 once daemon floor >= v0.1.100.
2054
+ daemonDiagnostics: z.boolean().optional(),
2055
+ // COMPAT(daemonSelfUpdate): added in v0.1.93, remove gate after 2026-12-13.
2056
+ daemonSelfUpdate: z.boolean().optional(),
2057
+ // COMPAT(agentForkContext): added in v0.1.102, remove gate after 2026-12-28.
2058
+ agentForkContext: z.boolean().optional(),
2059
+ // COMPAT(agentForkContextCursor): added in v0.1.108, remove gate after 2027-01-14.
2060
+ agentForkContextCursor: z.boolean().optional(),
2061
+ // COMPAT(providerSubagents): added in v0.1.107, remove gate after 2027-01-12.
2062
+ providerSubagents: z.boolean().optional(),
2063
+ // COMPAT(workspacePinning): added in v0.1.107, remove gate after 2027-01-12.
2064
+ workspacePinning: z.boolean().optional(),
2065
+ // COMPAT(workspaceGithubClone): added in v0.1.108, remove gate after 2027-01-13.
2066
+ workspaceGithubClone: z.boolean().optional(),
2067
+ })
2068
+ .optional(),
2069
+ })
2070
+ .passthrough()
2071
+ .transform((payload) => ({
2072
+ ...payload,
2073
+ hostname: payload.hostname ?? null,
2074
+ version: payload.version ?? null,
2075
+ }));
2076
+ export const StatusMessageSchema = z.object({
2077
+ type: z.literal("status"),
2078
+ payload: z
2079
+ .object({
2080
+ status: z.string(),
2081
+ })
2082
+ .passthrough(), // Allow additional fields
2083
+ });
2084
+ export const PongMessageSchema = z.object({
2085
+ type: z.literal("pong"),
2086
+ payload: z.object({
2087
+ requestId: z.string(),
2088
+ clientSentAt: z.number().int().optional(),
2089
+ serverReceivedAt: z.number().int(),
2090
+ serverSentAt: z.number().int(),
2091
+ }),
2092
+ });
2093
+ export const RpcErrorMessageSchema = z.object({
2094
+ type: z.literal("rpc_error"),
2095
+ payload: z.object({
2096
+ requestId: z.string(),
2097
+ requestType: z.string().optional(),
2098
+ error: z.string(),
2099
+ code: z.string().optional(),
2100
+ }),
2101
+ });
2102
+ const AgentStatusWithRequestSchema = z.object({
2103
+ agentId: z.string(),
2104
+ requestId: z.string(),
2105
+ });
2106
+ const AgentStatusWithTimelineSchema = AgentStatusWithRequestSchema.extend({
2107
+ timelineSize: z.number().optional(),
2108
+ });
2109
+ export const AgentCreatedStatusPayloadSchema = z
2110
+ .object({
2111
+ status: z.literal("agent_created"),
2112
+ agent: AgentSnapshotPayloadSchema,
2113
+ })
2114
+ .extend(AgentStatusWithRequestSchema.shape);
2115
+ export const AgentCreateFailedStatusPayloadSchema = z.object({
2116
+ status: z.literal("agent_create_failed"),
2117
+ requestId: z.string(),
2118
+ error: z.string(),
2119
+ errorCode: z.string().optional(),
2120
+ });
2121
+ export const AgentResumedStatusPayloadSchema = z
2122
+ .object({
2123
+ status: z.literal("agent_resumed"),
2124
+ agent: AgentSnapshotPayloadSchema,
2125
+ })
2126
+ .extend(AgentStatusWithTimelineSchema.shape);
2127
+ export const AgentRefreshedStatusPayloadSchema = z
2128
+ .object({
2129
+ status: z.literal("agent_refreshed"),
2130
+ })
2131
+ .extend(AgentStatusWithTimelineSchema.shape);
2132
+ export const RestartRequestedStatusPayloadSchema = z.object({
2133
+ status: z.literal("restart_requested"),
2134
+ clientId: z.string(),
2135
+ reason: z.string().optional(),
2136
+ requestId: z.string(),
2137
+ });
2138
+ export const ShutdownRequestedStatusPayloadSchema = z.object({
2139
+ status: z.literal("shutdown_requested"),
2140
+ clientId: z.string(),
2141
+ requestId: z.string(),
2142
+ });
2143
+ export const DaemonConfigChangedStatusPayloadSchema = z
2144
+ .object({
2145
+ status: z.literal("daemon_config_changed"),
2146
+ config: MutableDaemonConfigSchema,
2147
+ })
2148
+ .passthrough();
2149
+ export const KnownStatusPayloadSchema = z.discriminatedUnion("status", [
2150
+ AgentCreatedStatusPayloadSchema,
2151
+ AgentCreateFailedStatusPayloadSchema,
2152
+ AgentResumedStatusPayloadSchema,
2153
+ AgentRefreshedStatusPayloadSchema,
2154
+ ShutdownRequestedStatusPayloadSchema,
2155
+ RestartRequestedStatusPayloadSchema,
2156
+ DaemonConfigChangedStatusPayloadSchema,
2157
+ ]);
2158
+ export const ArtifactMessageSchema = z.object({
2159
+ type: z.literal("artifact"),
2160
+ payload: z.object({
2161
+ type: z.enum(["markdown", "diff", "image", "code"]),
2162
+ id: z.string(),
2163
+ title: z.string(),
2164
+ content: z.string(),
2165
+ isBase64: z.boolean(),
2166
+ }),
2167
+ });
2168
+ export const ProjectCheckoutLiteNotGitPayloadSchema = z
2169
+ .object({
2170
+ cwd: z.string(),
2171
+ isGit: z.literal(false),
2172
+ currentBranch: z.null(),
2173
+ remoteUrl: z.null(),
2174
+ worktreeRoot: z.null().optional(),
2175
+ isBySpaceOwnedWorktree: z.literal(false),
2176
+ mainRepoRoot: z.null(),
2177
+ })
2178
+ .transform((value) => ({
2179
+ ...value,
2180
+ worktreeRoot: null,
2181
+ }));
2182
+ export const ProjectCheckoutLiteGitNonBySpacePayloadSchema = z
2183
+ .object({
2184
+ cwd: z.string(),
2185
+ isGit: z.literal(true),
2186
+ currentBranch: z.string().nullable(),
2187
+ remoteUrl: z.string().nullable(),
2188
+ worktreeRoot: z.string().optional(),
2189
+ isBySpaceOwnedWorktree: z.literal(false),
2190
+ mainRepoRoot: z.string().nullable().optional().default(null),
2191
+ })
2192
+ .transform((value) => ({
2193
+ ...value,
2194
+ worktreeRoot: value.worktreeRoot ?? value.cwd,
2195
+ }));
2196
+ export const ProjectCheckoutLiteGitBySpacePayloadSchema = z
2197
+ .object({
2198
+ cwd: z.string(),
2199
+ isGit: z.literal(true),
2200
+ currentBranch: z.string().nullable(),
2201
+ remoteUrl: z.string().nullable(),
2202
+ worktreeRoot: z.string().optional(),
2203
+ isBySpaceOwnedWorktree: z.literal(true),
2204
+ mainRepoRoot: z.string(),
2205
+ })
2206
+ .transform((value) => ({
2207
+ ...value,
2208
+ worktreeRoot: value.worktreeRoot ?? value.cwd,
2209
+ }));
2210
+ export const ProjectCheckoutLitePayloadSchema = z.union([
2211
+ ProjectCheckoutLiteNotGitPayloadSchema,
2212
+ ProjectCheckoutLiteGitNonBySpacePayloadSchema,
2213
+ ProjectCheckoutLiteGitBySpacePayloadSchema,
2214
+ ]);
2215
+ export const ProjectPlacementPayloadSchema = z.object({
2216
+ projectKey: z.string(),
2217
+ projectName: z.string(),
2218
+ workspaceName: z.string().nullable().optional(),
2219
+ checkout: ProjectCheckoutLitePayloadSchema,
2220
+ });
2221
+ export const WorkspaceScriptLifecycleSchema = z.enum(["running", "stopped"]);
2222
+ export const WorkspaceScriptHealthSchema = z.enum(["healthy", "unhealthy"]);
2223
+ export const WorkspaceScriptPayloadSchema = z.object({
2224
+ scriptName: z.string(),
2225
+ type: z.enum(["script", "service"]).optional().default("service"),
2226
+ hostname: z.string(),
2227
+ port: z.number().int().positive().nullable(),
2228
+ localProxyUrl: z.string().nullable().optional(),
2229
+ publicProxyUrl: z.string().nullable().optional(),
2230
+ proxyUrl: z.string().nullable().optional().default(null),
2231
+ lifecycle: WorkspaceScriptLifecycleSchema,
2232
+ health: WorkspaceScriptHealthSchema.nullable(),
2233
+ exitCode: z.number().nullable().optional().default(null),
2234
+ terminalId: z.string().nullable().optional().default(null),
2235
+ });
2236
+ const WorkspaceGitRuntimePayloadSchema = z
2237
+ .object({
2238
+ currentBranch: z.string().nullable().optional(),
2239
+ remoteUrl: z.string().nullable().optional(),
2240
+ isBySpaceOwnedWorktree: z.boolean().optional(),
2241
+ isDirty: z.boolean().nullable().optional(),
2242
+ aheadBehind: z
2243
+ .object({
2244
+ ahead: z.number(),
2245
+ behind: z.number(),
2246
+ })
2247
+ .nullable()
2248
+ .optional(),
2249
+ aheadOfOrigin: z.number().nullable().optional(),
2250
+ behindOfOrigin: z.number().nullable().optional(),
2251
+ })
2252
+ .optional()
2253
+ .nullable();
2254
+ const WorkspaceGitHubRuntimePayloadSchema = z
2255
+ .object({
2256
+ featuresEnabled: z.boolean().optional(),
2257
+ pullRequest: z
2258
+ .object({
2259
+ number: z.number().optional(),
2260
+ url: z.string(),
2261
+ title: z.string(),
2262
+ state: z.string(),
2263
+ baseRefName: z.string(),
2264
+ headRefName: z.string(),
2265
+ isMerged: z.boolean(),
2266
+ isDraft: z.boolean().optional(),
2267
+ mergeable: z.enum(["MERGEABLE", "CONFLICTING", "UNKNOWN"]).catch("UNKNOWN").optional(),
2268
+ checks: z
2269
+ .array(z.object({
2270
+ name: z.string(),
2271
+ status: z.enum(["success", "failure", "pending", "skipped", "cancelled"]),
2272
+ url: z.string().nullable(),
2273
+ workflow: z.string().optional(),
2274
+ duration: z.string().optional(),
2275
+ }))
2276
+ .optional(),
2277
+ checksStatus: z.enum(["none", "pending", "success", "failure"]).optional(),
2278
+ reviewDecision: z.enum(["approved", "changes_requested", "pending"]).nullable().optional(),
2279
+ repoOwner: z.string().optional(),
2280
+ repoName: z.string().optional(),
2281
+ github: z.unknown().optional(),
2282
+ })
2283
+ .nullable()
2284
+ .optional(),
2285
+ error: z
2286
+ .object({
2287
+ message: z.string(),
2288
+ })
2289
+ .nullable()
2290
+ .optional(),
2291
+ refreshedAt: z.string().nullable().optional(),
2292
+ })
2293
+ .optional()
2294
+ .nullable();
2295
+ export const WorkspaceDescriptorPayloadSchema = z
2296
+ .object({
2297
+ id: z.string(),
2298
+ projectId: z.string(),
2299
+ projectDisplayName: z.string(),
2300
+ // COMPAT(projectCustomName): added in v0.1.76, drop the optional gate when floor >= v0.1.76.
2301
+ // When the user has renamed a project, projectDisplayName carries the resolved
2302
+ // value (customName) and projectCustomName mirrors the raw override so the
2303
+ // settings UI can prefill its input and offer a "reset" action.
2304
+ projectCustomName: z.string().nullable().optional(),
2305
+ projectRootPath: z.string(),
2306
+ workspaceDirectory: z.string().optional(),
2307
+ projectKind: z.enum(["git", "non_git", "directory"]),
2308
+ // COMPAT(workspaces): keep legacy directory workspace kind parseable.
2309
+ workspaceKind: z.enum(["directory", "local_checkout", "checkout", "worktree"]),
2310
+ name: z.string(),
2311
+ // COMPAT(workspaceTitles): added in v0.1.97, drop the optional gate when floor >= v0.1.97.
2312
+ // When the user has titled a workspace, `name` carries the resolved value
2313
+ // (title) and `title` mirrors the raw override so the rename UI can prefill
2314
+ // its input and offer a "reset to branch name" action. Null means the name
2315
+ // is derived from the branch/directory.
2316
+ title: z.string().nullable().optional(),
2317
+ // COMPAT(workspacePinning): added in v0.1.107, remove optional after 2027-01-12.
2318
+ pinnedAt: z.string().nullable().optional(),
2319
+ archivingAt: z.string().nullable().optional().default(null),
2320
+ status: WorkspaceStateBucketSchema,
2321
+ // Best-effort workspace status entry timestamp. Old daemons omit the
2322
+ // field; old clients treat missing and null equivalently. The transform
2323
+ // coerces a missing field to `null` so downstream code never has to
2324
+ // handle `undefined`.
2325
+ statusEnteredAt: z
2326
+ .string()
2327
+ .nullish()
2328
+ .transform((value) => value ?? null),
2329
+ activityAt: z.string().nullable(),
2330
+ diffStat: z
2331
+ .object({
2332
+ additions: z.number(),
2333
+ deletions: z.number(),
2334
+ })
2335
+ .nullable()
2336
+ .optional(),
2337
+ scripts: z.array(WorkspaceScriptPayloadSchema).default([]),
2338
+ gitRuntime: WorkspaceGitRuntimePayloadSchema,
2339
+ githubRuntime: WorkspaceGitHubRuntimePayloadSchema,
2340
+ project: ProjectPlacementPayloadSchema.optional(),
2341
+ })
2342
+ .transform((workspace) => ({
2343
+ ...workspace,
2344
+ workspaceDirectory: workspace.workspaceDirectory ?? workspace.projectRootPath,
2345
+ }));
2346
+ export const AgentUpdateMessageSchema = z.object({
2347
+ type: z.literal("agent_update"),
2348
+ payload: z.discriminatedUnion("kind", [
2349
+ z.object({
2350
+ kind: z.literal("upsert"),
2351
+ agent: AgentSnapshotPayloadSchema,
2352
+ project: ProjectPlacementPayloadSchema.nullable().optional(),
2353
+ }),
2354
+ z.object({
2355
+ kind: z.literal("remove"),
2356
+ agentId: z.string(),
2357
+ }),
2358
+ ]),
2359
+ });
2360
+ export const AgentStreamMessageSchema = z.object({
2361
+ type: z.literal("agent_stream"),
2362
+ payload: z.object({
2363
+ agentId: z.string(),
2364
+ event: AgentStreamEventPayloadSchema,
2365
+ timestamp: z.string(),
2366
+ // Present for timeline events. Maps 1:1 to canonical in-memory timeline rows.
2367
+ seq: z.number().int().nonnegative().optional(),
2368
+ epoch: z.string().optional(),
2369
+ }),
2370
+ });
2371
+ export const AgentStatusMessageSchema = z.object({
2372
+ type: z.literal("agent_status"),
2373
+ payload: z.object({
2374
+ agentId: z.string(),
2375
+ status: z.string(),
2376
+ info: AgentSnapshotPayloadSchema,
2377
+ }),
2378
+ });
2379
+ export const AgentListMessageSchema = z.object({
2380
+ type: z.literal("agent_list"),
2381
+ payload: z.object({
2382
+ agents: z.array(AgentSnapshotPayloadSchema),
2383
+ }),
2384
+ });
2385
+ const AgentDirectoryResponseEntrySchema = z.object({
2386
+ agent: AgentSnapshotPayloadSchema,
2387
+ project: ProjectPlacementPayloadSchema,
2388
+ });
2389
+ const AgentDirectoryPageInfoSchema = z.object({
2390
+ nextCursor: z.string().nullable(),
2391
+ prevCursor: z.string().nullable(),
2392
+ hasMore: z.boolean(),
2393
+ });
2394
+ export const FetchAgentsResponseMessageSchema = z.object({
2395
+ type: z.literal("fetch_agents_response"),
2396
+ payload: z.object({
2397
+ requestId: z.string(),
2398
+ subscriptionId: z.string().nullable().optional(),
2399
+ entries: z.array(AgentDirectoryResponseEntrySchema),
2400
+ pageInfo: AgentDirectoryPageInfoSchema,
2401
+ }),
2402
+ });
2403
+ export const FetchAgentHistoryResponseMessageSchema = z.object({
2404
+ type: z.literal("fetch_agent_history_response"),
2405
+ payload: z.object({
2406
+ requestId: z.string(),
2407
+ entries: z.array(AgentDirectoryResponseEntrySchema),
2408
+ pageInfo: AgentDirectoryPageInfoSchema,
2409
+ }),
2410
+ });
2411
+ export const FetchRecentProviderSessionsResponseMessageSchema = z.object({
2412
+ type: z.literal("fetch_recent_provider_sessions_response"),
2413
+ payload: z.object({
2414
+ requestId: z.string(),
2415
+ entries: z.array(RecentProviderSessionDescriptorPayloadSchema),
2416
+ filteredAlreadyImportedCount: z.number().int().nonnegative().optional(),
2417
+ }),
2418
+ });
2419
+ // COMPAT(workspaceProjects): added in v0.1.97, drop the optional gate when floor >= v0.1.97.
2420
+ // A project parent that has zero active workspaces. The sidebar renders the
2421
+ // project row with a new-workspace child so projects persist after their last
2422
+ // workspace is archived.
2423
+ export const WorkspaceProjectDescriptorPayloadSchema = z.object({
2424
+ projectId: z.string(),
2425
+ projectDisplayName: z.string(),
2426
+ projectCustomName: z.string().nullable().optional(),
2427
+ projectRootPath: z.string(),
2428
+ projectKind: z.enum(["git", "non_git", "directory"]),
2429
+ });
2430
+ export const FetchWorkspacesResponseMessageSchema = z.object({
2431
+ type: z.literal("fetch_workspaces_response"),
2432
+ payload: z.object({
2433
+ requestId: z.string(),
2434
+ subscriptionId: z.string().nullable().optional(),
2435
+ entries: z.array(WorkspaceDescriptorPayloadSchema),
2436
+ // COMPAT(workspaceProjects): added in v0.1.97, drop the optional gate when floor >= v0.1.97.
2437
+ // Project parents with no active workspaces. Old daemons omit it; old clients
2438
+ // ignore it. Only populated on the first page (no cursor).
2439
+ emptyProjects: z.array(WorkspaceProjectDescriptorPayloadSchema).optional().default([]),
2440
+ pageInfo: z.object({
2441
+ nextCursor: z.string().nullable(),
2442
+ prevCursor: z.string().nullable(),
2443
+ hasMore: z.boolean(),
2444
+ }),
2445
+ }),
2446
+ });
2447
+ export const WorkspaceUpdateMessageSchema = z.object({
2448
+ type: z.literal("workspace_update"),
2449
+ payload: z.discriminatedUnion("kind", [
2450
+ z.object({
2451
+ kind: z.literal("upsert"),
2452
+ workspace: WorkspaceDescriptorPayloadSchema,
2453
+ }),
2454
+ z.object({
2455
+ kind: z.literal("remove"),
2456
+ id: z.string(),
2457
+ // COMPAT(workspaceProjects): added in v0.1.97, drop the optional gate when floor >= v0.1.97.
2458
+ // When archiving this workspace leaves its project with no active
2459
+ // workspaces, the daemon includes the project parent so the sidebar keeps
2460
+ // rendering it without waiting for a full re-hydration. Old daemons omit
2461
+ // it; old clients ignore it and surface the project on their next
2462
+ // workspace fetch instead.
2463
+ emptyProject: WorkspaceProjectDescriptorPayloadSchema.optional(),
2464
+ // Project removal is represented on the existing workspace update channel
2465
+ // so old clients can still parse the message and ignore the extra field.
2466
+ removedProjectId: z.string().optional(),
2467
+ }),
2468
+ ]),
2469
+ });
2470
+ export const ScriptStatusUpdateMessageSchema = z.object({
2471
+ type: z.literal("script_status_update"),
2472
+ payload: z.object({
2473
+ workspaceId: z.string(),
2474
+ scripts: z.array(WorkspaceScriptPayloadSchema),
2475
+ }),
2476
+ });
2477
+ export const WorkspaceSetupProgressMessageSchema = z.object({
2478
+ type: z.literal("workspace_setup_progress"),
2479
+ payload: z.object({
2480
+ workspaceId: z.string(),
2481
+ status: z.enum(["running", "completed", "failed"]),
2482
+ detail: WorktreeSetupDetailPayloadSchema,
2483
+ error: z.string().nullable(),
2484
+ }),
2485
+ });
2486
+ export const WorkspaceSetupSnapshotSchema = z.object({
2487
+ status: z.enum(["running", "completed", "failed"]),
2488
+ detail: WorktreeSetupDetailPayloadSchema,
2489
+ error: z.string().nullable(),
2490
+ });
2491
+ export const WorkspaceSetupStatusResponseMessageSchema = z.object({
2492
+ type: z.literal("workspace_setup_status_response"),
2493
+ payload: z.object({
2494
+ requestId: z.string(),
2495
+ workspaceId: z.string(),
2496
+ snapshot: WorkspaceSetupSnapshotSchema.nullable(),
2497
+ }),
2498
+ });
2499
+ export const OpenProjectResponseMessageSchema = z.object({
2500
+ type: z.literal("open_project_response"),
2501
+ payload: z.object({
2502
+ requestId: z.string(),
2503
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2504
+ error: z.string().nullable(),
2505
+ // Unknown codes from newer daemons degrade to null; clients fall back to `error`.
2506
+ errorCode: z.enum(["directory_not_found"]).nullish().catch(null),
2507
+ }),
2508
+ });
2509
+ export const ProjectAddResponseSchema = z.object({
2510
+ type: z.literal("project.add.response"),
2511
+ payload: z.object({
2512
+ requestId: z.string(),
2513
+ project: WorkspaceProjectDescriptorPayloadSchema.nullable(),
2514
+ error: z.string().nullable(),
2515
+ errorCode: z.enum(["directory_not_found"]).nullish().catch(null),
2516
+ }),
2517
+ });
2518
+ export const WorkspaceGithubCloneResponseSchema = z.object({
2519
+ type: z.literal("workspace.github.clone.response"),
2520
+ payload: z.object({
2521
+ requestId: z.string(),
2522
+ repo: z.string().trim().min(MIN_REPOSITORY_PATH_LENGTH),
2523
+ checkoutPath: z.string().nullable(),
2524
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2525
+ error: z.string().nullable(),
2526
+ }),
2527
+ });
2528
+ export const StartWorkspaceScriptResponseMessageSchema = z.object({
2529
+ type: z.literal("start_workspace_script_response"),
2530
+ payload: z.object({
2531
+ requestId: z.string(),
2532
+ workspaceId: z.string(),
2533
+ scriptName: z.string(),
2534
+ terminalId: z.string().nullable(),
2535
+ error: z.string().nullable(),
2536
+ }),
2537
+ });
2538
+ // COMPAT(desktopEditorBridge): added in v0.1.88, remove after 2026-12-03 once old clients no longer parse daemon editor RPC responses.
2539
+ export const LegacyListAvailableEditorsResponseMessageSchema = z.object({
2540
+ type: z.literal("list_available_editors_response"),
2541
+ payload: z.object({
2542
+ requestId: z.string(),
2543
+ editors: z.array(z.object({
2544
+ id: z.string().trim().min(1),
2545
+ label: z.string(),
2546
+ })),
2547
+ error: z.string().nullable(),
2548
+ }),
2549
+ });
2550
+ export const LegacyOpenInEditorResponseMessageSchema = z.object({
2551
+ type: z.literal("open_in_editor_response"),
2552
+ payload: z.object({
2553
+ requestId: z.string(),
2554
+ error: z.string().nullable(),
2555
+ }),
2556
+ });
2557
+ export const ArchiveWorkspaceResponseMessageSchema = z.object({
2558
+ type: z.literal("archive_workspace_response"),
2559
+ payload: z.object({
2560
+ requestId: z.string(),
2561
+ workspaceId: z.string(),
2562
+ archivedAt: z.string().nullable(),
2563
+ error: z.string().nullable(),
2564
+ }),
2565
+ });
2566
+ export const FetchAgentResponseMessageSchema = z.object({
2567
+ type: z.literal("fetch_agent_response"),
2568
+ payload: z.object({
2569
+ requestId: z.string(),
2570
+ agent: AgentSnapshotPayloadSchema.nullable(),
2571
+ project: ProjectPlacementPayloadSchema.nullable().optional(),
2572
+ error: z.string().nullable(),
2573
+ }),
2574
+ });
2575
+ const AgentTimelineSeqRangeSchema = z.object({
2576
+ startSeq: z.number().int().nonnegative(),
2577
+ endSeq: z.number().int().nonnegative(),
2578
+ });
2579
+ export const AgentTimelineEntryPayloadSchema = z.object({
2580
+ provider: AgentProviderSchema,
2581
+ item: AgentTimelineItemPayloadSchema,
2582
+ timestamp: z.string(),
2583
+ seqStart: z.number().int().nonnegative(),
2584
+ seqEnd: z.number().int().nonnegative(),
2585
+ sourceSeqRanges: z.array(AgentTimelineSeqRangeSchema),
2586
+ collapsed: z.array(z.enum(["assistant_merge", "reasoning_merge", "tool_lifecycle"])),
2587
+ });
2588
+ export const FetchAgentTimelineResponseMessageSchema = z.object({
2589
+ type: z.literal("fetch_agent_timeline_response"),
2590
+ payload: z.object({
2591
+ requestId: z.string(),
2592
+ agentId: z.string(),
2593
+ agent: AgentSnapshotPayloadSchema.nullable(),
2594
+ direction: z.enum(["tail", "before", "after"]),
2595
+ projection: z.enum(["projected", "canonical"]),
2596
+ epoch: z.string(),
2597
+ reset: z.boolean(),
2598
+ staleCursor: z.boolean(),
2599
+ gap: z.boolean(),
2600
+ window: z.object({
2601
+ minSeq: z.number().int().nonnegative(),
2602
+ maxSeq: z.number().int().nonnegative(),
2603
+ nextSeq: z.number().int().nonnegative(),
2604
+ }),
2605
+ startCursor: AgentTimelineCursorSchema.nullable(),
2606
+ endCursor: AgentTimelineCursorSchema.nullable(),
2607
+ hasOlder: z.boolean(),
2608
+ hasNewer: z.boolean(),
2609
+ entries: z.array(AgentTimelineEntryPayloadSchema),
2610
+ error: z.string().nullable(),
2611
+ }),
2612
+ });
2613
+ export const ProviderSubagentDescriptorPayloadSchema = z.object({
2614
+ id: z.string(),
2615
+ parentAgentId: z.string(),
2616
+ provider: AgentProviderSchema,
2617
+ title: z.string().nullable(),
2618
+ description: z.string().nullable(),
2619
+ status: z.enum(["running", "completed", "failed", "canceled"]),
2620
+ createdAt: z.string(),
2621
+ updatedAt: z.string(),
2622
+ toolCallId: z.string().nullable(),
2623
+ cwd: z.string().nullable().optional(),
2624
+ });
2625
+ export const ProviderSubagentListResponseMessageSchema = z.object({
2626
+ type: z.literal("agent.provider_subagents.list.response"),
2627
+ payload: z.object({
2628
+ requestId: z.string(),
2629
+ parentAgentId: z.string(),
2630
+ subagents: z.array(ProviderSubagentDescriptorPayloadSchema),
2631
+ error: z.string().nullable(),
2632
+ }),
2633
+ });
2634
+ export const ProviderSubagentTimelineResponseMessageSchema = z.object({
2635
+ type: z.literal("agent.provider_subagents.timeline.get.response"),
2636
+ payload: z.object({
2637
+ requestId: z.string(),
2638
+ parentAgentId: z.string(),
2639
+ subagentId: z.string(),
2640
+ provider: AgentProviderSchema.nullable(),
2641
+ direction: z.enum(["tail", "before", "after"]),
2642
+ epoch: z.string(),
2643
+ reset: z.boolean(),
2644
+ staleCursor: z.boolean(),
2645
+ gap: z.boolean(),
2646
+ window: z.object({
2647
+ minSeq: z.number().int().nonnegative(),
2648
+ maxSeq: z.number().int().nonnegative(),
2649
+ nextSeq: z.number().int().nonnegative(),
2650
+ }),
2651
+ hasOlder: z.boolean(),
2652
+ hasNewer: z.boolean(),
2653
+ rows: z.array(z.object({
2654
+ item: AgentTimelineItemPayloadSchema,
2655
+ timestamp: z.string(),
2656
+ seq: z.number().int().nonnegative(),
2657
+ })),
2658
+ error: z.string().nullable(),
2659
+ }),
2660
+ });
2661
+ export const ProviderSubagentUpdateMessageSchema = z.object({
2662
+ type: z.literal("agent.provider_subagents.update"),
2663
+ payload: z.discriminatedUnion("kind", [
2664
+ z.object({
2665
+ kind: z.literal("upsert"),
2666
+ subagent: ProviderSubagentDescriptorPayloadSchema,
2667
+ }),
2668
+ z.object({
2669
+ kind: z.literal("timeline"),
2670
+ parentAgentId: z.string(),
2671
+ subagentId: z.string(),
2672
+ provider: AgentProviderSchema,
2673
+ item: AgentTimelineItemPayloadSchema,
2674
+ timestamp: z.string(),
2675
+ seq: z.number().int().nonnegative(),
2676
+ epoch: z.string(),
2677
+ }),
2678
+ z.object({
2679
+ kind: z.literal("remove"),
2680
+ parentAgentId: z.string(),
2681
+ subagentId: z.string(),
2682
+ }),
2683
+ ]),
2684
+ });
2685
+ export const AgentForkContextResponseMessageSchema = z.object({
2686
+ type: z.literal("agent.fork_context.response"),
2687
+ payload: z.object({
2688
+ requestId: z.string(),
2689
+ agentId: z.string(),
2690
+ attachment: TextAttachmentSchema.nullable(),
2691
+ itemCount: z.number().int().nonnegative(),
2692
+ boundaryMessageId: z.string().nullable(),
2693
+ boundaryCursor: AgentTimelineCursorSchema.nullable().optional(),
2694
+ error: z.string().nullable(),
2695
+ }),
2696
+ });
2697
+ export const CancelAgentResponseMessageSchema = z.object({
2698
+ type: z.literal("cancel_agent_response"),
2699
+ payload: z.object({
2700
+ requestId: z.string(),
2701
+ agentId: z.string(),
2702
+ agent: AgentSnapshotPayloadSchema.nullable(),
2703
+ error: z.string().nullable().optional(),
2704
+ }),
2705
+ });
2706
+ export const ClearAgentAttentionResponseMessageSchema = z.object({
2707
+ type: z.literal("clear_agent_attention_response"),
2708
+ payload: z.object({
2709
+ requestId: z.string(),
2710
+ agentId: z.string().or(z.array(z.string())),
2711
+ agents: z.array(AgentSnapshotPayloadSchema),
2712
+ }),
2713
+ });
2714
+ export const WorkspaceCreateResponseSchema = z.object({
2715
+ type: z.literal("workspace.create.response"),
2716
+ payload: z.object({
2717
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
2718
+ setupTerminalId: z.string().nullable(),
2719
+ error: z.string().nullable(),
2720
+ errorCode: z.string().optional(),
2721
+ requestId: z.string(),
2722
+ }),
2723
+ });
2724
+ export const WorkspaceClearAttentionResponseSchema = z.object({
2725
+ type: z.literal("workspace.clear_attention.response"),
2726
+ payload: z.object({
2727
+ requestId: z.string(),
2728
+ workspaceId: z.union([z.string(), z.array(z.string())]),
2729
+ clearedAgentIds: z.array(z.string()),
2730
+ results: z.array(z.object({
2731
+ workspaceId: z.string(),
2732
+ clearedAgentIds: z.array(z.string()),
2733
+ success: z.boolean(),
2734
+ error: z.string().nullable(),
2735
+ })),
2736
+ success: z.boolean(),
2737
+ error: z.string().nullable(),
2738
+ }),
2739
+ });
2740
+ export const SendAgentMessageResponseMessageSchema = z.object({
2741
+ type: z.literal("send_agent_message_response"),
2742
+ payload: z.object({
2743
+ requestId: z.string(),
2744
+ agentId: z.string(),
2745
+ accepted: z.boolean(),
2746
+ error: z.string().nullable(),
2747
+ }),
2748
+ });
2749
+ export const WaitForFinishResponseMessageSchema = z.object({
2750
+ type: z.literal("wait_for_finish_response"),
2751
+ payload: z.object({
2752
+ requestId: z.string(),
2753
+ status: z.enum(["idle", "error", "permission", "timeout"]),
2754
+ final: AgentSnapshotPayloadSchema.nullable(),
2755
+ error: z.string().nullable(),
2756
+ lastMessage: z.string().nullable(),
2757
+ }),
2758
+ });
2759
+ export const GetDaemonConfigResponseMessageSchema = z.object({
2760
+ type: z.literal("get_daemon_config_response"),
2761
+ payload: z
2762
+ .object({
2763
+ requestId: z.string(),
2764
+ config: MutableDaemonConfigSchema,
2765
+ })
2766
+ .passthrough(),
2767
+ });
2768
+ export const DaemonGetStatusResponseSchema = z.object({
2769
+ type: z.literal("daemon.get_status.response"),
2770
+ payload: z
2771
+ .object({
2772
+ requestId: z.string(),
2773
+ serverId: z.string(),
2774
+ version: z.string().nullable().optional(),
2775
+ pid: z.number(),
2776
+ nodePath: z.string(),
2777
+ startedAt: z.string().nullable().optional(),
2778
+ listen: z.string().nullable(),
2779
+ relay: z
2780
+ .object({
2781
+ enabled: z.boolean(),
2782
+ endpoint: z.string(),
2783
+ publicEndpoint: z.string(),
2784
+ useTls: z.boolean(),
2785
+ publicUseTls: z.boolean(),
2786
+ })
2787
+ .nullable()
2788
+ .optional(),
2789
+ providers: z.array(z.object({
2790
+ provider: z.string(),
2791
+ available: z.boolean(),
2792
+ error: z.string().nullable().optional(),
2793
+ })),
2794
+ })
2795
+ .passthrough(),
2796
+ });
2797
+ export const DaemonGetPairingOfferResponseSchema = z.object({
2798
+ type: z.literal("daemon.get_pairing_offer.response"),
2799
+ payload: z
2800
+ .object({
2801
+ requestId: z.string(),
2802
+ url: z.string(),
2803
+ qr: z.string().nullable().optional(),
2804
+ relayEnabled: z.boolean(),
2805
+ })
2806
+ .passthrough(),
2807
+ });
2808
+ export const DiagnosticsResponseSchema = z.object({
2809
+ type: z.literal("diagnostics.response"),
2810
+ payload: z
2811
+ .object({
2812
+ requestId: z.string(),
2813
+ diagnostic: z.string(),
2814
+ })
2815
+ .passthrough(),
2816
+ });
2817
+ export const SetDaemonConfigResponseMessageSchema = z.object({
2818
+ type: z.literal("set_daemon_config_response"),
2819
+ payload: z
2820
+ .object({
2821
+ requestId: z.string(),
2822
+ config: MutableDaemonConfigSchema,
2823
+ })
2824
+ .passthrough(),
2825
+ });
2826
+ export const ReadProjectConfigResponseMessageSchema = z.object({
2827
+ type: z.literal("read_project_config_response"),
2828
+ // zod-aot 0.2.0 miscompiles boolean discriminators as string options
2829
+ // (`"true"`/`"false"`), so keep this sequential until upstream fixes it.
2830
+ payload: z.union([
2831
+ z.object({
2832
+ requestId: z.string(),
2833
+ repoRoot: z.string(),
2834
+ ok: z.literal(true),
2835
+ config: BySpaceConfigRawSchema.nullable(),
2836
+ revision: BySpaceConfigRevisionSchema.nullable(),
2837
+ }),
2838
+ z.object({
2839
+ requestId: z.string(),
2840
+ repoRoot: z.string(),
2841
+ ok: z.literal(false),
2842
+ error: ProjectConfigRpcErrorSchema,
2843
+ }),
2844
+ ]),
2845
+ });
2846
+ export const WriteProjectConfigResponseMessageSchema = z.object({
2847
+ type: z.literal("write_project_config_response"),
2848
+ // zod-aot 0.2.0 miscompiles boolean discriminators as string options
2849
+ // (`"true"`/`"false"`), so keep this sequential until upstream fixes it.
2850
+ payload: z.union([
2851
+ z.object({
2852
+ requestId: z.string(),
2853
+ repoRoot: z.string(),
2854
+ ok: z.literal(true),
2855
+ config: BySpaceConfigRawSchema,
2856
+ revision: BySpaceConfigRevisionSchema,
2857
+ }),
2858
+ z.object({
2859
+ requestId: z.string(),
2860
+ repoRoot: z.string(),
2861
+ ok: z.literal(false),
2862
+ error: ProjectConfigRpcErrorSchema,
2863
+ }),
2864
+ ]),
2865
+ });
2866
+ export const AgentPermissionRequestMessageSchema = z.object({
2867
+ type: z.literal("agent_permission_request"),
2868
+ payload: z.object({
2869
+ agentId: z.string(),
2870
+ request: AgentPermissionRequestPayloadSchema,
2871
+ }),
2872
+ });
2873
+ export const AgentPermissionResolvedMessageSchema = z.object({
2874
+ type: z.literal("agent_permission_resolved"),
2875
+ payload: z.object({
2876
+ agentId: z.string(),
2877
+ requestId: z.string(),
2878
+ resolution: AgentPermissionResponseSchema,
2879
+ }),
2880
+ });
2881
+ export const AgentDeletedMessageSchema = z.object({
2882
+ type: z.literal("agent_deleted"),
2883
+ payload: z.object({
2884
+ agentId: z.string(),
2885
+ requestId: z.string(),
2886
+ }),
2887
+ });
2888
+ export const AgentArchivedMessageSchema = z.object({
2889
+ type: z.literal("agent_archived"),
2890
+ payload: z.object({
2891
+ agentId: z.string(),
2892
+ archivedAt: z.string(),
2893
+ requestId: z.string(),
2894
+ }),
2895
+ });
2896
+ const CloseItemsAgentResultSchema = z.object({
2897
+ agentId: z.string(),
2898
+ archivedAt: z.string(),
2899
+ });
2900
+ const CloseItemsTerminalResultSchema = z.object({
2901
+ terminalId: z.string(),
2902
+ success: z.boolean(),
2903
+ });
2904
+ export const CloseItemsResponseSchema = z.object({
2905
+ type: z.literal("close_items_response"),
2906
+ payload: z.object({
2907
+ agents: z.array(CloseItemsAgentResultSchema),
2908
+ terminals: z.array(CloseItemsTerminalResultSchema),
2909
+ requestId: z.string(),
2910
+ }),
2911
+ });
2912
+ const AheadBehindSchema = z.object({
2913
+ ahead: z.number(),
2914
+ behind: z.number(),
2915
+ });
2916
+ const CheckoutStatusCommonSchema = z.object({
2917
+ cwd: z.string(),
2918
+ error: CheckoutErrorSchema.nullable(),
2919
+ requestId: z.string(),
2920
+ });
2921
+ const CheckoutStatusNotGitSchema = CheckoutStatusCommonSchema.extend({
2922
+ isGit: z.literal(false),
2923
+ isBySpaceOwnedWorktree: z.literal(false),
2924
+ repoRoot: z.null(),
2925
+ currentBranch: z.null(),
2926
+ isDirty: z.null(),
2927
+ baseRef: z.null(),
2928
+ aheadBehind: z.null(),
2929
+ aheadOfOrigin: z.null(),
2930
+ behindOfOrigin: z.null(),
2931
+ hasRemote: z.boolean(),
2932
+ remoteUrl: z.null(),
2933
+ });
2934
+ const CheckoutStatusGitNonBySpaceSchema = CheckoutStatusCommonSchema.extend({
2935
+ isGit: z.literal(true),
2936
+ isBySpaceOwnedWorktree: z.literal(false),
2937
+ repoRoot: z.string(),
2938
+ mainRepoRoot: z.string().nullable().optional().default(null),
2939
+ currentBranch: z.string().nullable(),
2940
+ isDirty: z.boolean(),
2941
+ baseRef: z.string().nullable(),
2942
+ aheadBehind: AheadBehindSchema.nullable(),
2943
+ aheadOfOrigin: z.number().nullable(),
2944
+ behindOfOrigin: z.number().nullable(),
2945
+ hasRemote: z.boolean(),
2946
+ remoteUrl: z.string().nullable(),
2947
+ });
2948
+ const CheckoutStatusGitBySpaceSchema = CheckoutStatusCommonSchema.extend({
2949
+ isGit: z.literal(true),
2950
+ isBySpaceOwnedWorktree: z.literal(true),
2951
+ repoRoot: z.string(),
2952
+ mainRepoRoot: z.string(),
2953
+ currentBranch: z.string().nullable(),
2954
+ isDirty: z.boolean(),
2955
+ baseRef: z.string(),
2956
+ aheadBehind: AheadBehindSchema.nullable(),
2957
+ aheadOfOrigin: z.number().nullable(),
2958
+ behindOfOrigin: z.number().nullable(),
2959
+ hasRemote: z.boolean(),
2960
+ remoteUrl: z.string().nullable(),
2961
+ });
2962
+ export const CheckoutStatusResponseSchema = z.object({
2963
+ type: z.literal("checkout_status_response"),
2964
+ payload: z.union([
2965
+ CheckoutStatusNotGitSchema,
2966
+ CheckoutStatusGitNonBySpaceSchema,
2967
+ CheckoutStatusGitBySpaceSchema,
2968
+ ]),
2969
+ });
2970
+ const CheckoutPrGithubAutoMergeRequestSchema = z
2971
+ .object({
2972
+ enabledAt: z.string().nullable().optional().default(null),
2973
+ mergeMethod: z.string().nullable().optional().default(null),
2974
+ enabledBy: z.string().nullable().optional().default(null),
2975
+ })
2976
+ .nullable()
2977
+ .optional()
2978
+ .default(null);
2979
+ const CheckoutPrGithubRepositoryPolicySchema = z
2980
+ .object({
2981
+ autoMergeAllowed: z.boolean().optional().default(false),
2982
+ mergeCommitAllowed: z.boolean().optional().default(false),
2983
+ squashMergeAllowed: z.boolean().optional().default(false),
2984
+ rebaseMergeAllowed: z.boolean().optional().default(false),
2985
+ viewerDefaultMergeMethod: z.string().nullable().optional().default(null),
2986
+ })
2987
+ .optional()
2988
+ .default({
2989
+ autoMergeAllowed: false,
2990
+ mergeCommitAllowed: false,
2991
+ squashMergeAllowed: false,
2992
+ rebaseMergeAllowed: false,
2993
+ viewerDefaultMergeMethod: null,
2994
+ });
2995
+ const CheckoutPrGithubStatusSchema = z
2996
+ .object({
2997
+ mergeStateStatus: z.string().nullable().optional().default(null),
2998
+ autoMergeRequest: CheckoutPrGithubAutoMergeRequestSchema,
2999
+ viewerCanEnableAutoMerge: z.boolean().optional().default(false),
3000
+ viewerCanDisableAutoMerge: z.boolean().optional().default(false),
3001
+ viewerCanMergeAsAdmin: z.boolean().optional().default(false),
3002
+ viewerCanUpdateBranch: z.boolean().optional().default(false),
3003
+ repository: CheckoutPrGithubRepositoryPolicySchema,
3004
+ isMergeQueueEnabled: z.boolean().optional().default(false),
3005
+ isInMergeQueue: z.boolean().optional().default(false),
3006
+ })
3007
+ .optional();
3008
+ export const CheckoutPrStatusSchema = z.object({
3009
+ number: z.number().optional(),
3010
+ url: z.string(),
3011
+ title: z.string(),
3012
+ state: z.string(),
3013
+ baseRefName: z.string(),
3014
+ headRefName: z.string(),
3015
+ isMerged: z.boolean(),
3016
+ isDraft: z.boolean().optional().default(false),
3017
+ mergeable: z
3018
+ .enum(["MERGEABLE", "CONFLICTING", "UNKNOWN"])
3019
+ .catch("UNKNOWN")
3020
+ .optional()
3021
+ .default("UNKNOWN"),
3022
+ checks: z
3023
+ .array(z.object({
3024
+ name: z.string(),
3025
+ status: z.string(),
3026
+ url: z.string().nullable(),
3027
+ workflow: z.string().optional(),
3028
+ duration: z.string().optional(),
3029
+ checkRunId: z.number().optional(),
3030
+ workflowRunId: z.number().optional(),
3031
+ }))
3032
+ .optional()
3033
+ .default([]),
3034
+ checksStatus: z.string().optional(),
3035
+ reviewDecision: z.string().nullable().optional(),
3036
+ repoOwner: z.string().optional(),
3037
+ repoName: z.string().optional(),
3038
+ github: CheckoutPrGithubStatusSchema,
3039
+ });
3040
+ const CheckoutPrStatusPayloadSchema = z.object({
3041
+ cwd: z.string(),
3042
+ status: CheckoutPrStatusSchema.nullable(),
3043
+ githubFeaturesEnabled: z.boolean(),
3044
+ error: CheckoutErrorSchema.nullable(),
3045
+ requestId: z.string(),
3046
+ });
3047
+ const CheckoutStatusUpdateMetadataSchema = z.object({
3048
+ prStatus: CheckoutPrStatusPayloadSchema.optional(),
3049
+ });
3050
+ export const CheckoutStatusUpdateSchema = z.object({
3051
+ type: z.literal("checkout_status_update"),
3052
+ payload: z
3053
+ .union([
3054
+ CheckoutStatusNotGitSchema,
3055
+ CheckoutStatusGitNonBySpaceSchema,
3056
+ CheckoutStatusGitBySpaceSchema,
3057
+ ])
3058
+ .and(CheckoutStatusUpdateMetadataSchema),
3059
+ });
3060
+ const CheckoutDiffSubscriptionPayloadSchema = z.object({
3061
+ subscriptionId: z.string(),
3062
+ cwd: z.string(),
3063
+ files: z.array(ParsedDiffFileSchema),
3064
+ error: CheckoutErrorSchema.nullable(),
3065
+ });
3066
+ export const SubscribeCheckoutDiffResponseSchema = z.object({
3067
+ type: z.literal("subscribe_checkout_diff_response"),
3068
+ payload: CheckoutDiffSubscriptionPayloadSchema.extend({
3069
+ requestId: z.string(),
3070
+ }),
3071
+ });
3072
+ export const CheckoutDiffUpdateSchema = z.object({
3073
+ type: z.literal("checkout_diff_update"),
3074
+ payload: CheckoutDiffSubscriptionPayloadSchema,
3075
+ });
3076
+ export const CheckoutCommitResponseSchema = z.object({
3077
+ type: z.literal("checkout_commit_response"),
3078
+ payload: z.object({
3079
+ cwd: z.string(),
3080
+ success: z.boolean(),
3081
+ error: CheckoutErrorSchema.nullable(),
3082
+ requestId: z.string(),
3083
+ }),
3084
+ });
3085
+ export const CheckoutMergeResponseSchema = z.object({
3086
+ type: z.literal("checkout_merge_response"),
3087
+ payload: z.object({
3088
+ cwd: z.string(),
3089
+ success: z.boolean(),
3090
+ error: CheckoutErrorSchema.nullable(),
3091
+ requestId: z.string(),
3092
+ }),
3093
+ });
3094
+ export const CheckoutMergeFromBaseResponseSchema = z.object({
3095
+ type: z.literal("checkout_merge_from_base_response"),
3096
+ payload: z.object({
3097
+ cwd: z.string(),
3098
+ success: z.boolean(),
3099
+ error: CheckoutErrorSchema.nullable(),
3100
+ requestId: z.string(),
3101
+ }),
3102
+ });
3103
+ export const CheckoutPullResponseSchema = z.object({
3104
+ type: z.literal("checkout_pull_response"),
3105
+ payload: z.object({
3106
+ cwd: z.string(),
3107
+ success: z.boolean(),
3108
+ error: CheckoutErrorSchema.nullable(),
3109
+ requestId: z.string(),
3110
+ }),
3111
+ });
3112
+ export const CheckoutPushResponseSchema = z.object({
3113
+ type: z.literal("checkout_push_response"),
3114
+ payload: z.object({
3115
+ cwd: z.string(),
3116
+ success: z.boolean(),
3117
+ error: CheckoutErrorSchema.nullable(),
3118
+ requestId: z.string(),
3119
+ }),
3120
+ });
3121
+ export const CheckoutRefreshResponseSchema = z.object({
3122
+ type: z.literal("checkout.refresh.response"),
3123
+ payload: z.object({
3124
+ cwd: z.string(),
3125
+ success: z.boolean(),
3126
+ error: CheckoutErrorSchema.nullable(),
3127
+ requestId: z.string(),
3128
+ }),
3129
+ });
3130
+ export const CheckoutPrCreateResponseSchema = z.object({
3131
+ type: z.literal("checkout_pr_create_response"),
3132
+ payload: z.object({
3133
+ cwd: z.string(),
3134
+ url: z.string().nullable(),
3135
+ number: z.number().nullable(),
3136
+ error: CheckoutErrorSchema.nullable(),
3137
+ requestId: z.string(),
3138
+ }),
3139
+ });
3140
+ export const CheckoutPrMergeResponseSchema = z.object({
3141
+ type: z.literal("checkout_pr_merge_response"),
3142
+ payload: z.object({
3143
+ cwd: z.string(),
3144
+ success: z.boolean(),
3145
+ error: CheckoutErrorSchema.nullable(),
3146
+ requestId: z.string(),
3147
+ }),
3148
+ });
3149
+ export const CheckoutGithubSetAutoMergeResponseSchema = z.object({
3150
+ type: z.literal("checkout.github.set_auto_merge.response"),
3151
+ payload: z.object({
3152
+ cwd: z.string(),
3153
+ enabled: z.boolean(),
3154
+ success: z.boolean(),
3155
+ error: CheckoutErrorSchema.nullable(),
3156
+ requestId: z.string(),
3157
+ }),
3158
+ });
3159
+ const CheckoutGithubCheckAnnotationSchema = z.object({
3160
+ path: z.string().optional(),
3161
+ startLine: z.number().optional(),
3162
+ endLine: z.number().optional(),
3163
+ annotationLevel: z.string().optional(),
3164
+ message: z.string().optional(),
3165
+ title: z.string().optional(),
3166
+ rawDetails: z.string().optional(),
3167
+ });
3168
+ const CheckoutGithubCheckJobSchema = z.object({
3169
+ jobId: z.number(),
3170
+ name: z.string(),
3171
+ status: z.string().nullable().optional(),
3172
+ conclusion: z.string().nullable().optional(),
3173
+ url: z.string().nullable().optional(),
3174
+ logTail: z.string().optional(),
3175
+ logTruncated: z.boolean().optional(),
3176
+ });
3177
+ export const CheckoutGithubCheckDetailsSchema = z.object({
3178
+ checkRunId: z.number(),
3179
+ workflowRunId: z.number().nullable().optional(),
3180
+ name: z.string(),
3181
+ status: z.string().nullable().optional(),
3182
+ conclusion: z.string().nullable().optional(),
3183
+ url: z.string().nullable().optional(),
3184
+ detailsUrl: z.string().nullable().optional(),
3185
+ output: z
3186
+ .object({
3187
+ title: z.string().nullable().optional(),
3188
+ summary: z.string().nullable().optional(),
3189
+ text: z.string().nullable().optional(),
3190
+ })
3191
+ .nullable()
3192
+ .optional(),
3193
+ annotations: z.array(CheckoutGithubCheckAnnotationSchema).optional().default([]),
3194
+ failedJobs: z.array(CheckoutGithubCheckJobSchema).optional().default([]),
3195
+ truncated: z.boolean().optional().default(false),
3196
+ });
3197
+ export const CheckoutGithubGetCheckDetailsResponseSchema = z.object({
3198
+ type: z.literal("checkout.github.get_check_details.response"),
3199
+ payload: z.object({
3200
+ cwd: z.string(),
3201
+ success: z.boolean(),
3202
+ details: CheckoutGithubCheckDetailsSchema.nullable().optional().default(null),
3203
+ error: CheckoutErrorSchema.nullable(),
3204
+ requestId: z.string(),
3205
+ }),
3206
+ });
3207
+ export const CheckoutPrStatusResponseSchema = z.object({
3208
+ type: z.literal("checkout_pr_status_response"),
3209
+ payload: CheckoutPrStatusPayloadSchema,
3210
+ });
3211
+ const PullRequestTimelineKnownErrorSchema = z.discriminatedUnion("kind", [
3212
+ z.object({
3213
+ kind: z.literal("not_found"),
3214
+ message: z.string().optional().default(""),
3215
+ }),
3216
+ z.object({
3217
+ kind: z.literal("forbidden"),
3218
+ message: z.string().optional().default(""),
3219
+ }),
3220
+ z.object({
3221
+ kind: z.literal("unknown"),
3222
+ message: z.string().optional().default(""),
3223
+ }),
3224
+ ]);
3225
+ const PullRequestTimelineErrorSchema = z.preprocess((value) => {
3226
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
3227
+ return { kind: "unknown", message: "" };
3228
+ }
3229
+ const error = value;
3230
+ if (error.kind === "not_found" || error.kind === "forbidden" || error.kind === "unknown") {
3231
+ return error;
3232
+ }
3233
+ return { ...error, kind: "unknown" };
3234
+ }, PullRequestTimelineKnownErrorSchema);
3235
+ const PullRequestTimelineReviewItemSchema = z.object({
3236
+ id: z.string().optional().default(""),
3237
+ kind: z.literal("review"),
3238
+ author: z.string().optional().default("unknown"),
3239
+ authorUrl: z.string().nullable().optional(),
3240
+ avatarUrl: z.string().nullable().optional(),
3241
+ body: z.string().optional().default(""),
3242
+ createdAt: z.number().optional().default(0),
3243
+ url: z.string().optional().default(""),
3244
+ reviewState: z
3245
+ .enum(["approved", "changes_requested", "commented"])
3246
+ .optional()
3247
+ .default("commented"),
3248
+ });
3249
+ const PullRequestTimelineCommentItemSchema = z.object({
3250
+ id: z.string().optional().default(""),
3251
+ kind: z.literal("comment"),
3252
+ author: z.string().optional().default("unknown"),
3253
+ authorUrl: z.string().nullable().optional(),
3254
+ avatarUrl: z.string().nullable().optional(),
3255
+ body: z.string().optional().default(""),
3256
+ createdAt: z.number().optional().default(0),
3257
+ url: z.string().optional().default(""),
3258
+ // GitHub review id this inline comment belongs to; lets clients nest review
3259
+ // threads under their parent review. Absent on issue comments and on
3260
+ // timelines from daemons that predate the field.
3261
+ reviewId: z.string().optional(),
3262
+ location: z
3263
+ .object({
3264
+ path: z.string(),
3265
+ line: z.number().optional(),
3266
+ startLine: z.number().optional(),
3267
+ threadId: z.string().optional(),
3268
+ isResolved: z.boolean().optional(),
3269
+ isOutdated: z.boolean().optional(),
3270
+ })
3271
+ .optional(),
3272
+ });
3273
+ export const PullRequestTimelineItemSchema = z.preprocess((value) => {
3274
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
3275
+ return value;
3276
+ }
3277
+ const item = value;
3278
+ if (item.kind === "review" || item.kind === "comment") {
3279
+ return item;
3280
+ }
3281
+ return { ...item, kind: "comment" };
3282
+ }, z.discriminatedUnion("kind", [
3283
+ PullRequestTimelineReviewItemSchema,
3284
+ PullRequestTimelineCommentItemSchema,
3285
+ ]));
3286
+ export const PullRequestTimelineResponseSchema = z.object({
3287
+ type: z.literal("pull_request_timeline_response"),
3288
+ payload: z
3289
+ .object({
3290
+ cwd: z.string().optional().default(""),
3291
+ prNumber: z.number().nullable().optional().default(null),
3292
+ items: z.array(PullRequestTimelineItemSchema).optional().default([]),
3293
+ truncated: z.boolean().optional().default(false),
3294
+ error: PullRequestTimelineErrorSchema.nullable().optional().default(null),
3295
+ requestId: z.string().optional().default(""),
3296
+ githubFeaturesEnabled: z.boolean().optional().default(true),
3297
+ })
3298
+ .optional()
3299
+ .prefault({}),
3300
+ });
3301
+ export const CheckoutSwitchBranchResponseSchema = z.object({
3302
+ type: z.literal("checkout_switch_branch_response"),
3303
+ payload: z.object({
3304
+ cwd: z.string(),
3305
+ success: z.boolean(),
3306
+ branch: z.string(),
3307
+ source: z.enum(["local", "remote"]).optional(),
3308
+ error: CheckoutErrorSchema.nullable(),
3309
+ requestId: z.string(),
3310
+ }),
3311
+ });
3312
+ export const CheckoutRenameBranchResponseSchema = z.object({
3313
+ type: z.literal("checkout.rename_branch.response"),
3314
+ payload: z.object({
3315
+ requestId: z.string(),
3316
+ success: z.boolean(),
3317
+ cwd: z.string(),
3318
+ currentBranch: z.string().nullable(),
3319
+ error: CheckoutErrorSchema.nullable(),
3320
+ }),
3321
+ });
3322
+ const StashEntrySchema = z.object({
3323
+ index: z.number().int().min(0),
3324
+ message: z.string(),
3325
+ branch: z.string().nullable(),
3326
+ isBySpace: z.boolean(),
3327
+ });
3328
+ export const StashSaveResponseSchema = z.object({
3329
+ type: z.literal("stash_save_response"),
3330
+ payload: z.object({
3331
+ cwd: z.string(),
3332
+ success: z.boolean(),
3333
+ error: CheckoutErrorSchema.nullable(),
3334
+ requestId: z.string(),
3335
+ }),
3336
+ });
3337
+ export const StashPopResponseSchema = z.object({
3338
+ type: z.literal("stash_pop_response"),
3339
+ payload: z.object({
3340
+ cwd: z.string(),
3341
+ success: z.boolean(),
3342
+ error: CheckoutErrorSchema.nullable(),
3343
+ requestId: z.string(),
3344
+ }),
3345
+ });
3346
+ export const StashListResponseSchema = z.object({
3347
+ type: z.literal("stash_list_response"),
3348
+ payload: z.object({
3349
+ cwd: z.string(),
3350
+ entries: z.array(StashEntrySchema),
3351
+ error: CheckoutErrorSchema.nullable(),
3352
+ requestId: z.string(),
3353
+ }),
3354
+ });
3355
+ export const ValidateBranchResponseSchema = z.object({
3356
+ type: z.literal("validate_branch_response"),
3357
+ payload: z.object({
3358
+ exists: z.boolean(),
3359
+ resolvedRef: z.string().nullable(),
3360
+ isRemote: z.boolean(),
3361
+ error: z.string().nullable(),
3362
+ requestId: z.string(),
3363
+ }),
3364
+ });
3365
+ export const BranchSuggestionsResponseSchema = z.object({
3366
+ type: z.literal("branch_suggestions_response"),
3367
+ payload: z.object({
3368
+ branches: z.array(z.string()),
3369
+ branchDetails: z
3370
+ .array(z.object({
3371
+ name: z.string(),
3372
+ committerDate: z.number(),
3373
+ hasLocal: z.boolean().optional(),
3374
+ hasRemote: z.boolean().optional(),
3375
+ }))
3376
+ .optional(),
3377
+ error: z.string().nullable(),
3378
+ requestId: z.string(),
3379
+ }),
3380
+ });
3381
+ export const GitHubSearchResponseSchema = z.object({
3382
+ type: z.literal("github_search_response"),
3383
+ payload: z.object({
3384
+ items: z.array(GitHubSearchItemSchema),
3385
+ githubFeaturesEnabled: z.boolean(),
3386
+ error: z.string().nullable(),
3387
+ requestId: z.string(),
3388
+ }),
3389
+ });
3390
+ export const DirectorySuggestionsResponseSchema = z.object({
3391
+ type: z.literal("directory_suggestions_response"),
3392
+ payload: z.object({
3393
+ directories: z.array(z.string()),
3394
+ entries: z
3395
+ .array(z.object({
3396
+ path: z.string(),
3397
+ kind: z.enum(["file", "directory"]),
3398
+ }))
3399
+ .optional()
3400
+ .default([]),
3401
+ error: z.string().nullable(),
3402
+ requestId: z.string(),
3403
+ }),
3404
+ });
3405
+ const BySpaceWorktreeSchema = z.object({
3406
+ worktreePath: z.string(),
3407
+ createdAt: z.string(),
3408
+ branchName: z.string().nullable().optional(),
3409
+ head: z.string().nullable().optional(),
3410
+ });
3411
+ export const BySpaceWorktreeListResponseSchema = z.object({
3412
+ type: z.literal("byspace_worktree_list_response"),
3413
+ payload: z.object({
3414
+ worktrees: z.array(BySpaceWorktreeSchema),
3415
+ error: CheckoutErrorSchema.nullable(),
3416
+ requestId: z.string(),
3417
+ }),
3418
+ });
3419
+ export const BySpaceWorktreeArchiveResponseSchema = z.object({
3420
+ type: z.literal("byspace_worktree_archive_response"),
3421
+ payload: z.object({
3422
+ success: z.boolean(),
3423
+ removedAgents: z.array(z.string()).optional(),
3424
+ error: CheckoutErrorSchema.nullable(),
3425
+ requestId: z.string(),
3426
+ }),
3427
+ });
3428
+ export const CreateBySpaceWorktreeResponseSchema = z.object({
3429
+ type: z.literal("create_byspace_worktree_response"),
3430
+ payload: z.object({
3431
+ workspace: WorkspaceDescriptorPayloadSchema.nullable(),
3432
+ error: z.string().nullable(),
3433
+ errorCode: z.string().optional(),
3434
+ setupTerminalId: z.string().nullable(),
3435
+ requestId: z.string(),
3436
+ }),
3437
+ });
3438
+ export const FileExplorerResponseSchema = z.object({
3439
+ type: z.literal("file_explorer_response"),
3440
+ payload: z.object({
3441
+ cwd: z.string(),
3442
+ path: z.string(),
3443
+ mode: z.enum(["list", "file"]),
3444
+ directory: FileExplorerDirectorySchema.nullable(),
3445
+ file: FileExplorerFileSchema.nullable(),
3446
+ error: z.string().nullable(),
3447
+ requestId: z.string(),
3448
+ }),
3449
+ });
3450
+ const ProjectIconSchema = z.object({
3451
+ data: z.string(),
3452
+ mimeType: z.string(),
3453
+ });
3454
+ export const ProjectIconResponseSchema = z.object({
3455
+ type: z.literal("project_icon_response"),
3456
+ payload: z.object({
3457
+ cwd: z.string(),
3458
+ icon: ProjectIconSchema.nullable(),
3459
+ error: z.string().nullable(),
3460
+ requestId: z.string(),
3461
+ }),
3462
+ });
3463
+ export const FileDownloadTokenResponseSchema = z.object({
3464
+ type: z.literal("file_download_token_response"),
3465
+ payload: z.object({
3466
+ cwd: z.string(),
3467
+ path: z.string(),
3468
+ token: z.string().nullable(),
3469
+ fileName: z.string().nullable(),
3470
+ mimeType: z.string().nullable(),
3471
+ size: z.number().nullable(),
3472
+ error: z.string().nullable(),
3473
+ requestId: z.string(),
3474
+ }),
3475
+ });
3476
+ export const FileUploadResponseSchema = z.object({
3477
+ type: z.literal("file.upload.response"),
3478
+ payload: z.object({
3479
+ requestId: z.string(),
3480
+ file: UploadedFileAttachmentSchema.nullable(),
3481
+ error: z.string().nullable(),
3482
+ }),
3483
+ });
3484
+ export const ListProviderModelsResponseMessageSchema = z.object({
3485
+ type: z.literal("list_provider_models_response"),
3486
+ payload: z.object({
3487
+ provider: AgentProviderSchema,
3488
+ models: z.array(AgentModelDefinitionSchema).optional(),
3489
+ error: z.string().nullable().optional(),
3490
+ fetchedAt: z.string(),
3491
+ requestId: z.string(),
3492
+ }),
3493
+ });
3494
+ export const ListProviderModesResponseMessageSchema = z.object({
3495
+ type: z.literal("list_provider_modes_response"),
3496
+ payload: z.object({
3497
+ provider: AgentProviderSchema,
3498
+ modes: z.array(AgentModeSchema).optional(),
3499
+ error: z.string().nullable().optional(),
3500
+ fetchedAt: z.string(),
3501
+ requestId: z.string(),
3502
+ }),
3503
+ });
3504
+ export const ListProviderFeaturesResponseMessageSchema = z.object({
3505
+ type: z.literal("list_provider_features_response"),
3506
+ payload: z.object({
3507
+ provider: AgentProviderSchema,
3508
+ features: z.array(AgentFeatureSchema).optional(),
3509
+ error: z.string().nullable().optional(),
3510
+ fetchedAt: z.string(),
3511
+ requestId: z.string(),
3512
+ }),
3513
+ });
3514
+ const ProviderAvailabilitySchema = z.object({
3515
+ provider: AgentProviderSchema,
3516
+ available: z.boolean(),
3517
+ error: z.string().nullable().optional(),
3518
+ });
3519
+ export const ListAvailableProvidersResponseSchema = z.object({
3520
+ type: z.literal("list_available_providers_response"),
3521
+ payload: z.object({
3522
+ providers: z.array(ProviderAvailabilitySchema),
3523
+ error: z.string().nullable().optional(),
3524
+ fetchedAt: z.string(),
3525
+ requestId: z.string(),
3526
+ }),
3527
+ });
3528
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
3529
+ export const GetProvidersSnapshotResponseMessageSchema = z.object({
3530
+ type: z.literal("get_providers_snapshot_response"),
3531
+ payload: z.object({
3532
+ entries: z.array(ProviderSnapshotEntrySchema),
3533
+ generatedAt: z.string(),
3534
+ requestId: z.string(),
3535
+ }),
3536
+ });
3537
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
3538
+ export const ProvidersSnapshotUpdateMessageSchema = z.object({
3539
+ type: z.literal("providers_snapshot_update"),
3540
+ payload: z.object({
3541
+ cwd: z.string().optional(),
3542
+ entries: z.array(ProviderSnapshotEntrySchema),
3543
+ generatedAt: z.string(),
3544
+ }),
3545
+ });
3546
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
3547
+ export const RefreshProvidersSnapshotResponseMessageSchema = z.object({
3548
+ type: z.literal("refresh_providers_snapshot_response"),
3549
+ payload: z.object({
3550
+ requestId: z.string(),
3551
+ acknowledged: z.boolean(),
3552
+ }),
3553
+ });
3554
+ // COMPAT(providersSnapshot): added in v0.1.48, remove gating when all clients use snapshot
3555
+ export const ProviderDiagnosticResponseMessageSchema = z.object({
3556
+ type: z.literal("provider_diagnostic_response"),
3557
+ payload: z.object({
3558
+ provider: AgentProviderSchema,
3559
+ diagnostic: z.string(),
3560
+ requestId: z.string(),
3561
+ }),
3562
+ });
3563
+ export const ProviderUsageToneSchema = z.enum(["default", "ok", "warning", "danger"]);
3564
+ export const ProviderUsageStatusSchema = z.enum(["available", "unavailable", "error"]);
3565
+ export const ProviderUsageWindowSchema = z.object({
3566
+ id: z.string(),
3567
+ label: z.string(),
3568
+ usedPct: z.number().nullable().optional(),
3569
+ remainingPct: z.number().nullable().optional(),
3570
+ resetsAt: z.string().nullable().optional(),
3571
+ runsOutAt: z.string().nullable().optional(),
3572
+ shortfallPct: z.number().nullable().optional(),
3573
+ tone: ProviderUsageToneSchema.optional(),
3574
+ });
3575
+ export const ProviderUsageBalanceSchema = z.object({
3576
+ id: z.string(),
3577
+ label: z.string(),
3578
+ used: z.number().nullable().optional(),
3579
+ remaining: z.number().nullable().optional(),
3580
+ limit: z.number().nullable().optional(),
3581
+ unit: z.enum(["usd", "credits", "requests", "tokens"]),
3582
+ resetsAt: z.string().nullable().optional(),
3583
+ tone: ProviderUsageToneSchema.optional(),
3584
+ });
3585
+ export const ProviderUsageDetailSchema = z.object({
3586
+ id: z.string(),
3587
+ label: z.string(),
3588
+ value: z.string(),
3589
+ tone: ProviderUsageToneSchema.optional(),
3590
+ });
3591
+ export const ProviderUsageSchema = z.object({
3592
+ providerId: z.string(),
3593
+ displayName: z.string(),
3594
+ status: ProviderUsageStatusSchema,
3595
+ planLabel: z.string().nullable(),
3596
+ sourceLabel: z.string().nullable().optional(),
3597
+ fetchedAt: z.string().nullable().optional(),
3598
+ nextRefreshAt: z.string().nullable().optional(),
3599
+ windows: z.array(ProviderUsageWindowSchema),
3600
+ balances: z.array(ProviderUsageBalanceSchema).optional(),
3601
+ details: z.array(ProviderUsageDetailSchema).optional(),
3602
+ error: z.string().nullable().optional(),
3603
+ });
3604
+ export const ProviderUsageListResponseMessageSchema = z.object({
3605
+ type: z.literal("provider.usage.list.response"),
3606
+ payload: z.object({
3607
+ requestId: z.string(),
3608
+ fetchedAt: z.string(),
3609
+ providers: z.array(ProviderUsageSchema),
3610
+ }),
3611
+ });
3612
+ const AgentSlashCommandSchema = z.object({
3613
+ name: z.string(),
3614
+ description: z.string(),
3615
+ argumentHint: z.string(),
3616
+ kind: z.enum(["command", "skill"]).optional().catch("command"),
3617
+ });
3618
+ export const ListCommandsResponseSchema = z.object({
3619
+ type: z.literal("list_commands_response"),
3620
+ payload: z.object({
3621
+ agentId: z.string(),
3622
+ commands: z.array(AgentSlashCommandSchema),
3623
+ error: z.string().nullable(),
3624
+ requestId: z.string(),
3625
+ }),
3626
+ });
3627
+ // ============================================================================
3628
+ // Terminal Outbound Messages
3629
+ // ============================================================================
3630
+ const TerminalInfoSchema = z.object({
3631
+ id: z.string(),
3632
+ name: z.string(),
3633
+ cwd: z.string(),
3634
+ workspaceId: z.string().optional(),
3635
+ title: z.string().optional(),
3636
+ activity: TerminalActivitySchema.nullable().optional(),
3637
+ });
3638
+ export const TerminalCellSchema = z.object({
3639
+ char: z.string(),
3640
+ fg: z.number().optional(),
3641
+ bg: z.number().optional(),
3642
+ fgMode: z.number().optional(),
3643
+ bgMode: z.number().optional(),
3644
+ bold: z.boolean().optional(),
3645
+ italic: z.boolean().optional(),
3646
+ underline: z.boolean().optional(),
3647
+ dim: z.boolean().optional(),
3648
+ inverse: z.boolean().optional(),
3649
+ strikethrough: z.boolean().optional(),
3650
+ });
3651
+ export const TerminalCursorStyleSchema = z.enum(["block", "underline", "bar"]);
3652
+ export const TerminalCursorSchema = z.object({
3653
+ row: z.number(),
3654
+ col: z.number(),
3655
+ hidden: z.boolean().optional(),
3656
+ style: TerminalCursorStyleSchema.optional(),
3657
+ blink: z.boolean().optional(),
3658
+ });
3659
+ export const TerminalStateSchema = z.object({
3660
+ rows: z.number(),
3661
+ cols: z.number(),
3662
+ grid: z.array(z.array(TerminalCellSchema)),
3663
+ scrollback: z.array(z.array(TerminalCellSchema)),
3664
+ cursor: TerminalCursorSchema,
3665
+ title: z.string().optional(),
3666
+ // Per-row soft-wrap flags aligned 1:1 with `grid` / `scrollback`. `true` means
3667
+ // the row continued onto the next row (xterm's GRID_LINE_WRAPPED equivalent),
3668
+ // so the client can re-wrap the logical line on resize instead of freezing it
3669
+ // at the snapshot width. Optional: only sent to clients that advertise the
3670
+ // `terminalReflowableSnapshot` capability, so old daemons/clients are unaffected.
3671
+ gridWrapped: z.array(z.boolean()).optional(),
3672
+ scrollbackWrapped: z.array(z.boolean()).optional(),
3673
+ });
3674
+ export const ListTerminalsResponseSchema = z.object({
3675
+ type: z.literal("list_terminals_response"),
3676
+ payload: z.object({
3677
+ cwd: z.string().optional(),
3678
+ terminals: z.array(TerminalInfoSchema.omit({ cwd: true })),
3679
+ requestId: z.string(),
3680
+ }),
3681
+ });
3682
+ export const TerminalsChangedSchema = z.object({
3683
+ type: z.literal("terminals_changed"),
3684
+ payload: z.object({
3685
+ cwd: z.string(),
3686
+ terminals: z.array(TerminalInfoSchema.omit({ cwd: true })),
3687
+ }),
3688
+ });
3689
+ export const CreateTerminalResponseSchema = z.object({
3690
+ type: z.literal("create_terminal_response"),
3691
+ payload: z.object({
3692
+ terminal: TerminalInfoSchema.nullable(),
3693
+ error: z.string().nullable(),
3694
+ requestId: z.string(),
3695
+ }),
3696
+ });
3697
+ export const RenameTerminalResponseSchema = z.object({
3698
+ type: z.literal("terminal.rename.response"),
3699
+ payload: z.object({
3700
+ requestId: z.string(),
3701
+ success: z.boolean(),
3702
+ error: z.string().nullable(),
3703
+ }),
3704
+ });
3705
+ export const SubscribeTerminalResponseSchema = z.object({
3706
+ type: z.literal("subscribe_terminal_response"),
3707
+ payload: z.union([
3708
+ z.object({
3709
+ terminalId: z.string(),
3710
+ slot: z.number().int().min(0).max(255),
3711
+ error: z.null(),
3712
+ requestId: z.string(),
3713
+ }),
3714
+ z.object({
3715
+ terminalId: z.string(),
3716
+ error: z.string(),
3717
+ requestId: z.string(),
3718
+ }),
3719
+ ]),
3720
+ });
3721
+ export const KillTerminalResponseSchema = z.object({
3722
+ type: z.literal("kill_terminal_response"),
3723
+ payload: z.object({
3724
+ terminalId: z.string(),
3725
+ success: z.boolean(),
3726
+ requestId: z.string(),
3727
+ }),
3728
+ });
3729
+ export const CaptureTerminalResponseSchema = z.object({
3730
+ type: z.literal("capture_terminal_response"),
3731
+ payload: z.object({
3732
+ terminalId: z.string(),
3733
+ lines: z.array(z.string()),
3734
+ totalLines: z.number().int().nonnegative(),
3735
+ requestId: z.string(),
3736
+ }),
3737
+ });
3738
+ export const TerminalStreamExitSchema = z.object({
3739
+ type: z.literal("terminal_stream_exit"),
3740
+ payload: z.object({
3741
+ terminalId: z.string(),
3742
+ }),
3743
+ });
3744
+ export const TerminalAttentionRequiredSchema = z.object({
3745
+ type: z.literal("terminal_attention_required"),
3746
+ payload: z.object({
3747
+ serverId: z.string().optional(),
3748
+ terminalId: z.string(),
3749
+ cwd: z.string(),
3750
+ workspaceId: z.string().optional(),
3751
+ reason: z.enum(["finished", "needs_input"]),
3752
+ title: z.string(),
3753
+ body: z.string(),
3754
+ shouldNotify: z.boolean(),
3755
+ }),
3756
+ });
3757
+ export const DaemonUpdateResponseSchema = z.object({
3758
+ type: z.literal("daemon.update.response"),
3759
+ payload: z.object({
3760
+ requestId: z.string(),
3761
+ success: z.boolean(),
3762
+ error: z.string().nullable(),
3763
+ previousVersion: z.string().nullable(),
3764
+ newVersion: z.string().nullable(),
3765
+ }),
3766
+ });
3767
+ export const DaemonUpdateProgressMessageSchema = z.object({
3768
+ type: z.literal("daemon.update.progress"),
3769
+ payload: z.object({
3770
+ requestId: z.string(),
3771
+ phase: z.enum(["starting", "downloading", "installing", "complete"]),
3772
+ }),
3773
+ });
3774
+ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
3775
+ ActivityLogMessageSchema,
3776
+ AssistantChunkMessageSchema,
3777
+ AudioOutputMessageSchema,
3778
+ TranscriptionResultMessageSchema,
3779
+ VoiceInputStateMessageSchema,
3780
+ DictationStreamAckMessageSchema,
3781
+ DictationStreamFinishAcceptedMessageSchema,
3782
+ DictationStreamPartialMessageSchema,
3783
+ DictationStreamFinalMessageSchema,
3784
+ DictationStreamErrorMessageSchema,
3785
+ StatusMessageSchema,
3786
+ PongMessageSchema,
3787
+ RpcErrorMessageSchema,
3788
+ ArtifactMessageSchema,
3789
+ AgentUpdateMessageSchema,
3790
+ WorkspaceUpdateMessageSchema,
3791
+ ScriptStatusUpdateMessageSchema,
3792
+ WorkspaceSetupProgressMessageSchema,
3793
+ WorkspaceSetupStatusResponseMessageSchema,
3794
+ AgentStreamMessageSchema,
3795
+ AgentStatusMessageSchema,
3796
+ FetchAgentsResponseMessageSchema,
3797
+ FetchAgentHistoryResponseMessageSchema,
3798
+ FetchRecentProviderSessionsResponseMessageSchema,
3799
+ FetchWorkspacesResponseMessageSchema,
3800
+ ProjectAddResponseSchema,
3801
+ OpenProjectResponseMessageSchema,
3802
+ WorkspaceGithubCloneResponseSchema,
3803
+ StartWorkspaceScriptResponseMessageSchema,
3804
+ LegacyListAvailableEditorsResponseMessageSchema,
3805
+ LegacyOpenInEditorResponseMessageSchema,
3806
+ ArchiveWorkspaceResponseMessageSchema,
3807
+ FetchAgentResponseMessageSchema,
3808
+ FetchAgentTimelineResponseMessageSchema,
3809
+ ProviderSubagentListResponseMessageSchema,
3810
+ ProviderSubagentTimelineResponseMessageSchema,
3811
+ ProviderSubagentUpdateMessageSchema,
3812
+ AgentForkContextResponseMessageSchema,
3813
+ CancelAgentResponseMessageSchema,
3814
+ ClearAgentAttentionResponseMessageSchema,
3815
+ WorkspaceCreateResponseSchema,
3816
+ WorkspaceClearAttentionResponseSchema,
3817
+ SendAgentMessageResponseMessageSchema,
3818
+ SetVoiceModeResponseMessageSchema,
3819
+ DaemonGetStatusResponseSchema,
3820
+ DaemonGetPairingOfferResponseSchema,
3821
+ DiagnosticsResponseSchema,
3822
+ GetDaemonConfigResponseMessageSchema,
3823
+ SetDaemonConfigResponseMessageSchema,
3824
+ ReadProjectConfigResponseMessageSchema,
3825
+ WriteProjectConfigResponseMessageSchema,
3826
+ SetAgentModeResponseMessageSchema,
3827
+ SetAgentModelResponseMessageSchema,
3828
+ SetAgentThinkingResponseMessageSchema,
3829
+ SetAgentFeatureResponseMessageSchema,
3830
+ AgentDetachResponseMessageSchema,
3831
+ AgentRewindResponseMessageSchema,
3832
+ UpdateAgentResponseMessageSchema,
3833
+ ProjectRenameResponseSchema,
3834
+ ProjectRemoveResponseSchema,
3835
+ WorkspaceTitleSetResponseSchema,
3836
+ WorkspacePinSetResponseSchema,
3837
+ WaitForFinishResponseMessageSchema,
3838
+ AgentPermissionRequestMessageSchema,
3839
+ AgentPermissionResolvedMessageSchema,
3840
+ AgentDeletedMessageSchema,
3841
+ AgentArchivedMessageSchema,
3842
+ CloseItemsResponseSchema,
3843
+ CheckoutStatusResponseSchema,
3844
+ CheckoutStatusUpdateSchema,
3845
+ SubscribeCheckoutDiffResponseSchema,
3846
+ CheckoutDiffUpdateSchema,
3847
+ CheckoutCommitResponseSchema,
3848
+ CheckoutMergeResponseSchema,
3849
+ CheckoutMergeFromBaseResponseSchema,
3850
+ CheckoutPullResponseSchema,
3851
+ CheckoutPushResponseSchema,
3852
+ CheckoutRefreshResponseSchema,
3853
+ CheckoutPrCreateResponseSchema,
3854
+ CheckoutPrMergeResponseSchema,
3855
+ CheckoutGithubSetAutoMergeResponseSchema,
3856
+ CheckoutGithubGetCheckDetailsResponseSchema,
3857
+ CheckoutPrStatusResponseSchema,
3858
+ PullRequestTimelineResponseSchema,
3859
+ CheckoutSwitchBranchResponseSchema,
3860
+ CheckoutRenameBranchResponseSchema,
3861
+ StashSaveResponseSchema,
3862
+ StashPopResponseSchema,
3863
+ StashListResponseSchema,
3864
+ ValidateBranchResponseSchema,
3865
+ BranchSuggestionsResponseSchema,
3866
+ GitHubSearchResponseSchema,
3867
+ DirectorySuggestionsResponseSchema,
3868
+ BySpaceWorktreeListResponseSchema,
3869
+ BySpaceWorktreeArchiveResponseSchema,
3870
+ CreateBySpaceWorktreeResponseSchema,
3871
+ FileExplorerResponseSchema,
3872
+ ProjectIconResponseSchema,
3873
+ FileDownloadTokenResponseSchema,
3874
+ FileUploadResponseSchema,
3875
+ ListProviderModelsResponseMessageSchema,
3876
+ ListProviderModesResponseMessageSchema,
3877
+ ListProviderFeaturesResponseMessageSchema,
3878
+ ListAvailableProvidersResponseSchema,
3879
+ GetProvidersSnapshotResponseMessageSchema,
3880
+ ProvidersSnapshotUpdateMessageSchema,
3881
+ RefreshProvidersSnapshotResponseMessageSchema,
3882
+ ProviderDiagnosticResponseMessageSchema,
3883
+ ProviderUsageListResponseMessageSchema,
3884
+ ListCommandsResponseSchema,
3885
+ ListTerminalsResponseSchema,
3886
+ TerminalsChangedSchema,
3887
+ CreateTerminalResponseSchema,
3888
+ RenameTerminalResponseSchema,
3889
+ SubscribeTerminalResponseSchema,
3890
+ KillTerminalResponseSchema,
3891
+ CaptureTerminalResponseSchema,
3892
+ TerminalStreamExitSchema,
3893
+ TerminalAttentionRequiredSchema,
3894
+ ChatCreateResponseSchema,
3895
+ ChatListResponseSchema,
3896
+ ChatInspectResponseSchema,
3897
+ ChatDeleteResponseSchema,
3898
+ ChatPostResponseSchema,
3899
+ ChatReadResponseSchema,
3900
+ ChatWaitResponseSchema,
3901
+ ScheduleCreateResponseSchema,
3902
+ ScheduleListResponseSchema,
3903
+ ScheduleInspectResponseSchema,
3904
+ ScheduleLogsResponseSchema,
3905
+ SchedulePauseResponseSchema,
3906
+ ScheduleResumeResponseSchema,
3907
+ ScheduleDeleteResponseSchema,
3908
+ ScheduleRunOnceResponseSchema,
3909
+ ScheduleUpdateResponseSchema,
3910
+ LoopRunResponseSchema,
3911
+ LoopListResponseSchema,
3912
+ LoopInspectResponseSchema,
3913
+ LoopLogsResponseSchema,
3914
+ LoopStopResponseSchema,
3915
+ DaemonUpdateProgressMessageSchema,
3916
+ DaemonUpdateResponseSchema,
3917
+ ]);
3918
+ // ============================================================================
3919
+ // WebSocket Level Messages (wraps session messages)
3920
+ // ============================================================================
3921
+ // WebSocket-only messages (not session messages)
3922
+ export const WSPingMessageSchema = z.object({
3923
+ type: z.literal("ping"),
3924
+ });
3925
+ export const WSPongMessageSchema = z.object({
3926
+ type: z.literal("pong"),
3927
+ });
3928
+ export const WSHelloMessageSchema = z.object({
3929
+ type: z.literal("hello"),
3930
+ clientId: z.string().min(1),
3931
+ clientType: z.enum(["mobile", "browser", "cli", "mcp"]),
3932
+ protocolVersion: z.number().int(),
3933
+ appVersion: z.string().optional(),
3934
+ capabilities: z
3935
+ .object({
3936
+ voice: z.boolean().optional(),
3937
+ pushNotifications: z.boolean().optional(),
3938
+ [CLIENT_CAPS.reasoningMergeEnum]: z.boolean().optional(),
3939
+ [CLIENT_CAPS.customModeIcons]: z.boolean().optional(),
3940
+ [CLIENT_CAPS.terminalReflowableSnapshot]: z.boolean().optional(),
3941
+ [CLIENT_CAPS.providerSubagents]: z.boolean().optional(),
3942
+ })
3943
+ .passthrough()
3944
+ .optional(),
3945
+ });
3946
+ export const WSRecordingStateMessageSchema = z.object({
3947
+ type: z.literal("recording_state"),
3948
+ isRecording: z.boolean(),
3949
+ });
3950
+ // Wrapped session message
3951
+ export const WSSessionInboundSchema = z.object({
3952
+ type: z.literal("session"),
3953
+ message: SessionInboundMessageSchema,
3954
+ });
3955
+ export const WSSessionOutboundSchema = z.object({
3956
+ type: z.literal("session"),
3957
+ message: SessionOutboundMessageSchema,
3958
+ });
3959
+ // Complete WebSocket message schemas
3960
+ export const WSInboundMessageSchema = z.discriminatedUnion("type", [
3961
+ WSPingMessageSchema,
3962
+ WSHelloMessageSchema,
3963
+ WSRecordingStateMessageSchema,
3964
+ WSSessionInboundSchema,
3965
+ ]);
3966
+ export const WSOutboundMessageSchema = z.discriminatedUnion("type", [
3967
+ WSPongMessageSchema,
3968
+ WSSessionOutboundSchema,
3969
+ ]);
3970
+ // ============================================================================
3971
+ // Helper functions for message conversion
3972
+ // ============================================================================
3973
+ /**
3974
+ * Extract session message from WebSocket message
3975
+ * Returns null if message should be handled at WS level only
3976
+ */
3977
+ export function extractSessionMessage(wsMsg) {
3978
+ if (wsMsg.type === "session") {
3979
+ return wsMsg.message;
3980
+ }
3981
+ // Ping and recording_state are WS-level only
3982
+ return null;
3983
+ }
3984
+ /**
3985
+ * Wrap session message in WebSocket envelope
3986
+ */
3987
+ export function wrapSessionMessage(sessionMsg) {
3988
+ return {
3989
+ type: "session",
3990
+ message: sessionMsg,
3991
+ };
3992
+ }
3993
+ export function parseServerInfoStatusPayload(payload) {
3994
+ const parsed = ServerInfoStatusPayloadSchema.safeParse(payload);
3995
+ if (!parsed.success) {
3996
+ return null;
3997
+ }
3998
+ return parsed.data;
3999
+ }
4000
+ //# sourceMappingURL=messages.js.map