@open-mercato/cezar 0.13.0 → 0.14.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 (294) hide show
  1. package/README.md +3 -2
  2. package/dist/agent-config/catalog.d.ts +4 -0
  3. package/dist/agent-config/catalog.js +85 -3
  4. package/dist/agent-config/catalog.js.map +1 -1
  5. package/dist/agent-config/model-settings/copilot.d.ts +15 -0
  6. package/dist/agent-config/model-settings/copilot.js +25 -0
  7. package/dist/agent-config/model-settings/copilot.js.map +1 -0
  8. package/dist/agent-config/model-settings/junie.d.ts +12 -0
  9. package/dist/agent-config/model-settings/junie.js +18 -0
  10. package/dist/agent-config/model-settings/junie.js.map +1 -0
  11. package/dist/agent-config/models.js +4 -0
  12. package/dist/agent-config/models.js.map +1 -1
  13. package/dist/automations/prompts.d.ts +2 -2
  14. package/dist/automations/prompts.js +1 -1
  15. package/dist/automations/types.d.ts +12 -0
  16. package/dist/config.d.ts +4 -0
  17. package/dist/config.js +2 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/contract/agent-config.d.ts +4 -0
  20. package/dist/contract/agent-profiles.d.ts +30 -0
  21. package/dist/contract/automations.d.ts +32 -0
  22. package/dist/contract/dashboard-insights.d.ts +186 -0
  23. package/dist/contract/dashboard.d.ts +88 -0
  24. package/dist/contract/dispatch.d.ts +6 -0
  25. package/dist/contract/health.d.ts +8 -0
  26. package/dist/contract/index.d.ts +2 -0
  27. package/dist/contract/index.js +249 -72
  28. package/dist/contract/runs.d.ts +144 -0
  29. package/dist/contract/self-update.d.ts +111 -2
  30. package/dist/contract/skills.d.ts +19 -0
  31. package/dist/contract/star-count.d.ts +18 -0
  32. package/dist/contract/workflows.d.ts +12 -0
  33. package/dist/contract/workspace.d.ts +42 -2
  34. package/dist/core/acp-client.d.ts +99 -0
  35. package/dist/core/acp-client.js +198 -0
  36. package/dist/core/acp-client.js.map +1 -0
  37. package/dist/core/acp-ui-mapper.d.ts +95 -0
  38. package/dist/core/acp-ui-mapper.js +444 -0
  39. package/dist/core/acp-ui-mapper.js.map +1 -0
  40. package/dist/core/agent-env.js +10 -0
  41. package/dist/core/agent-env.js.map +1 -1
  42. package/dist/core/agent-profiles.d.ts +10 -0
  43. package/dist/core/agent-profiles.js +16 -0
  44. package/dist/core/agent-profiles.js.map +1 -1
  45. package/dist/core/agent-runner.d.ts +5 -3
  46. package/dist/core/agent-runner.js +5 -3
  47. package/dist/core/agent-runner.js.map +1 -1
  48. package/dist/core/backend-detect.d.ts +3 -3
  49. package/dist/core/backend-detect.js +61 -2
  50. package/dist/core/backend-detect.js.map +1 -1
  51. package/dist/core/claude-cli-runner.d.ts +5 -2
  52. package/dist/core/claude-cli-runner.js +11 -6
  53. package/dist/core/claude-cli-runner.js.map +1 -1
  54. package/dist/core/claude-ui-mapper.d.ts +14 -0
  55. package/dist/core/claude-ui-mapper.js +102 -11
  56. package/dist/core/claude-ui-mapper.js.map +1 -1
  57. package/dist/core/codex-app-server-transport.js +8 -4
  58. package/dist/core/codex-app-server-transport.js.map +1 -1
  59. package/dist/core/copilot-acp-runner.d.ts +60 -0
  60. package/dist/core/copilot-acp-runner.js +528 -0
  61. package/dist/core/copilot-acp-runner.js.map +1 -0
  62. package/dist/core/copilot-ui-mapper.d.ts +47 -0
  63. package/dist/core/copilot-ui-mapper.js +111 -0
  64. package/dist/core/copilot-ui-mapper.js.map +1 -0
  65. package/dist/core/cursor-agent-runner.js +4 -4
  66. package/dist/core/cursor-agent-runner.js.map +1 -1
  67. package/dist/core/disclaim-spawn.d.ts +9 -0
  68. package/dist/core/disclaim-spawn.js +53 -0
  69. package/dist/core/disclaim-spawn.js.map +1 -0
  70. package/dist/core/junie-acp-transport.d.ts +58 -0
  71. package/dist/core/junie-acp-transport.js +179 -0
  72. package/dist/core/junie-acp-transport.js.map +1 -0
  73. package/dist/core/junie-auth-probe.d.ts +12 -0
  74. package/dist/core/junie-auth-probe.js +30 -0
  75. package/dist/core/junie-auth-probe.js.map +1 -0
  76. package/dist/core/junie-model-catalog.d.ts +10 -0
  77. package/dist/core/junie-model-catalog.js +104 -0
  78. package/dist/core/junie-model-catalog.js.map +1 -0
  79. package/dist/core/junie-runner.d.ts +45 -0
  80. package/dist/core/junie-runner.js +533 -0
  81. package/dist/core/junie-runner.js.map +1 -0
  82. package/dist/core/junie-ui-mapper.d.ts +132 -0
  83. package/dist/core/junie-ui-mapper.js +459 -0
  84. package/dist/core/junie-ui-mapper.js.map +1 -0
  85. package/dist/core/model-identity.js +17 -0
  86. package/dist/core/model-identity.js.map +1 -1
  87. package/dist/core/model-presets.js +10 -0
  88. package/dist/core/model-presets.js.map +1 -1
  89. package/dist/core/opencode-server-runner.js +4 -4
  90. package/dist/core/opencode-server-runner.js.map +1 -1
  91. package/dist/core/pi-runner.js +4 -4
  92. package/dist/core/pi-runner.js.map +1 -1
  93. package/dist/core/provider-auth.d.ts +16 -2
  94. package/dist/core/provider-auth.js +113 -7
  95. package/dist/core/provider-auth.js.map +1 -1
  96. package/dist/core/runner-factory.js +6 -0
  97. package/dist/core/runner-factory.js.map +1 -1
  98. package/dist/core/runner-model-catalog.js +12 -8
  99. package/dist/core/runner-model-catalog.js.map +1 -1
  100. package/dist/core/tool-display.js +6 -1
  101. package/dist/core/tool-display.js.map +1 -1
  102. package/dist/core/ui-events.d.ts +6 -2
  103. package/dist/git-diff-base.js +23 -2
  104. package/dist/git-diff-base.js.map +1 -1
  105. package/dist/git-worktree.d.ts +21 -2
  106. package/dist/git-worktree.js +68 -5
  107. package/dist/git-worktree.js.map +1 -1
  108. package/dist/index.js +14 -4
  109. package/dist/index.js.map +1 -1
  110. package/dist/paths.js +2 -0
  111. package/dist/paths.js.map +1 -1
  112. package/dist/runs/event-history.js +3 -0
  113. package/dist/runs/event-history.js.map +1 -1
  114. package/dist/runs/store.d.ts +42 -3
  115. package/dist/runs/store.js +112 -6
  116. package/dist/runs/store.js.map +1 -1
  117. package/dist/self-update/checkouts.d.ts +53 -0
  118. package/dist/self-update/checkouts.js +268 -0
  119. package/dist/self-update/checkouts.js.map +1 -0
  120. package/dist/self-update/cli.d.ts +5 -3
  121. package/dist/self-update/cli.js +75 -8
  122. package/dist/self-update/cli.js.map +1 -1
  123. package/dist/self-update/layout.d.ts +33 -1
  124. package/dist/self-update/layout.js +102 -3
  125. package/dist/self-update/layout.js.map +1 -1
  126. package/dist/self-update/pulls.d.ts +40 -0
  127. package/dist/self-update/pulls.js +127 -0
  128. package/dist/self-update/pulls.js.map +1 -0
  129. package/dist/self-update/service.d.ts +26 -3
  130. package/dist/self-update/service.js +85 -9
  131. package/dist/self-update/service.js.map +1 -1
  132. package/dist/server/dashboard.d.ts +107 -0
  133. package/dist/server/dashboard.js +2 -1
  134. package/dist/server/dashboard.js.map +1 -1
  135. package/dist/server/forge/github.js +4 -1
  136. package/dist/server/forge/github.js.map +1 -1
  137. package/dist/server/fs-browse.d.ts +3 -1
  138. package/dist/server/fs-browse.js +27 -5
  139. package/dist/server/fs-browse.js.map +1 -1
  140. package/dist/server/open-in-app.js +2 -0
  141. package/dist/server/open-in-app.js.map +1 -1
  142. package/dist/server/provider-action-gate.js +5 -1
  143. package/dist/server/provider-action-gate.js.map +1 -1
  144. package/dist/server/server.d.ts +880 -511
  145. package/dist/server/server.js +40 -5
  146. package/dist/server/server.js.map +1 -1
  147. package/dist/server/star-count.d.ts +67 -0
  148. package/dist/server/star-count.js +186 -0
  149. package/dist/server/star-count.js.map +1 -0
  150. package/dist/skills-banner.d.ts +19 -0
  151. package/dist/skills-banner.js +24 -0
  152. package/dist/skills-banner.js.map +1 -1
  153. package/dist/workflows/run.d.ts +0 -2
  154. package/dist/workflows/run.js +45 -29
  155. package/dist/workflows/run.js.map +1 -1
  156. package/dist/workflows/types.d.ts +6 -0
  157. package/dist/workspace/agent-accounts.d.ts +9 -1
  158. package/dist/workspace/agent-accounts.js +2 -0
  159. package/dist/workspace/agent-accounts.js.map +1 -1
  160. package/dist/workspace/agent-profiles.d.ts +2 -2
  161. package/dist/workspace/agent-profiles.js +25 -6
  162. package/dist/workspace/agent-profiles.js.map +1 -1
  163. package/dist/workspace/config.d.ts +9 -1
  164. package/dist/workspace/config.js +10 -3
  165. package/dist/workspace/config.js.map +1 -1
  166. package/dist/workspace/dashboard-insights.d.ts +42 -0
  167. package/dist/workspace/dashboard-insights.js +220 -0
  168. package/dist/workspace/dashboard-insights.js.map +1 -0
  169. package/dist/workspace/dashboard.d.ts +71 -1
  170. package/dist/workspace/dashboard.js +14 -1
  171. package/dist/workspace/dashboard.js.map +1 -1
  172. package/dist/workspace/semaphore.d.ts +3 -0
  173. package/dist/workspace/semaphore.js +8 -1
  174. package/dist/workspace/semaphore.js.map +1 -1
  175. package/package.json +3 -3
  176. package/scripts/mock-claude.mjs +34 -1
  177. package/scripts/mock-copilot-acp.mjs +190 -0
  178. package/scripts/mock-junie-acp.mjs +208 -0
  179. package/web/dist/assets/agent-task-pickers-BeQi-UTm.js +1 -0
  180. package/web/dist/assets/alert-dialog-CnRAuqwb.js +1 -0
  181. package/web/dist/assets/arrow-down-Da0kNRNH.js +1 -0
  182. package/web/dist/assets/arrow-left-BIZHhBIP.js +1 -0
  183. package/web/dist/assets/automation-format-CfPmkcsg.js +1 -0
  184. package/web/dist/assets/automations-route-AMJbFP53.js +1 -0
  185. package/web/dist/assets/centered-state-3r2Kaar_.js +1 -0
  186. package/web/dist/assets/chevron-left-DLAUPC66.js +1 -0
  187. package/web/dist/assets/chevron-right-KVZcXiPL.js +1 -0
  188. package/web/dist/assets/{circle-x-C9UoMP1V.js → circle-x-C0Jm5Ppb.js} +1 -1
  189. package/web/dist/assets/collapsible-DG_SIWqU.js +1 -0
  190. package/web/dist/assets/command-Dfln3D4A.js +1 -0
  191. package/web/dist/assets/{commit-list-BSfPsVsu.js → commit-list-_RA72yB_.js} +1 -1
  192. package/web/dist/assets/compare-variants-D6Ji6od4.js +1 -0
  193. package/web/dist/assets/dashboard-B3-tPimG.js +44 -0
  194. package/web/dist/assets/dialog-CiDREdUK.js +1 -0
  195. package/web/dist/assets/{diff-I0xowULh.js → diff-CxdyRumG.js} +2 -2
  196. package/web/dist/assets/diff-controls-DqJMMV4z.js +1 -0
  197. package/web/dist/assets/{diff-stat-yKn7joEr.js → diff-stat-Hupj4hxh.js} +1 -1
  198. package/web/dist/assets/{diff-view-DjvMeW1M.js → diff-view-BBYT5k6c.js} +1 -1
  199. package/web/dist/assets/dist-BqMwqJFX.js +1 -0
  200. package/web/dist/assets/dist-DpiX6WjA.js +1 -0
  201. package/web/dist/assets/{download-BcgZ2yk4.js → download-BR7EN9gW.js} +1 -1
  202. package/web/dist/assets/dropdown-menu-Ci4HFML0.js +1 -0
  203. package/web/dist/assets/editable-title-DDtUgRKZ.js +1 -0
  204. package/web/dist/assets/{ellipsis-vertical-g4O4NlLV.js → ellipsis-vertical-DBklom4U.js} +1 -1
  205. package/web/dist/assets/facet-filter-CfI4QvOd.js +1 -0
  206. package/web/dist/assets/{file-wXNeZwi7.js → file-CZb7cKNH.js} +1 -1
  207. package/web/dist/assets/{file-text-DV1gE2L6.js → file-text-Dm6CrEGW.js} +1 -1
  208. package/web/dist/assets/{folder-wjVId5un.js → folder-zQj-FYOo.js} +1 -1
  209. package/web/dist/assets/{git-pull-request-BBEDdTLK.js → git-pull-request-AhwzJc7s.js} +1 -1
  210. package/web/dist/assets/git-toolbar-j7gKkhGL.js +1 -0
  211. package/web/dist/assets/github-De-DFy8s.js +1 -0
  212. package/web/dist/assets/{image-preview-u1f-wzxC.js → image-preview-Dd3NVB7N.js} +1 -1
  213. package/web/dist/assets/index-HS1hr5Sz.js +12 -0
  214. package/web/dist/assets/index-YwgrLyBj.css +2 -0
  215. package/web/dist/assets/loader-circle-sk4vKJKp.js +1 -0
  216. package/web/dist/assets/{markdown-Bnm47qUl.js → markdown-DjNR-1p8.js} +2 -2
  217. package/web/dist/assets/new-task-form-vLs2G1_z.js +1 -0
  218. package/web/dist/assets/picker-pill-VW-M1ZiV.js +1 -0
  219. package/web/dist/assets/{pill-7dm3vWF7.js → pill-CPl6sysj.js} +1 -1
  220. package/web/dist/assets/popover-CNGONAql.js +1 -0
  221. package/web/dist/assets/project-router-dCZQu1wQ.js +1 -0
  222. package/web/dist/assets/{prompt-templates-BMZ5q5H_.js → prompt-templates-jNjVTAws.js} +1 -1
  223. package/web/dist/assets/{refresh-cw-C69euZ2H.js → refresh-cw-BfkEydKA.js} +1 -1
  224. package/web/dist/assets/repo-git-BZWZ6_pR.js +1 -0
  225. package/web/dist/assets/{run-diff-CoNVGn23.js → run-diff-u_roDsAJ.js} +2 -2
  226. package/web/dist/assets/run-header-Br1yJR0m.js +1 -0
  227. package/web/dist/assets/{search-x-BNLFOxI6.js → search-x-CT0NTqK1.js} +1 -1
  228. package/web/dist/assets/segmented-IDD4ucht.js +1 -0
  229. package/web/dist/assets/skills-Dsi5YdLG.js +1 -0
  230. package/web/dist/assets/{sparkles-ChorK-gZ.js → sparkles-CvOeAoyJ.js} +1 -1
  231. package/web/dist/assets/{square-terminal-C7KCPznz.js → square-terminal-eSs8YYZe.js} +1 -1
  232. package/web/dist/assets/{tab-link-E5O2Cesc.js → tab-link-CPF6ORha.js} +1 -1
  233. package/web/dist/assets/task-changes-DIT9Y1rh.js +1 -0
  234. package/web/dist/assets/task-commits-B4VvdiHH.js +1 -0
  235. package/web/dist/assets/task-files-BMm9C0DW.js +2 -0
  236. package/web/dist/assets/task-thread-RXabJAt0.js +9 -0
  237. package/web/dist/assets/{textarea-DLAfWPb0.js → textarea-DtBqPhIs.js} +1 -1
  238. package/web/dist/assets/thread-loading-Dnxb6Ar-.js +1 -0
  239. package/web/dist/assets/toaster-CfRVb8vH.js +43 -0
  240. package/web/dist/assets/token-metrics-DldVlr6m.js +1 -0
  241. package/web/dist/assets/tooltip-_O50N3pt.js +1 -0
  242. package/web/dist/assets/tracker-J0fdcH1G.js +4 -0
  243. package/web/dist/assets/{trash-2-_vwSMdPG.js → trash-2-CUH7GOVh.js} +1 -1
  244. package/web/dist/assets/{triangle-alert-fBRUkB46.js → triangle-alert-D5K_zyD3.js} +1 -1
  245. package/web/dist/assets/{upload-B4OIpdyq.js → upload-D7_n-9cl.js} +1 -1
  246. package/web/dist/assets/{use-now-sqAvRMna.js → use-now-3lElDuTi.js} +1 -1
  247. package/web/dist/assets/utils-BXvEm7Ve.js +64 -0
  248. package/web/dist/assets/workflows-D-dx9c_0.js +7 -0
  249. package/web/dist/assets/x-kLybIvX4.js +1 -0
  250. package/web/dist/assets/{zoomable-image-X81SApIg.js → zoomable-image-CnyQ9wyw.js} +1 -1
  251. package/web/dist/index.html +38 -36
  252. package/web/dist/assets/agent-task-pickers-DQ1qvgrD.js +0 -1
  253. package/web/dist/assets/alert-dialog-B_2uU4Bg.js +0 -1
  254. package/web/dist/assets/arrow-down-DieVZxSE.js +0 -1
  255. package/web/dist/assets/arrow-left-C8M0efjn.js +0 -1
  256. package/web/dist/assets/automation-format-CzinzpHK.js +0 -1
  257. package/web/dist/assets/automations-route-DYHUjV9R.js +0 -1
  258. package/web/dist/assets/centered-state-DJLgwvA4.js +0 -43
  259. package/web/dist/assets/chevron-left-BhXrOEE3.js +0 -1
  260. package/web/dist/assets/chevron-right-B3Ta8VKK.js +0 -1
  261. package/web/dist/assets/collapsible-BcKvItwg.js +0 -1
  262. package/web/dist/assets/command-BvGGv2_u.js +0 -1
  263. package/web/dist/assets/compare-variants-DBvMYMs3.js +0 -1
  264. package/web/dist/assets/dashboard-CGaFh4RV.js +0 -44
  265. package/web/dist/assets/dialog-B6NgKh0-.js +0 -1
  266. package/web/dist/assets/diff-controls-DskkZqmD.js +0 -1
  267. package/web/dist/assets/dist-BvXEdcbG.js +0 -1
  268. package/web/dist/assets/dist-CTksUkKh.js +0 -1
  269. package/web/dist/assets/dropdown-menu-B7HeKCfN.js +0 -1
  270. package/web/dist/assets/editable-title-BHbHmSIK.js +0 -1
  271. package/web/dist/assets/facet-filter-DZ3wfvN9.js +0 -1
  272. package/web/dist/assets/git-toolbar-EZuX4Cuz.js +0 -1
  273. package/web/dist/assets/github-zcLRxv77.js +0 -1
  274. package/web/dist/assets/index-BrZhA4_u.css +0 -2
  275. package/web/dist/assets/index-CSNFuBvj.js +0 -12
  276. package/web/dist/assets/loader-circle-Cwgo6onL.js +0 -1
  277. package/web/dist/assets/new-task-form-CQODCzBP.js +0 -1
  278. package/web/dist/assets/picker-pill-DNB9ETjS.js +0 -1
  279. package/web/dist/assets/popover-BRq6QnwI.js +0 -1
  280. package/web/dist/assets/project-router-I8Pbsrxy.js +0 -1
  281. package/web/dist/assets/repo-git-G436Abni.js +0 -1
  282. package/web/dist/assets/run-header-CxdaA86t.js +0 -1
  283. package/web/dist/assets/skills-C_kBDesq.js +0 -1
  284. package/web/dist/assets/task-changes-Bhw4Ysvg.js +0 -1
  285. package/web/dist/assets/task-commits-DBuGXuGm.js +0 -1
  286. package/web/dist/assets/task-files-CYDbeffM.js +0 -2
  287. package/web/dist/assets/task-thread-RuxHMJgN.js +0 -9
  288. package/web/dist/assets/thread-loading-BAuVAbcA.js +0 -1
  289. package/web/dist/assets/token-metrics-rVl4kXe_.js +0 -1
  290. package/web/dist/assets/tooltip-Bdl8mQG8.js +0 -1
  291. package/web/dist/assets/tracker-DJ8JW59-.js +0 -4
  292. package/web/dist/assets/utils-DoBmOlX3.js +0 -64
  293. package/web/dist/assets/workflows-C54D7mlm.js +0 -7
  294. package/web/dist/assets/x-HXr9KZBr.js +0 -1
@@ -3,7 +3,9 @@ import { z } from 'zod';
3
3
  export declare const runnerSchema: z.ZodEnum<{
4
4
  claude: "claude";
5
5
  codex: "codex";
6
+ copilot: "copilot";
6
7
  cursor: "cursor";
8
+ junie: "junie";
7
9
  opencode: "opencode";
8
10
  pi: "pi";
9
11
  }>;
@@ -20,9 +22,11 @@ export declare const backendCheckSchema: z.ZodObject<{
20
22
  name: z.ZodEnum<{
21
23
  claude: "claude";
22
24
  codex: "codex";
25
+ copilot: "copilot";
23
26
  cursor: "cursor";
24
27
  gh: "gh";
25
28
  git: "git";
29
+ junie: "junie";
26
30
  opencode: "opencode";
27
31
  pi: "pi";
28
32
  }>;
@@ -67,9 +71,11 @@ export declare const healthResponseSchema: z.ZodObject<{
67
71
  name: z.ZodEnum<{
68
72
  claude: "claude";
69
73
  codex: "codex";
74
+ copilot: "copilot";
70
75
  cursor: "cursor";
71
76
  gh: "gh";
72
77
  git: "git";
78
+ junie: "junie";
73
79
  opencode: "opencode";
74
80
  pi: "pi";
75
81
  }>;
@@ -80,7 +86,9 @@ export declare const healthResponseSchema: z.ZodObject<{
80
86
  defaultRunner: z.ZodEnum<{
81
87
  claude: "claude";
82
88
  codex: "codex";
89
+ copilot: "copilot";
83
90
  cursor: "cursor";
91
+ junie: "junie";
84
92
  opencode: "opencode";
85
93
  pi: "pi";
86
94
  }>;
@@ -21,6 +21,8 @@ export * from './dispatch.ts';
21
21
  export * from './dashboard.ts';
22
22
  export * from './dashboard-costs.ts';
23
23
  export * from './dashboard-overview.ts';
24
+ export * from './dashboard-insights.ts';
24
25
  export * from './host.ts';
25
26
  export * from './tracker.ts';
26
27
  export * from './self-update.ts';
28
+ export * from './star-count.ts';
@@ -47,14 +47,14 @@ var checkoutProgressEventSchema = z.object({
47
47
 
48
48
  // ../contract/src/health.ts
49
49
  import { z as z2 } from "zod";
50
- var runnerSchema = z2.enum(["claude", "codex", "opencode", "cursor", "pi"]);
50
+ var runnerSchema = z2.enum(["claude", "codex", "opencode", "cursor", "pi", "junie", "copilot"]);
51
51
  var repoInfoSchema = z2.object({
52
52
  root: z2.string(),
53
53
  branch: z2.string(),
54
54
  remote: z2.string().optional()
55
55
  });
56
56
  var backendCheckSchema = z2.object({
57
- name: z2.enum(["claude", "codex", "opencode", "cursor", "pi", "gh", "git"]),
57
+ name: z2.enum(["claude", "codex", "opencode", "cursor", "pi", "junie", "copilot", "gh", "git"]),
58
58
  available: z2.boolean(),
59
59
  version: z2.string().optional(),
60
60
  hint: z2.string().optional()
@@ -518,6 +518,12 @@ var dispatchResponseSchema = z5.object({
518
518
  });
519
519
 
520
520
  // ../contract/src/runs.ts
521
+ var runPrRefSchema = z6.object({
522
+ number: z6.number().int().positive(),
523
+ url: z6.string().url().optional(),
524
+ origin: z6.enum(["created", "marker", "legacy", "derived"]),
525
+ at: z6.string()
526
+ });
521
527
  var runStatusSchema = z6.enum([
522
528
  "queued",
523
529
  "running",
@@ -686,6 +692,7 @@ var runRecordSchema = z6.object({
686
692
  referencedPullRequestUrl: z6.string().optional(),
687
693
  /** The PR/issue number this task is ABOUT (task auto-naming spec) — display tier only. */
688
694
  prNumber: z6.number().optional(),
695
+ prRefs: z6.array(runPrRefSchema).max(8).optional(),
689
696
  issueNumber: z6.number().optional(),
690
697
  /** Server-side provenance: referenced-issue discovery currently owns `issueNumber`. */
691
698
  referencedIssueNumberSeeded: z6.boolean().optional(),
@@ -809,6 +816,7 @@ var runIndexEntrySchema = z6.object({
809
816
  pullRequestUrl: z6.string().optional(),
810
817
  referencedPullRequestUrl: z6.string().optional(),
811
818
  prNumber: z6.number().optional(),
819
+ prRefs: z6.array(runPrRefSchema).max(8).optional(),
812
820
  issueNumber: z6.number().optional(),
813
821
  referencedIssueUrl: z6.string().optional(),
814
822
  markerRefs: z6.object({ pr: z6.number().optional(), issue: z6.number().optional() }).optional(),
@@ -966,7 +974,7 @@ function truncateToBounds(value, maxChars, maxBytes) {
966
974
  }
967
975
  function sanitizeAttachmentName(name, mediaType) {
968
976
  const base = name.split(/[/\\]/).pop() ?? "";
969
- const cleaned = base.replace(/[\u0000-\u001f\u007f]/g, "").replace(/[<>:"|?*]/g, "-").replace(/\s+/g, " ").replace(/^\.+/, "").trim();
977
+ const cleaned = base.replace(/[\u0000-\u001f\u007f\u200e-\u200f\u202a-\u202e\u2066-\u2069]/g, "").replace(/[<>:"|?*]/g, "-").replace(/\s+/g, " ").replace(/^\.+/, "").trim();
970
978
  if (cleaned === "") return null;
971
979
  const canonical = attachmentExtension(mediaType);
972
980
  const subtypeExt = canonical === "img" ? mediaType.split("/")[1]?.split("+")[0]?.toLowerCase() : void 0;
@@ -1548,6 +1556,7 @@ var workspaceConfigResponseSchema = z11.object({
1548
1556
  resources: z11.object({
1549
1557
  maxParallel: z11.number(),
1550
1558
  maxMonitoringSessions: z11.number(),
1559
+ idleTimeoutMinutes: z11.number().nullable(),
1551
1560
  monitoringWakeIntervalMinutes: z11.number().nullable(),
1552
1561
  /** Resume a run a provider usage limit stopped, once the limit resets. Default `true`. */
1553
1562
  autoResumeOnUsageLimit: z11.boolean(),
@@ -1569,7 +1578,9 @@ var workspaceConfigResponseSchema = z11.object({
1569
1578
  codex: z11.string().optional(),
1570
1579
  opencode: z11.string().optional(),
1571
1580
  cursor: z11.string().optional(),
1572
- pi: z11.string().optional()
1581
+ pi: z11.string().optional(),
1582
+ junie: z11.string().optional(),
1583
+ copilot: z11.string().optional()
1573
1584
  }).optional()
1574
1585
  })
1575
1586
  });
@@ -1589,13 +1600,16 @@ var setWorkspaceConfigInputSchema = z11.object({
1589
1600
  claude: z11.string().trim().min(1).max(200).nullable().optional(),
1590
1601
  codex: z11.string().trim().min(1).max(200).nullable().optional(),
1591
1602
  opencode: z11.string().trim().min(1).max(200).nullable().optional(),
1603
+ junie: z11.string().trim().min(1).max(200).nullable().optional(),
1592
1604
  cursor: z11.string().trim().min(1).max(200).nullable().optional(),
1593
- pi: z11.string().trim().min(1).max(200).nullable().optional()
1605
+ pi: z11.string().trim().min(1).max(200).nullable().optional(),
1606
+ copilot: z11.string().trim().min(1).max(200).nullable().optional()
1594
1607
  }).optional()
1595
1608
  }).optional(),
1596
1609
  resources: z11.object({
1597
1610
  maxParallel: z11.number().int().min(1).max(16).optional(),
1598
1611
  maxMonitoringSessions: z11.number().int().min(0).max(16).optional(),
1612
+ idleTimeoutMinutes: z11.number().int().min(0).max(1440).nullable().optional(),
1599
1613
  monitoringWakeIntervalMinutes: z11.number().int().min(1).max(60).nullable().optional(),
1600
1614
  autoResumeOnUsageLimit: z11.boolean().optional(),
1601
1615
  memoryLimitMb: z11.number().int().min(0).max(1048576).nullable().optional(),
@@ -1631,6 +1645,8 @@ var uiStateSchema = z11.looseObject({
1631
1645
  runsView: z11.enum(["list", "table"]).optional(),
1632
1646
  /** The GitHub tab's last-selected sub-tab (#417). Absent → issues. */
1633
1647
  githubView: z11.enum(["issues", "prs"]).optional(),
1648
+ /** The GitHub tab's list order. Absent → newest first, which is what `gh` already returns. */
1649
+ githubSort: z11.enum(["newest", "oldest"]).optional(),
1634
1650
  /** Settings → Appearance. The theme itself stays in localStorage (`cez-theme`) — it must
1635
1651
  * pre-paint, and it is per-browser by design. */
1636
1652
  appearance: appearanceSchema.optional(),
@@ -1700,7 +1716,9 @@ var workspaceUiStateSchema = z11.looseObject({
1700
1716
  codex: z11.string().optional(),
1701
1717
  opencode: z11.string().optional(),
1702
1718
  cursor: z11.string().optional(),
1703
- pi: z11.string().optional()
1719
+ pi: z11.string().optional(),
1720
+ junie: z11.string().optional(),
1721
+ copilot: z11.string().optional()
1704
1722
  }).optional(),
1705
1723
  /** Settings → Appearance, GLOBAL since step 3.5: accent + density describe the person at the
1706
1724
  * keyboard, not a repo. */
@@ -1738,7 +1756,9 @@ var setWorkspaceUiStateInputSchema = z11.looseObject({
1738
1756
  claude: z11.string().min(1).max(128).optional(),
1739
1757
  codex: z11.string().min(1).max(128).optional(),
1740
1758
  opencode: z11.string().min(1).max(128).optional(),
1741
- pi: z11.string().min(1).max(128).optional()
1759
+ pi: z11.string().min(1).max(128).optional(),
1760
+ junie: z11.string().min(1).max(128).optional(),
1761
+ copilot: z11.string().min(1).max(128).optional()
1742
1762
  }).optional(),
1743
1763
  importedSkills: z11.array(z11.string().min(1).max(200)).max(WORKSPACE_UI_STATE_MAX_KEYS).optional(),
1744
1764
  taskTable: taskTableUiStateSchema.extend({
@@ -1757,9 +1777,11 @@ var setWorkspaceUiStateInputSchema = z11.looseObject({
1757
1777
  var runnerModelsSchema = z11.object({
1758
1778
  claude: z11.string().optional(),
1759
1779
  codex: z11.string().optional(),
1780
+ junie: z11.string().optional(),
1760
1781
  opencode: z11.string().optional(),
1761
1782
  cursor: z11.string().optional(),
1762
- pi: z11.string().optional()
1783
+ pi: z11.string().optional(),
1784
+ copilot: z11.string().optional()
1763
1785
  });
1764
1786
  var configResponseSchema = z11.object({
1765
1787
  baseBranch: z11.string().nullable(),
@@ -1791,7 +1813,8 @@ var setConfigInputSchema = z11.object({
1791
1813
  codex: z11.string().trim().max(200).nullable().optional(),
1792
1814
  opencode: z11.string().trim().max(200).nullable().optional(),
1793
1815
  cursor: z11.string().trim().max(200).nullable().optional(),
1794
- pi: z11.string().trim().max(200).nullable().optional()
1816
+ pi: z11.string().trim().max(200).nullable().optional(),
1817
+ copilot: z11.string().trim().max(200).nullable().optional()
1795
1818
  }).optional(),
1796
1819
  maxParallel: z11.number().int().min(1).max(16).optional(),
1797
1820
  /** null or 0 clears the ceiling back to "no limit". */
@@ -1857,7 +1880,7 @@ var providerConnectResponseSchema = z11.discriminatedUnion("opened", [
1857
1880
  z11.object({ opened: z11.literal(true), command: z11.string() }),
1858
1881
  z11.object({ opened: z11.literal(false), connected: z11.literal(true), command: z11.string() })
1859
1882
  ]);
1860
- var modelDiscoveryRunnerSchema = z11.enum(["claude", "codex", "opencode", "cursor"]);
1883
+ var modelDiscoveryRunnerSchema = z11.enum(["claude", "codex", "opencode", "cursor", "junie"]);
1861
1884
  var MODEL_DISCOVERY_RUNNERS = modelDiscoveryRunnerSchema.options;
1862
1885
  function runnerDiscoversModels(runner) {
1863
1886
  return MODEL_DISCOVERY_RUNNERS.includes(runner);
@@ -2051,8 +2074,10 @@ var agentAccountSelectionSchema = z14.object({
2051
2074
  claude: z14.string().optional(),
2052
2075
  codex: z14.string().optional(),
2053
2076
  opencode: z14.string().optional(),
2077
+ junie: z14.string().optional(),
2054
2078
  cursor: z14.string().optional(),
2055
- pi: z14.string().optional()
2079
+ pi: z14.string().optional(),
2080
+ copilot: z14.string().optional()
2056
2081
  });
2057
2082
  var agentProfilesResponseSchema = z14.object({
2058
2083
  editable: z14.boolean(),
@@ -2835,40 +2860,119 @@ var dashboardOverviewSchema = z19.object({
2835
2860
  })
2836
2861
  });
2837
2862
 
2838
- // ../contract/src/host.ts
2863
+ // ../contract/src/dashboard-insights.ts
2839
2864
  import { z as z20 } from "zod";
2840
- var hostUsageContainerSchema = z20.object({
2865
+ var count4 = z20.number().int().nonnegative();
2866
+ var iso2 = z20.iso.datetime();
2867
+ var dashboardInsightsQuerySchema = z20.object({
2868
+ period: z20.enum(["7d", "30d"]).default("7d"),
2869
+ /** `Date.prototype.getTimezoneOffset()` — the window starts at the viewer's local midnight. */
2870
+ tzOffsetMinutes: z20.coerce.number().int().min(-840).max(720).default(0)
2871
+ });
2872
+ var dashboardDeliveredSchema = z20.object({
2873
+ completedTasks: count4,
2874
+ /** PRs cezar itself opened for those tasks (`prRefs` origin `created`, or a legacy URL). */
2875
+ prsOpened: count4,
2876
+ /** Every distinct PR those tasks are associated with, opened or only worked on. */
2877
+ prsTouched: count4,
2878
+ issues: count4,
2879
+ additions: count4,
2880
+ deletions: count4,
2881
+ files: count4,
2882
+ /** Completed tasks that carry a stored diff stat — the denominator of the three above. */
2883
+ measuredTasks: count4
2884
+ });
2885
+ var dashboardFailureCategorySchema = z20.enum([
2886
+ "usage-limit",
2887
+ "auth",
2888
+ "agent-unavailable",
2889
+ "timeout",
2890
+ "check",
2891
+ "git",
2892
+ "other"
2893
+ ]);
2894
+ var dashboardFailureReasonSchema = z20.object({
2895
+ category: dashboardFailureCategorySchema,
2896
+ label: z20.string(),
2897
+ count: count4,
2898
+ latest: z20.object({
2899
+ projectId: z20.string(),
2900
+ id: z20.string(),
2901
+ title: z20.string(),
2902
+ at: iso2,
2903
+ step: z20.string().optional(),
2904
+ message: z20.string().max(240)
2905
+ })
2906
+ });
2907
+ var dashboardBackendStatSchema = z20.object({
2908
+ backend: z20.string(),
2909
+ model: z20.string().optional(),
2910
+ finished: count4,
2911
+ done: count4,
2912
+ failed: count4,
2913
+ timedTasks: count4,
2914
+ medianCycleHours: z20.number().finite().nonnegative().nullable(),
2915
+ /** Omitted when workspace settings hide cost. */
2916
+ costUsd: dashboardCostMetricSchema.optional()
2917
+ });
2918
+ var dashboardAutomationStatSchema = z20.object({
2919
+ projectId: z20.string(),
2920
+ automationId: z20.string(),
2921
+ tasks: count4,
2922
+ done: count4,
2923
+ failed: count4,
2924
+ /** Launched tasks still in flight or waiting on a person, right now. */
2925
+ active: count4,
2926
+ lastRunAt: iso2.optional(),
2927
+ lastStatus: runStatusSchema.optional(),
2928
+ costUsd: dashboardCostMetricSchema.optional()
2929
+ });
2930
+ var dashboardInsightsSchema = z20.object({
2931
+ asOf: iso2,
2932
+ windowStart: iso2,
2933
+ period: z20.enum(["7d", "30d"]),
2934
+ visibility: dashboardCostVisibilitySchema,
2935
+ coverage: dashboardCoverageSchema,
2936
+ delivered: dashboardDeliveredSchema,
2937
+ failures: z20.object({ total: count4, reasons: z20.array(dashboardFailureReasonSchema).max(8) }),
2938
+ backends: z20.array(dashboardBackendStatSchema),
2939
+ automations: z20.array(dashboardAutomationStatSchema)
2940
+ });
2941
+
2942
+ // ../contract/src/host.ts
2943
+ import { z as z21 } from "zod";
2944
+ var hostUsageContainerSchema = z21.object({
2841
2945
  /** Which hierarchy the numbers came from; a systemd-limited host service is v2 too. */
2842
- source: z20.enum(["cgroup-v2", "cgroup-v1"]),
2946
+ source: z21.enum(["cgroup-v2", "cgroup-v1"]),
2843
2947
  /** Finite `cpu.max`/`cpu.cfs_quota_us` quota in cores; absent when unlimited or unreadable. */
2844
- cpuQuotaCores: z20.number().positive().optional(),
2948
+ cpuQuotaCores: z21.number().positive().optional(),
2845
2949
  /** Finite cpuset pin (`cpuset.cpus.effective`) below the host core count, in cores. */
2846
- cpuAffinityCores: z20.number().positive().optional(),
2950
+ cpuAffinityCores: z21.number().positive().optional(),
2847
2951
  /** Finite memory limit below the host total; a zero limit is not representable and is absent. */
2848
- memLimitBytes: z20.number().positive().optional(),
2952
+ memLimitBytes: z21.number().positive().optional(),
2849
2953
  /** Emitted only WITH `memLimitBytes`, and cache-excluded when `inactive_file` is readable. */
2850
- memUsedBytes: z20.number().nonnegative().optional(),
2954
+ memUsedBytes: z21.number().nonnegative().optional(),
2851
2955
  /** Emitted only with a finite CPU limit; the delta is relative to the effective cores. */
2852
- cpuPct: z20.number().min(0).max(100).optional()
2956
+ cpuPct: z21.number().min(0).max(100).optional()
2853
2957
  });
2854
- var hostUsageSchema = z20.object({
2958
+ var hostUsageSchema = z21.object({
2855
2959
  /** ISO-8601 instant this sample was read (server clock). */
2856
- sampledAt: z20.string(),
2960
+ sampledAt: z21.string(),
2857
2961
  /** Aggregate CPU utilization 0–100 across all cores; absent without a usable delta window. */
2858
- cpuPct: z20.number().min(0).max(100).optional(),
2962
+ cpuPct: z21.number().min(0).max(100).optional(),
2859
2963
  /** Logical cores (`os.availableParallelism()`), always ≥ 1. */
2860
- cpuCount: z20.number().int().positive(),
2861
- memTotalBytes: z20.number().nonnegative(),
2862
- memUsedBytes: z20.number().nonnegative(),
2964
+ cpuCount: z21.number().int().positive(),
2965
+ memTotalBytes: z21.number().nonnegative(),
2966
+ memUsedBytes: z21.number().nonnegative(),
2863
2967
  /** Headroom left for new work (libuv's `freemem`, i.e. `MemAvailable` on Linux). */
2864
- memAvailableBytes: z20.number().nonnegative(),
2865
- swapTotalBytes: z20.number().nonnegative().optional(),
2866
- swapUsedBytes: z20.number().nonnegative().optional(),
2867
- loadAvg: z20.object({ one: z20.number(), five: z20.number(), fifteen: z20.number() }).optional(),
2968
+ memAvailableBytes: z21.number().nonnegative(),
2969
+ swapTotalBytes: z21.number().nonnegative().optional(),
2970
+ swapUsedBytes: z21.number().nonnegative().optional(),
2971
+ loadAvg: z21.object({ one: z21.number(), five: z21.number(), fifteen: z21.number() }).optional(),
2868
2972
  /** The process's own cgroup, when a finite limit exists; absent on a plain host. */
2869
2973
  container: hostUsageContainerSchema.optional(),
2870
2974
  /** `os.cpus().length`, emitted only together with `container` and omitted when 0. */
2871
- hostCpuCount: z20.number().int().positive().optional(),
2975
+ hostCpuCount: z21.number().int().positive().optional(),
2872
2976
  /**
2873
2977
  * Why there is no `container`, when the answer is "unknown" rather than "none":
2874
2978
  * `'unavailable'` means the probe could not read `/proc/self/cgroup` or the mount table at all
@@ -2877,65 +2981,124 @@ var hostUsageSchema = z20.object({
2877
2981
  * pre-container payload says, deliberately, so a plain host stays byte-identical to v1.
2878
2982
  * (`'unconstrained'` is reserved for a future producer that wants to say it explicitly.)
2879
2983
  */
2880
- cgroupProbe: z20.enum(["unavailable", "unconstrained"]).optional()
2984
+ cgroupProbe: z21.enum(["unavailable", "unconstrained"]).optional()
2881
2985
  });
2882
2986
 
2883
2987
  // ../contract/src/self-update.ts
2884
- import { z as z21 } from "zod";
2885
- var updateChannelSchema = z21.enum(["stable", "nightly"]);
2886
- var installKindSchema = z21.enum(["managed", "global-npm", "npx", "checkout", "unknown"]);
2887
- var installedVersionSchema = z21.object({
2888
- id: z21.string(),
2889
- version: z21.string(),
2890
- source: z21.enum(["registry", "local"]),
2891
- installedAt: z21.string(),
2892
- active: z21.boolean()
2893
- });
2894
- var availableVersionSchema = z21.object({
2895
- version: z21.string(),
2896
- channel: z21.enum(["stable", "nightly", "preview"]),
2897
- publishedAt: z21.string().nullable(),
2898
- installed: z21.boolean()
2899
- });
2900
- var selfUpdateJobStatusSchema = z21.enum(["running", "failed", "restarting"]);
2901
- var selfUpdateJobSchema = z21.object({
2988
+ import { z as z22 } from "zod";
2989
+ var updateChannelSchema = z22.enum(["stable", "nightly", "development"]);
2990
+ var installKindSchema = z22.enum(["managed", "global-npm", "npx", "checkout", "unknown"]);
2991
+ var installedVersionSchema = z22.object({
2992
+ id: z22.string(),
2993
+ version: z22.string(),
2994
+ source: z22.enum(["registry", "local", "link"]),
2995
+ installedAt: z22.string(),
2996
+ active: z22.boolean(),
2997
+ /** `link` only: the checkout's branch, and its package root (absent in hosted mode). */
2998
+ branch: z22.string().optional(),
2999
+ checkout: z22.string().optional()
3000
+ });
3001
+ var availableVersionSchema = z22.object({
3002
+ version: z22.string(),
3003
+ channel: z22.enum(["stable", "nightly", "preview"]),
3004
+ publishedAt: z22.string().nullable(),
3005
+ installed: z22.boolean()
3006
+ });
3007
+ var selfUpdateJobStatusSchema = z22.enum(["running", "failed", "restarting"]);
3008
+ var selfUpdateJobSchema = z22.object({
2902
3009
  status: selfUpdateJobStatusSchema,
2903
- target: z21.string(),
2904
- startedAt: z21.string(),
2905
- finishedAt: z21.string().nullable(),
2906
- log: z21.array(z21.string()),
2907
- error: z21.string().optional()
2908
- });
2909
- var selfUpdateStatusSchema = z21.object({
2910
- version: z21.string(),
3010
+ target: z22.string(),
3011
+ startedAt: z22.string(),
3012
+ finishedAt: z22.string().nullable(),
3013
+ log: z22.array(z22.string()),
3014
+ error: z22.string().optional()
3015
+ });
3016
+ var selfUpdateStatusSchema = z22.object({
3017
+ version: z22.string(),
2911
3018
  installKind: installKindSchema,
2912
3019
  /** Absolute entry file the process runs; hosted mode trims it to its basename. */
2913
- entry: z21.string(),
2914
- canSelfUpdate: z21.boolean(),
3020
+ entry: z22.string(),
3021
+ canSelfUpdate: z22.boolean(),
2915
3022
  /** Why `canSelfUpdate` is false, phrased for the dialog. Absent when it is true. */
2916
- reason: z21.string().optional(),
3023
+ reason: z22.string().optional(),
2917
3024
  channel: updateChannelSchema,
2918
3025
  /** How the process will come back: re-exec itself, or exit and let the supervisor (desktop
2919
3026
  * shell, systemd, launchd) relaunch it. */
2920
- restartMode: z21.enum(["reexec", "supervisor"]),
2921
- latest: z21.object({
2922
- stable: z21.string().nullable(),
2923
- nightly: z21.string().nullable()
3027
+ restartMode: z22.enum(["reexec", "supervisor"]),
3028
+ latest: z22.object({
3029
+ stable: z22.string().nullable(),
3030
+ nightly: z22.string().nullable()
2924
3031
  }),
2925
3032
  /** The channel's newest version when it is newer than `version`, else null. */
2926
- updateAvailable: z21.string().nullable(),
3033
+ updateAvailable: z22.string().nullable(),
2927
3034
  /** When the registry was last read successfully; null when it never answered (offline). */
2928
- checkedAt: z21.string().nullable(),
2929
- installed: z21.array(installedVersionSchema),
2930
- available: z21.array(availableVersionSchema),
3035
+ checkedAt: z22.string().nullable(),
3036
+ installed: z22.array(installedVersionSchema),
3037
+ available: z22.array(availableVersionSchema),
2931
3038
  job: selfUpdateJobSchema.nullable(),
2932
3039
  /** Runs in flight across the workspace — a restart interrupts them (boot recovery re-queues). */
2933
- activeRuns: z21.number().int().min(0)
3040
+ activeRuns: z22.number().int().min(0)
2934
3041
  });
2935
- var selfUpdateApplyRequestSchema = z21.object({
2936
- version: z21.string().min(1).max(64).regex(/^[0-9A-Za-z.+-]+$/, "version must be a plain version string")
3042
+ var selfUpdateApplyRequestSchema = z22.object({
3043
+ version: z22.string().min(1).max(64).regex(/^[0-9A-Za-z.+-]+$/, "version must be a plain version string")
2937
3044
  }).strict();
2938
- var selfUpdateChannelRequestSchema = z21.object({ channel: updateChannelSchema }).strict();
3045
+ var selfUpdateChannelRequestSchema = z22.object({ channel: updateChannelSchema }).strict();
3046
+ var checkoutTaskSchema = z22.object({
3047
+ id: z22.string(),
3048
+ title: z22.string(),
3049
+ status: z22.string()
3050
+ });
3051
+ var cezarCheckoutSchema = z22.object({
3052
+ id: z22.string(),
3053
+ branch: z22.string(),
3054
+ version: z22.string(),
3055
+ worktree: z22.string(),
3056
+ built: z22.boolean(),
3057
+ linked: z22.boolean(),
3058
+ /** Last commit on the worktree's HEAD; null when git could not say. */
3059
+ commit: z22.object({ sha: z22.string(), subject: z22.string(), at: z22.string() }).nullable(),
3060
+ /** When `dist/index.js` was last written; null when not built. */
3061
+ builtAt: z22.string().nullable(),
3062
+ /** Built, but the last commit is newer than the build. */
3063
+ stale: z22.boolean(),
3064
+ /** The task that owns this worktree, when it is one of cezar's own. */
3065
+ task: checkoutTaskSchema.nullable(),
3066
+ /** The open pull request whose head is this branch, when one is known. */
3067
+ pr: z22.number().int().nullable()
3068
+ });
3069
+ var pullBuildSchema = z22.object({
3070
+ number: z22.number().int(),
3071
+ title: z22.string(),
3072
+ author: z22.string().nullable(),
3073
+ branch: z22.string(),
3074
+ draft: z22.boolean(),
3075
+ updatedAt: z22.string(),
3076
+ url: z22.string(),
3077
+ version: z22.string().nullable(),
3078
+ publishedAt: z22.string().nullable(),
3079
+ installed: z22.boolean()
3080
+ });
3081
+ var selfUpdateDevelopmentQuerySchema = z22.object({ refresh: z22.literal("1").optional() }).strict();
3082
+ var selfUpdateDevelopmentSchema = z22.object({
3083
+ /** Newest commit first. Always empty in hosted mode. */
3084
+ checkouts: z22.array(cezarCheckoutSchema),
3085
+ pulls: z22.object({
3086
+ available: z22.boolean(),
3087
+ /** Why the list is empty or partial (`gh` missing, offline…). Absent when it is complete. */
3088
+ reason: z22.string().optional(),
3089
+ repo: z22.string(),
3090
+ /** Most recently updated first. */
3091
+ items: z22.array(pullBuildSchema)
3092
+ })
3093
+ });
3094
+
3095
+ // ../contract/src/star-count.ts
3096
+ import { z as z23 } from "zod";
3097
+ var starCountSchema = z23.object({
3098
+ available: z23.boolean(),
3099
+ count: z23.number().int().nonnegative().optional(),
3100
+ url: z23.string()
3101
+ });
2939
3102
  export {
2940
3103
  DEFAULT_AGENT_ACCOUNT_ID,
2941
3104
  DISPATCH_KINDS,
@@ -3007,10 +3170,12 @@ export {
3007
3170
  cancelAutoResumeResponseSchema,
3008
3171
  cancelResponseSchema,
3009
3172
  capabilitiesSchema,
3173
+ cezarCheckoutSchema,
3010
3174
  changedFileSchema,
3011
3175
  changesPayloadSchema,
3012
3176
  checkoutProgressEventSchema,
3013
3177
  checkoutProjectInputSchema,
3178
+ checkoutTaskSchema,
3014
3179
  configResponseSchema,
3015
3180
  continueResponseSchema,
3016
3181
  createAgentProfileInputSchema,
@@ -3021,8 +3186,10 @@ export {
3021
3186
  createRunResponseSchema,
3022
3187
  cronOf,
3023
3188
  dashboardAutomationSchema,
3189
+ dashboardAutomationStatSchema,
3024
3190
  dashboardAutomationsQuerySchema,
3025
3191
  dashboardAutomationsSchema,
3192
+ dashboardBackendStatSchema,
3026
3193
  dashboardCostMetricSchema,
3027
3194
  dashboardCostPeriodSchema,
3028
3195
  dashboardCostProjectSchema,
@@ -3035,6 +3202,9 @@ export {
3035
3202
  dashboardCostsSchema,
3036
3203
  dashboardCountsSchema,
3037
3204
  dashboardCoverageSchema,
3205
+ dashboardDeliveredSchema,
3206
+ dashboardFailureCategorySchema,
3207
+ dashboardFailureReasonSchema,
3038
3208
  dashboardFeedFilterSchema,
3039
3209
  dashboardFeedQuerySchema,
3040
3210
  dashboardFeedRowSchema,
@@ -3042,6 +3212,8 @@ export {
3042
3212
  dashboardFeedSourceSchema,
3043
3213
  dashboardForgeCreatedSchema,
3044
3214
  dashboardGroupSchema,
3215
+ dashboardInsightsQuerySchema,
3216
+ dashboardInsightsSchema,
3045
3217
  dashboardOutcomeMetricsSchema,
3046
3218
  dashboardOverviewGroupSchema,
3047
3219
  dashboardOverviewQuerySchema,
@@ -3146,6 +3318,7 @@ export {
3146
3318
  providerIdSchema,
3147
3319
  providerStatusResponseSchema,
3148
3320
  providerStatusSchema,
3321
+ pullBuildSchema,
3149
3322
  queuedMessageSchema,
3150
3323
  reclaimWorktreesResponseSchema,
3151
3324
  referenceStatusSchema,
@@ -3173,6 +3346,7 @@ export {
3173
3346
  runHistoryQuerySchema,
3174
3347
  runIdParamSchema,
3175
3348
  runIndexEntrySchema,
3349
+ runPrRefSchema,
3176
3350
  runRecordSchema,
3177
3351
  runStatusSchema,
3178
3352
  runnerDiscoversModels,
@@ -3188,6 +3362,8 @@ export {
3188
3362
  selectAgentProfileInputSchema,
3189
3363
  selfUpdateApplyRequestSchema,
3190
3364
  selfUpdateChannelRequestSchema,
3365
+ selfUpdateDevelopmentQuerySchema,
3366
+ selfUpdateDevelopmentSchema,
3191
3367
  selfUpdateJobSchema,
3192
3368
  selfUpdateJobStatusSchema,
3193
3369
  selfUpdateStatusSchema,
@@ -3201,6 +3377,7 @@ export {
3201
3377
  skillsUpdateScopeStateSchema,
3202
3378
  skillsUpdateStateSchema,
3203
3379
  skillsUpdateStatusSchema,
3380
+ starCountSchema,
3204
3381
  startTodoResponseSchema,
3205
3382
  statusEntrySchema,
3206
3383
  stepStateSchema,