@open-mercato/cezar 0.9.1 → 0.9.2-pr710.1256

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 (393) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -32
  3. package/dist/agent-config/account-identity.d.ts +44 -0
  4. package/dist/agent-config/account-identity.js +128 -0
  5. package/dist/agent-config/account-identity.js.map +1 -0
  6. package/dist/agent-config/catalog.d.ts +9 -1
  7. package/dist/agent-config/catalog.js +18 -0
  8. package/dist/agent-config/catalog.js.map +1 -1
  9. package/dist/agent-config/files.d.ts +1 -1
  10. package/dist/agent-config/model-settings/claude.d.ts +2 -0
  11. package/dist/agent-config/model-settings/claude.js +11 -0
  12. package/dist/agent-config/model-settings/claude.js.map +1 -0
  13. package/dist/agent-config/model-settings/codex.d.ts +2 -0
  14. package/dist/agent-config/model-settings/codex.js +16 -0
  15. package/dist/agent-config/model-settings/codex.js.map +1 -0
  16. package/dist/agent-config/model-settings/opencode.d.ts +2 -0
  17. package/dist/agent-config/model-settings/opencode.js +8 -0
  18. package/dist/agent-config/model-settings/opencode.js.map +1 -0
  19. package/dist/agent-config/model-settings/pi.d.ts +12 -0
  20. package/dist/agent-config/model-settings/pi.js +18 -0
  21. package/dist/agent-config/model-settings/pi.js.map +1 -0
  22. package/dist/agent-config/model-settings/shared.d.ts +9 -0
  23. package/dist/agent-config/model-settings/shared.js +93 -0
  24. package/dist/agent-config/model-settings/shared.js.map +1 -0
  25. package/dist/agent-config/model-settings/types.d.ts +9 -0
  26. package/dist/agent-config/model-settings/types.js +2 -0
  27. package/dist/agent-config/model-settings/types.js.map +1 -0
  28. package/dist/agent-config/models.d.ts +9 -0
  29. package/dist/agent-config/models.js +32 -0
  30. package/dist/agent-config/models.js.map +1 -0
  31. package/dist/agent-config/service.d.ts +1 -1
  32. package/dist/agent-config/service.js +4 -4
  33. package/dist/agent-config/service.js.map +1 -1
  34. package/dist/agent-config/validate.d.ts +1 -1
  35. package/dist/automations/coordinator.d.ts +26 -0
  36. package/dist/automations/coordinator.js +66 -0
  37. package/dist/automations/coordinator.js.map +1 -0
  38. package/dist/automations/github-poller.d.ts +74 -0
  39. package/dist/automations/github-poller.js +234 -0
  40. package/dist/automations/github-poller.js.map +1 -0
  41. package/dist/automations/scheduler.d.ts +42 -0
  42. package/dist/automations/scheduler.js +192 -0
  43. package/dist/automations/scheduler.js.map +1 -0
  44. package/dist/automations/store.d.ts +65 -0
  45. package/dist/automations/store.js +298 -0
  46. package/dist/automations/store.js.map +1 -0
  47. package/dist/automations/task-template.d.ts +18 -0
  48. package/dist/automations/task-template.js +95 -0
  49. package/dist/automations/task-template.js.map +1 -0
  50. package/dist/automations/types.d.ts +255 -0
  51. package/dist/automations/types.js +159 -0
  52. package/dist/automations/types.js.map +1 -0
  53. package/dist/config.d.ts +19 -112
  54. package/dist/config.js +48 -5
  55. package/dist/config.js.map +1 -1
  56. package/dist/contract/agent-config.d.ts +153 -0
  57. package/dist/contract/agent-profiles.d.ts +347 -0
  58. package/dist/contract/automations.d.ts +935 -0
  59. package/dist/contract/events.d.ts +104 -0
  60. package/dist/contract/github.d.ts +467 -0
  61. package/dist/contract/health.d.ts +102 -0
  62. package/dist/contract/index.d.ts +16 -0
  63. package/dist/contract/index.js +1830 -0
  64. package/dist/contract/projects.d.ts +210 -0
  65. package/dist/contract/repo.d.ts +234 -0
  66. package/dist/contract/runs.d.ts +1407 -0
  67. package/dist/contract/skills.d.ts +232 -0
  68. package/dist/contract/workflows.d.ts +218 -0
  69. package/dist/contract/workspace.d.ts +577 -0
  70. package/dist/core/agent-env.d.ts +1 -1
  71. package/dist/core/agent-env.js +41 -16
  72. package/dist/core/agent-env.js.map +1 -1
  73. package/dist/core/agent-model-policy.d.ts +10 -0
  74. package/dist/core/agent-model-policy.js +36 -0
  75. package/dist/core/agent-model-policy.js.map +1 -0
  76. package/dist/core/agent-profiles.d.ts +62 -0
  77. package/dist/core/agent-profiles.js +90 -0
  78. package/dist/core/agent-profiles.js.map +1 -0
  79. package/dist/core/agent-runner.d.ts +49 -7
  80. package/dist/core/agent-runner.js +48 -3
  81. package/dist/core/agent-runner.js.map +1 -1
  82. package/dist/core/ask.d.ts +45 -124
  83. package/dist/core/ask.js +103 -13
  84. package/dist/core/ask.js.map +1 -1
  85. package/dist/core/backend-detect.d.ts +5 -5
  86. package/dist/core/backend-detect.js +44 -7
  87. package/dist/core/backend-detect.js.map +1 -1
  88. package/dist/core/claude-cli-runner.d.ts +2 -2
  89. package/dist/core/claude-cli-runner.js +61 -13
  90. package/dist/core/claude-cli-runner.js.map +1 -1
  91. package/dist/core/claude-ui-mapper.d.ts +1 -1
  92. package/dist/core/codex-app-server-runner.d.ts +1 -1
  93. package/dist/core/codex-app-server-runner.js +65 -3
  94. package/dist/core/codex-app-server-runner.js.map +1 -1
  95. package/dist/core/codex-app-server-transport.d.ts +6 -1
  96. package/dist/core/codex-app-server-transport.js +17 -3
  97. package/dist/core/codex-app-server-transport.js.map +1 -1
  98. package/dist/core/codex-model-catalog.d.ts +1 -1
  99. package/dist/core/codex-ui-mapper.d.ts +5 -1
  100. package/dist/core/codex-ui-mapper.js +74 -17
  101. package/dist/core/codex-ui-mapper.js.map +1 -1
  102. package/dist/core/model-identity.d.ts +24 -12
  103. package/dist/core/model-identity.js +41 -24
  104. package/dist/core/model-identity.js.map +1 -1
  105. package/dist/core/model-presets.d.ts +10 -4
  106. package/dist/core/model-presets.js +52 -9
  107. package/dist/core/model-presets.js.map +1 -1
  108. package/dist/core/opencode-model-catalog.d.ts +30 -0
  109. package/dist/core/opencode-model-catalog.js +126 -0
  110. package/dist/core/opencode-model-catalog.js.map +1 -0
  111. package/dist/core/opencode-server-runner.d.ts +2 -2
  112. package/dist/core/opencode-ui-mapper.d.ts +4 -1
  113. package/dist/core/opencode-ui-mapper.js +45 -7
  114. package/dist/core/opencode-ui-mapper.js.map +1 -1
  115. package/dist/core/pi-runner.d.ts +24 -0
  116. package/dist/core/pi-runner.js +349 -0
  117. package/dist/core/pi-runner.js.map +1 -0
  118. package/dist/core/pi-ui-mapper.d.ts +34 -0
  119. package/dist/core/pi-ui-mapper.js +270 -0
  120. package/dist/core/pi-ui-mapper.js.map +1 -0
  121. package/dist/core/provider-auth.d.ts +154 -0
  122. package/dist/core/provider-auth.js +509 -0
  123. package/dist/core/provider-auth.js.map +1 -0
  124. package/dist/core/provider-availability.d.ts +3 -0
  125. package/dist/core/provider-availability.js +14 -0
  126. package/dist/core/provider-availability.js.map +1 -0
  127. package/dist/core/runner-factory.d.ts +1 -1
  128. package/dist/core/runner-factory.js +3 -0
  129. package/dist/core/runner-factory.js.map +1 -1
  130. package/dist/core/runner-model-catalog.d.ts +1 -1
  131. package/dist/core/shell-env.d.ts +28 -0
  132. package/dist/core/shell-env.js +56 -0
  133. package/dist/core/shell-env.js.map +1 -0
  134. package/dist/core/tool-display.d.ts +1 -1
  135. package/dist/core/ui-events.d.ts +2 -2
  136. package/dist/core/ui-events.js +1 -1
  137. package/dist/core/usage-limit.d.ts +42 -0
  138. package/dist/core/usage-limit.js +209 -0
  139. package/dist/core/usage-limit.js.map +1 -0
  140. package/dist/git-diff-base.d.ts +85 -0
  141. package/dist/git-diff-base.js +180 -0
  142. package/dist/git-diff-base.js.map +1 -0
  143. package/dist/git-worktree.d.ts +46 -6
  144. package/dist/git-worktree.js +46 -9
  145. package/dist/git-worktree.js.map +1 -1
  146. package/dist/handoff.d.ts +2 -2
  147. package/dist/handoff.js +1 -1
  148. package/dist/index.js +66 -8
  149. package/dist/index.js.map +1 -1
  150. package/dist/paths.d.ts +69 -6
  151. package/dist/paths.js +86 -9
  152. package/dist/paths.js.map +1 -1
  153. package/dist/planner.d.ts +2 -2
  154. package/dist/planner.js +7 -1
  155. package/dist/planner.js.map +1 -1
  156. package/dist/release/manifests.d.ts +81 -0
  157. package/dist/release/manifests.js +74 -0
  158. package/dist/release/manifests.js.map +1 -0
  159. package/dist/release/snapshot.d.ts +9 -23
  160. package/dist/release/snapshot.js +9 -22
  161. package/dist/release/snapshot.js.map +1 -1
  162. package/dist/release/stable.d.ts +15 -29
  163. package/dist/release/stable.js +14 -27
  164. package/dist/release/stable.js.map +1 -1
  165. package/dist/runs/agent-tmpdir.d.ts +41 -0
  166. package/dist/runs/agent-tmpdir.js +183 -0
  167. package/dist/runs/agent-tmpdir.js.map +1 -0
  168. package/dist/runs/auto-name.d.ts +1 -1
  169. package/dist/runs/auto-name.js +6 -1
  170. package/dist/runs/auto-name.js.map +1 -1
  171. package/dist/runs/event-history.d.ts +50 -0
  172. package/dist/runs/event-history.js +613 -0
  173. package/dist/runs/event-history.js.map +1 -0
  174. package/dist/runs/retention.d.ts +1 -1
  175. package/dist/runs/run-index.d.ts +19 -0
  176. package/dist/runs/run-index.js +43 -0
  177. package/dist/runs/run-index.js.map +1 -0
  178. package/dist/runs/store.d.ts +209 -344
  179. package/dist/runs/store.js +298 -39
  180. package/dist/runs/store.js.map +1 -1
  181. package/dist/runs/ui-event-sink.d.ts +1 -1
  182. package/dist/server/app-type.d.ts +21 -0
  183. package/dist/server/app-type.js +2 -0
  184. package/dist/server/app-type.js.map +1 -0
  185. package/dist/server/capabilities.d.ts +21 -6
  186. package/dist/server/capabilities.js +27 -1
  187. package/dist/server/capabilities.js.map +1 -1
  188. package/dist/server/forge/github.d.ts +58 -151
  189. package/dist/server/forge/github.js +530 -6
  190. package/dist/server/forge/github.js.map +1 -1
  191. package/dist/server/forge/index.d.ts +19 -3
  192. package/dist/server/forge/index.js +28 -1
  193. package/dist/server/forge/index.js.map +1 -1
  194. package/dist/server/forge/types.d.ts +86 -1
  195. package/dist/server/git-changes.d.ts +10 -8
  196. package/dist/server/git-changes.js +19 -17
  197. package/dist/server/git-changes.js.map +1 -1
  198. package/dist/server/git.d.ts +2 -0
  199. package/dist/server/git.js +9 -0
  200. package/dist/server/git.js.map +1 -1
  201. package/dist/server/github.d.ts +3 -3
  202. package/dist/server/github.js +1 -1
  203. package/dist/server/github.js.map +1 -1
  204. package/dist/server/open-in-app.d.ts +2 -1
  205. package/dist/server/open-in-app.js +3 -1
  206. package/dist/server/open-in-app.js.map +1 -1
  207. package/dist/server/open-in-terminal.d.ts +46 -1
  208. package/dist/server/open-in-terminal.js +72 -13
  209. package/dist/server/open-in-terminal.js.map +1 -1
  210. package/dist/server/pr.d.ts +2 -2
  211. package/dist/server/project-context.d.ts +20 -3
  212. package/dist/server/project-context.js +30 -1
  213. package/dist/server/project-context.js.map +1 -1
  214. package/dist/server/provider-action-gate.d.ts +8 -0
  215. package/dist/server/provider-action-gate.js +56 -0
  216. package/dist/server/provider-action-gate.js.map +1 -0
  217. package/dist/server/provider-auth-runtime.d.ts +21 -0
  218. package/dist/server/provider-auth-runtime.js +66 -0
  219. package/dist/server/provider-auth-runtime.js.map +1 -0
  220. package/dist/server/server.d.ts +12802 -47
  221. package/dist/server/server.js +2857 -949
  222. package/dist/server/server.js.map +1 -1
  223. package/dist/server/validators.d.ts +97 -0
  224. package/dist/server/validators.js +86 -0
  225. package/dist/server/validators.js.map +1 -0
  226. package/dist/server/ws.d.ts +2 -2
  227. package/dist/server/ws.js +2 -2
  228. package/dist/server/ws.js.map +1 -1
  229. package/dist/server-install/engine.d.ts +1 -1
  230. package/dist/server-install/engine.js +5 -18
  231. package/dist/server-install/engine.js.map +1 -1
  232. package/dist/server-install/platforms/macosx-ngrok.d.ts +1 -1
  233. package/dist/server-install/platforms/ubuntu-vps.d.ts +16 -1
  234. package/dist/server-install/platforms/ubuntu-vps.js +83 -1
  235. package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
  236. package/dist/server-install/state.d.ts +1 -1
  237. package/dist/server-install/steps.d.ts +2 -2
  238. package/dist/server-install/steps.js +6 -2
  239. package/dist/server-install/steps.js.map +1 -1
  240. package/dist/server-install/strategies.d.ts +1 -1
  241. package/dist/server-install/types.d.ts +38 -424
  242. package/dist/server-install/ui.d.ts +1 -1
  243. package/dist/skills-banner.d.ts +7 -6
  244. package/dist/skills-banner.js +7 -6
  245. package/dist/skills-banner.js.map +1 -1
  246. package/dist/skills-remote.d.ts +2 -2
  247. package/dist/skills-update.d.ts +88 -0
  248. package/dist/skills-update.js +392 -0
  249. package/dist/skills-update.js.map +1 -0
  250. package/dist/skills.d.ts +2 -0
  251. package/dist/skills.js +7 -2
  252. package/dist/skills.js.map +1 -1
  253. package/dist/todos.d.ts +2 -28
  254. package/dist/todos.js +1 -1
  255. package/dist/ui-state.d.ts +16 -2
  256. package/dist/ui-state.js +14 -1
  257. package/dist/ui-state.js.map +1 -1
  258. package/dist/workflows/load.d.ts +1 -1
  259. package/dist/workflows/run.d.ts +276 -15
  260. package/dist/workflows/run.js +1261 -159
  261. package/dist/workflows/run.js.map +1 -1
  262. package/dist/workflows/types.d.ts +62 -224
  263. package/dist/workflows/types.js +25 -2
  264. package/dist/workflows/types.js.map +1 -1
  265. package/dist/workspace/agent-accounts.d.ts +153 -0
  266. package/dist/workspace/agent-accounts.js +304 -0
  267. package/dist/workspace/agent-accounts.js.map +1 -0
  268. package/dist/workspace/agent-profiles.d.ts +78 -0
  269. package/dist/workspace/agent-profiles.js +115 -0
  270. package/dist/workspace/agent-profiles.js.map +1 -0
  271. package/dist/workspace/config.d.ts +94 -206
  272. package/dist/workspace/config.js +226 -14
  273. package/dist/workspace/config.js.map +1 -1
  274. package/dist/workspace/migrations.d.ts +1 -1
  275. package/dist/workspace/migrations.js +19 -4
  276. package/dist/workspace/migrations.js.map +1 -1
  277. package/dist/workspace/projects-cli.js +54 -4
  278. package/dist/workspace/projects-cli.js.map +1 -1
  279. package/dist/workspace/projects.d.ts +26 -2
  280. package/dist/workspace/projects.js +42 -3
  281. package/dist/workspace/projects.js.map +1 -1
  282. package/dist/workspace/semaphore.d.ts +51 -0
  283. package/dist/workspace/semaphore.js +53 -3
  284. package/dist/workspace/semaphore.js.map +1 -1
  285. package/dist/workspace/ui-state.d.ts +16 -5
  286. package/dist/workspace/ui-state.js +18 -7
  287. package/dist/workspace/ui-state.js.map +1 -1
  288. package/package.json +17 -39
  289. package/scripts/inline-contract.mjs +112 -0
  290. package/scripts/mock-claude.mjs +59 -1
  291. package/scripts/mock-pi-rpc.mjs +83 -0
  292. package/scripts/sync-readme.mjs +20 -0
  293. package/web/dist/assets/alert-dialog-BVs3QSmP.js +1 -0
  294. package/web/dist/assets/arrow-down-D7T7XuF6.js +1 -0
  295. package/web/dist/assets/arrow-left-B1dRFd8y.js +1 -0
  296. package/web/dist/assets/bundle-mjs-BT31bpU6.js +1 -0
  297. package/web/dist/assets/centered-state-DdRLYi9u.js +43 -0
  298. package/web/dist/assets/chevron-right-Dh0t3AL8.js +1 -0
  299. package/web/dist/assets/{chunk-BO2N2NFS-DtrdTCWa.js → chunk-BO2N2NFS-DE6qKn3r.js} +8 -8
  300. package/web/dist/assets/circle-check-4FDOlh9u.js +1 -0
  301. package/web/dist/assets/circle-x-CgTVbqX5.js +1 -0
  302. package/web/dist/assets/collapsible-BoADzTok.js +1 -0
  303. package/web/dist/assets/commit-list-BCcCkRbU.js +1 -0
  304. package/web/dist/assets/compare-variants-B7gTgGqR.js +1 -0
  305. package/web/dist/assets/{core-DePtBHcl.js → core-BCsw8oQw.js} +1 -1
  306. package/web/dist/assets/diff-ecfV3-op.js +3 -0
  307. package/web/dist/assets/diff-stat-C2KGLVnZ.js +1 -0
  308. package/web/dist/assets/{diff-view-DCeSegKk.js → diff-view-CQtonQ4L.js} +4 -4
  309. package/web/dist/assets/dropdown-menu-WcGoirf2.js +1 -0
  310. package/web/dist/assets/editable-title-SqNK-wuI.js +1 -0
  311. package/web/dist/assets/{ellipsis-vertical-CNnSLn5a.js → ellipsis-vertical-ClTFrwit.js} +1 -1
  312. package/web/dist/assets/{file-D4GBh1ao.js → file-BU0mWida.js} +1 -1
  313. package/web/dist/assets/folder-rsgCF0aw.js +1 -0
  314. package/web/dist/assets/{git-pull-request-DnR8Xh4_.js → git-pull-request-BFhIKb83.js} +1 -1
  315. package/web/dist/assets/git-toolbar-CF1_tzqz.js +1 -0
  316. package/web/dist/assets/github-CyjPz-Ks.js +1 -0
  317. package/web/dist/assets/highlighted-body-OFNGDK62-BL-MfFgl.js +1 -0
  318. package/web/dist/assets/highlighter-CdHqIwFr.js +3 -0
  319. package/web/dist/assets/image-preview-iEzCyEmz.js +1 -0
  320. package/web/dist/assets/index-BN09RpYY.css +2 -0
  321. package/web/dist/assets/index-CyG7aE1W.js +7 -0
  322. package/web/dist/assets/lib-BQXq3kEf.js +1 -0
  323. package/web/dist/assets/lib-BxQXEXDF.js +1 -0
  324. package/web/dist/assets/markdown-CNAa22LB.js +2 -0
  325. package/web/dist/assets/mermaid-GHXKKRXX-C4jxqUUb.js +1 -0
  326. package/web/dist/assets/new-task-form-CWhQZbsX.js +1 -0
  327. package/web/dist/assets/pill-BO5s2x3N.js +1 -0
  328. package/web/dist/assets/project-router-Dm4OhAPE.js +1 -0
  329. package/web/dist/assets/prompt-templates-CP__OCDQ.js +15 -0
  330. package/web/dist/assets/react-runtime-CCIEwYL0.js +9 -0
  331. package/web/dist/assets/{refresh-cw-BT8E96Tm.js → refresh-cw-DyiysCoP.js} +1 -1
  332. package/web/dist/assets/repo-git-B1WM6N8T.js +1 -0
  333. package/web/dist/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  334. package/web/dist/assets/run-diff-CKx4d9Oo.js +3 -0
  335. package/web/dist/assets/run-header-DpbfOtNi.js +1 -0
  336. package/web/dist/assets/{search-x-BDjaMrzG.js → search-x-DRvk-6x4.js} +1 -1
  337. package/web/dist/assets/skill-empty-hint-D5vsHfMr.js +1 -0
  338. package/web/dist/assets/skills-BiWfHmCR.js +1 -0
  339. package/web/dist/assets/skills-XGltyIJ_.js +1 -0
  340. package/web/dist/assets/sparkles-BugkDxWO.js +1 -0
  341. package/web/dist/assets/{square-terminal-Ckjjn0vb.js → square-terminal-Drp2h-o8.js} +1 -1
  342. package/web/dist/assets/tab-link-CiRLRlnY.js +1 -0
  343. package/web/dist/assets/task-changes-C2hKkEtc.js +1 -0
  344. package/web/dist/assets/task-commits-CwGs_Opa.js +1 -0
  345. package/web/dist/assets/task-files-5KUgFzX3.js +2 -0
  346. package/web/dist/assets/task-thread-B3AFO3SS.js +9 -0
  347. package/web/dist/assets/textarea-Dn90Eun6.js +1 -0
  348. package/web/dist/assets/thread-loading-_1hPuk76.js +1 -0
  349. package/web/dist/assets/{trash-2-DAyZ0VSi.js → trash-2-BKEc5Sp2.js} +1 -1
  350. package/web/dist/assets/{triangle-alert-Uy8rokUh.js → triangle-alert-BGGPY2C2.js} +1 -1
  351. package/web/dist/assets/{upload-CDdyPPo_.js → upload-B0AQw-mO.js} +1 -1
  352. package/web/dist/assets/use-desktop-CegyTp3X.js +1 -0
  353. package/web/dist/assets/use-submit-shortcut-Mle-9uJp.js +1 -0
  354. package/web/dist/assets/utils-D9GHDNza.js +64 -0
  355. package/web/dist/assets/workflows-3PCz57Z6.js +11 -0
  356. package/web/dist/assets/zoomable-image-DTq7s8CZ.js +1 -0
  357. package/web/dist/index.html +33 -13
  358. package/scripts/dev.mjs +0 -74
  359. package/scripts/release-snapshot.mjs +0 -130
  360. package/scripts/release.mjs +0 -119
  361. package/web/dist/assets/arrow-left-CnSdp92h.js +0 -1
  362. package/web/dist/assets/bundle-mjs-BegPhL5c.js +0 -1
  363. package/web/dist/assets/centered-state-DOsTcJZF.js +0 -43
  364. package/web/dist/assets/commit-list-BrxBEzRK.js +0 -1
  365. package/web/dist/assets/compare-variants-Bv2c9ORF.js +0 -1
  366. package/web/dist/assets/dist-B6XQOhgM.js +0 -1
  367. package/web/dist/assets/git-toolbar-pIC1ubPM.js +0 -1
  368. package/web/dist/assets/github-DTTSG0ht.js +0 -1
  369. package/web/dist/assets/highlighted-body-OFNGDK62-BuFJwunK.js +0 -1
  370. package/web/dist/assets/image-preview-DEhW0TFz.js +0 -1
  371. package/web/dist/assets/index-Cijmlz7q.js +0 -30
  372. package/web/dist/assets/index-DzroxqBG.css +0 -2
  373. package/web/dist/assets/lib-DPEZDBUN.js +0 -1
  374. package/web/dist/assets/lib-uHpeUPzK.js +0 -1
  375. package/web/dist/assets/mermaid-GHXKKRXX-CN2zQue0.js +0 -1
  376. package/web/dist/assets/open-mercato-toBr6SOa.svg +0 -11
  377. package/web/dist/assets/project-router-BMx4e8m-.js +0 -1
  378. package/web/dist/assets/repo-git-BusYfa3t.js +0 -1
  379. package/web/dist/assets/run-diff-wOJ3odA-.js +0 -3
  380. package/web/dist/assets/run-header-Cg5incil.js +0 -1
  381. package/web/dist/assets/skill-empty-hint-DTUSp6Vl.js +0 -1
  382. package/web/dist/assets/skills-PpP2owbM.js +0 -1
  383. package/web/dist/assets/tab-link-F3uQrdm2.js +0 -1
  384. package/web/dist/assets/task-changes-iD9kS79I.js +0 -1
  385. package/web/dist/assets/task-commits-COkLaUri.js +0 -1
  386. package/web/dist/assets/task-files-Ckttz7XH.js +0 -2
  387. package/web/dist/assets/task-thread-CQD91VPt.js +0 -9
  388. package/web/dist/assets/textarea-Bj_LCreg.js +0 -1
  389. package/web/dist/assets/use-desktop-DUh0STzq.js +0 -3
  390. package/web/dist/assets/utils-B8s5qIcK.js +0 -1
  391. package/web/dist/assets/workflows-BFk8C0co.js +0 -11
  392. package/web/dist/assets/zoomable-image-PEDOqyLQ.js +0 -1
  393. /package/web/{open-mercato.svg → dist/open-mercato.svg} +0 -0
@@ -23,234 +23,113 @@ export declare const PROJECT_ID_RE: RegExp;
23
23
  * degrade per-key so one bad value never evicts the project.
24
24
  */
25
25
  declare const workspaceProjectSchema: z.ZodObject<{
26
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
27
26
  id: z.ZodString;
28
- /** Absolute, realpath-normalized repo root (normalization is the writer's
29
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
30
- root: z.ZodEffects<z.ZodString, string, string>;
31
- /** Display name (basename by default). `''` = caller derives a fallback. */
27
+ root: z.ZodString;
32
28
  name: z.ZodCatch<z.ZodString>;
33
29
  addedAt: z.ZodCatch<z.ZodString>;
34
30
  lastOpenedAt: z.ZodCatch<z.ZodString>;
35
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
36
- /** Per-project cap on concurrently running tasks. Absent = inherit the
37
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
38
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
39
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
31
+ source: z.ZodCatch<z.ZodEnum<{
32
+ checkout: "checkout";
33
+ local: "local";
34
+ }>>;
40
35
  maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
41
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
42
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
43
- id: z.ZodString;
44
- /** Absolute, realpath-normalized repo root (normalization is the writer's
45
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
46
- root: z.ZodEffects<z.ZodString, string, string>;
47
- /** Display name (basename by default). `''` = caller derives a fallback. */
48
- name: z.ZodCatch<z.ZodString>;
49
- addedAt: z.ZodCatch<z.ZodString>;
50
- lastOpenedAt: z.ZodCatch<z.ZodString>;
51
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
52
- /** Per-project cap on concurrently running tasks. Absent = inherit the
53
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
54
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
55
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
56
- maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
57
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
58
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
59
- id: z.ZodString;
60
- /** Absolute, realpath-normalized repo root (normalization is the writer's
61
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
62
- root: z.ZodEffects<z.ZodString, string, string>;
63
- /** Display name (basename by default). `''` = caller derives a fallback. */
64
- name: z.ZodCatch<z.ZodString>;
65
- addedAt: z.ZodCatch<z.ZodString>;
66
- lastOpenedAt: z.ZodCatch<z.ZodString>;
67
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
68
- /** Per-project cap on concurrently running tasks. Absent = inherit the
69
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
70
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
71
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
72
- maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
73
- }, z.ZodTypeAny, "passthrough">>;
36
+ tags: z.ZodCatch<z.ZodOptional<z.ZodArray<z.ZodString>>>;
37
+ }, z.core.$loose>;
74
38
  export type WorkspaceProject = z.infer<typeof workspaceProjectSchema>;
39
+ /**
40
+ * Zero-config cadence, in minutes, for re-checking a run parked with
41
+ * `CEZ:MONITORING` (#810). The single source of truth for that default — the
42
+ * schema below and `WorkspaceSemaphore`'s fallback both read it, so an install
43
+ * with no `~/.cezar/config.json` and a semaphore built without boot wiring
44
+ * agree. `null` (explicit park) is a user choice and is never replaced by it.
45
+ */
46
+ export declare const DEFAULT_MONITORING_WAKE_MINUTES = 5;
75
47
  declare const workspaceConfigSchema: z.ZodObject<{
76
- /** Migration cursor (src/workspace/migrations.ts). Absent/bad → 0, which
77
- * means "run every migration" — each one is idempotent, so that is safe. */
78
48
  schemaVersion: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
79
- /** Root exposed by the Add project folder browser. Environment supplies
80
- * the zero-config default; an explicit workspace value wins thereafter. */
81
49
  browseRoot: z.ZodCatch<z.ZodDefault<z.ZodString>>;
82
- /** Checkout root for GUI-cloned projects. Stored as written (a literal
83
- * `~` is expanded by the checkout flow, not here); validated writable
84
- * when *changed*, never at load. */
85
50
  projectsDir: z.ZodCatch<z.ZodDefault<z.ZodString>>;
86
- resources: z.ZodCatch<z.ZodDefault<z.ZodObject<{
87
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
51
+ skillsAutoUpdate: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
52
+ modelsLocked: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
53
+ resources: z.ZodCatch<z.ZodPrefault<z.ZodObject<{
88
54
  maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
89
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
90
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
55
+ maxMonitoringSessions: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
56
+ monitoringWakeIntervalMinutes: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
57
+ autoResumeOnUsageLimit: z.ZodCatch<z.ZodDefault<z.ZodBoolean>>;
91
58
  memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
92
- /** Default worktree retention for projects that don't override it. */
93
59
  worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
94
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
95
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
96
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
97
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
98
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
99
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
100
- /** Default worktree retention for projects that don't override it. */
101
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
102
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
103
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
104
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
105
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
106
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
107
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
108
- /** Default worktree retention for projects that don't override it. */
109
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
110
- }, z.ZodTypeAny, "passthrough">>>>;
111
- /** Per-entry salvage: a corrupt entry is dropped, the rest of the registry
112
- * survives (a whole-array `.catch([])` would evict every project over one
113
- * bad row). */
114
- projects: z.ZodEffects<z.ZodCatch<z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>>, z.objectOutputType<{
115
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
116
- id: z.ZodString;
117
- /** Absolute, realpath-normalized repo root (normalization is the writer's
118
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
119
- root: z.ZodEffects<z.ZodString, string, string>;
120
- /** Display name (basename by default). `''` = caller derives a fallback. */
121
- name: z.ZodCatch<z.ZodString>;
122
- addedAt: z.ZodCatch<z.ZodString>;
123
- lastOpenedAt: z.ZodCatch<z.ZodString>;
124
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
125
- /** Per-project cap on concurrently running tasks. Absent = inherit the
126
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
127
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
128
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
129
- maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
130
- }, z.ZodTypeAny, "passthrough">[], unknown>;
131
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
132
- /** Migration cursor (src/workspace/migrations.ts). Absent/bad → 0, which
133
- * means "run every migration" — each one is idempotent, so that is safe. */
134
- schemaVersion: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
135
- /** Root exposed by the Add project folder browser. Environment supplies
136
- * the zero-config default; an explicit workspace value wins thereafter. */
137
- browseRoot: z.ZodCatch<z.ZodDefault<z.ZodString>>;
138
- /** Checkout root for GUI-cloned projects. Stored as written (a literal
139
- * `~` is expanded by the checkout flow, not here); validated writable
140
- * when *changed*, never at load. */
141
- projectsDir: z.ZodCatch<z.ZodDefault<z.ZodString>>;
142
- resources: z.ZodCatch<z.ZodDefault<z.ZodObject<{
143
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
144
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
145
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
146
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
147
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
148
- /** Default worktree retention for projects that don't override it. */
149
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
150
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
151
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
152
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
153
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
154
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
155
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
156
- /** Default worktree retention for projects that don't override it. */
157
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
158
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
159
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
160
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
161
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
162
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
163
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
164
- /** Default worktree retention for projects that don't override it. */
165
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
166
- }, z.ZodTypeAny, "passthrough">>>>;
167
- /** Per-entry salvage: a corrupt entry is dropped, the rest of the registry
168
- * survives (a whole-array `.catch([])` would evict every project over one
169
- * bad row). */
170
- projects: z.ZodEffects<z.ZodCatch<z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>>, z.objectOutputType<{
171
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
172
- id: z.ZodString;
173
- /** Absolute, realpath-normalized repo root (normalization is the writer's
174
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
175
- root: z.ZodEffects<z.ZodString, string, string>;
176
- /** Display name (basename by default). `''` = caller derives a fallback. */
177
- name: z.ZodCatch<z.ZodString>;
178
- addedAt: z.ZodCatch<z.ZodString>;
179
- lastOpenedAt: z.ZodCatch<z.ZodString>;
180
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
181
- /** Per-project cap on concurrently running tasks. Absent = inherit the
182
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
183
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
184
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
185
- maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
186
- }, z.ZodTypeAny, "passthrough">[], unknown>;
187
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
188
- /** Migration cursor (src/workspace/migrations.ts). Absent/bad → 0, which
189
- * means "run every migration" — each one is idempotent, so that is safe. */
190
- schemaVersion: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
191
- /** Root exposed by the Add project folder browser. Environment supplies
192
- * the zero-config default; an explicit workspace value wins thereafter. */
193
- browseRoot: z.ZodCatch<z.ZodDefault<z.ZodString>>;
194
- /** Checkout root for GUI-cloned projects. Stored as written (a literal
195
- * `~` is expanded by the checkout flow, not here); validated writable
196
- * when *changed*, never at load. */
197
- projectsDir: z.ZodCatch<z.ZodDefault<z.ZodString>>;
198
- resources: z.ZodCatch<z.ZodDefault<z.ZodObject<{
199
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
200
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
201
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
202
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
203
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
204
- /** Default worktree retention for projects that don't override it. */
205
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
206
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
207
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
208
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
209
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
210
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
211
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
212
- /** Default worktree retention for projects that don't override it. */
213
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
214
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
215
- /** Workspace-wide parallel-task cap (moved from per-repo config.json). */
216
- maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
217
- /** Per-task memory ceiling in MiB; null = no limit (matches the file's
218
- * literal `"memoryLimitMb": null` in the spec's Data Model). */
219
- memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
220
- /** Default worktree retention for projects that don't override it. */
221
- worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
222
- }, z.ZodTypeAny, "passthrough">>>>;
223
- /** Per-entry salvage: a corrupt entry is dropped, the rest of the registry
224
- * survives (a whole-array `.catch([])` would evict every project over one
225
- * bad row). */
226
- projects: z.ZodEffects<z.ZodCatch<z.ZodDefault<z.ZodArray<z.ZodUnknown, "many">>>, z.objectOutputType<{
227
- /** Unique slug — URL segment, sidebar key, worktree namespace. */
228
- id: z.ZodString;
229
- /** Absolute, realpath-normalized repo root (normalization is the writer's
230
- * job — `registerProject` in step 1.3; the schema only demands absolute). */
231
- root: z.ZodEffects<z.ZodString, string, string>;
232
- /** Display name (basename by default). `''` = caller derives a fallback. */
233
- name: z.ZodCatch<z.ZodString>;
234
- addedAt: z.ZodCatch<z.ZodString>;
235
- lastOpenedAt: z.ZodCatch<z.ZodString>;
236
- source: z.ZodCatch<z.ZodEnum<["local", "checkout"]>>;
237
- /** Per-project cap on concurrently running tasks. Absent = inherit the
238
- * workspace `resources.maxParallel`. Bounded like the workspace cap; a bad
239
- * value degrades to "inherit" (`.catch(undefined)`) rather than a hard
240
- * default, and `.passthrough()` preserves the key across cezar round-trips. */
241
- maxParallel: z.ZodCatch<z.ZodOptional<z.ZodNumber>>;
242
- }, z.ZodTypeAny, "passthrough">[], unknown>;
243
- }, z.ZodTypeAny, "passthrough">>;
60
+ }, z.core.$loose>>>;
61
+ composerDefaults: z.ZodCatch<z.ZodDefault<z.ZodObject<{
62
+ autonomous: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
63
+ worktree: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
64
+ }, z.core.$loose>>>;
65
+ disabledProviders: z.ZodPipe<z.ZodCatch<z.ZodDefault<z.ZodArray<z.ZodUnknown>>>, z.ZodTransform<("claude" | "codex" | "opencode" | "pi")[], unknown[]>>;
66
+ agentDefaults: z.ZodCatch<z.ZodDefault<z.ZodObject<{
67
+ runner: z.ZodCatch<z.ZodOptional<z.ZodEnum<{
68
+ claude: "claude";
69
+ codex: "codex";
70
+ opencode: "opencode";
71
+ pi: "pi";
72
+ }>>>;
73
+ models: z.ZodCatch<z.ZodOptional<z.ZodObject<{
74
+ claude: z.ZodCatch<z.ZodOptional<z.ZodString>>;
75
+ codex: z.ZodCatch<z.ZodOptional<z.ZodString>>;
76
+ opencode: z.ZodCatch<z.ZodOptional<z.ZodString>>;
77
+ pi: z.ZodCatch<z.ZodOptional<z.ZodString>>;
78
+ }, z.core.$loose>>>;
79
+ }, z.core.$loose>>>;
80
+ projects: z.ZodPipe<z.ZodCatch<z.ZodDefault<z.ZodArray<z.ZodUnknown>>>, z.ZodTransform<{
81
+ [x: string]: unknown;
82
+ id: string;
83
+ root: string;
84
+ name: string;
85
+ addedAt: string;
86
+ lastOpenedAt: string;
87
+ source: "checkout" | "local";
88
+ maxParallel?: number | undefined;
89
+ tags?: string[] | undefined;
90
+ }[], unknown[]>>;
91
+ }, z.core.$loose>;
244
92
  export type WorkspaceConfig = z.infer<typeof workspaceConfigSchema>;
93
+ /** Resolve the auto-update preference without mutating or materializing it. */
94
+ export declare function effectiveSkillsAutoUpdate(config: Pick<WorkspaceConfig, 'skillsAutoUpdate'>, env?: NodeJS.ProcessEnv): boolean;
95
+ export declare function effectiveComposerDefault(stored: boolean | undefined, envValue: string | undefined, fallback: boolean): boolean;
245
96
  /** The in-memory default — what a missing/corrupt file behaves like. */
246
97
  export declare function defaultWorkspaceConfig(): WorkspaceConfig;
98
+ /**
99
+ * The last-known-good copy of a NON-EMPTY registry, written beside the config
100
+ * by every successful merge-write. The registry is cheap to rebuild in theory
101
+ * ("open the project again"), but in practice it is a hand-curated list, and a
102
+ * single bad write — a crash between `writeFileSync` and `rename`, a full
103
+ * disk, a stray process — costs the user every entry. One extra file, no
104
+ * configuration, and `loadWorkspaceConfig` falls back to it.
105
+ *
106
+ * Removing `~/.cezar` still resets cezar completely; removing only
107
+ * `config.json` no longer does, because this snapshot restores it.
108
+ *
109
+ * A cezar older than this change does not refresh the snapshot, so on a machine
110
+ * that alternates between versions it can lag behind the registry — which only
111
+ * shows if the config file is also lost, and the worst case is a project the
112
+ * user unregistered reappearing. Cheap next to losing the whole list.
113
+ */
114
+ export declare function workspaceConfigBackupPath(path?: string): string;
247
115
  /**
248
116
  * Read `~/.cezar/config.json` on demand — never cached, never throws. A
249
117
  * missing file is the zero-config default (silent); an unreadable or
250
118
  * malformed one degrades to the same default with a one-line warning and is
251
119
  * left on disk untouched (the next successful merge-write replaces it).
120
+ *
121
+ * Before degrading, a missing, empty, or corrupt file is restored from the
122
+ * `config.json.bak` snapshot when that still holds projects. The restore is
123
+ * read-only: the recovered registry is handed back in memory and lands on disk
124
+ * again through the next merge-write, so a read never writes. A file that
125
+ * parses and simply has no projects is NOT restored — that is a user who
126
+ * removed their last project, not a lost registry.
127
+ *
128
+ * `path` defaults to the current `workspaceConfigPath()`, but a caller that
129
+ * will also WRITE passes the path it resolved itself — see
130
+ * `mergeWriteWorkspaceConfig` for why resolving it twice is a data-loss bug.
252
131
  */
253
- export declare function loadWorkspaceConfig(): Promise<WorkspaceConfig>;
132
+ export declare function loadWorkspaceConfig(path?: string): Promise<WorkspaceConfig>;
254
133
  /**
255
134
  * The tmp path an atomic write stages through — UNIQUE PER WRITE, never a
256
135
  * fixed `${path}.tmp`. `~/.cezar/` is shared by every cezar process on the
@@ -276,6 +155,15 @@ export declare function atomicWriteJsonSync(path: string, value: unknown): void;
276
155
  * boot). The mutator may mutate its argument in place or return a replacement.
277
156
  * Returns the config that was written. Throws on write failure (e.g. a
278
157
  * read-only home) — degrading is the caller's policy, per house rules.
158
+ *
159
+ * The path is resolved ONCE, before the `await`, and the same value feeds the
160
+ * read and the write. Resolving it twice used to lose the whole registry:
161
+ * `workspaceConfigPath()` re-reads `CEZ_HOME` on every call, so if the variable
162
+ * changed while the read was in flight — a test's `afterEach` dropping its pin
163
+ * after a timeout is the way this happens in practice — the read came from one
164
+ * home and the write landed in another, replacing that file's registry with a
165
+ * config it never held. One resolution keeps a merge-write inside exactly one
166
+ * file, whatever the environment does mid-flight.
279
167
  */
280
168
  export declare function mergeWriteWorkspaceConfig(mutator: (config: WorkspaceConfig) => WorkspaceConfig | void): Promise<WorkspaceConfig>;
281
169
  export {};