@hearsay-tools/squawk 0.0.0-stage → 0.17.0-dev.5682

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 (1976) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +1846 -2
  3. package/dist/activity/demand.d.ts +21 -0
  4. package/dist/activity/demand.js +49 -0
  5. package/dist/activity/demand.js.map +1 -0
  6. package/dist/activity/publisher.d.ts +48 -0
  7. package/dist/activity/publisher.js +175 -0
  8. package/dist/activity/publisher.js.map +1 -0
  9. package/dist/activity/read-model.d.ts +50 -0
  10. package/dist/activity/read-model.js +143 -0
  11. package/dist/activity/read-model.js.map +1 -0
  12. package/dist/activity/requests.d.ts +27 -0
  13. package/dist/activity/requests.js +81 -0
  14. package/dist/activity/requests.js.map +1 -0
  15. package/dist/activity/text.d.ts +4 -0
  16. package/dist/activity/text.js +13 -0
  17. package/dist/activity/text.js.map +1 -0
  18. package/dist/activity/tool-activity.d.ts +87 -0
  19. package/dist/activity/tool-activity.js +250 -0
  20. package/dist/activity/tool-activity.js.map +1 -0
  21. package/dist/activity/wait.d.ts +19 -0
  22. package/dist/activity/wait.js +91 -0
  23. package/dist/activity/wait.js.map +1 -0
  24. package/dist/agent-config/account-identity.d.ts +28 -0
  25. package/dist/agent-config/account-identity.js +132 -0
  26. package/dist/agent-config/account-identity.js.map +1 -0
  27. package/dist/agent-config/catalog.d.ts +70 -0
  28. package/dist/agent-config/catalog.js +384 -0
  29. package/dist/agent-config/catalog.js.map +1 -0
  30. package/dist/agent-config/files.d.ts +42 -0
  31. package/dist/agent-config/files.js +115 -0
  32. package/dist/agent-config/files.js.map +1 -0
  33. package/dist/agent-config/model-settings/claude.d.ts +2 -0
  34. package/dist/agent-config/model-settings/claude.js +11 -0
  35. package/dist/agent-config/model-settings/claude.js.map +1 -0
  36. package/dist/agent-config/model-settings/codex.d.ts +2 -0
  37. package/dist/agent-config/model-settings/codex.js +16 -0
  38. package/dist/agent-config/model-settings/codex.js.map +1 -0
  39. package/dist/agent-config/model-settings/opencode.d.ts +2 -0
  40. package/dist/agent-config/model-settings/opencode.js +8 -0
  41. package/dist/agent-config/model-settings/opencode.js.map +1 -0
  42. package/dist/agent-config/model-settings/pi.d.ts +2 -0
  43. package/dist/agent-config/model-settings/pi.js +38 -0
  44. package/dist/agent-config/model-settings/pi.js.map +1 -0
  45. package/dist/agent-config/model-settings/shared.d.ts +12 -0
  46. package/dist/agent-config/model-settings/shared.js +100 -0
  47. package/dist/agent-config/model-settings/shared.js.map +1 -0
  48. package/dist/agent-config/model-settings/types.d.ts +9 -0
  49. package/dist/agent-config/model-settings/types.js +2 -0
  50. package/dist/agent-config/model-settings/types.js.map +1 -0
  51. package/dist/agent-config/models.d.ts +9 -0
  52. package/dist/agent-config/models.js +40 -0
  53. package/dist/agent-config/models.js.map +1 -0
  54. package/dist/agent-config/seed.d.ts +15 -0
  55. package/dist/agent-config/seed.js +94 -0
  56. package/dist/agent-config/seed.js.map +1 -0
  57. package/dist/agent-config/service.d.ts +44 -0
  58. package/dist/agent-config/service.js +73 -0
  59. package/dist/agent-config/service.js.map +1 -0
  60. package/dist/agent-config/validate.d.ts +18 -0
  61. package/dist/agent-config/validate.js +82 -0
  62. package/dist/agent-config/validate.js.map +1 -0
  63. package/dist/application-update/bin-recovery.d.ts +5 -0
  64. package/dist/application-update/bin-recovery.js +96 -0
  65. package/dist/application-update/bin-recovery.js.map +1 -0
  66. package/dist/application-update/discovery.d.ts +23 -0
  67. package/dist/application-update/discovery.js +131 -0
  68. package/dist/application-update/discovery.js.map +1 -0
  69. package/dist/application-update/helper.d.ts +58 -0
  70. package/dist/application-update/helper.js +363 -0
  71. package/dist/application-update/helper.js.map +1 -0
  72. package/dist/application-update/launcher.d.ts +12 -0
  73. package/dist/application-update/launcher.js +61 -0
  74. package/dist/application-update/launcher.js.map +1 -0
  75. package/dist/application-update/lock.d.ts +4 -0
  76. package/dist/application-update/lock.js +70 -0
  77. package/dist/application-update/lock.js.map +1 -0
  78. package/dist/application-update/npm-process.d.ts +17 -0
  79. package/dist/application-update/npm-process.js +156 -0
  80. package/dist/application-update/npm-process.js.map +1 -0
  81. package/dist/application-update/runtime-layout.d.ts +20 -0
  82. package/dist/application-update/runtime-layout.js +91 -0
  83. package/dist/application-update/runtime-layout.js.map +1 -0
  84. package/dist/application-update/scoped-recovery.d.ts +32 -0
  85. package/dist/application-update/scoped-recovery.js +210 -0
  86. package/dist/application-update/scoped-recovery.js.map +1 -0
  87. package/dist/application-update/service.d.ts +86 -0
  88. package/dist/application-update/service.js +523 -0
  89. package/dist/application-update/service.js.map +1 -0
  90. package/dist/archive-on-merge-setting.d.ts +15 -0
  91. package/dist/archive-on-merge-setting.js +15 -0
  92. package/dist/archive-on-merge-setting.js.map +1 -0
  93. package/dist/artifacts/cli.d.ts +1 -0
  94. package/dist/artifacts/cli.js +54 -0
  95. package/dist/artifacts/cli.js.map +1 -0
  96. package/dist/artifacts/lifecycle.d.ts +4 -0
  97. package/dist/artifacts/lifecycle.js +42 -0
  98. package/dist/artifacts/lifecycle.js.map +1 -0
  99. package/dist/artifacts/reports-index.d.ts +46 -0
  100. package/dist/artifacts/reports-index.js +279 -0
  101. package/dist/artifacts/reports-index.js.map +1 -0
  102. package/dist/artifacts/reports-watch.d.ts +43 -0
  103. package/dist/artifacts/reports-watch.js +129 -0
  104. package/dist/artifacts/reports-watch.js.map +1 -0
  105. package/dist/artifacts/resolve.d.ts +18 -0
  106. package/dist/artifacts/resolve.js +129 -0
  107. package/dist/artifacts/resolve.js.map +1 -0
  108. package/dist/artifacts/store.d.ts +40 -0
  109. package/dist/artifacts/store.js +513 -0
  110. package/dist/artifacts/store.js.map +1 -0
  111. package/dist/automations/automation-cli.d.ts +61 -0
  112. package/dist/automations/automation-cli.js +519 -0
  113. package/dist/automations/automation-cli.js.map +1 -0
  114. package/dist/automations/builtin-skill.d.ts +7 -0
  115. package/dist/automations/builtin-skill.js +14 -0
  116. package/dist/automations/builtin-skill.js.map +1 -0
  117. package/dist/automations/coordinator.d.ts +53 -0
  118. package/dist/automations/coordinator.js +136 -0
  119. package/dist/automations/coordinator.js.map +1 -0
  120. package/dist/automations/github-baseline.d.ts +3 -0
  121. package/dist/automations/github-baseline.js +17 -0
  122. package/dist/automations/github-baseline.js.map +1 -0
  123. package/dist/automations/github-poller.d.ts +93 -0
  124. package/dist/automations/github-poller.js +303 -0
  125. package/dist/automations/github-poller.js.map +1 -0
  126. package/dist/automations/project-files.d.ts +6 -0
  127. package/dist/automations/project-files.js +43 -0
  128. package/dist/automations/project-files.js.map +1 -0
  129. package/dist/automations/prompts.d.ts +12 -0
  130. package/dist/automations/prompts.js +162 -0
  131. package/dist/automations/prompts.js.map +1 -0
  132. package/dist/automations/schedule-runner.d.ts +153 -0
  133. package/dist/automations/schedule-runner.js +529 -0
  134. package/dist/automations/schedule-runner.js.map +1 -0
  135. package/dist/automations/scheduler.d.ts +95 -0
  136. package/dist/automations/scheduler.js +462 -0
  137. package/dist/automations/scheduler.js.map +1 -0
  138. package/dist/automations/service.d.ts +793 -0
  139. package/dist/automations/service.js +444 -0
  140. package/dist/automations/service.js.map +1 -0
  141. package/dist/automations/store.d.ts +168 -0
  142. package/dist/automations/store.js +805 -0
  143. package/dist/automations/store.js.map +1 -0
  144. package/dist/automations/task-template.d.ts +59 -0
  145. package/dist/automations/task-template.js +285 -0
  146. package/dist/automations/task-template.js.map +1 -0
  147. package/dist/automations/tool-adapter.d.ts +6 -0
  148. package/dist/automations/tool-adapter.js +115 -0
  149. package/dist/automations/tool-adapter.js.map +1 -0
  150. package/dist/automations/types.d.ts +1 -0
  151. package/dist/automations/types.js +2 -0
  152. package/dist/automations/types.js.map +1 -0
  153. package/dist/autosave-cleanup.d.ts +26 -0
  154. package/dist/autosave-cleanup.js +87 -0
  155. package/dist/autosave-cleanup.js.map +1 -0
  156. package/dist/autosave-git.d.ts +23 -0
  157. package/dist/autosave-git.js +211 -0
  158. package/dist/autosave-git.js.map +1 -0
  159. package/dist/autosave-group.d.ts +8 -0
  160. package/dist/autosave-group.js +61 -0
  161. package/dist/autosave-group.js.map +1 -0
  162. package/dist/autosave-holders.d.ts +34 -0
  163. package/dist/autosave-holders.js +228 -0
  164. package/dist/autosave-holders.js.map +1 -0
  165. package/dist/autosave-windows.d.ts +25 -0
  166. package/dist/autosave-windows.js +170 -0
  167. package/dist/autosave-windows.js.map +1 -0
  168. package/dist/cez.d.ts +2 -0
  169. package/dist/cez.js +3 -0
  170. package/dist/cez.js.map +1 -0
  171. package/dist/cezarion.d.ts +2 -0
  172. package/dist/cezarion.js +3 -0
  173. package/dist/cezarion.js.map +1 -0
  174. package/dist/ci-wait/client.d.ts +28 -0
  175. package/dist/ci-wait/client.js +123 -0
  176. package/dist/ci-wait/client.js.map +1 -0
  177. package/dist/ci-wait/controller.d.ts +824 -0
  178. package/dist/ci-wait/controller.js +305 -0
  179. package/dist/ci-wait/controller.js.map +1 -0
  180. package/dist/ci-wait/errors.d.ts +35 -0
  181. package/dist/ci-wait/errors.js +273 -0
  182. package/dist/ci-wait/errors.js.map +1 -0
  183. package/dist/ci-wait/github.d.ts +105 -0
  184. package/dist/ci-wait/github.js +324 -0
  185. package/dist/ci-wait/github.js.map +1 -0
  186. package/dist/ci-wait/injection.d.ts +3 -0
  187. package/dist/ci-wait/injection.js +13 -0
  188. package/dist/ci-wait/injection.js.map +1 -0
  189. package/dist/ci-wait/mcp.d.ts +3 -0
  190. package/dist/ci-wait/mcp.js +30 -0
  191. package/dist/ci-wait/mcp.js.map +1 -0
  192. package/dist/ci-wait/merge-progress.d.ts +84 -0
  193. package/dist/ci-wait/merge-progress.js +50 -0
  194. package/dist/ci-wait/merge-progress.js.map +1 -0
  195. package/dist/ci-wait/progress.d.ts +56 -0
  196. package/dist/ci-wait/progress.js +100 -0
  197. package/dist/ci-wait/progress.js.map +1 -0
  198. package/dist/ci-wait/resources.d.ts +9 -0
  199. package/dist/ci-wait/resources.js +46 -0
  200. package/dist/ci-wait/resources.js.map +1 -0
  201. package/dist/ci-wait/supervisor.d.ts +47 -0
  202. package/dist/ci-wait/supervisor.js +334 -0
  203. package/dist/ci-wait/supervisor.js.map +1 -0
  204. package/dist/ci-wait/text.d.ts +2 -0
  205. package/dist/ci-wait/text.js +5 -0
  206. package/dist/ci-wait/text.js.map +1 -0
  207. package/dist/ci-wait/tools.d.ts +845 -0
  208. package/dist/ci-wait/tools.js +232 -0
  209. package/dist/ci-wait/tools.js.map +1 -0
  210. package/dist/cli-dispatch.d.ts +33 -0
  211. package/dist/cli-dispatch.js +239 -0
  212. package/dist/cli-dispatch.js.map +1 -0
  213. package/dist/config.d.ts +117 -0
  214. package/dist/config.js +343 -0
  215. package/dist/config.js.map +1 -0
  216. package/dist/contract/active-provider.d.ts +12 -0
  217. package/dist/contract/activity.d.ts +1478 -0
  218. package/dist/contract/agent-config.d.ts +160 -0
  219. package/dist/contract/agent-profiles.d.ts +369 -0
  220. package/dist/contract/application-update.d.ts +32 -0
  221. package/dist/contract/artifacts.d.ts +100 -0
  222. package/dist/contract/ask-schema.d.ts +50 -0
  223. package/dist/contract/ask.d.ts +11 -0
  224. package/dist/contract/attachments.d.ts +35 -0
  225. package/dist/contract/attention.d.ts +99 -0
  226. package/dist/contract/automation-requests.d.ts +314 -0
  227. package/dist/contract/automation-schedule.d.ts +89 -0
  228. package/dist/contract/automation-storage.d.ts +518 -0
  229. package/dist/contract/automations.d.ts +1560 -0
  230. package/dist/contract/ci-wait.d.ts +281 -0
  231. package/dist/contract/config-requests.d.ts +36 -0
  232. package/dist/contract/control-locations.d.ts +10 -0
  233. package/dist/contract/conversations.d.ts +415 -0
  234. package/dist/contract/defined.d.ts +8 -0
  235. package/dist/contract/delegation.d.ts +2168 -0
  236. package/dist/contract/discovery.d.ts +228 -0
  237. package/dist/contract/effort.d.ts +18 -0
  238. package/dist/contract/events.d.ts +324 -0
  239. package/dist/contract/github-requests.d.ts +26 -0
  240. package/dist/contract/github.d.ts +732 -0
  241. package/dist/contract/handoff.d.ts +43 -0
  242. package/dist/contract/health.d.ts +128 -0
  243. package/dist/contract/home-recovery.d.ts +71 -0
  244. package/dist/contract/image-path.d.ts +6 -0
  245. package/dist/contract/index.d.ts +68 -0
  246. package/dist/contract/index.js +6709 -0
  247. package/dist/contract/live-coordination.d.ts +164 -0
  248. package/dist/contract/live-limits.d.ts +8 -0
  249. package/dist/contract/live.d.ts +123 -0
  250. package/dist/contract/pending-ask.d.ts +58 -0
  251. package/dist/contract/per-runner-optional-strings.d.ts +10 -0
  252. package/dist/contract/permissions.d.ts +54 -0
  253. package/dist/contract/preview.d.ts +568 -0
  254. package/dist/contract/project-limits.d.ts +35 -0
  255. package/dist/contract/projects.d.ts +716 -0
  256. package/dist/contract/provider-requests.d.ts +77 -0
  257. package/dist/contract/query-requests.d.ts +52 -0
  258. package/dist/contract/repo-requests.d.ts +12 -0
  259. package/dist/contract/repo.d.ts +515 -0
  260. package/dist/contract/report-title.d.ts +3 -0
  261. package/dist/contract/reports.d.ts +101 -0
  262. package/dist/contract/run-labels.d.ts +8 -0
  263. package/dist/contract/run-limits.d.ts +8 -0
  264. package/dist/contract/run-predicates.d.ts +87 -0
  265. package/dist/contract/run-requests.d.ts +33 -0
  266. package/dist/contract/run-search.d.ts +193 -0
  267. package/dist/contract/runs.d.ts +7108 -0
  268. package/dist/contract/scheduled-tasks.d.ts +188 -0
  269. package/dist/contract/self-update.d.ts +255 -0
  270. package/dist/contract/skill-sources.d.ts +125 -0
  271. package/dist/contract/skills.d.ts +56 -0
  272. package/dist/contract/task-options.d.ts +18 -0
  273. package/dist/contract/team-skill-ref.d.ts +10 -0
  274. package/dist/contract/tool-display.d.ts +25 -0
  275. package/dist/contract/ui-state-requests.d.ts +60 -0
  276. package/dist/contract/version.d.ts +3 -0
  277. package/dist/contract/voice.d.ts +213 -0
  278. package/dist/contract/waits.d.ts +1996 -0
  279. package/dist/contract/workflow-file.d.ts +37 -0
  280. package/dist/contract/workflow-requests.d.ts +7 -0
  281. package/dist/contract/workflows.d.ts +250 -0
  282. package/dist/contract/workspace-events.d.ts +410 -0
  283. package/dist/contract/workspace.d.ts +631 -0
  284. package/dist/contract/zoned-time.d.ts +26 -0
  285. package/dist/core/agent-env.d.ts +34 -0
  286. package/dist/core/agent-env.js +411 -0
  287. package/dist/core/agent-env.js.map +1 -0
  288. package/dist/core/agent-model-policy.d.ts +11 -0
  289. package/dist/core/agent-model-policy.js +38 -0
  290. package/dist/core/agent-model-policy.js.map +1 -0
  291. package/dist/core/agent-profiles.d.ts +50 -0
  292. package/dist/core/agent-profiles.js +105 -0
  293. package/dist/core/agent-profiles.js.map +1 -0
  294. package/dist/core/agent-runner.d.ts +425 -0
  295. package/dist/core/agent-runner.js +98 -0
  296. package/dist/core/agent-runner.js.map +1 -0
  297. package/dist/core/ask.d.ts +26 -0
  298. package/dist/core/ask.js +35 -0
  299. package/dist/core/ask.js.map +1 -0
  300. package/dist/core/backend-detect.d.ts +18 -0
  301. package/dist/core/backend-detect.js +216 -0
  302. package/dist/core/backend-detect.js.map +1 -0
  303. package/dist/core/claude-cli-runner.d.ts +85 -0
  304. package/dist/core/claude-cli-runner.js +899 -0
  305. package/dist/core/claude-cli-runner.js.map +1 -0
  306. package/dist/core/claude-executable.d.ts +2 -0
  307. package/dist/core/claude-executable.js +15 -0
  308. package/dist/core/claude-executable.js.map +1 -0
  309. package/dist/core/claude-model-catalog.d.ts +16 -0
  310. package/dist/core/claude-model-catalog.js +198 -0
  311. package/dist/core/claude-model-catalog.js.map +1 -0
  312. package/dist/core/claude-stream.d.ts +38 -0
  313. package/dist/core/claude-stream.js +77 -0
  314. package/dist/core/claude-stream.js.map +1 -0
  315. package/dist/core/claude-ui-mapper.d.ts +88 -0
  316. package/dist/core/claude-ui-mapper.js +851 -0
  317. package/dist/core/claude-ui-mapper.js.map +1 -0
  318. package/dist/core/codex-app-server-runner.d.ts +76 -0
  319. package/dist/core/codex-app-server-runner.js +1271 -0
  320. package/dist/core/codex-app-server-runner.js.map +1 -0
  321. package/dist/core/codex-app-server-transport.d.ts +52 -0
  322. package/dist/core/codex-app-server-transport.js +200 -0
  323. package/dist/core/codex-app-server-transport.js.map +1 -0
  324. package/dist/core/codex-approvals.d.ts +12 -0
  325. package/dist/core/codex-approvals.js +180 -0
  326. package/dist/core/codex-approvals.js.map +1 -0
  327. package/dist/core/codex-hook-mapper.d.ts +15 -0
  328. package/dist/core/codex-hook-mapper.js +73 -0
  329. package/dist/core/codex-hook-mapper.js.map +1 -0
  330. package/dist/core/codex-model-catalog.d.ts +10 -0
  331. package/dist/core/codex-model-catalog.js +110 -0
  332. package/dist/core/codex-model-catalog.js.map +1 -0
  333. package/dist/core/codex-native-frames.d.ts +35 -0
  334. package/dist/core/codex-native-frames.js +80 -0
  335. package/dist/core/codex-native-frames.js.map +1 -0
  336. package/dist/core/codex-permissions.d.ts +6 -0
  337. package/dist/core/codex-permissions.js +27 -0
  338. package/dist/core/codex-permissions.js.map +1 -0
  339. package/dist/core/codex-stream-error.d.ts +2 -0
  340. package/dist/core/codex-stream-error.js +12 -0
  341. package/dist/core/codex-stream-error.js.map +1 -0
  342. package/dist/core/codex-turn-outcome.d.ts +10 -0
  343. package/dist/core/codex-turn-outcome.js +35 -0
  344. package/dist/core/codex-turn-outcome.js.map +1 -0
  345. package/dist/core/codex-ui-mapper-state.d.ts +84 -0
  346. package/dist/core/codex-ui-mapper-state.js +8 -0
  347. package/dist/core/codex-ui-mapper-state.js.map +1 -0
  348. package/dist/core/codex-ui-mapper.d.ts +44 -0
  349. package/dist/core/codex-ui-mapper.js +799 -0
  350. package/dist/core/codex-ui-mapper.js.map +1 -0
  351. package/dist/core/cursor-cli-flags.d.ts +19 -0
  352. package/dist/core/cursor-cli-flags.js +47 -0
  353. package/dist/core/cursor-cli-flags.js.map +1 -0
  354. package/dist/core/cursor-config-options.d.ts +18 -0
  355. package/dist/core/cursor-config-options.js +31 -0
  356. package/dist/core/cursor-config-options.js.map +1 -0
  357. package/dist/core/cursor-model-catalog.d.ts +50 -0
  358. package/dist/core/cursor-model-catalog.js +306 -0
  359. package/dist/core/cursor-model-catalog.js.map +1 -0
  360. package/dist/core/cursor-print-capabilities.d.ts +14 -0
  361. package/dist/core/cursor-print-capabilities.js +169 -0
  362. package/dist/core/cursor-print-capabilities.js.map +1 -0
  363. package/dist/core/cursor-print-process.d.ts +31 -0
  364. package/dist/core/cursor-print-process.js +117 -0
  365. package/dist/core/cursor-print-process.js.map +1 -0
  366. package/dist/core/cursor-print-runner.d.ts +43 -0
  367. package/dist/core/cursor-print-runner.js +574 -0
  368. package/dist/core/cursor-print-runner.js.map +1 -0
  369. package/dist/core/cursor-print-tool-catalog.d.ts +3 -0
  370. package/dist/core/cursor-print-tool-catalog.js +13 -0
  371. package/dist/core/cursor-print-tool-catalog.js.map +1 -0
  372. package/dist/core/cursor-print-ui-mapper.d.ts +47 -0
  373. package/dist/core/cursor-print-ui-mapper.js +574 -0
  374. package/dist/core/cursor-print-ui-mapper.js.map +1 -0
  375. package/dist/core/cursor-provider-error.d.ts +9 -0
  376. package/dist/core/cursor-provider-error.js +15 -0
  377. package/dist/core/cursor-provider-error.js.map +1 -0
  378. package/dist/core/cursor-runner.d.ts +46 -0
  379. package/dist/core/cursor-runner.js +144 -0
  380. package/dist/core/cursor-runner.js.map +1 -0
  381. package/dist/core/defined.d.ts +1 -0
  382. package/dist/core/defined.js +2 -0
  383. package/dist/core/defined.js.map +1 -0
  384. package/dist/core/disclaim-spawn.d.ts +11 -0
  385. package/dist/core/disclaim-spawn.js +60 -0
  386. package/dist/core/disclaim-spawn.js.map +1 -0
  387. package/dist/core/edit-write-key.d.ts +2 -0
  388. package/dist/core/edit-write-key.js +6 -0
  389. package/dist/core/edit-write-key.js.map +1 -0
  390. package/dist/core/hook-items.d.ts +14 -0
  391. package/dist/core/hook-items.js +13 -0
  392. package/dist/core/hook-items.js.map +1 -0
  393. package/dist/core/host-model-catalog.d.ts +7 -0
  394. package/dist/core/host-model-catalog.js +21 -0
  395. package/dist/core/host-model-catalog.js.map +1 -0
  396. package/dist/core/input-submissions.d.ts +14 -0
  397. package/dist/core/input-submissions.js +26 -0
  398. package/dist/core/input-submissions.js.map +1 -0
  399. package/dist/core/managed-session.d.ts +6 -0
  400. package/dist/core/managed-session.js +116 -0
  401. package/dist/core/managed-session.js.map +1 -0
  402. package/dist/core/model-discovery-options.d.ts +8 -0
  403. package/dist/core/model-discovery-options.js +2 -0
  404. package/dist/core/model-discovery-options.js.map +1 -0
  405. package/dist/core/model-identity.d.ts +108 -0
  406. package/dist/core/model-identity.js +137 -0
  407. package/dist/core/model-identity.js.map +1 -0
  408. package/dist/core/model-presets.d.ts +10 -0
  409. package/dist/core/model-presets.js +77 -0
  410. package/dist/core/model-presets.js.map +1 -0
  411. package/dist/core/model-probe-teardown.d.ts +4 -0
  412. package/dist/core/model-probe-teardown.js +20 -0
  413. package/dist/core/model-probe-teardown.js.map +1 -0
  414. package/dist/core/ndjson.d.ts +6 -0
  415. package/dist/core/ndjson.js +23 -0
  416. package/dist/core/ndjson.js.map +1 -0
  417. package/dist/core/omp-model-catalog.d.ts +39 -0
  418. package/dist/core/omp-model-catalog.js +183 -0
  419. package/dist/core/omp-model-catalog.js.map +1 -0
  420. package/dist/core/omp-runner.d.ts +86 -0
  421. package/dist/core/omp-runner.js +818 -0
  422. package/dist/core/omp-runner.js.map +1 -0
  423. package/dist/core/omp-subagent-rows.d.ts +21 -0
  424. package/dist/core/omp-subagent-rows.js +99 -0
  425. package/dist/core/omp-subagent-rows.js.map +1 -0
  426. package/dist/core/omp-ui-mapper.d.ts +112 -0
  427. package/dist/core/omp-ui-mapper.js +807 -0
  428. package/dist/core/omp-ui-mapper.js.map +1 -0
  429. package/dist/core/opencode-model-catalog.d.ts +27 -0
  430. package/dist/core/opencode-model-catalog.js +189 -0
  431. package/dist/core/opencode-model-catalog.js.map +1 -0
  432. package/dist/core/opencode-permissions.d.ts +52 -0
  433. package/dist/core/opencode-permissions.js +101 -0
  434. package/dist/core/opencode-permissions.js.map +1 -0
  435. package/dist/core/opencode-runtime-config.d.ts +9 -0
  436. package/dist/core/opencode-runtime-config.js +26 -0
  437. package/dist/core/opencode-runtime-config.js.map +1 -0
  438. package/dist/core/opencode-server-runner.d.ts +75 -0
  439. package/dist/core/opencode-server-runner.js +1690 -0
  440. package/dist/core/opencode-server-runner.js.map +1 -0
  441. package/dist/core/opencode-session-error.d.ts +19 -0
  442. package/dist/core/opencode-session-error.js +42 -0
  443. package/dist/core/opencode-session-error.js.map +1 -0
  444. package/dist/core/opencode-task-scope.d.ts +9 -0
  445. package/dist/core/opencode-task-scope.js +19 -0
  446. package/dist/core/opencode-task-scope.js.map +1 -0
  447. package/dist/core/opencode-ui-mapper-state.d.ts +82 -0
  448. package/dist/core/opencode-ui-mapper-state.js +7 -0
  449. package/dist/core/opencode-ui-mapper-state.js.map +1 -0
  450. package/dist/core/opencode-ui-mapper.d.ts +59 -0
  451. package/dist/core/opencode-ui-mapper.js +724 -0
  452. package/dist/core/opencode-ui-mapper.js.map +1 -0
  453. package/dist/core/opencode-usage.d.ts +32 -0
  454. package/dist/core/opencode-usage.js +105 -0
  455. package/dist/core/opencode-usage.js.map +1 -0
  456. package/dist/core/pi-model-catalog.d.ts +34 -0
  457. package/dist/core/pi-model-catalog.js +247 -0
  458. package/dist/core/pi-model-catalog.js.map +1 -0
  459. package/dist/core/pi-rpc-turn.d.ts +179 -0
  460. package/dist/core/pi-rpc-turn.js +370 -0
  461. package/dist/core/pi-rpc-turn.js.map +1 -0
  462. package/dist/core/pi-rpc-wire.d.ts +31 -0
  463. package/dist/core/pi-rpc-wire.js +88 -0
  464. package/dist/core/pi-rpc-wire.js.map +1 -0
  465. package/dist/core/pi-runner.d.ts +58 -0
  466. package/dist/core/pi-runner.js +587 -0
  467. package/dist/core/pi-runner.js.map +1 -0
  468. package/dist/core/pi-ui-mapper.d.ts +52 -0
  469. package/dist/core/pi-ui-mapper.js +408 -0
  470. package/dist/core/pi-ui-mapper.js.map +1 -0
  471. package/dist/core/process-usage.d.ts +74 -0
  472. package/dist/core/process-usage.js +219 -0
  473. package/dist/core/process-usage.js.map +1 -0
  474. package/dist/core/product-env.d.ts +21 -0
  475. package/dist/core/product-env.js +38 -0
  476. package/dist/core/product-env.js.map +1 -0
  477. package/dist/core/provider-auth.d.ts +168 -0
  478. package/dist/core/provider-auth.js +661 -0
  479. package/dist/core/provider-auth.js.map +1 -0
  480. package/dist/core/provider-availability.d.ts +3 -0
  481. package/dist/core/provider-availability.js +14 -0
  482. package/dist/core/provider-availability.js.map +1 -0
  483. package/dist/core/runner-factory.d.ts +11 -0
  484. package/dist/core/runner-factory.js +36 -0
  485. package/dist/core/runner-factory.js.map +1 -0
  486. package/dist/core/runner-facts.d.ts +135 -0
  487. package/dist/core/runner-facts.js +59 -0
  488. package/dist/core/runner-facts.js.map +1 -0
  489. package/dist/core/runner-model-catalog.d.ts +34 -0
  490. package/dist/core/runner-model-catalog.js +109 -0
  491. package/dist/core/runner-model-catalog.js.map +1 -0
  492. package/dist/core/runner-runtime.d.ts +40 -0
  493. package/dist/core/runner-runtime.js +88 -0
  494. package/dist/core/runner-runtime.js.map +1 -0
  495. package/dist/core/runner-stderr.d.ts +2 -0
  496. package/dist/core/runner-stderr.js +20 -0
  497. package/dist/core/runner-stderr.js.map +1 -0
  498. package/dist/core/runner-tool-grants.d.ts +19 -0
  499. package/dist/core/runner-tool-grants.js +54 -0
  500. package/dist/core/runner-tool-grants.js.map +1 -0
  501. package/dist/core/secret-redaction.d.ts +20 -0
  502. package/dist/core/secret-redaction.js +95 -0
  503. package/dist/core/secret-redaction.js.map +1 -0
  504. package/dist/core/session-process.d.ts +43 -0
  505. package/dist/core/session-process.js +363 -0
  506. package/dist/core/session-process.js.map +1 -0
  507. package/dist/core/shell-env.d.ts +17 -0
  508. package/dist/core/shell-env.js +51 -0
  509. package/dist/core/shell-env.js.map +1 -0
  510. package/dist/core/ui-events.d.ts +356 -0
  511. package/dist/core/ui-events.js +13 -0
  512. package/dist/core/ui-events.js.map +1 -0
  513. package/dist/core/usage-limit.d.ts +42 -0
  514. package/dist/core/usage-limit.js +152 -0
  515. package/dist/core/usage-limit.js.map +1 -0
  516. package/dist/core/usage.d.ts +11 -0
  517. package/dist/core/usage.js +15 -0
  518. package/dist/core/usage.js.map +1 -0
  519. package/dist/core/v1-text-coalescer.d.ts +36 -0
  520. package/dist/core/v1-text-coalescer.js +72 -0
  521. package/dist/core/v1-text-coalescer.js.map +1 -0
  522. package/dist/data-gitignore.d.ts +6 -0
  523. package/dist/data-gitignore.js +80 -0
  524. package/dist/data-gitignore.js.map +1 -0
  525. package/dist/delegation/capacity.d.ts +15 -0
  526. package/dist/delegation/capacity.js +30 -0
  527. package/dist/delegation/capacity.js.map +1 -0
  528. package/dist/delegation/cli.d.ts +5 -0
  529. package/dist/delegation/cli.js +572 -0
  530. package/dist/delegation/cli.js.map +1 -0
  531. package/dist/delegation/context.d.ts +40 -0
  532. package/dist/delegation/context.js +398 -0
  533. package/dist/delegation/context.js.map +1 -0
  534. package/dist/delegation/conversation-send.d.ts +64 -0
  535. package/dist/delegation/conversation-send.js +74 -0
  536. package/dist/delegation/conversation-send.js.map +1 -0
  537. package/dist/delegation/conversations.d.ts +2186 -0
  538. package/dist/delegation/conversations.js +285 -0
  539. package/dist/delegation/conversations.js.map +1 -0
  540. package/dist/delegation/credentials.d.ts +21 -0
  541. package/dist/delegation/credentials.js +66 -0
  542. package/dist/delegation/credentials.js.map +1 -0
  543. package/dist/delegation/destroy-observation.d.ts +42 -0
  544. package/dist/delegation/destroy-observation.js +115 -0
  545. package/dist/delegation/destroy-observation.js.map +1 -0
  546. package/dist/delegation/effort.d.ts +1 -0
  547. package/dist/delegation/effort.js +11 -0
  548. package/dist/delegation/effort.js.map +1 -0
  549. package/dist/delegation/execution-identity.d.ts +257 -0
  550. package/dist/delegation/execution-identity.js +253 -0
  551. package/dist/delegation/execution-identity.js.map +1 -0
  552. package/dist/delegation/execution-settings.d.ts +11 -0
  553. package/dist/delegation/execution-settings.js +65 -0
  554. package/dist/delegation/execution-settings.js.map +1 -0
  555. package/dist/delegation/idle-test-app.d.ts +4 -0
  556. package/dist/delegation/idle-test-app.js +186 -0
  557. package/dist/delegation/idle-test-app.js.map +1 -0
  558. package/dist/delegation/input.d.ts +12 -0
  559. package/dist/delegation/input.js +50 -0
  560. package/dist/delegation/input.js.map +1 -0
  561. package/dist/delegation/park-notice.d.ts +45 -0
  562. package/dist/delegation/park-notice.js +81 -0
  563. package/dist/delegation/park-notice.js.map +1 -0
  564. package/dist/delegation/policy.d.ts +27 -0
  565. package/dist/delegation/policy.js +110 -0
  566. package/dist/delegation/policy.js.map +1 -0
  567. package/dist/delegation/process-liveness.d.ts +98 -0
  568. package/dist/delegation/process-liveness.js +213 -0
  569. package/dist/delegation/process-liveness.js.map +1 -0
  570. package/dist/delegation/provision.d.ts +36 -0
  571. package/dist/delegation/provision.js +218 -0
  572. package/dist/delegation/provision.js.map +1 -0
  573. package/dist/delegation/questions.d.ts +24 -0
  574. package/dist/delegation/questions.js +56 -0
  575. package/dist/delegation/questions.js.map +1 -0
  576. package/dist/delegation/readiness.d.ts +13 -0
  577. package/dist/delegation/readiness.js +19 -0
  578. package/dist/delegation/readiness.js.map +1 -0
  579. package/dist/delegation/results.d.ts +13 -0
  580. package/dist/delegation/results.js +153 -0
  581. package/dist/delegation/results.js.map +1 -0
  582. package/dist/delegation/retry-backoff.d.ts +31 -0
  583. package/dist/delegation/retry-backoff.js +26 -0
  584. package/dist/delegation/retry-backoff.js.map +1 -0
  585. package/dist/delegation/routes.d.ts +1017 -0
  586. package/dist/delegation/routes.js +85 -0
  587. package/dist/delegation/routes.js.map +1 -0
  588. package/dist/delegation/scratch-cleanup.d.ts +33 -0
  589. package/dist/delegation/scratch-cleanup.js +155 -0
  590. package/dist/delegation/scratch-cleanup.js.map +1 -0
  591. package/dist/delegation/service.d.ts +264 -0
  592. package/dist/delegation/service.js +807 -0
  593. package/dist/delegation/service.js.map +1 -0
  594. package/dist/delegation/task-discovery.d.ts +6 -0
  595. package/dist/delegation/task-discovery.js +27 -0
  596. package/dist/delegation/task-discovery.js.map +1 -0
  597. package/dist/delegation/transport.d.ts +995 -0
  598. package/dist/delegation/transport.js +22 -0
  599. package/dist/delegation/transport.js.map +1 -0
  600. package/dist/delegation/wait.d.ts +7 -0
  601. package/dist/delegation/wait.js +44 -0
  602. package/dist/delegation/wait.js.map +1 -0
  603. package/dist/delegation/windows-test-app.d.ts +5 -0
  604. package/dist/delegation/windows-test-app.js +64 -0
  605. package/dist/delegation/windows-test-app.js.map +1 -0
  606. package/dist/delegation/windows-workspace-identity.d.ts +3 -0
  607. package/dist/delegation/windows-workspace-identity.js +23 -0
  608. package/dist/delegation/windows-workspace-identity.js.map +1 -0
  609. package/dist/delegation/worker-cleanup.d.ts +53 -0
  610. package/dist/delegation/worker-cleanup.js +330 -0
  611. package/dist/delegation/worker-cleanup.js.map +1 -0
  612. package/dist/delegation/workspace.d.ts +40 -0
  613. package/dist/delegation/workspace.js +592 -0
  614. package/dist/delegation/workspace.js.map +1 -0
  615. package/dist/detached-process.d.ts +134 -0
  616. package/dist/detached-process.js +460 -0
  617. package/dist/detached-process.js.map +1 -0
  618. package/dist/discovery/catalog.d.ts +16 -0
  619. package/dist/discovery/catalog.js +31 -0
  620. package/dist/discovery/catalog.js.map +1 -0
  621. package/dist/discovery/cli.d.ts +8 -0
  622. package/dist/discovery/cli.js +122 -0
  623. package/dist/discovery/cli.js.map +1 -0
  624. package/dist/git-command.d.ts +7 -0
  625. package/dist/git-command.js +8 -0
  626. package/dist/git-command.js.map +1 -0
  627. package/dist/git-diff-base.d.ts +41 -0
  628. package/dist/git-diff-base.js +116 -0
  629. package/dist/git-diff-base.js.map +1 -0
  630. package/dist/git-index-copy.d.ts +4 -0
  631. package/dist/git-index-copy.js +10 -0
  632. package/dist/git-index-copy.js.map +1 -0
  633. package/dist/git-private-index.d.ts +11 -0
  634. package/dist/git-private-index.js +51 -0
  635. package/dist/git-private-index.js.map +1 -0
  636. package/dist/git-refs.d.ts +11 -0
  637. package/dist/git-refs.js +14 -0
  638. package/dist/git-refs.js.map +1 -0
  639. package/dist/git-worktree-lock-helper.d.ts +7 -0
  640. package/dist/git-worktree-lock-helper.js +178 -0
  641. package/dist/git-worktree-lock-helper.js.map +1 -0
  642. package/dist/git-worktree-lock.d.ts +17 -0
  643. package/dist/git-worktree-lock.js +90 -0
  644. package/dist/git-worktree-lock.js.map +1 -0
  645. package/dist/git-worktree-release.d.ts +20 -0
  646. package/dist/git-worktree-release.js +27 -0
  647. package/dist/git-worktree-release.js.map +1 -0
  648. package/dist/git-worktree.d.ts +148 -0
  649. package/dist/git-worktree.js +858 -0
  650. package/dist/git-worktree.js.map +1 -0
  651. package/dist/handoff.d.ts +72 -0
  652. package/dist/handoff.js +213 -0
  653. package/dist/handoff.js.map +1 -0
  654. package/dist/headless-run.d.ts +48 -0
  655. package/dist/headless-run.js +158 -0
  656. package/dist/headless-run.js.map +1 -0
  657. package/dist/home/boundary.d.ts +5 -0
  658. package/dist/home/boundary.js +76 -0
  659. package/dist/home/boundary.js.map +1 -0
  660. package/dist/home/changes.d.ts +3 -0
  661. package/dist/home/changes.js +11 -0
  662. package/dist/home/changes.js.map +1 -0
  663. package/dist/home/command.d.ts +9 -0
  664. package/dist/home/command.js +37 -0
  665. package/dist/home/command.js.map +1 -0
  666. package/dist/home/deprecation.d.ts +9 -0
  667. package/dist/home/deprecation.js +17 -0
  668. package/dist/home/deprecation.js.map +1 -0
  669. package/dist/home/display.d.ts +4 -0
  670. package/dist/home/display.js +11 -0
  671. package/dist/home/display.js.map +1 -0
  672. package/dist/home/entry-authorization.d.ts +17 -0
  673. package/dist/home/entry-authorization.js +39 -0
  674. package/dist/home/entry-authorization.js.map +1 -0
  675. package/dist/home/entry.d.ts +16 -0
  676. package/dist/home/entry.js +96 -0
  677. package/dist/home/entry.js.map +1 -0
  678. package/dist/home/file-location.d.ts +14 -0
  679. package/dist/home/file-location.js +24 -0
  680. package/dist/home/file-location.js.map +1 -0
  681. package/dist/home/home.d.ts +42 -0
  682. package/dist/home/home.js +70 -0
  683. package/dist/home/home.js.map +1 -0
  684. package/dist/home/identity.d.ts +22 -0
  685. package/dist/home/identity.js +25 -0
  686. package/dist/home/identity.js.map +1 -0
  687. package/dist/home/install-marker.d.ts +27 -0
  688. package/dist/home/install-marker.js +78 -0
  689. package/dist/home/install-marker.js.map +1 -0
  690. package/dist/home/kind-roots.d.ts +10 -0
  691. package/dist/home/kind-roots.js +36 -0
  692. package/dist/home/kind-roots.js.map +1 -0
  693. package/dist/home/leases.d.ts +14 -0
  694. package/dist/home/leases.js +55 -0
  695. package/dist/home/leases.js.map +1 -0
  696. package/dist/home/legacy-account-paths.d.ts +4 -0
  697. package/dist/home/legacy-account-paths.js +41 -0
  698. package/dist/home/legacy-account-paths.js.map +1 -0
  699. package/dist/home/legacy-merge.d.ts +3 -0
  700. package/dist/home/legacy-merge.js +45 -0
  701. package/dist/home/legacy-merge.js.map +1 -0
  702. package/dist/home/legacy-recovery.d.ts +5 -0
  703. package/dist/home/legacy-recovery.js +154 -0
  704. package/dist/home/legacy-recovery.js.map +1 -0
  705. package/dist/home/legacy-source.d.ts +15 -0
  706. package/dist/home/legacy-source.js +57 -0
  707. package/dist/home/legacy-source.js.map +1 -0
  708. package/dist/home/migrate.d.ts +19 -0
  709. package/dist/home/migrate.js +322 -0
  710. package/dist/home/migrate.js.map +1 -0
  711. package/dist/home/migration-account-source.d.ts +2 -0
  712. package/dist/home/migration-account-source.js +17 -0
  713. package/dist/home/migration-account-source.js.map +1 -0
  714. package/dist/home/migration-accounts.d.ts +23 -0
  715. package/dist/home/migration-accounts.js +174 -0
  716. package/dist/home/migration-accounts.js.map +1 -0
  717. package/dist/home/migration-boot.d.ts +23 -0
  718. package/dist/home/migration-boot.js +84 -0
  719. package/dist/home/migration-boot.js.map +1 -0
  720. package/dist/home/migration-claim.d.ts +4 -0
  721. package/dist/home/migration-claim.js +69 -0
  722. package/dist/home/migration-claim.js.map +1 -0
  723. package/dist/home/migration-cli.d.ts +3 -0
  724. package/dist/home/migration-cli.js +64 -0
  725. package/dist/home/migration-cli.js.map +1 -0
  726. package/dist/home/migration-files.d.ts +14 -0
  727. package/dist/home/migration-files.js +192 -0
  728. package/dist/home/migration-files.js.map +1 -0
  729. package/dist/home/migration-guard.d.ts +2 -0
  730. package/dist/home/migration-guard.js +20 -0
  731. package/dist/home/migration-guard.js.map +1 -0
  732. package/dist/home/migration-plan.d.ts +20 -0
  733. package/dist/home/migration-plan.js +71 -0
  734. package/dist/home/migration-plan.js.map +1 -0
  735. package/dist/home/migration-record.d.ts +79 -0
  736. package/dist/home/migration-record.js +39 -0
  737. package/dist/home/migration-record.js.map +1 -0
  738. package/dist/home/private-files.d.ts +13 -0
  739. package/dist/home/private-files.js +113 -0
  740. package/dist/home/private-files.js.map +1 -0
  741. package/dist/home/process-identity.d.ts +2 -0
  742. package/dist/home/process-identity.js +8 -0
  743. package/dist/home/process-identity.js.map +1 -0
  744. package/dist/home/protected-roots.d.ts +25 -0
  745. package/dist/home/protected-roots.js +91 -0
  746. package/dist/home/protected-roots.js.map +1 -0
  747. package/dist/home/recovery-watch.d.ts +3 -0
  748. package/dist/home/recovery-watch.js +75 -0
  749. package/dist/home/recovery-watch.js.map +1 -0
  750. package/dist/home/recovery.d.ts +10 -0
  751. package/dist/home/recovery.js +94 -0
  752. package/dist/home/recovery.js.map +1 -0
  753. package/dist/home/registry-content.d.ts +2 -0
  754. package/dist/home/registry-content.js +17 -0
  755. package/dist/home/registry-content.js.map +1 -0
  756. package/dist/home/reset-detection.d.ts +5 -0
  757. package/dist/home/reset-detection.js +22 -0
  758. package/dist/home/reset-detection.js.map +1 -0
  759. package/dist/home/resolve.d.ts +10 -0
  760. package/dist/home/resolve.js +28 -0
  761. package/dist/home/resolve.js.map +1 -0
  762. package/dist/home/store.d.ts +48 -0
  763. package/dist/home/store.js +324 -0
  764. package/dist/home/store.js.map +1 -0
  765. package/dist/home/switch.d.ts +2 -0
  766. package/dist/home/switch.js +3 -0
  767. package/dist/home/switch.js.map +1 -0
  768. package/dist/home/version-log.d.ts +48 -0
  769. package/dist/home/version-log.js +216 -0
  770. package/dist/home/version-log.js.map +1 -0
  771. package/dist/home/write-lock.d.ts +6 -0
  772. package/dist/home/write-lock.js +96 -0
  773. package/dist/home/write-lock.js.map +1 -0
  774. package/dist/hsq.d.ts +2 -0
  775. package/dist/hsq.js +3 -0
  776. package/dist/hsq.js.map +1 -0
  777. package/dist/index.d.ts +2 -0
  778. package/dist/index.js +123 -0
  779. package/dist/index.js.map +1 -0
  780. package/dist/install-as-command.d.ts +32 -0
  781. package/dist/install-as-command.js +55 -0
  782. package/dist/install-as-command.js.map +1 -0
  783. package/dist/jobs/cli.d.ts +2 -0
  784. package/dist/jobs/cli.js +53 -0
  785. package/dist/jobs/cli.js.map +1 -0
  786. package/dist/jobs/command.d.ts +9 -0
  787. package/dist/jobs/command.js +19 -0
  788. package/dist/jobs/command.js.map +1 -0
  789. package/dist/jobs/job.d.ts +77 -0
  790. package/dist/jobs/job.js +252 -0
  791. package/dist/jobs/job.js.map +1 -0
  792. package/dist/merge-observations.d.ts +13 -0
  793. package/dist/merge-observations.js +55 -0
  794. package/dist/merge-observations.js.map +1 -0
  795. package/dist/merged-streams.d.ts +13 -0
  796. package/dist/merged-streams.js +33 -0
  797. package/dist/merged-streams.js.map +1 -0
  798. package/dist/open-url.d.ts +2 -0
  799. package/dist/open-url.js +10 -0
  800. package/dist/open-url.js.map +1 -0
  801. package/dist/pack-check.d.ts +17 -0
  802. package/dist/pack-check.js +27 -0
  803. package/dist/pack-check.js.map +1 -0
  804. package/dist/paths.d.ts +118 -0
  805. package/dist/paths.js +192 -0
  806. package/dist/paths.js.map +1 -0
  807. package/dist/planner.d.ts +30 -0
  808. package/dist/planner.js +270 -0
  809. package/dist/planner.js.map +1 -0
  810. package/dist/preview/agent-address.d.ts +34 -0
  811. package/dist/preview/agent-address.js +52 -0
  812. package/dist/preview/agent-address.js.map +1 -0
  813. package/dist/preview/agent-marker.d.ts +17 -0
  814. package/dist/preview/agent-marker.js +71 -0
  815. package/dist/preview/agent-marker.js.map +1 -0
  816. package/dist/preview/browser-launch.d.ts +28 -0
  817. package/dist/preview/browser-launch.js +64 -0
  818. package/dist/preview/browser-launch.js.map +1 -0
  819. package/dist/preview/cdp-proxy.d.ts +54 -0
  820. package/dist/preview/cdp-proxy.js +152 -0
  821. package/dist/preview/cdp-proxy.js.map +1 -0
  822. package/dist/preview/cdp.d.ts +49 -0
  823. package/dist/preview/cdp.js +167 -0
  824. package/dist/preview/cdp.js.map +1 -0
  825. package/dist/preview/chromium-launch-progress.d.ts +10 -0
  826. package/dist/preview/chromium-launch-progress.js +48 -0
  827. package/dist/preview/chromium-launch-progress.js.map +1 -0
  828. package/dist/preview/chromium.d.ts +91 -0
  829. package/dist/preview/chromium.js +500 -0
  830. package/dist/preview/chromium.js.map +1 -0
  831. package/dist/preview/density.d.ts +17 -0
  832. package/dist/preview/density.js +62 -0
  833. package/dist/preview/density.js.map +1 -0
  834. package/dist/preview/dev-server.d.ts +68 -0
  835. package/dist/preview/dev-server.js +318 -0
  836. package/dist/preview/dev-server.js.map +1 -0
  837. package/dist/preview/host.d.ts +215 -0
  838. package/dist/preview/host.js +954 -0
  839. package/dist/preview/host.js.map +1 -0
  840. package/dist/preview/registration.d.ts +68 -0
  841. package/dist/preview/registration.js +111 -0
  842. package/dist/preview/registration.js.map +1 -0
  843. package/dist/preview/run-tools.d.ts +9 -0
  844. package/dist/preview/run-tools.js +72 -0
  845. package/dist/preview/run-tools.js.map +1 -0
  846. package/dist/preview/session.d.ts +139 -0
  847. package/dist/preview/session.js +479 -0
  848. package/dist/preview/session.js.map +1 -0
  849. package/dist/preview/url.d.ts +6 -0
  850. package/dist/preview/url.js +17 -0
  851. package/dist/preview/url.js.map +1 -0
  852. package/dist/process-wait/exit-file.d.ts +29 -0
  853. package/dist/process-wait/exit-file.js +67 -0
  854. package/dist/process-wait/exit-file.js.map +1 -0
  855. package/dist/process-wait/supervisor.d.ts +30 -0
  856. package/dist/process-wait/supervisor.js +71 -0
  857. package/dist/process-wait/supervisor.js.map +1 -0
  858. package/dist/project-commands.d.ts +14 -0
  859. package/dist/project-commands.js +91 -0
  860. package/dist/project-commands.js.map +1 -0
  861. package/dist/project-migration/answer.d.ts +23 -0
  862. package/dist/project-migration/answer.js +37 -0
  863. package/dist/project-migration/answer.js.map +1 -0
  864. package/dist/project-migration/auto.d.ts +73 -0
  865. package/dist/project-migration/auto.js +161 -0
  866. package/dist/project-migration/auto.js.map +1 -0
  867. package/dist/project-migration/cli.d.ts +18 -0
  868. package/dist/project-migration/cli.js +57 -0
  869. package/dist/project-migration/cli.js.map +1 -0
  870. package/dist/project-migration/containment.d.ts +52 -0
  871. package/dist/project-migration/containment.js +200 -0
  872. package/dist/project-migration/containment.js.map +1 -0
  873. package/dist/project-migration/durable.d.ts +25 -0
  874. package/dist/project-migration/durable.js +69 -0
  875. package/dist/project-migration/durable.js.map +1 -0
  876. package/dist/project-migration/engine.d.ts +47 -0
  877. package/dist/project-migration/engine.js +103 -0
  878. package/dist/project-migration/engine.js.map +1 -0
  879. package/dist/project-migration/fresh.d.ts +4 -0
  880. package/dist/project-migration/fresh.js +25 -0
  881. package/dist/project-migration/fresh.js.map +1 -0
  882. package/dist/project-migration/journal.d.ts +139 -0
  883. package/dist/project-migration/journal.js +69 -0
  884. package/dist/project-migration/journal.js.map +1 -0
  885. package/dist/project-migration/live.d.ts +48 -0
  886. package/dist/project-migration/live.js +148 -0
  887. package/dist/project-migration/live.js.map +1 -0
  888. package/dist/project-migration/offline.d.ts +25 -0
  889. package/dist/project-migration/offline.js +54 -0
  890. package/dist/project-migration/offline.js.map +1 -0
  891. package/dist/project-migration/plan.d.ts +91 -0
  892. package/dist/project-migration/plan.js +466 -0
  893. package/dist/project-migration/plan.js.map +1 -0
  894. package/dist/project-migration/recovery.d.ts +28 -0
  895. package/dist/project-migration/recovery.js +78 -0
  896. package/dist/project-migration/recovery.js.map +1 -0
  897. package/dist/project-migration/steps.d.ts +18 -0
  898. package/dist/project-migration/steps.js +312 -0
  899. package/dist/project-migration/steps.js.map +1 -0
  900. package/dist/project-paths.d.ts +61 -0
  901. package/dist/project-paths.js +185 -0
  902. package/dist/project-paths.js.map +1 -0
  903. package/dist/release/compatibility.d.ts +12 -0
  904. package/dist/release/compatibility.js +62 -0
  905. package/dist/release/compatibility.js.map +1 -0
  906. package/dist/release/manifests.d.ts +112 -0
  907. package/dist/release/manifests.js +104 -0
  908. package/dist/release/manifests.js.map +1 -0
  909. package/dist/release/publication.d.ts +3 -0
  910. package/dist/release/publication.js +34 -0
  911. package/dist/release/publication.js.map +1 -0
  912. package/dist/release/snapshot.d.ts +67 -0
  913. package/dist/release/snapshot.js +97 -0
  914. package/dist/release/snapshot.js.map +1 -0
  915. package/dist/release/stable.d.ts +38 -0
  916. package/dist/release/stable.js +55 -0
  917. package/dist/release/stable.js.map +1 -0
  918. package/dist/remote-settings-cli.d.ts +24 -0
  919. package/dist/remote-settings-cli.js +156 -0
  920. package/dist/remote-settings-cli.js.map +1 -0
  921. package/dist/remote-settings.d.ts +41 -0
  922. package/dist/remote-settings.js +110 -0
  923. package/dist/remote-settings.js.map +1 -0
  924. package/dist/runs/agent-tmpdir-removal.d.ts +15 -0
  925. package/dist/runs/agent-tmpdir-removal.js +60 -0
  926. package/dist/runs/agent-tmpdir-removal.js.map +1 -0
  927. package/dist/runs/agent-tmpdir.d.ts +119 -0
  928. package/dist/runs/agent-tmpdir.js +855 -0
  929. package/dist/runs/agent-tmpdir.js.map +1 -0
  930. package/dist/runs/archive-family.d.ts +33 -0
  931. package/dist/runs/archive-family.js +90 -0
  932. package/dist/runs/archive-family.js.map +1 -0
  933. package/dist/runs/arm-repo-handle.d.ts +10 -0
  934. package/dist/runs/arm-repo-handle.js +45 -0
  935. package/dist/runs/arm-repo-handle.js.map +1 -0
  936. package/dist/runs/auto-name.d.ts +77 -0
  937. package/dist/runs/auto-name.js +179 -0
  938. package/dist/runs/auto-name.js.map +1 -0
  939. package/dist/runs/claim-families.d.ts +37 -0
  940. package/dist/runs/claim-families.js +101 -0
  941. package/dist/runs/claim-families.js.map +1 -0
  942. package/dist/runs/client-request.d.ts +11 -0
  943. package/dist/runs/client-request.js +26 -0
  944. package/dist/runs/client-request.js.map +1 -0
  945. package/dist/runs/cold-reads.d.ts +40 -0
  946. package/dist/runs/cold-reads.js +56 -0
  947. package/dist/runs/cold-reads.js.map +1 -0
  948. package/dist/runs/conversation-identity.d.ts +19 -0
  949. package/dist/runs/conversation-identity.js +31 -0
  950. package/dist/runs/conversation-identity.js.map +1 -0
  951. package/dist/runs/delegation-state.d.ts +409 -0
  952. package/dist/runs/delegation-state.js +22 -0
  953. package/dist/runs/delegation-state.js.map +1 -0
  954. package/dist/runs/event-history-agent-context.d.ts +15 -0
  955. package/dist/runs/event-history-agent-context.js +119 -0
  956. package/dist/runs/event-history-agent-context.js.map +1 -0
  957. package/dist/runs/event-history-context.d.ts +15 -0
  958. package/dist/runs/event-history-context.js +109 -0
  959. package/dist/runs/event-history-context.js.map +1 -0
  960. package/dist/runs/event-history.d.ts +53 -0
  961. package/dist/runs/event-history.js +563 -0
  962. package/dist/runs/event-history.js.map +1 -0
  963. package/dist/runs/exit-events.d.ts +27 -0
  964. package/dist/runs/exit-events.js +46 -0
  965. package/dist/runs/exit-events.js.map +1 -0
  966. package/dist/runs/history-compressor.d.ts +29 -0
  967. package/dist/runs/history-compressor.js +116 -0
  968. package/dist/runs/history-compressor.js.map +1 -0
  969. package/dist/runs/history-file.d.ts +36 -0
  970. package/dist/runs/history-file.js +464 -0
  971. package/dist/runs/history-file.js.map +1 -0
  972. package/dist/runs/history-stream.d.ts +2 -0
  973. package/dist/runs/history-stream.js +62 -0
  974. package/dist/runs/history-stream.js.map +1 -0
  975. package/dist/runs/legacy-index.d.ts +49 -0
  976. package/dist/runs/legacy-index.js +156 -0
  977. package/dist/runs/legacy-index.js.map +1 -0
  978. package/dist/runs/legacy-run-rows.d.ts +12 -0
  979. package/dist/runs/legacy-run-rows.js +33 -0
  980. package/dist/runs/legacy-run-rows.js.map +1 -0
  981. package/dist/runs/legacy-waits.d.ts +64 -0
  982. package/dist/runs/legacy-waits.js +335 -0
  983. package/dist/runs/legacy-waits.js.map +1 -0
  984. package/dist/runs/live-item-snapshots.d.ts +15 -0
  985. package/dist/runs/live-item-snapshots.js +95 -0
  986. package/dist/runs/live-item-snapshots.js.map +1 -0
  987. package/dist/runs/loaded-run-exits.d.ts +6 -0
  988. package/dist/runs/loaded-run-exits.js +32 -0
  989. package/dist/runs/loaded-run-exits.js.map +1 -0
  990. package/dist/runs/loaded-run-healing.d.ts +3 -0
  991. package/dist/runs/loaded-run-healing.js +17 -0
  992. package/dist/runs/loaded-run-healing.js.map +1 -0
  993. package/dist/runs/outcome-commit.d.ts +119 -0
  994. package/dist/runs/outcome-commit.js +155 -0
  995. package/dist/runs/outcome-commit.js.map +1 -0
  996. package/dist/runs/owned-run-create.d.ts +33 -0
  997. package/dist/runs/owned-run-create.js +98 -0
  998. package/dist/runs/owned-run-create.js.map +1 -0
  999. package/dist/runs/project-run-connection.d.ts +76 -0
  1000. package/dist/runs/project-run-connection.js +287 -0
  1001. package/dist/runs/project-run-connection.js.map +1 -0
  1002. package/dist/runs/project-run-sources.d.ts +21 -0
  1003. package/dist/runs/project-run-sources.js +86 -0
  1004. package/dist/runs/project-run-sources.js.map +1 -0
  1005. package/dist/runs/pull-requests.d.ts +14 -0
  1006. package/dist/runs/pull-requests.js +96 -0
  1007. package/dist/runs/pull-requests.js.map +1 -0
  1008. package/dist/runs/raw-record.d.ts +40 -0
  1009. package/dist/runs/raw-record.js +133 -0
  1010. package/dist/runs/raw-record.js.map +1 -0
  1011. package/dist/runs/record-write-rules.d.ts +129 -0
  1012. package/dist/runs/record-write-rules.js +326 -0
  1013. package/dist/runs/record-write-rules.js.map +1 -0
  1014. package/dist/runs/report-rows.d.ts +36 -0
  1015. package/dist/runs/report-rows.js +102 -0
  1016. package/dist/runs/report-rows.js.map +1 -0
  1017. package/dist/runs/retention.d.ts +91 -0
  1018. package/dist/runs/retention.js +193 -0
  1019. package/dist/runs/retention.js.map +1 -0
  1020. package/dist/runs/review-gate.d.ts +18 -0
  1021. package/dist/runs/review-gate.js +22 -0
  1022. package/dist/runs/review-gate.js.map +1 -0
  1023. package/dist/runs/run-claims.d.ts +30 -0
  1024. package/dist/runs/run-claims.js +52 -0
  1025. package/dist/runs/run-claims.js.map +1 -0
  1026. package/dist/runs/run-database-peer-page.d.ts +12 -0
  1027. package/dist/runs/run-database-peer-page.js +25 -0
  1028. package/dist/runs/run-database-peer-page.js.map +1 -0
  1029. package/dist/runs/run-database-row.d.ts +39 -0
  1030. package/dist/runs/run-database-row.js +83 -0
  1031. package/dist/runs/run-database-row.js.map +1 -0
  1032. package/dist/runs/run-database-version.d.ts +14 -0
  1033. package/dist/runs/run-database-version.js +19 -0
  1034. package/dist/runs/run-database-version.js.map +1 -0
  1035. package/dist/runs/run-database.d.ts +389 -0
  1036. package/dist/runs/run-database.js +957 -0
  1037. package/dist/runs/run-database.js.map +1 -0
  1038. package/dist/runs/run-exits.d.ts +4510 -0
  1039. package/dist/runs/run-exits.js +191 -0
  1040. package/dist/runs/run-exits.js.map +1 -0
  1041. package/dist/runs/run-index.d.ts +36 -0
  1042. package/dist/runs/run-index.js +262 -0
  1043. package/dist/runs/run-index.js.map +1 -0
  1044. package/dist/runs/run-references.d.ts +61 -0
  1045. package/dist/runs/run-references.js +421 -0
  1046. package/dist/runs/run-references.js.map +1 -0
  1047. package/dist/runs/run-row.d.ts +14 -0
  1048. package/dist/runs/run-row.js +56 -0
  1049. package/dist/runs/run-row.js.map +1 -0
  1050. package/dist/runs/run-summary-page.d.ts +36 -0
  1051. package/dist/runs/run-summary-page.js +46 -0
  1052. package/dist/runs/run-summary-page.js.map +1 -0
  1053. package/dist/runs/run-title.d.ts +8 -0
  1054. package/dist/runs/run-title.js +28 -0
  1055. package/dist/runs/run-title.js.map +1 -0
  1056. package/dist/runs/store-open-error.d.ts +24 -0
  1057. package/dist/runs/store-open-error.js +62 -0
  1058. package/dist/runs/store-open-error.js.map +1 -0
  1059. package/dist/runs/store.d.ts +3974 -0
  1060. package/dist/runs/store.js +3516 -0
  1061. package/dist/runs/store.js.map +1 -0
  1062. package/dist/runs/task-markers.d.ts +29 -0
  1063. package/dist/runs/task-markers.js +78 -0
  1064. package/dist/runs/task-markers.js.map +1 -0
  1065. package/dist/runs/task-refs.d.ts +39 -0
  1066. package/dist/runs/task-refs.js +107 -0
  1067. package/dist/runs/task-refs.js.map +1 -0
  1068. package/dist/runs/transcript-facts-fold.d.ts +64 -0
  1069. package/dist/runs/transcript-facts-fold.js +109 -0
  1070. package/dist/runs/transcript-facts-fold.js.map +1 -0
  1071. package/dist/runs/transcript-facts-load.d.ts +11 -0
  1072. package/dist/runs/transcript-facts-load.js +66 -0
  1073. package/dist/runs/transcript-facts-load.js.map +1 -0
  1074. package/dist/runs/transcript-facts-queue.d.ts +30 -0
  1075. package/dist/runs/transcript-facts-queue.js +227 -0
  1076. package/dist/runs/transcript-facts-queue.js.map +1 -0
  1077. package/dist/runs/transcript-facts-worker.d.ts +15 -0
  1078. package/dist/runs/transcript-facts-worker.js +26 -0
  1079. package/dist/runs/transcript-facts-worker.js.map +1 -0
  1080. package/dist/runs/transcript-facts.d.ts +40 -0
  1081. package/dist/runs/transcript-facts.js +193 -0
  1082. package/dist/runs/transcript-facts.js.map +1 -0
  1083. package/dist/runs/ui-event-sink.d.ts +59 -0
  1084. package/dist/runs/ui-event-sink.js +197 -0
  1085. package/dist/runs/ui-event-sink.js.map +1 -0
  1086. package/dist/runs/wait-capacity.d.ts +8 -0
  1087. package/dist/runs/wait-capacity.js +28 -0
  1088. package/dist/runs/wait-capacity.js.map +1 -0
  1089. package/dist/runs/wait-phases.d.ts +4 -0
  1090. package/dist/runs/wait-phases.js +11 -0
  1091. package/dist/runs/wait-phases.js.map +1 -0
  1092. package/dist/runs/wait-registration-write.d.ts +5 -0
  1093. package/dist/runs/wait-registration-write.js +35 -0
  1094. package/dist/runs/wait-registration-write.js.map +1 -0
  1095. package/dist/runs/webhook.d.ts +193 -0
  1096. package/dist/runs/webhook.js +362 -0
  1097. package/dist/runs/webhook.js.map +1 -0
  1098. package/dist/runs/worker-deletion-proof.d.ts +13 -0
  1099. package/dist/runs/worker-deletion-proof.js +13 -0
  1100. package/dist/runs/worker-deletion-proof.js.map +1 -0
  1101. package/dist/runs/worker-execution.d.ts +22 -0
  1102. package/dist/runs/worker-execution.js +30 -0
  1103. package/dist/runs/worker-execution.js.map +1 -0
  1104. package/dist/runs/worker-resource-holders.d.ts +17 -0
  1105. package/dist/runs/worker-resource-holders.js +34 -0
  1106. package/dist/runs/worker-resource-holders.js.map +1 -0
  1107. package/dist/runs/worker-result-commit.d.ts +26 -0
  1108. package/dist/runs/worker-result-commit.js +121 -0
  1109. package/dist/runs/worker-result-commit.js.map +1 -0
  1110. package/dist/self-update/checkouts.d.ts +46 -0
  1111. package/dist/self-update/checkouts.js +284 -0
  1112. package/dist/self-update/checkouts.js.map +1 -0
  1113. package/dist/self-update/cli.d.ts +19 -0
  1114. package/dist/self-update/cli.js +243 -0
  1115. package/dist/self-update/cli.js.map +1 -0
  1116. package/dist/self-update/installer.d.ts +24 -0
  1117. package/dist/self-update/installer.js +139 -0
  1118. package/dist/self-update/installer.js.map +1 -0
  1119. package/dist/self-update/launcher.d.ts +30 -0
  1120. package/dist/self-update/launcher.js +172 -0
  1121. package/dist/self-update/launcher.js.map +1 -0
  1122. package/dist/self-update/layout.d.ts +108 -0
  1123. package/dist/self-update/layout.js +276 -0
  1124. package/dist/self-update/layout.js.map +1 -0
  1125. package/dist/self-update/pulls.d.ts +30 -0
  1126. package/dist/self-update/pulls.js +128 -0
  1127. package/dist/self-update/pulls.js.map +1 -0
  1128. package/dist/self-update/registry.d.ts +37 -0
  1129. package/dist/self-update/registry.js +86 -0
  1130. package/dist/self-update/registry.js.map +1 -0
  1131. package/dist/self-update/restart.d.ts +25 -0
  1132. package/dist/self-update/restart.js +79 -0
  1133. package/dist/self-update/restart.js.map +1 -0
  1134. package/dist/self-update/semver.d.ts +19 -0
  1135. package/dist/self-update/semver.js +79 -0
  1136. package/dist/self-update/semver.js.map +1 -0
  1137. package/dist/self-update/service.d.ts +115 -0
  1138. package/dist/self-update/service.js +332 -0
  1139. package/dist/self-update/service.js.map +1 -0
  1140. package/dist/self-update/supervisor.d.ts +10 -0
  1141. package/dist/self-update/supervisor.js +52 -0
  1142. package/dist/self-update/supervisor.js.map +1 -0
  1143. package/dist/serve-boot.d.ts +60 -0
  1144. package/dist/serve-boot.js +142 -0
  1145. package/dist/serve-boot.js.map +1 -0
  1146. package/dist/serve-command.d.ts +71 -0
  1147. package/dist/serve-command.js +168 -0
  1148. package/dist/serve-command.js.map +1 -0
  1149. package/dist/serve-listener.d.ts +12 -0
  1150. package/dist/serve-listener.js +52 -0
  1151. package/dist/serve-listener.js.map +1 -0
  1152. package/dist/server/activity-project-topic.d.ts +44 -0
  1153. package/dist/server/activity-project-topic.js +137 -0
  1154. package/dist/server/activity-project-topic.js.map +1 -0
  1155. package/dist/server/activity-routes.d.ts +317 -0
  1156. package/dist/server/activity-routes.js +117 -0
  1157. package/dist/server/activity-routes.js.map +1 -0
  1158. package/dist/server/activity-sources.d.ts +26 -0
  1159. package/dist/server/activity-sources.js +45 -0
  1160. package/dist/server/activity-sources.js.map +1 -0
  1161. package/dist/server/activity-topic.d.ts +33 -0
  1162. package/dist/server/activity-topic.js +48 -0
  1163. package/dist/server/activity-topic.js.map +1 -0
  1164. package/dist/server/app-type.d.ts +6 -0
  1165. package/dist/server/app-type.js +2 -0
  1166. package/dist/server/app-type.js.map +1 -0
  1167. package/dist/server/archive-on-merge.d.ts +45 -0
  1168. package/dist/server/archive-on-merge.js +242 -0
  1169. package/dist/server/archive-on-merge.js.map +1 -0
  1170. package/dist/server/automation-log-retry.d.ts +27 -0
  1171. package/dist/server/automation-log-retry.js +88 -0
  1172. package/dist/server/automation-log-retry.js.map +1 -0
  1173. package/dist/server/capabilities.d.ts +69 -0
  1174. package/dist/server/capabilities.js +111 -0
  1175. package/dist/server/capabilities.js.map +1 -0
  1176. package/dist/server/checkout-progress.d.ts +10 -0
  1177. package/dist/server/checkout-progress.js +27 -0
  1178. package/dist/server/checkout-progress.js.map +1 -0
  1179. package/dist/server/checkout.d.ts +153 -0
  1180. package/dist/server/checkout.js +323 -0
  1181. package/dist/server/checkout.js.map +1 -0
  1182. package/dist/server/cockpit-ownership.d.ts +112 -0
  1183. package/dist/server/cockpit-ownership.js +420 -0
  1184. package/dist/server/cockpit-ownership.js.map +1 -0
  1185. package/dist/server/cold-repo-handles.d.ts +17 -0
  1186. package/dist/server/cold-repo-handles.js +82 -0
  1187. package/dist/server/cold-repo-handles.js.map +1 -0
  1188. package/dist/server/completion-actions.d.ts +37 -0
  1189. package/dist/server/completion-actions.js +261 -0
  1190. package/dist/server/completion-actions.js.map +1 -0
  1191. package/dist/server/config-merge.d.ts +11 -0
  1192. package/dist/server/config-merge.js +74 -0
  1193. package/dist/server/config-merge.js.map +1 -0
  1194. package/dist/server/create-project.d.ts +71 -0
  1195. package/dist/server/create-project.js +467 -0
  1196. package/dist/server/create-project.js.map +1 -0
  1197. package/dist/server/forge/draft-pr.d.ts +8 -0
  1198. package/dist/server/forge/draft-pr.js +123 -0
  1199. package/dist/server/forge/draft-pr.js.map +1 -0
  1200. package/dist/server/forge/github-filters.d.ts +22 -0
  1201. package/dist/server/forge/github-filters.js +128 -0
  1202. package/dist/server/forge/github-filters.js.map +1 -0
  1203. package/dist/server/forge/github-merge-requirements.d.ts +18 -0
  1204. package/dist/server/forge/github-merge-requirements.js +148 -0
  1205. package/dist/server/forge/github-merge-requirements.js.map +1 -0
  1206. package/dist/server/forge/github-merge-state.d.ts +27 -0
  1207. package/dist/server/forge/github-merge-state.js +248 -0
  1208. package/dist/server/forge/github-merge-state.js.map +1 -0
  1209. package/dist/server/forge/github-timeline.d.ts +117 -0
  1210. package/dist/server/forge/github-timeline.js +273 -0
  1211. package/dist/server/forge/github-timeline.js.map +1 -0
  1212. package/dist/server/forge/github.d.ts +393 -0
  1213. package/dist/server/forge/github.js +2881 -0
  1214. package/dist/server/forge/github.js.map +1 -0
  1215. package/dist/server/forge/index.d.ts +47 -0
  1216. package/dist/server/forge/index.js +81 -0
  1217. package/dist/server/forge/index.js.map +1 -0
  1218. package/dist/server/forge/repo-handle-discovery.d.ts +16 -0
  1219. package/dist/server/forge/repo-handle-discovery.js +2 -0
  1220. package/dist/server/forge/repo-handle-discovery.js.map +1 -0
  1221. package/dist/server/forge/types.d.ts +278 -0
  1222. package/dist/server/forge/types.js +2 -0
  1223. package/dist/server/forge/types.js.map +1 -0
  1224. package/dist/server/fs-browse.d.ts +82 -0
  1225. package/dist/server/fs-browse.js +217 -0
  1226. package/dist/server/fs-browse.js.map +1 -0
  1227. package/dist/server/git-changes.d.ts +205 -0
  1228. package/dist/server/git-changes.js +531 -0
  1229. package/dist/server/git-changes.js.map +1 -0
  1230. package/dist/server/git.d.ts +52 -0
  1231. package/dist/server/git.js +174 -0
  1232. package/dist/server/git.js.map +1 -0
  1233. package/dist/server/home-recovery-routes.d.ts +171 -0
  1234. package/dist/server/home-recovery-routes.js +56 -0
  1235. package/dist/server/home-recovery-routes.js.map +1 -0
  1236. package/dist/server/launch-key.d.ts +5 -0
  1237. package/dist/server/launch-key.js +35 -0
  1238. package/dist/server/launch-key.js.map +1 -0
  1239. package/dist/server/live-routes.d.ts +73 -0
  1240. package/dist/server/live-routes.js +161 -0
  1241. package/dist/server/live-routes.js.map +1 -0
  1242. package/dist/server/open-in-app.d.ts +57 -0
  1243. package/dist/server/open-in-app.js +178 -0
  1244. package/dist/server/open-in-app.js.map +1 -0
  1245. package/dist/server/open-in-targets.d.ts +53 -0
  1246. package/dist/server/open-in-targets.js +112 -0
  1247. package/dist/server/open-in-targets.js.map +1 -0
  1248. package/dist/server/open-in-terminal.d.ts +73 -0
  1249. package/dist/server/open-in-terminal.js +160 -0
  1250. package/dist/server/open-in-terminal.js.map +1 -0
  1251. package/dist/server/preview-cdp-socket.d.ts +21 -0
  1252. package/dist/server/preview-cdp-socket.js +112 -0
  1253. package/dist/server/preview-cdp-socket.js.map +1 -0
  1254. package/dist/server/preview-socket.d.ts +36 -0
  1255. package/dist/server/preview-socket.js +142 -0
  1256. package/dist/server/preview-socket.js.map +1 -0
  1257. package/dist/server/preview-sockets.d.ts +14 -0
  1258. package/dist/server/preview-sockets.js +18 -0
  1259. package/dist/server/preview-sockets.js.map +1 -0
  1260. package/dist/server/project-context.d.ts +218 -0
  1261. package/dist/server/project-context.js +525 -0
  1262. package/dist/server/project-context.js.map +1 -0
  1263. package/dist/server/project-run-files.d.ts +13 -0
  1264. package/dist/server/project-run-files.js +52 -0
  1265. package/dist/server/project-run-files.js.map +1 -0
  1266. package/dist/server/provider-action-gate.d.ts +5 -0
  1267. package/dist/server/provider-action-gate.js +28 -0
  1268. package/dist/server/provider-action-gate.js.map +1 -0
  1269. package/dist/server/provider-auth-runtime.d.ts +34 -0
  1270. package/dist/server/provider-auth-runtime.js +118 -0
  1271. package/dist/server/provider-auth-runtime.js.map +1 -0
  1272. package/dist/server/repo-branch-forge.d.ts +61 -0
  1273. package/dist/server/repo-branch-forge.js +158 -0
  1274. package/dist/server/repo-branch-forge.js.map +1 -0
  1275. package/dist/server/repo-branch-sweep.d.ts +21 -0
  1276. package/dist/server/repo-branch-sweep.js +64 -0
  1277. package/dist/server/repo-branch-sweep.js.map +1 -0
  1278. package/dist/server/repo-branches.d.ts +103 -0
  1279. package/dist/server/repo-branches.js +804 -0
  1280. package/dist/server/repo-branches.js.map +1 -0
  1281. package/dist/server/repo-pull.d.ts +18 -0
  1282. package/dist/server/repo-pull.js +97 -0
  1283. package/dist/server/repo-pull.js.map +1 -0
  1284. package/dist/server/reports-api.d.ts +90 -0
  1285. package/dist/server/reports-api.js +21 -0
  1286. package/dist/server/reports-api.js.map +1 -0
  1287. package/dist/server/reports-topic.d.ts +5 -0
  1288. package/dist/server/reports-topic.js +37 -0
  1289. package/dist/server/reports-topic.js.map +1 -0
  1290. package/dist/server/run-checkout.d.ts +56 -0
  1291. package/dist/server/run-checkout.js +141 -0
  1292. package/dist/server/run-checkout.js.map +1 -0
  1293. package/dist/server/run-event-feed.d.ts +20 -0
  1294. package/dist/server/run-event-feed.js +203 -0
  1295. package/dist/server/run-event-feed.js.map +1 -0
  1296. package/dist/server/self-update-routes.d.ts +308 -0
  1297. package/dist/server/self-update-routes.js +80 -0
  1298. package/dist/server/self-update-routes.js.map +1 -0
  1299. package/dist/server/server-deps.d.ts +40 -0
  1300. package/dist/server/server-deps.js +132 -0
  1301. package/dist/server/server-deps.js.map +1 -0
  1302. package/dist/server/server.d.ts +35332 -0
  1303. package/dist/server/server.js +5046 -0
  1304. package/dist/server/server.js.map +1 -0
  1305. package/dist/server/skill-sources.d.ts +264 -0
  1306. package/dist/server/skill-sources.js +130 -0
  1307. package/dist/server/skill-sources.js.map +1 -0
  1308. package/dist/server/start-run-options.d.ts +84 -0
  1309. package/dist/server/start-run-options.js +114 -0
  1310. package/dist/server/start-run-options.js.map +1 -0
  1311. package/dist/server/static-ui.d.ts +49 -0
  1312. package/dist/server/static-ui.js +99 -0
  1313. package/dist/server/static-ui.js.map +1 -0
  1314. package/dist/server/upgrade-router.d.ts +23 -0
  1315. package/dist/server/upgrade-router.js +53 -0
  1316. package/dist/server/upgrade-router.js.map +1 -0
  1317. package/dist/server/validators.d.ts +80 -0
  1318. package/dist/server/validators.js +85 -0
  1319. package/dist/server/validators.js.map +1 -0
  1320. package/dist/server/workflow-files.d.ts +9 -0
  1321. package/dist/server/workflow-files.js +27 -0
  1322. package/dist/server/workflow-files.js.map +1 -0
  1323. package/dist/server/workspace-config-patch.d.ts +11 -0
  1324. package/dist/server/workspace-config-patch.js +75 -0
  1325. package/dist/server/workspace-config-patch.js.map +1 -0
  1326. package/dist/server/workspace-live-routes.d.ts +222 -0
  1327. package/dist/server/workspace-live-routes.js +8 -0
  1328. package/dist/server/workspace-live-routes.js.map +1 -0
  1329. package/dist/server/workspace-projects.d.ts +51 -0
  1330. package/dist/server/workspace-projects.js +161 -0
  1331. package/dist/server/workspace-projects.js.map +1 -0
  1332. package/dist/server/workspace-run-feed.d.ts +66 -0
  1333. package/dist/server/workspace-run-feed.js +171 -0
  1334. package/dist/server/workspace-run-feed.js.map +1 -0
  1335. package/dist/server/ws.d.ts +80 -0
  1336. package/dist/server/ws.js +280 -0
  1337. package/dist/server/ws.js.map +1 -0
  1338. package/dist/server/wsl.d.ts +25 -0
  1339. package/dist/server/wsl.js +92 -0
  1340. package/dist/server/wsl.js.map +1 -0
  1341. package/dist/server-command.d.ts +53 -0
  1342. package/dist/server-command.js +180 -0
  1343. package/dist/server-command.js.map +1 -0
  1344. package/dist/server-install/engine.d.ts +51 -0
  1345. package/dist/server-install/engine.js +358 -0
  1346. package/dist/server-install/engine.js.map +1 -0
  1347. package/dist/server-install/group-migrate.d.ts +26 -0
  1348. package/dist/server-install/group-migrate.js +241 -0
  1349. package/dist/server-install/group-migrate.js.map +1 -0
  1350. package/dist/server-install/migrate-cli.d.ts +12 -0
  1351. package/dist/server-install/migrate-cli.js +44 -0
  1352. package/dist/server-install/migrate-cli.js.map +1 -0
  1353. package/dist/server-install/migrate-journal.d.ts +15 -0
  1354. package/dist/server-install/migrate-journal.js +48 -0
  1355. package/dist/server-install/migrate-journal.js.map +1 -0
  1356. package/dist/server-install/migration-report.d.ts +3 -0
  1357. package/dist/server-install/migration-report.js +21 -0
  1358. package/dist/server-install/migration-report.js.map +1 -0
  1359. package/dist/server-install/npx-cache.d.ts +34 -0
  1360. package/dist/server-install/npx-cache.js +142 -0
  1361. package/dist/server-install/npx-cache.js.map +1 -0
  1362. package/dist/server-install/platforms/macosx-launchd-files.d.ts +11 -0
  1363. package/dist/server-install/platforms/macosx-launchd-files.js +60 -0
  1364. package/dist/server-install/platforms/macosx-launchd-files.js.map +1 -0
  1365. package/dist/server-install/platforms/macosx-migration.d.ts +17 -0
  1366. package/dist/server-install/platforms/macosx-migration.js +239 -0
  1367. package/dist/server-install/platforms/macosx-migration.js.map +1 -0
  1368. package/dist/server-install/platforms/macosx-ngrok.d.ts +12 -0
  1369. package/dist/server-install/platforms/macosx-ngrok.js +490 -0
  1370. package/dist/server-install/platforms/macosx-ngrok.js.map +1 -0
  1371. package/dist/server-install/platforms/service-env.d.ts +4 -0
  1372. package/dist/server-install/platforms/service-env.js +17 -0
  1373. package/dist/server-install/platforms/service-env.js.map +1 -0
  1374. package/dist/server-install/platforms/ubuntu-vps-files.d.ts +18 -0
  1375. package/dist/server-install/platforms/ubuntu-vps-files.js +43 -0
  1376. package/dist/server-install/platforms/ubuntu-vps-files.js.map +1 -0
  1377. package/dist/server-install/platforms/ubuntu-vps-migration.d.ts +26 -0
  1378. package/dist/server-install/platforms/ubuntu-vps-migration.js +391 -0
  1379. package/dist/server-install/platforms/ubuntu-vps-migration.js.map +1 -0
  1380. package/dist/server-install/platforms/ubuntu-vps-names.d.ts +30 -0
  1381. package/dist/server-install/platforms/ubuntu-vps-names.js +50 -0
  1382. package/dist/server-install/platforms/ubuntu-vps-names.js.map +1 -0
  1383. package/dist/server-install/platforms/ubuntu-vps-redeploy.d.ts +42 -0
  1384. package/dist/server-install/platforms/ubuntu-vps-redeploy.js +127 -0
  1385. package/dist/server-install/platforms/ubuntu-vps-redeploy.js.map +1 -0
  1386. package/dist/server-install/platforms/ubuntu-vps.d.ts +57 -0
  1387. package/dist/server-install/platforms/ubuntu-vps.js +945 -0
  1388. package/dist/server-install/platforms/ubuntu-vps.js.map +1 -0
  1389. package/dist/server-install/state.d.ts +51 -0
  1390. package/dist/server-install/state.js +178 -0
  1391. package/dist/server-install/state.js.map +1 -0
  1392. package/dist/server-install/steps.d.ts +108 -0
  1393. package/dist/server-install/steps.js +348 -0
  1394. package/dist/server-install/steps.js.map +1 -0
  1395. package/dist/server-install/strategies.d.ts +6 -0
  1396. package/dist/server-install/strategies.js +24 -0
  1397. package/dist/server-install/strategies.js.map +1 -0
  1398. package/dist/server-install/types.d.ts +316 -0
  1399. package/dist/server-install/types.js +118 -0
  1400. package/dist/server-install/types.js.map +1 -0
  1401. package/dist/server-install/ui.d.ts +36 -0
  1402. package/dist/server-install/ui.js +131 -0
  1403. package/dist/server-install/ui.js.map +1 -0
  1404. package/dist/session-context.d.ts +66 -0
  1405. package/dist/session-context.js +266 -0
  1406. package/dist/session-context.js.map +1 -0
  1407. package/dist/skills-provision.d.ts +64 -0
  1408. package/dist/skills-provision.js +325 -0
  1409. package/dist/skills-provision.js.map +1 -0
  1410. package/dist/skills-remote.d.ts +144 -0
  1411. package/dist/skills-remote.js +847 -0
  1412. package/dist/skills-remote.js.map +1 -0
  1413. package/dist/skills.d.ts +81 -0
  1414. package/dist/skills.js +288 -0
  1415. package/dist/skills.js.map +1 -0
  1416. package/dist/subcommands.d.ts +12 -0
  1417. package/dist/subcommands.js +59 -0
  1418. package/dist/subcommands.js.map +1 -0
  1419. package/dist/task-cli/cli.d.ts +39 -0
  1420. package/dist/task-cli/cli.js +773 -0
  1421. package/dist/task-cli/cli.js.map +1 -0
  1422. package/dist/task-cli/discovery.d.ts +32 -0
  1423. package/dist/task-cli/discovery.js +133 -0
  1424. package/dist/task-cli/discovery.js.map +1 -0
  1425. package/dist/task-cli/hint.d.ts +20 -0
  1426. package/dist/task-cli/hint.js +15 -0
  1427. package/dist/task-cli/hint.js.map +1 -0
  1428. package/dist/task-cli/http.d.ts +42 -0
  1429. package/dist/task-cli/http.js +110 -0
  1430. package/dist/task-cli/http.js.map +1 -0
  1431. package/dist/task-cli/projections.d.ts +68 -0
  1432. package/dist/task-cli/projections.js +76 -0
  1433. package/dist/task-cli/projections.js.map +1 -0
  1434. package/dist/task-cli/watch.d.ts +119 -0
  1435. package/dist/task-cli/watch.js +494 -0
  1436. package/dist/task-cli/watch.js.map +1 -0
  1437. package/dist/ui-state.d.ts +41 -0
  1438. package/dist/ui-state.js +93 -0
  1439. package/dist/ui-state.js.map +1 -0
  1440. package/dist/update-check.d.ts +2 -0
  1441. package/dist/update-check.js +28 -0
  1442. package/dist/update-check.js.map +1 -0
  1443. package/dist/use-command-notice.d.ts +1 -0
  1444. package/dist/use-command-notice.js +6 -0
  1445. package/dist/use-command-notice.js.map +1 -0
  1446. package/dist/voice/decide.d.ts +35 -0
  1447. package/dist/voice/decide.js +329 -0
  1448. package/dist/voice/decide.js.map +1 -0
  1449. package/dist/voice/decision-log.d.ts +48 -0
  1450. package/dist/voice/decision-log.js +117 -0
  1451. package/dist/voice/decision-log.js.map +1 -0
  1452. package/dist/voice/engine.d.ts +119 -0
  1453. package/dist/voice/engine.js +61 -0
  1454. package/dist/voice/engine.js.map +1 -0
  1455. package/dist/voice/fake-engine.d.ts +10 -0
  1456. package/dist/voice/fake-engine.js +192 -0
  1457. package/dist/voice/fake-engine.js.map +1 -0
  1458. package/dist/voice/jev-engine.d.ts +17 -0
  1459. package/dist/voice/jev-engine.js +110 -0
  1460. package/dist/voice/jev-engine.js.map +1 -0
  1461. package/dist/voice/pending-ask.d.ts +17 -0
  1462. package/dist/voice/pending-ask.js +51 -0
  1463. package/dist/voice/pending-ask.js.map +1 -0
  1464. package/dist/voice/routes.d.ts +115 -0
  1465. package/dist/voice/routes.js +92 -0
  1466. package/dist/voice/routes.js.map +1 -0
  1467. package/dist/voice/sentence.d.ts +21 -0
  1468. package/dist/voice/sentence.js +61 -0
  1469. package/dist/voice/sentence.js.map +1 -0
  1470. package/dist/voice/thresholds.d.ts +28 -0
  1471. package/dist/voice/thresholds.js +29 -0
  1472. package/dist/voice/thresholds.js.map +1 -0
  1473. package/dist/webhooks/cli.d.ts +18 -0
  1474. package/dist/webhooks/cli.js +127 -0
  1475. package/dist/webhooks/cli.js.map +1 -0
  1476. package/dist/webhooks/prompt.d.ts +5 -0
  1477. package/dist/webhooks/prompt.js +26 -0
  1478. package/dist/webhooks/prompt.js.map +1 -0
  1479. package/dist/workflows/active-run.d.ts +46 -0
  1480. package/dist/workflows/active-run.js +46 -0
  1481. package/dist/workflows/active-run.js.map +1 -0
  1482. package/dist/workflows/attachment-path.d.ts +6 -0
  1483. package/dist/workflows/attachment-path.js +40 -0
  1484. package/dist/workflows/attachment-path.js.map +1 -0
  1485. package/dist/workflows/completion-policy.d.ts +98 -0
  1486. package/dist/workflows/completion-policy.js +77 -0
  1487. package/dist/workflows/completion-policy.js.map +1 -0
  1488. package/dist/workflows/continuation-admission.d.ts +1229 -0
  1489. package/dist/workflows/continuation-admission.js +277 -0
  1490. package/dist/workflows/continuation-admission.js.map +1 -0
  1491. package/dist/workflows/execution-account.d.ts +13 -0
  1492. package/dist/workflows/execution-account.js +18 -0
  1493. package/dist/workflows/execution-account.js.map +1 -0
  1494. package/dist/workflows/grouped-command.d.ts +31 -0
  1495. package/dist/workflows/grouped-command.js +147 -0
  1496. package/dist/workflows/grouped-command.js.map +1 -0
  1497. package/dist/workflows/input-acknowledgement.d.ts +233 -0
  1498. package/dist/workflows/input-acknowledgement.js +41 -0
  1499. package/dist/workflows/input-acknowledgement.js.map +1 -0
  1500. package/dist/workflows/line-order.d.ts +5 -0
  1501. package/dist/workflows/line-order.js +25 -0
  1502. package/dist/workflows/line-order.js.map +1 -0
  1503. package/dist/workflows/load.d.ts +19 -0
  1504. package/dist/workflows/load.js +74 -0
  1505. package/dist/workflows/load.js.map +1 -0
  1506. package/dist/workflows/outcome-batches.d.ts +32 -0
  1507. package/dist/workflows/outcome-batches.js +55 -0
  1508. package/dist/workflows/outcome-batches.js.map +1 -0
  1509. package/dist/workflows/pasted-content.d.ts +60 -0
  1510. package/dist/workflows/pasted-content.js +69 -0
  1511. package/dist/workflows/pasted-content.js.map +1 -0
  1512. package/dist/workflows/question-routing.d.ts +16 -0
  1513. package/dist/workflows/question-routing.js +28 -0
  1514. package/dist/workflows/question-routing.js.map +1 -0
  1515. package/dist/workflows/run/attachment-writer.d.ts +34 -0
  1516. package/dist/workflows/run/attachment-writer.js +98 -0
  1517. package/dist/workflows/run/attachment-writer.js.map +1 -0
  1518. package/dist/workflows/run/auto-resume.d.ts +91 -0
  1519. package/dist/workflows/run/auto-resume.js +247 -0
  1520. package/dist/workflows/run/auto-resume.js.map +1 -0
  1521. package/dist/workflows/run/cezar-tools.d.ts +45 -0
  1522. package/dist/workflows/run/cezar-tools.js +117 -0
  1523. package/dist/workflows/run/cezar-tools.js.map +1 -0
  1524. package/dist/workflows/run/completion-gate.d.ts +77 -0
  1525. package/dist/workflows/run/completion-gate.js +93 -0
  1526. package/dist/workflows/run/completion-gate.js.map +1 -0
  1527. package/dist/workflows/run/compose.d.ts +181 -0
  1528. package/dist/workflows/run/compose.js +413 -0
  1529. package/dist/workflows/run/compose.js.map +1 -0
  1530. package/dist/workflows/run/constants.d.ts +48 -0
  1531. package/dist/workflows/run/constants.js +49 -0
  1532. package/dist/workflows/run/constants.js.map +1 -0
  1533. package/dist/workflows/run/continuation-acceptance.d.ts +70 -0
  1534. package/dist/workflows/run/continuation-acceptance.js +188 -0
  1535. package/dist/workflows/run/continuation-acceptance.js.map +1 -0
  1536. package/dist/workflows/run/continuation-session.d.ts +130 -0
  1537. package/dist/workflows/run/continuation-session.js +597 -0
  1538. package/dist/workflows/run/continuation-session.js.map +1 -0
  1539. package/dist/workflows/run/drop-active.d.ts +4 -0
  1540. package/dist/workflows/run/drop-active.js +11 -0
  1541. package/dist/workflows/run/drop-active.js.map +1 -0
  1542. package/dist/workflows/run/family-reconciler.d.ts +78 -0
  1543. package/dist/workflows/run/family-reconciler.js +308 -0
  1544. package/dist/workflows/run/family-reconciler.js.map +1 -0
  1545. package/dist/workflows/run/human-waits.d.ts +85 -0
  1546. package/dist/workflows/run/human-waits.js +163 -0
  1547. package/dist/workflows/run/human-waits.js.map +1 -0
  1548. package/dist/workflows/run/inbox-claims.d.ts +38 -0
  1549. package/dist/workflows/run/inbox-claims.js +108 -0
  1550. package/dist/workflows/run/inbox-claims.js.map +1 -0
  1551. package/dist/workflows/run/input-batch.d.ts +15 -0
  1552. package/dist/workflows/run/input-batch.js +32 -0
  1553. package/dist/workflows/run/input-batch.js.map +1 -0
  1554. package/dist/workflows/run/input-delivery.d.ts +202 -0
  1555. package/dist/workflows/run/input-delivery.js +818 -0
  1556. package/dist/workflows/run/input-delivery.js.map +1 -0
  1557. package/dist/workflows/run/input-receipts.d.ts +65 -0
  1558. package/dist/workflows/run/input-receipts.js +221 -0
  1559. package/dist/workflows/run/input-receipts.js.map +1 -0
  1560. package/dist/workflows/run/input-timers.d.ts +10 -0
  1561. package/dist/workflows/run/input-timers.js +32 -0
  1562. package/dist/workflows/run/input-timers.js.map +1 -0
  1563. package/dist/workflows/run/launch-context.d.ts +62 -0
  1564. package/dist/workflows/run/launch-context.js +119 -0
  1565. package/dist/workflows/run/launch-context.js.map +1 -0
  1566. package/dist/workflows/run/launch-read-resolver.d.ts +510 -0
  1567. package/dist/workflows/run/launch-read-resolver.js +658 -0
  1568. package/dist/workflows/run/launch-read-resolver.js.map +1 -0
  1569. package/dist/workflows/run/launch-settings.d.ts +10 -0
  1570. package/dist/workflows/run/launch-settings.js +11 -0
  1571. package/dist/workflows/run/launch-settings.js.map +1 -0
  1572. package/dist/workflows/run/live-session-state.d.ts +49 -0
  1573. package/dist/workflows/run/live-session-state.js +83 -0
  1574. package/dist/workflows/run/live-session-state.js.map +1 -0
  1575. package/dist/workflows/run/maintenance-claims.d.ts +47 -0
  1576. package/dist/workflows/run/maintenance-claims.js +83 -0
  1577. package/dist/workflows/run/maintenance-claims.js.map +1 -0
  1578. package/dist/workflows/run/memory-guard.d.ts +25 -0
  1579. package/dist/workflows/run/memory-guard.js +64 -0
  1580. package/dist/workflows/run/memory-guard.js.map +1 -0
  1581. package/dist/workflows/run/opening.d.ts +30 -0
  1582. package/dist/workflows/run/opening.js +6 -0
  1583. package/dist/workflows/run/opening.js.map +1 -0
  1584. package/dist/workflows/run/pending-ask-facts.d.ts +10 -0
  1585. package/dist/workflows/run/pending-ask-facts.js +19 -0
  1586. package/dist/workflows/run/pending-ask-facts.js.map +1 -0
  1587. package/dist/workflows/run/prompts.d.ts +74 -0
  1588. package/dist/workflows/run/prompts.js +140 -0
  1589. package/dist/workflows/run/prompts.js.map +1 -0
  1590. package/dist/workflows/run/queued-input.d.ts +108 -0
  1591. package/dist/workflows/run/queued-input.js +249 -0
  1592. package/dist/workflows/run/queued-input.js.map +1 -0
  1593. package/dist/workflows/run/queued-revival.d.ts +44 -0
  1594. package/dist/workflows/run/queued-revival.js +124 -0
  1595. package/dist/workflows/run/queued-revival.js.map +1 -0
  1596. package/dist/workflows/run/readonly-collections.d.ts +24 -0
  1597. package/dist/workflows/run/readonly-collections.js +33 -0
  1598. package/dist/workflows/run/readonly-collections.js.map +1 -0
  1599. package/dist/workflows/run/repo-root-lease.d.ts +34 -0
  1600. package/dist/workflows/run/repo-root-lease.js +71 -0
  1601. package/dist/workflows/run/repo-root-lease.js.map +1 -0
  1602. package/dist/workflows/run/resolved-wait-input-batch.d.ts +7 -0
  1603. package/dist/workflows/run/resolved-wait-input-batch.js +23 -0
  1604. package/dist/workflows/run/resolved-wait-input-batch.js.map +1 -0
  1605. package/dist/workflows/run/run-cancel.d.ts +36 -0
  1606. package/dist/workflows/run/run-cancel.js +130 -0
  1607. package/dist/workflows/run/run-cancel.js.map +1 -0
  1608. package/dist/workflows/run/run-finish.d.ts +72 -0
  1609. package/dist/workflows/run/run-finish.js +256 -0
  1610. package/dist/workflows/run/run-finish.js.map +1 -0
  1611. package/dist/workflows/run/run-guards.d.ts +15 -0
  1612. package/dist/workflows/run/run-guards.js +39 -0
  1613. package/dist/workflows/run/run-guards.js.map +1 -0
  1614. package/dist/workflows/run/run-line.d.ts +187 -0
  1615. package/dist/workflows/run/run-line.js +438 -0
  1616. package/dist/workflows/run/run-line.js.map +1 -0
  1617. package/dist/workflows/run/run-recovery.d.ts +116 -0
  1618. package/dist/workflows/run/run-recovery.js +422 -0
  1619. package/dist/workflows/run/run-recovery.js.map +1 -0
  1620. package/dist/workflows/run/run-settlement.d.ts +177 -0
  1621. package/dist/workflows/run/run-settlement.js +504 -0
  1622. package/dist/workflows/run/run-settlement.js.map +1 -0
  1623. package/dist/workflows/run/run-skills.d.ts +114 -0
  1624. package/dist/workflows/run/run-skills.js +233 -0
  1625. package/dist/workflows/run/run-skills.js.map +1 -0
  1626. package/dist/workflows/run/run-start.d.ts +64 -0
  1627. package/dist/workflows/run/run-start.js +126 -0
  1628. package/dist/workflows/run/run-start.js.map +1 -0
  1629. package/dist/workflows/run/run-workspace.d.ts +25 -0
  1630. package/dist/workflows/run/run-workspace.js +66 -0
  1631. package/dist/workflows/run/run-workspace.js.map +1 -0
  1632. package/dist/workflows/run/session-events.d.ts +155 -0
  1633. package/dist/workflows/run/session-events.js +282 -0
  1634. package/dist/workflows/run/session-events.js.map +1 -0
  1635. package/dist/workflows/run/step-decisions.d.ts +37 -0
  1636. package/dist/workflows/run/step-decisions.js +43 -0
  1637. package/dist/workflows/run/step-decisions.js.map +1 -0
  1638. package/dist/workflows/run/step-loop.d.ts +143 -0
  1639. package/dist/workflows/run/step-loop.js +488 -0
  1640. package/dist/workflows/run/step-loop.js.map +1 -0
  1641. package/dist/workflows/run/step-session.d.ts +65 -0
  1642. package/dist/workflows/run/step-session.js +280 -0
  1643. package/dist/workflows/run/step-session.js.map +1 -0
  1644. package/dist/workflows/run/steps.d.ts +13 -0
  1645. package/dist/workflows/run/steps.js +14 -0
  1646. package/dist/workflows/run/steps.js.map +1 -0
  1647. package/dist/workflows/run/subagent-waits.d.ts +138 -0
  1648. package/dist/workflows/run/subagent-waits.js +305 -0
  1649. package/dist/workflows/run/subagent-waits.js.map +1 -0
  1650. package/dist/workflows/run/tracked-work.d.ts +12 -0
  1651. package/dist/workflows/run/tracked-work.js +29 -0
  1652. package/dist/workflows/run/tracked-work.js.map +1 -0
  1653. package/dist/workflows/run/turn-bookkeeping.d.ts +67 -0
  1654. package/dist/workflows/run/turn-bookkeeping.js +173 -0
  1655. package/dist/workflows/run/turn-bookkeeping.js.map +1 -0
  1656. package/dist/workflows/run/turn-boundary.d.ts +215 -0
  1657. package/dist/workflows/run/turn-boundary.js +329 -0
  1658. package/dist/workflows/run/turn-boundary.js.map +1 -0
  1659. package/dist/workflows/run/turn-markers.d.ts +62 -0
  1660. package/dist/workflows/run/turn-markers.js +86 -0
  1661. package/dist/workflows/run/turn-markers.js.map +1 -0
  1662. package/dist/workflows/run/turn-nudges.d.ts +104 -0
  1663. package/dist/workflows/run/turn-nudges.js +244 -0
  1664. package/dist/workflows/run/turn-nudges.js.map +1 -0
  1665. package/dist/workflows/run/turn-settler.d.ts +161 -0
  1666. package/dist/workflows/run/turn-settler.js +469 -0
  1667. package/dist/workflows/run/turn-settler.js.map +1 -0
  1668. package/dist/workflows/run/types.d.ts +293 -0
  1669. package/dist/workflows/run/types.js +2 -0
  1670. package/dist/workflows/run/types.js.map +1 -0
  1671. package/dist/workflows/run/usage-accounting.d.ts +49 -0
  1672. package/dist/workflows/run/usage-accounting.js +213 -0
  1673. package/dist/workflows/run/usage-accounting.js.map +1 -0
  1674. package/dist/workflows/run/wait-engine.d.ts +1210 -0
  1675. package/dist/workflows/run/wait-engine.js +456 -0
  1676. package/dist/workflows/run/wait-engine.js.map +1 -0
  1677. package/dist/workflows/run/wait-kinds.d.ts +336 -0
  1678. package/dist/workflows/run/wait-kinds.js +471 -0
  1679. package/dist/workflows/run/wait-kinds.js.map +1 -0
  1680. package/dist/workflows/run/wait-registration-tool.d.ts +3 -0
  1681. package/dist/workflows/run/wait-registration-tool.js +68 -0
  1682. package/dist/workflows/run/wait-registration-tool.js.map +1 -0
  1683. package/dist/workflows/run/wait-registration.d.ts +7 -0
  1684. package/dist/workflows/run/wait-registration.js +39 -0
  1685. package/dist/workflows/run/wait-registration.js.map +1 -0
  1686. package/dist/workflows/run/wait-registry.d.ts +120 -0
  1687. package/dist/workflows/run/wait-registry.js +365 -0
  1688. package/dist/workflows/run/wait-registry.js.map +1 -0
  1689. package/dist/workflows/run/wait-watches.d.ts +13 -0
  1690. package/dist/workflows/run/wait-watches.js +12 -0
  1691. package/dist/workflows/run/wait-watches.js.map +1 -0
  1692. package/dist/workflows/run/wake-admission.d.ts +150 -0
  1693. package/dist/workflows/run/wake-admission.js +397 -0
  1694. package/dist/workflows/run/wake-admission.js.map +1 -0
  1695. package/dist/workflows/run/wake-ledger.d.ts +61 -0
  1696. package/dist/workflows/run/wake-ledger.js +78 -0
  1697. package/dist/workflows/run/wake-ledger.js.map +1 -0
  1698. package/dist/workflows/run/wake-retries.d.ts +31 -0
  1699. package/dist/workflows/run/wake-retries.js +93 -0
  1700. package/dist/workflows/run/wake-retries.js.map +1 -0
  1701. package/dist/workflows/run/worker-executions.d.ts +54 -0
  1702. package/dist/workflows/run/worker-executions.js +149 -0
  1703. package/dist/workflows/run/worker-executions.js.map +1 -0
  1704. package/dist/workflows/run/worker-orphans.d.ts +91 -0
  1705. package/dist/workflows/run/worker-orphans.js +275 -0
  1706. package/dist/workflows/run/worker-orphans.js.map +1 -0
  1707. package/dist/workflows/run/worker-questions.d.ts +169 -0
  1708. package/dist/workflows/run/worker-questions.js +464 -0
  1709. package/dist/workflows/run/worker-questions.js.map +1 -0
  1710. package/dist/workflows/run/workflow-position.d.ts +7 -0
  1711. package/dist/workflows/run/workflow-position.js +9 -0
  1712. package/dist/workflows/run/workflow-position.js.map +1 -0
  1713. package/dist/workflows/run/worktree-autosave.d.ts +48 -0
  1714. package/dist/workflows/run/worktree-autosave.js +175 -0
  1715. package/dist/workflows/run/worktree-autosave.js.map +1 -0
  1716. package/dist/workflows/run-scheduling.d.ts +38 -0
  1717. package/dist/workflows/run-scheduling.js +76 -0
  1718. package/dist/workflows/run-scheduling.js.map +1 -0
  1719. package/dist/workflows/run-states.d.ts +73 -0
  1720. package/dist/workflows/run-states.js +233 -0
  1721. package/dist/workflows/run-states.js.map +1 -0
  1722. package/dist/workflows/run.d.ts +275 -0
  1723. package/dist/workflows/run.js +626 -0
  1724. package/dist/workflows/run.js.map +1 -0
  1725. package/dist/workflows/turn-end.d.ts +119 -0
  1726. package/dist/workflows/turn-end.js +74 -0
  1727. package/dist/workflows/turn-end.js.map +1 -0
  1728. package/dist/workflows/types.d.ts +83 -0
  1729. package/dist/workflows/types.js +192 -0
  1730. package/dist/workflows/types.js.map +1 -0
  1731. package/dist/workflows/wait-scope.d.ts +75 -0
  1732. package/dist/workflows/wait-scope.js +115 -0
  1733. package/dist/workflows/wait-scope.js.map +1 -0
  1734. package/dist/workflows/waits.d.ts +58 -0
  1735. package/dist/workflows/waits.js +89 -0
  1736. package/dist/workflows/waits.js.map +1 -0
  1737. package/dist/workspace/agent-accounts.d.ts +135 -0
  1738. package/dist/workspace/agent-accounts.js +353 -0
  1739. package/dist/workspace/agent-accounts.js.map +1 -0
  1740. package/dist/workspace/agent-profiles.d.ts +125 -0
  1741. package/dist/workspace/agent-profiles.js +190 -0
  1742. package/dist/workspace/agent-profiles.js.map +1 -0
  1743. package/dist/workspace/backup-cli.d.ts +9 -0
  1744. package/dist/workspace/backup-cli.js +147 -0
  1745. package/dist/workspace/backup-cli.js.map +1 -0
  1746. package/dist/workspace/backups.d.ts +36 -0
  1747. package/dist/workspace/backups.js +249 -0
  1748. package/dist/workspace/backups.js.map +1 -0
  1749. package/dist/workspace/config.d.ts +179 -0
  1750. package/dist/workspace/config.js +396 -0
  1751. package/dist/workspace/config.js.map +1 -0
  1752. package/dist/workspace/migrations.d.ts +37 -0
  1753. package/dist/workspace/migrations.js +149 -0
  1754. package/dist/workspace/migrations.js.map +1 -0
  1755. package/dist/workspace/projects-cli.d.ts +27 -0
  1756. package/dist/workspace/projects-cli.js +175 -0
  1757. package/dist/workspace/projects-cli.js.map +1 -0
  1758. package/dist/workspace/projects.d.ts +131 -0
  1759. package/dist/workspace/projects.js +274 -0
  1760. package/dist/workspace/projects.js.map +1 -0
  1761. package/dist/workspace/root-probe-cache.d.ts +10 -0
  1762. package/dist/workspace/root-probe-cache.js +43 -0
  1763. package/dist/workspace/root-probe-cache.js.map +1 -0
  1764. package/dist/workspace/semaphore.d.ts +147 -0
  1765. package/dist/workspace/semaphore.js +196 -0
  1766. package/dist/workspace/semaphore.js.map +1 -0
  1767. package/dist/workspace/ui-state.d.ts +17 -0
  1768. package/dist/workspace/ui-state.js +59 -0
  1769. package/dist/workspace/ui-state.js.map +1 -0
  1770. package/dist/workspace/webhooks.d.ts +40 -0
  1771. package/dist/workspace/webhooks.js +146 -0
  1772. package/dist/workspace/webhooks.js.map +1 -0
  1773. package/dist/worktree-manifest.d.ts +165 -0
  1774. package/dist/worktree-manifest.js +535 -0
  1775. package/dist/worktree-manifest.js.map +1 -0
  1776. package/dist/worktree-setup.d.ts +88 -0
  1777. package/dist/worktree-setup.js +170 -0
  1778. package/dist/worktree-setup.js.map +1 -0
  1779. package/package.json +80 -4
  1780. package/scripts/benchmark-family-reconcile.ts +119 -0
  1781. package/scripts/benchmark-home.ts +32 -0
  1782. package/scripts/benchmark-project-probes.mjs +158 -0
  1783. package/scripts/benchmark-run-store-fixture.ts +432 -0
  1784. package/scripts/benchmark-run-store.ts +767 -0
  1785. package/scripts/benchmark-stuck-destroys.ts +144 -0
  1786. package/scripts/benchmark-workspace-events.ts +339 -0
  1787. package/scripts/check-pack.mjs +48 -0
  1788. package/scripts/inline-contract.mjs +165 -0
  1789. package/scripts/install-as-command.mjs +125 -0
  1790. package/scripts/measure-transcript-facts-health.mjs +103 -0
  1791. package/scripts/measure-transcript-facts-lag.mjs +69 -0
  1792. package/scripts/mock-autonomous.mjs +13 -0
  1793. package/scripts/mock-ci-tool.mjs +159 -0
  1794. package/scripts/mock-claude-model-refusal.mjs +76 -0
  1795. package/scripts/mock-claude-subagents.mjs +54 -0
  1796. package/scripts/mock-claude.mjs +800 -0
  1797. package/scripts/mock-codex-app-server.mjs +767 -0
  1798. package/scripts/mock-codex-coalesce-steer.mjs +59 -0
  1799. package/scripts/mock-codex-reverse-steer.mjs +143 -0
  1800. package/scripts/mock-codex-subagents.mjs +52 -0
  1801. package/scripts/mock-controls.d.mts +11 -0
  1802. package/scripts/mock-controls.mjs +13 -0
  1803. package/scripts/mock-cursor-hang-stdin-late.mjs +35 -0
  1804. package/scripts/mock-cursor-hang-stdin.mjs +30 -0
  1805. package/scripts/mock-cursor-print.mjs +237 -0
  1806. package/scripts/mock-deferred-turn-start.mjs +16 -0
  1807. package/scripts/mock-delivery-control.d.mts +23 -0
  1808. package/scripts/mock-delivery-control.mjs +80 -0
  1809. package/scripts/mock-env-record.mjs +11 -0
  1810. package/scripts/mock-failure-control.d.mts +13 -0
  1811. package/scripts/mock-failure-control.mjs +68 -0
  1812. package/scripts/mock-lifecycle.mjs +51 -0
  1813. package/scripts/mock-multi-pr.mjs +10 -0
  1814. package/scripts/mock-nudge.mjs +43 -0
  1815. package/scripts/mock-omp-rpc.mjs +536 -0
  1816. package/scripts/mock-opencode-serve.mjs +1000 -0
  1817. package/scripts/mock-pi-rpc.mjs +421 -0
  1818. package/scripts/mock-publish.mjs +13 -0
  1819. package/scripts/mock-runner-crash.mjs +64 -0
  1820. package/scripts/mock-scenario.d.mts +71 -0
  1821. package/scripts/mock-scenario.mjs +295 -0
  1822. package/scripts/mock-session-context.d.mts +5 -0
  1823. package/scripts/mock-session-context.mjs +56 -0
  1824. package/scripts/mock-silent-tail.mjs +93 -0
  1825. package/scripts/mock-turn-messages.mjs +5 -0
  1826. package/scripts/mock-wire-evidence.config.mjs +12 -0
  1827. package/scripts/mock-wire-recorder.mjs +66 -0
  1828. package/scripts/mock-wire-tools.mjs +7 -0
  1829. package/scripts/omp-ci-wait.mjs +29 -0
  1830. package/scripts/opencode-task-scope.d.mts +18 -0
  1831. package/scripts/opencode-task-scope.mjs +59 -0
  1832. package/scripts/parity-rows.ts +160 -0
  1833. package/scripts/pi-ci-wait.mjs +17 -0
  1834. package/scripts/pi-default-tools.mjs +22 -0
  1835. package/scripts/pi-project-skills.mjs +59 -0
  1836. package/scripts/pi-retry-degraded-service.mjs +16 -0
  1837. package/scripts/probe-cursor-print.mjs +699 -0
  1838. package/scripts/probe-session-env.ts +8 -0
  1839. package/scripts/product-env.mjs +6 -0
  1840. package/scripts/product-identity.mjs +12 -0
  1841. package/scripts/record-mock-wires.mjs +16 -0
  1842. package/scripts/seed-archive-profile.ts +53 -0
  1843. package/scripts/sync-readme.mjs +20 -0
  1844. package/scripts/test-process-usage.mjs +47 -0
  1845. package/scripts/transcript-facts-fixture.mjs +53 -0
  1846. package/scripts/transcript-facts-timing.mjs +42 -0
  1847. package/scripts/voice-replay.ts +50 -0
  1848. package/scripts/windows-workspace-identity.cs +208 -0
  1849. package/scripts/windows-workspace-identity.ps1 +10 -0
  1850. package/web/dist/assets/activity-motion-0wHCeUs7.css +1 -0
  1851. package/web/dist/assets/activity-motion-SGth5vR4.js +2 -0
  1852. package/web/dist/assets/activity-route-D8otXwOA.js +1 -0
  1853. package/web/dist/assets/agent-accounts-6EuZhy-N.js +18 -0
  1854. package/web/dist/assets/alert-dialog-vFjLgfK4.js +1 -0
  1855. package/web/dist/assets/app-window-CSHwDX9N.js +1 -0
  1856. package/web/dist/assets/arrow-right-Dh_Lx3um.js +1 -0
  1857. package/web/dist/assets/bundle-mjs-BT31bpU6.js +1 -0
  1858. package/web/dist/assets/button-BEK7XKhS.js +3 -0
  1859. package/web/dist/assets/centered-state-CPgI8cCO.js +1 -0
  1860. package/web/dist/assets/cez-idle-BT0U4GN_.js +1 -0
  1861. package/web/dist/assets/chunk-BO2N2NFS-DE6qKn3r.js +131 -0
  1862. package/web/dist/assets/commit-diff-panel-DzyWgn1Z.js +1 -0
  1863. package/web/dist/assets/control-locations-CexZsd3M.js +1 -0
  1864. package/web/dist/assets/core-BCsw8oQw.js +12 -0
  1865. package/web/dist/assets/createLucideIcon-BHp8sXmF.js +1 -0
  1866. package/web/dist/assets/css-BsVw1vtW.js +1 -0
  1867. package/web/dist/assets/design-icons-DmYTv2r1.js +1 -0
  1868. package/web/dist/assets/diff-DBDiZl58.js +3 -0
  1869. package/web/dist/assets/diff-controls-DXyB0aDl.js +1 -0
  1870. package/web/dist/assets/diff-view-DiKAwVMH.js +11 -0
  1871. package/web/dist/assets/diff-woXpYk--.js +1 -0
  1872. package/web/dist/assets/dropdown-menu-DYflHa4m.js +1 -0
  1873. package/web/dist/assets/engine-javascript-FQvzRocB.js +141 -0
  1874. package/web/dist/assets/es2015-BO600Xfi.js +41 -0
  1875. package/web/dist/assets/eye-B8okNWXU.js +1 -0
  1876. package/web/dist/assets/file-preview-DTSRkmMo.js +2 -0
  1877. package/web/dist/assets/git-toolbar-U4s46kUd.js +1 -0
  1878. package/web/dist/assets/github-UaBp2yRF.js +1 -0
  1879. package/web/dist/assets/github-sidebar-model-czjLsgVJ.js +1 -0
  1880. package/web/dist/assets/global-activity-route-B2N2Nz0H.js +1 -0
  1881. package/web/dist/assets/go-rLFTqkRN.js +1 -0
  1882. package/web/dist/assets/highlighted-body-OFNGDK62-BL-MfFgl.js +1 -0
  1883. package/web/dist/assets/hourglass-B0lPAJvT.js +1 -0
  1884. package/web/dist/assets/html-BY76lXLH.js +1 -0
  1885. package/web/dist/assets/image-preview-XPCPclpG.js +1 -0
  1886. package/web/dist/assets/index-B18AqW0Z.css +1 -0
  1887. package/web/dist/assets/index-xj-3O89_.js +14 -0
  1888. package/web/dist/assets/index.global-D3Ga_D3Y.js +1 -0
  1889. package/web/dist/assets/info-DA1x_4bz.js +1 -0
  1890. package/web/dist/assets/javascript-BgS3c2Ky.js +1 -0
  1891. package/web/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  1892. package/web/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  1893. package/web/dist/assets/json-qhed-kSA.js +1 -0
  1894. package/web/dist/assets/jsonc-CYpm1nAK.js +1 -0
  1895. package/web/dist/assets/jsx-Bz0zcwM4.js +1 -0
  1896. package/web/dist/assets/lib-BxQXEXDF.js +1 -0
  1897. package/web/dist/assets/live-protocol-BDY7JJpT.js +64 -0
  1898. package/web/dist/assets/live-refetch-C-Ony2Yr.js +1 -0
  1899. package/web/dist/assets/live-worker-BWdeGzQX.ts +34 -0
  1900. package/web/dist/assets/loader-circle-CZkGEdoI.js +1 -0
  1901. package/web/dist/assets/markdown-BBDDg-4t.js +1 -0
  1902. package/web/dist/assets/markdown-BYOwaDjH.js +1 -0
  1903. package/web/dist/assets/markdown-UdZ_toya.js +6 -0
  1904. package/web/dist/assets/mermaid-GHXKKRXX-C4jxqUUb.js +1 -0
  1905. package/web/dist/assets/mermaid.min-3O9YjB2l.js +1 -0
  1906. package/web/dist/assets/message-square-B-MD-8rD.js +1 -0
  1907. package/web/dist/assets/nav-row-styles-BE99gD3_.js +1 -0
  1908. package/web/dist/assets/popover-CpULuQSm.js +1 -0
  1909. package/web/dist/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2 +0 -0
  1910. package/web/dist/assets/poppins-devanagari-400-normal-CqVvlrh5.woff +0 -0
  1911. package/web/dist/assets/poppins-devanagari-500-normal-BIdkeU1p.woff2 +0 -0
  1912. package/web/dist/assets/poppins-devanagari-500-normal-DMPDjHtT.woff +0 -0
  1913. package/web/dist/assets/poppins-devanagari-600-normal-ClASKHrr.woff +0 -0
  1914. package/web/dist/assets/poppins-devanagari-600-normal-STEjXBNN.woff2 +0 -0
  1915. package/web/dist/assets/poppins-latin-400-normal-BOb3E3N0.woff +0 -0
  1916. package/web/dist/assets/poppins-latin-400-normal-cpxAROuN.woff2 +0 -0
  1917. package/web/dist/assets/poppins-latin-500-normal-C8OXljZJ.woff2 +0 -0
  1918. package/web/dist/assets/poppins-latin-500-normal-DGXqpDMm.woff +0 -0
  1919. package/web/dist/assets/poppins-latin-600-normal-BJdTmd5m.woff +0 -0
  1920. package/web/dist/assets/poppins-latin-600-normal-zEkxB9Mr.woff2 +0 -0
  1921. package/web/dist/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff +0 -0
  1922. package/web/dist/assets/poppins-latin-ext-400-normal-by3JarPu.woff2 +0 -0
  1923. package/web/dist/assets/poppins-latin-ext-500-normal-CK-6C4Hw.woff2 +0 -0
  1924. package/web/dist/assets/poppins-latin-ext-500-normal-CgAe2rWW.woff +0 -0
  1925. package/web/dist/assets/poppins-latin-ext-600-normal-CAhIAdZj.woff2 +0 -0
  1926. package/web/dist/assets/poppins-latin-ext-600-normal-Df5ffKXP.woff +0 -0
  1927. package/web/dist/assets/preview-pane-connected-CgRK7GzB.js +3 -0
  1928. package/web/dist/assets/project-router-CimAoN1H.js +1 -0
  1929. package/web/dist/assets/project-scope-context-DMpvJqIm.js +4 -0
  1930. package/web/dist/assets/python-gzcpVVnB.js +1 -0
  1931. package/web/dist/assets/queries-BIOp8jLx.js +1 -0
  1932. package/web/dist/assets/react-runtime-CCIEwYL0.js +9 -0
  1933. package/web/dist/assets/repo-git-DVXNOJDT.css +1 -0
  1934. package/web/dist/assets/repo-git-XkyTfP9G.js +1 -0
  1935. package/web/dist/assets/report-reader-CZjYS5Aw.js +1 -0
  1936. package/web/dist/assets/report-title-D4Mbu2Er.js +1 -0
  1937. package/web/dist/assets/reports-B7QAzibP.css +1 -0
  1938. package/web/dist/assets/reports-D_2sFE1y.js +1 -0
  1939. package/web/dist/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  1940. package/web/dist/assets/run-header-BwPDVPpg.js +2 -0
  1941. package/web/dist/assets/run-header-CC7VUTg9.css +1 -0
  1942. package/web/dist/assets/rust-Cfkwpbl8.js +1 -0
  1943. package/web/dist/assets/shellscript-CLZ0U2zV.js +1 -0
  1944. package/web/dist/assets/skill-empty-hint-YDmkqgo-.js +1 -0
  1945. package/web/dist/assets/skills-BkXe4p4q.js +1 -0
  1946. package/web/dist/assets/skills-DFBiAuJG.js +1 -0
  1947. package/web/dist/assets/skills-workflows-C21NystW.css +1 -0
  1948. package/web/dist/assets/sortable.esm-zp_qkYGV.js +5 -0
  1949. package/web/dist/assets/sql-BsFa4tDR.js +1 -0
  1950. package/web/dist/assets/tab-link-BIweqlIZ.js +1 -0
  1951. package/web/dist/assets/task-changes-USNHNm_T.js +1 -0
  1952. package/web/dist/assets/task-commits-kHqlOJe_.js +1 -0
  1953. package/web/dist/assets/task-files-wTWwLR39.js +1 -0
  1954. package/web/dist/assets/task-github-item-GzaQjkF1.js +1 -0
  1955. package/web/dist/assets/task-thread-BZX863UN.js +9 -0
  1956. package/web/dist/assets/task-thread-DtQ6uGfQ.css +1 -0
  1957. package/web/dist/assets/textarea-FAUkHz1K.js +1 -0
  1958. package/web/dist/assets/thread-state-CBzx2hmX.js +4 -0
  1959. package/web/dist/assets/toaster-pthKGWiE.js +1 -0
  1960. package/web/dist/assets/toml-CcmNWLt0.js +1 -0
  1961. package/web/dist/assets/tsx-udAQXfEw.js +1 -0
  1962. package/web/dist/assets/typescript-bsJCZSQ-.js +1 -0
  1963. package/web/dist/assets/use-hand-to-agent-state-Bav9eT3b.js +1 -0
  1964. package/web/dist/assets/use-hand-to-agent-state-C7esPJ-N.css +1 -0
  1965. package/web/dist/assets/useInfiniteQuery-CQI4BO4C.js +1 -0
  1966. package/web/dist/assets/useQuery-Bkq-x4Id.js +1 -0
  1967. package/web/dist/assets/workflows-D871Gx--.js +7 -0
  1968. package/web/dist/assets/ws-DspW9wBH.js +1 -0
  1969. package/web/dist/assets/yaml-rwi0_p6S.js +1 -0
  1970. package/web/dist/assets/zoomable-image-DNc6ORaF.js +1 -0
  1971. package/web/dist/cezarion-lockup-dark.svg +9 -0
  1972. package/web/dist/cezarion-lockup-light.svg +9 -0
  1973. package/web/dist/cezarion-mark-dark.svg +4 -0
  1974. package/web/dist/cezarion-mark-light.svg +4 -0
  1975. package/web/dist/index.html +90 -0
  1976. package/web/dist/live-worker.js +4 -0
package/README.md CHANGED
@@ -1,3 +1,1847 @@
1
- # Temporary Holding Version
1
+ <div align="center">
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="packages/web/public/cezarion-mark-dark.svg">
5
+ <img src="packages/web/public/cezarion-mark-light.svg" alt="" width="96" height="96">
6
+ </picture>
7
+
8
+ # Squawk
9
+
10
+ **Parallel coding agents orchestrator** — a local cockpit for running and
11
+ tracking AI coding-agent tasks in your repo.
12
+
13
+ Type a task, pick a workflow and an agent — **Claude Code, Codex, OpenCode, Cursor, pi or
14
+ OMP (OpenCode, pi and OMP experimental), or a mix of them per step** — and watch it work live: steps, tool calls,
15
+ tokens, diffs, in a browser cockpit that runs entirely on your machine.
16
+ Your CLI logins, your `gh`, your files. No accounts, no database server, no cloud.
17
+
18
+ 🔥 **Fire and forget.** Queue a stack of autonomous coding and maintenance
19
+ tasks and let them run — Squawk orchestrates them across isolated worktrees,
20
+ in parallel. Flip the **Autonomous** flag
21
+ and a run never stops to ask; it just finishes. Leave it on a VPS and you get
22
+ a dev team that's *always on* — a mobile-friendly cockpit you can check from
23
+ your phone, working your backlog while you're away.
24
+
25
+ [A look inside](#a-look-inside) · [What Squawk does best](#what-squawk-does-best-) · [What it solves](#what-it-solves) · [Who it's for](#who-its-for) · [Quick start](#quick-start) · [How it works](#how-it-works) · [Core concepts](#core-concepts) · [Cockpit tour](#cockpit-tour) · [Agent backends](#coding-agent-backends) · [Remote access](#remote-access-host-squawk-on-a-server)
26
+
27
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
28
+ ![Node 24.21.0+](https://img.shields.io/badge/Node-24.21.0%2B-339933)
29
+ ![TypeScript 7.x](https://img.shields.io/badge/TypeScript-7.x-3178c6)
30
+ ![Zero config](https://img.shields.io/badge/config-zero-success)
31
+ ![Embedded SQLite](https://img.shields.io/badge/database-embedded%20SQLite-success)
32
+
33
+ </div>
34
+
35
+ ---
36
+
37
+ ```bash
38
+ cd your-repo
39
+ npx hsq # → cockpit at http://localhost:4321
40
+ ```
41
+
42
+ That's the whole setup. If your `claude` CLI is logged in (Pro/Max) and `gh` is
43
+ authenticated, there is nothing else to configure. State lives in `.ai/squawk/`
44
+ inside your repo (`.ai/cezar/` in a project that has not moved yet): your runs in one embedded SQLite file (`runs.db`, built into
45
+ Node: no server, no install, no config), event logs in NDJSON and journals in
46
+ Markdown. Everything except the run file you can `cat` and fix by hand.
47
+
48
+ Local npm installations have a workspace update API. `POST
49
+ /api/v1/workspace/application-update/apply` with `{}` prepares the release
50
+ advertised by health while the current server keeps running; `POST
51
+ /api/v1/workspace/application-update/restart` with `{}` then restarts it. A
52
+ successful restart updates the original global installation or ordinary npx
53
+ cache entry, so the same command uses the new version on its next launch.
54
+ Update preparation and recovery state is generated under
55
+ `<state>/application-updates/` in the [resolved home layout](docs/migration.md#home-directories).
56
+ Pinned npx invocations, source checkouts, npm links, and hosted deployments use
57
+ their existing manual update paths. Squawk holds its own installation lock and
58
+ npm's npx lock during promotion; a separate manual `npm install` does not honor
59
+ those locks, so avoid one while an update is preparing or restarting.
60
+
61
+ Upgrading from Cezarion? Read the [migration guide](docs/migration.md) before
62
+ moving a desktop, server or custom-home install. User paths such as `<config>`
63
+ and `<state>` below refer to its [platform roots](docs/migration.md#home-directories).
64
+ A cockpit moves each idle project's state from `.ai/cezar/` to `.ai/squawk/` at start
65
+ ([project folders](docs/migration.md#project-folders)). Release operators use the [publishing runbook](docs/publishing.md).
66
+
67
+ ## A look inside
68
+
69
+ Click any thumbnail for the full-size screenshot.
70
+
71
+ | Orchestrate parallel agents | Watch a run live |
72
+ |:--:|:--:|
73
+ | [![The Tasks view with running and queued tasks](docs/screenshots/task-view.png)](docs/screenshots/task-view.png) | [![A running task streaming agent text, tool calls and test output](docs/screenshots/live-run.png)](docs/screenshots/live-run.png) |
74
+ | *Run and queue tasks in isolated worktrees, with live status and resource use.* | *Every step, tool call, token and screenshot streams as it happens.* |
75
+ | **Workflow builder** | **GitHub, one click away** |
76
+ | [![The workflow builder](docs/screenshots/workflow-builder.png)](docs/screenshots/workflow-builder.png) | [![The GitHub tab](docs/screenshots/github-issues.png)](docs/screenshots/github-issues.png) |
77
+ | *Stitch skills and shell checks into a reusable YAML chain.* | *Hand an issue to an agent through your own `gh` login.* |
78
+
79
+ ---
80
+
81
+ ## Generated inbox removed
82
+
83
+ The generated follow-up Inbox is removed in the next breaking minor release, **0.17.0**
84
+ (hearsay-tools/cezarion#1543). There is no deprecation window for this removal.
85
+ Remove `CEZ_FOLLOWUPS` from your launch environment; it no longer enables anything.
86
+ Agents receive no suggestion-generation instructions or usable `CEZ_TODOS_FILE`.
87
+ The todo API routes, `todos` SSE events, `capabilities.followups`, and task-creation
88
+ fields `generateFollowups` and `todoId` are removed. Remove those fields from scripts
89
+ and automation templates. Historical run records remain readable and resumable.
90
+ Upgrades leave `.ai/cezar/todos.json` untouched. If that file exists, export its original
91
+ contents from the project directory with:
92
+ ```bash
93
+ cp .ai/cezar/todos.json ./cezar-followups-export.json
94
+ ```
95
+ Old Inbox URLs show this guidance. Create an ordinary task with **New task**, or use
96
+ an issue-authoring skill to record work in your tracker. Task **Notes**, the rolling
97
+ handoff journal, **Continue**, live follow-up messages, and `hsq message inbox` remain
98
+ available.
99
+ ## What Squawk does best 🏆
100
+
101
+ **On your phone:** the [iPhone and Android companion apps](docs/mobile.md) connect
102
+ to your existing HTTPS cockpit. Personal installation and device testing are
103
+ documented; agents continue running on your server.
104
+
105
+ Plenty of tools wrap a single coding agent in a nicer window — a "Codex GUI", a
106
+ conductor-style app, one-agent front-ends. Squawk's bet is different. Three things
107
+ it does better than any of them:
108
+
109
+ - 🪶 **Genuinely zero config.** `npx hsq` in your repo and you're running —
110
+ no wizard, no API keys, no env vars, no schema, no database server. It rides the
111
+ `claude` / `codex` / `opencode` / `agent` (Cursor) / `pi` / `omp` logins and the `gh` you already have, and every
112
+ missing piece degrades gracefully instead of blocking you.
113
+ - 🖥️ **Built for a server (VPS mode).** Squawk is made to live on a **VPS, cloud,
114
+ or dedicated box** as an always-on janitor for your repo — headless-first, with
115
+ a mobile-friendly cockpit you drive from anywhere. It's a coding server you can
116
+ actually watch, not a desktop app bolted onto one machine.
117
+ - 🔀 **Parallel + autonomous orchestration.** The real edge: Squawk runs **many
118
+ agents at once** in isolated worktrees, **queues** the overflow, and pushes each
119
+ one **autonomously** through skill playbooks — fire-and-forget. This is exactly
120
+ what single-agent GUIs don't do well: they babysit one agent, while Squawk
121
+ orchestrates a whole team and drains your backlog while you're away.
122
+
123
+ ---
124
+
125
+ ## What it solves
126
+
127
+ Most "AI coding agent" tooling makes you choose between a **terminal** you can't
128
+ see into once it's running, and a **cloud product** that wants your API key, your
129
+ code on their servers, and an account. Squawk is the third option: the agents run
130
+ locally under *your* subscription, a cockpit shows you exactly what they're doing,
131
+ and an orchestrator keeps a whole queue of them moving.
132
+
133
+ - 👀 **No visibility into a running agent.** A headless `claude` run is a black box
134
+ until it finishes. Squawk streams every step — agent text, each tool call and
135
+ its result, tokens and cost per step — live, and keeps the full replay.
136
+ - 🧩 **One agent, one working tree, one thing at a time.** Kick off a second task and
137
+ it fights the first over your files. Squawk runs each task in its **own git
138
+ worktree**, so two (or three) agents work in parallel without stepping on
139
+ each other — or on the branch you're editing.
140
+ - 🗂️ **A backlog that needs babysitting.** Queue a stack of tasks and Squawk
141
+ **orchestrates** them: it runs up to your parallel limit and holds the rest in
142
+ an ordered queue. Point it at a GitHub issue and it runs straight on that, so
143
+ working the tracker down stops being a manual chore. Create ordinary tasks for
144
+ the work you choose to run next.
145
+ - 🤖 **"Autonomous" means you still have to sit there.** Flip the **Autonomous**
146
+ flag and a run never parks to ask — it keeps going until the task is done. Pair
147
+ it with a **skill** (a Markdown playbook) and you've got fire-and-forget
148
+ automation: hand off "fix this", "upgrade that", "triage these" and walk away.
149
+ - ✅ **The agent finishes and you have to trust it.** Every task's diff stays on
150
+ its own branch: inspect it, send notes back into the same session, or push a
151
+ **draft PR**. Auto merge is off by default; each task can opt in to merge after Done.
152
+ Turn on the optional **review gate**
153
+ (`HSQ_REVIEW_GATE=1` (`CEZ_REVIEW_GATE` fallback) or Settings → Agents) and a finished run with changes
154
+ waits in `review` for you.
155
+ - ♻️ **Losing a session when it fails.** Every run records its `claude` session id.
156
+ Take it over interactively in one click (`claude --resume <id>`), or continue it
157
+ in-process from the cockpit. After a failure, Continue tells the agent which
158
+ step failed and gives its saved error before your message. Restart recovery
159
+ also explains the restart when replaying a saved message. Background commands
160
+ may have stopped; the agent is told to verify their state before restarting them.
161
+ - 🔀 **Locked into one agent vendor.** Most tools wed you to a single CLI. Squawk
162
+ drives **Claude Code, Codex, OpenCode, Cursor, pi and OMP** (OpenCode, pi and OMP
163
+ experimental) through one runner seam — set a
164
+ default, pick a backend per task, or mix them inside one workflow (implement
165
+ with one agent, review with another) — and through **OpenCode**, **pi** or
166
+ **OMP** you can point a run at **open-source or local models**, not just the
167
+ big vendors. See
168
+ [Agent backends](#coding-agent-backends).
169
+ - 🖥️ **Close the laptop and the work stops.** A local agent only runs while your
170
+ machine is on and awake. Put Squawk on a **VPS, cloud box, or dedicated server**
171
+ and the cockpit becomes the GUI for an **always-on AI coding team** — kick off,
172
+ watch and steer tasks from your laptop or **phone**, on the train or between
173
+ meetings, while the agents keep grinding through the backlog back on the server.
174
+ - ⚡ **Setup tax.** No wizard, no env vars, no schema. Skills are Markdown, workflows
175
+ are short YAML, and everything degrades: no `gh` → works without PRs, no network
176
+ → local skills still load, no `.ai/skills` → the bare prompt still runs.
177
+
178
+ ---
179
+
180
+ ## Who it's for
181
+
182
+ - **Solo devs and small teams** who want the leverage of coding agents without
183
+ handing their code and keys to a SaaS — the agent runs on your subscription,
184
+ on your machine.
185
+ - **`claude` CLI power users** who love headless runs but want to *see* them,
186
+ and review a diff before it lands.
187
+ - **Anyone with a backlog** who'd rather queue three tasks into isolated worktrees
188
+ and pick the winners than babysit one terminal.
189
+ - **Teams with shared conventions** who want their playbooks (skills) pulled from
190
+ a git repo, applied consistently, with zero per-project setup.
191
+
192
+ ---
193
+
194
+ ## Quick start
195
+
196
+ **Prerequisites:** Node 24.21.0+, at least one logged-in agent CLI — the
197
+ [`claude` CLI](https://github.com/anthropics/claude-code) (Pro/Max subscription),
198
+ the [`codex` CLI](https://github.com/openai/codex),
199
+ [OpenCode](https://opencode.ai), the
200
+ [Cursor CLI](https://cursor.com/docs/cli/installation) (`agent`),
201
+ [pi](https://github.com/badlogic/pi-mono), or
202
+ [OMP](https://github.com/can1357/oh-my-pi) — and, optionally, `git` and the
203
+ `gh` CLI.
204
+
205
+ ```bash
206
+ cd your-repo
207
+ npx hsq # start the cockpit for the current repo
208
+ # or: npx @hearsay-tools/squawk
209
+
210
+ ```
211
+
212
+ The cockpit opens at `http://localhost:4321`. If the requested port is occupied,
213
+ startup exits with an actionable error before recovering tasks. Automatic port
214
+ bounce has been removed (hearsay-tools/cezarion#722): open the existing cockpit,
215
+ stop the process using that port, or choose `hsq --port <free-port>` deliberately.
216
+ Use `hsq --port 0` to ask the OS for an ephemeral port. If another cockpit already
217
+ serves this repository, the command prints its URL and exits with an error,
218
+ even with a different port. Different repositories can run side by side on
219
+ explicitly different ports; after a cockpit exits or crashes, its repository
220
+ can start again without cleanup.
221
+ Type a task, pick a workflow, hit **Start**. That's it.
222
+
223
+ ```bash
224
+ npx hsq run "add a --json flag to the export command" # headless, CI-friendly
225
+ npx hsq init # scaffold .ai/squawk/
226
+ ```
227
+
228
+ For a global install, run `npm i -g @hearsay-tools/squawk`, then use `hsq`.
229
+ The old `cez` and `cezarion` commands still work during the
230
+ [deprecation window](docs/migration.md#rollback-and-the-deprecation-window), with one stderr notice per process. No API key is ever used — Squawk shells out to whichever agent
231
+ CLIs you are already logged into, `claude` by default.
232
+
233
+ > **Contributing?** [Local development](#local-development) shows how to get a
234
+ > global `hsq` command straight off your checkout (`npm run install-as-command`)
235
+ > — no publish needed.
236
+
237
+ > **Just kicking the tires?** Set `HSQ_DRY_RUN=1` (`CEZ_DRY_RUN` fallback) to run against a bundled mock
238
+ > instead of the real CLI — the whole cockpit works with no `claude` login, so
239
+ > you can explore runs and diffs offline.
240
+
241
+ ### Nightly builds — help us shape Squawk 🌙
242
+
243
+ Every night we publish the trunk to npm, so the features landing in the next
244
+ release are one command away:
245
+
246
+ ```bash
247
+ npx hsq@nightly # everything merged as of last night
248
+ ```
249
+
250
+ **Come build this with us.** Squawk is shaped by the people who run it on real
251
+ repos: if you try a nightly and something feels wrong — a workflow that stalls, a
252
+ diff that reads badly, a runner that should exist — [open an
253
+ issue](https://github.com/hearsay-tools/cezarion/issues) and tell us. That feedback,
254
+ early, is worth more than a bug report six weeks after a release, and it is how
255
+ most of the features here got their final shape.
256
+
257
+ **Know what you're installing.** A nightly is verified (typecheck, unit suites,
258
+ packaged-CLI e2e — the same gate a release runs) but it is *not* a release: it
259
+ can be rough, a flag or a screen may change under you, and something occasionally
260
+ breaks in a way no test caught. Nothing is at risk beyond your patience — every
261
+ task runs in its own git worktree and auto merge is off by default — but if you need a
262
+ boring day, stay on the stable release. Pin a nightly you liked with its exact
263
+ version (`npx hsq@<nightly-version>` — the cockpit prints the
264
+ version it booted, and the date in it tells you how old the build is), and drop
265
+ back to stable any time with a plain `npx hsq`.
266
+
267
+ ### Preview builds
268
+
269
+ Every green CI run also publishes an installable npm snapshot
270
+ ([how it works](docs/publishing.md)), so you can try code that has not even
271
+ merged yet:
272
+
273
+ ```bash
274
+ npx hsq@dev # current main head
275
+ ```
276
+
277
+ Every pull request gets its own preview too — the CI bot posts a sticky comment
278
+ on the PR with the exact pinned version to copy-paste
279
+ (`npx hsq@<version>-pr<N>.<run>`). Nightlies and previews are all
280
+ prerelease versions under their own dist-tags; a plain `npx hsq` always
281
+ resolves to the latest stable release.
282
+
283
+ ---
284
+
285
+ ## How it works
286
+
287
+ You describe a task. Squawk runs it as a **workflow** — an ordered list of agent
288
+ steps and shell checks — shelling out to your locally installed agent CLI
289
+ (Claude Code by default; Codex, OpenCode, Cursor, pi and OMP are drop-in
290
+ alternatives, per task or per step). Each task gets its own git worktree; the
291
+ cockpit streams every event live and leaves the diff on the task's branch for
292
+ you to inspect.
293
+
294
+ ```
295
+ you type a task
296
+ │
297
+ ▼
298
+ ┌─────────────┐ optional: Plan → AI drafts a chain of steps you approve
299
+ │ workflow │ (agent steps + shell checks, with bounded onFail retries)
300
+ └─────────────┘
301
+ │
302
+ ▼
303
+ ┌──────────────────────────────┐ ┌────────────────────────────────┐
304
+ │ git worktree per task │ │ agent CLI (your login) │
305
+ │ (isolated branch, parallel) │◄───►│ claude · codex · opencode · │
306
+ └──────────────────────────────┘ │ cursor · pi · omp │
307
+ │ │ Bash open · no prompts │
308
+ │ └────────────────────────────────┘
309
+ │ agent text · tool calls · tool results · tokens · cost
310
+ ▼
311
+ ┌─────────────┐ SSE (replay + live) ┌──────────────────────────┐
312
+ │ .ai/cezar/ │ ──────────────────────► │ cockpit localhost:4321 │
313
+ │SQLite·NDJSON│ │ Tasks · Git · GitHub · │
314
+ │ ·Markdown │ │ Skills · Workflows │
315
+ └─────────────┘ └──────────────────────────┘
316
+ │
317
+ read the diff → send notes back ·
318
+ draft PR · finish
319
+ ```
320
+
321
+ When a check fails, the workflow can loop back to an earlier step (bounded by
322
+ `max`) with the failing output appended to the retried agent's prompt. By default,
323
+ a finished run's changes stay on its branch until you act on them. A task can opt
324
+ into merging its PR after Done, subject to current-head CI and GitHub rules.
325
+ With the optional review gate on, a run with changes rests in `review` instead
326
+ of `done`.
327
+
328
+ ---
329
+
330
+ ## Core concepts
331
+
332
+ Three words, no jargon — **task**, **skill**, **chain**:
333
+
334
+ - 📋 **Tasks** are the unit of work. Every task is a **run**: `queued → running →
335
+ review / done / failed / cancelled`, with a live event log, per-step token and
336
+ cost usage, cancel/delete, and — for anything with a diff — a reviewable branch. Attach
337
+ screenshots, PDFs, `.txt` or `.md` files to the task (paperclip, ⌘V or drag-drop;
338
+ the agent gets each one as a real file on disk), or send follow-up messages into
339
+ the live session while it works.
340
+ - 📖 **Skills** are Markdown playbooks. Drop them in `.ai/skills/` or
341
+ `.ai/cezar/skills/`, or pull them from a shared **team skills repo** you name
342
+ in `skillsRepos` (a bare git clone cached globally in `<cache>/`). There is no
343
+ default team repo. Add, remove, enable and disable team repos on the **Skills** page,
344
+ which writes `skillsRepos` for you, and each team skill has its own on/off switch per project. A workflow step references one by
345
+ `skill: <name>` and its body becomes the agent's extra system prompt — so you
346
+ shape *how* the agent reasons without touching code.
347
+ - 🔗 **Chains (workflows)** stitch steps into a pipeline: agent steps plus shell
348
+ checks, with bounded `onFail` retry loops. Write the YAML yourself, build one by
349
+ drag-ordering skills in the **Workflows** tab, or press **Plan first** and let the
350
+ AI draft a chain for your task that you review, trim and start. The built-in
351
+ `quick-task` (one agent step) works with zero setup.
352
+
353
+ The moves that make the cockpit worth the browser tab:
354
+
355
+ - 🗃️ **Queue + orchestration.** Start as many tasks as you like: Squawk runs up to
356
+ `maxParallel` at once across every project (default **2**; a non-git directory
357
+ always runs one, until its first commit lifts that limit within a minute) and
358
+ holds the rest in a FIFO queue with visible positions (`#1`, `#2`, …). Cancel a
359
+ queued task before it starts; the queue even survives a cockpit restart —
360
+ everything still `queued` is re-enqueued in order. It's the orchestration layer
361
+ that turns "one agent at a time" into a backlog that drains itself.
362
+ - 🧠 **Memory-aware runs.** Each run's whole process tree is sampled (~2 s) for CPU
363
+ and RSS, and its **peak memory** is recorded and shown in the task table. Set an
364
+ optional per-task **memory ceiling** (`memoryLimitMb`) and a run that crosses it
365
+ is *paused* — freeing its tree so the queue keeps advancing — and resumes on
366
+ demand. Event logs are append-only NDJSON and streamed rather than re-serialized,
367
+ and live UI deltas are coalesced so they never hit disk.
368
+ - 🧹 **Bounded worktree disk.** Each task runs in its own full checkout, so a busy
369
+ cockpit would otherwise grow without limit. Squawk keeps only the last
370
+ `worktreeRetention` **finished** worktrees on disk (default **10**; `0` =
371
+ unlimited) and reclaims the rest — directory only, the `cez/<id8>` branch is
372
+ kept, so the work stays recoverable. Once a branch's work is on the base, or
373
+ its exact PR merged, a background sweep deletes the local branch (a task's
374
+ merged PR branch and its unused starter too); unmerged work, open PRs and
375
+ your own branches stay. Settings → Resources shows every
376
+ worktree's disk use with per-row delete and a **Reclaim now** button.
377
+ - 🛡️ **You control merging.** Read a finished run's diff, type notes that go
378
+ straight back into the agent's session, or push a `gh pr create --draft`.
379
+ Auto merge is off by default and requires a task to opt in. The **review gate** is optional (`HSQ_REVIEW_GATE=1` (`CEZ_REVIEW_GATE` fallback), or
380
+ Settings → Agents): with it on, a successful run with changes parks in `review`
381
+ until you accept it. Autonomous runs always skip it.
382
+ - 🗂️ **Every project in one cockpit.** One `hsq serve` hosts every repo you
383
+ register; the desktop rail switches between them, and **All tasks** shows every
384
+ project's tasks in one table. See
385
+ [Multiple projects, one cockpit](#multiple-projects-one-cockpit).
386
+ - 👥 **Owned workers.** A task's agent can spawn its own tracked workers — on the
387
+ same or another runner — message them, and collect their diffs; you still review
388
+ the result. Each task has an **Allow Squawk workers** switch, on by default. See
389
+ [Owned workers](#owned-workers).
390
+ - 📱 **Runs on your coding server, drives from your pocket.** The cockpit is a
391
+ responsive web app streaming over SSE, so the box running Squawk can be a
392
+ **VPS, cloud, or dedicated server** you never sit in front of. Point a browser
393
+ — laptop or **phone** — at it and run an **always-on coding team** on the move:
394
+ start tasks, watch them live, and review their diffs from anywhere.
395
+
396
+ ---
397
+
398
+ ## Cockpit tour
399
+
400
+ Task and project views share one browser window and live updates over Server-Sent Events:
401
+
402
+ | View | What's in it |
403
+ |---|---|
404
+ | **Tasks** | Every task with its status, live event stream (agent text · tool calls · tool results · pasted/generated screenshots and file attachments), tokens and cost. Continue, cancel, open in terminal (`claude --resume`), review the diff, or push a draft PR. |
405
+ | **All tasks** | Every *registered project's* tasks in one table, filtered and grouped by tag, project, status or workflow — see [Grouping connected repositories](#grouping-connected-repositories-tags-and-the-all-tasks-page). Appears once a second project is registered. |
406
+ | **Activity** | What each active task and worker does or waits for right now, and the open requests between tasks as lines. Live without a reload. **All projects** shows one panel per project. |
407
+ | **Git** | In **More**. Branch, working-tree status, diff vs HEAD, recent commits (click one for its inline patch + GitHub link), and the configurable base branch that worktrees fork from and PRs target. |
408
+ | **GitHub** | Open issues and PRs of the repo's origin, read through your logged-in `gh`. Hand an issue straight to the agent — pick a workflow and skills, one click runs it. |
409
+ | **Skills** | Local skills plus any team skills repos you configured, each team skill with a per-project switch, and a rendered body + prompt preview. Refresh pulls the latest from the remote. |
410
+ | **Workflows** | Build a chain by drag-ordering skills, save it as portable YAML, import/export, or delete. Built-ins always come back. |
411
+ | **Settings** | Appearance (dark/light theme, accent, density), agent backends, notifications, and the skills catalog. |
412
+
413
+ The cockpit is a React app served pre-built from the package — `npx hsq`
414
+ still means no build step and no dev server on your machine — with a dark/light
415
+ theme, a ⌘K command palette, and bookmarklets that launch a task straight from
416
+ a GitHub page.
417
+
418
+ GitHub issue and PR lists refresh every 60 seconds while mounted in a foreground browser tab.
419
+ Automatic reads retain the server's 60-second cache: while online and visible, upstream edits
420
+ appear within 120 seconds plus request time. Revisiting or focusing stale data fetches again;
421
+ server reconnects invalidate cached lists. Hidden and unmounted lists do not poll. **Refresh**
422
+ bypasses the server cache immediately and refreshes the selected thread too.
423
+
424
+ ---
425
+
426
+ ## Multiple projects, one cockpit
427
+
428
+ One `hsq serve` hosts **every repo you work in**, not just the one you started
429
+ it in. Each repo Squawk boots in registers itself in a per-user registry at
430
+ `<config>/config.json` — the workspace file that also holds the global knobs
431
+ (the parallel cap, the memory ceiling, the browse root, and the checkout root). Nothing is added to
432
+ the repo: per-project state stays in that repo's `.ai/squawk/` (or `.ai/cezar/`
433
+ until the project moves).
434
+
435
+ Every view is project-scoped:
436
+
437
+ ```
438
+ /p/<projectId>/ tasks · activity · git · github · skills · workflows · reports · settings
439
+ ```
440
+
441
+ `<projectId>` is a slug derived from the folder name (`my-app`, then `my-app-2`
442
+ on a collision), and `/p/default/…` always means the project Squawk was started
443
+ in. The desktop rail selects the project. Its sidebar shows the project header,
444
+ view tabs and task list, ordered **Needs you → Finished → Working**.
445
+ Pins stay first within their status section and do not spend the default ten-row
446
+ budget; Finished takes priority over Working when that budget fills up. Each
447
+ section starts expanded and folds independently using its heading (click, Enter
448
+ or Space). Folding is remembered per browser, project and section, separately
449
+ from folding a project. Folded headings keep full task counts and attention
450
+ indicators, including tasks outside the visible row limit. These controls work
451
+ in the mobile drawer too. **Archive all** appears only on Finished and archives
452
+ all eligible unpinned tasks, including hidden rows; individual archive actions
453
+ and Undo remain available. Archived keeps its existing history view.
454
+ The view tabs are Tasks, Activity, GitHub, Skills and Settings. More views holds Git,
455
+ Workflows and Reports, and Automations when enabled. The project menu
456
+ offers Mark all read and project settings; local mode also offers Open in and
457
+ Copy path. Active/Archived remains below the Tasks heading. The new-task
458
+ composer names the project it will run in.
459
+
460
+ **Adding a project** — the **+** button on the desktop rail (or in the mobile
461
+ navigation drawer):
462
+
463
+ - ✨ **New project…** creates a git repository with one empty commit in the checkout
464
+ root and registers it. Optionally — only when you switch it on — it also creates a
465
+ **private** GitHub repository under your account or one of your organizations, empty or
466
+ from a GitHub template. If GitHub setup fails after the repository exists, the local
467
+ project is kept and the dialog shows the command that finishes it. A hosted cockpit
468
+ creates local projects only.
469
+ - 📂 **Open local folder…** browses from the configured browse root
470
+ (**Settings → Projects**, default `~/`) in a folder picker and
471
+ registers the folder you pick.
472
+ - ⬇️ **Clone from GitHub…** clones with your logged-in `gh` into the checkout
473
+ root (**Settings → Projects**, default `~/cezar/projects`) with live progress,
474
+ then registers the clone. Close the dialog and the clone is killed and its
475
+ partial directory removed. For a SAML-protected organization, follow **Authorize
476
+ this GitHub organization**, authorize in GitHub, then return to retry once (or
477
+ choose **Retry clone**). Original errors remain available under **Error details**.
478
+ Clones use HTTPS and save the GitHub CLI credential helper in the new repository
479
+ so later pushes use the same organization grant, even if `gh` prefers SSH.
480
+
481
+ Removing a project (**Settings → Projects**) drops the registry entry only — the
482
+ repo and its `.ai/cezar/` are never touched, so re-adding it later finds all its
483
+ tasks intact. The project Squawk is currently serving can't be removed: it
484
+ re-registers itself at the next start.
485
+
486
+ **From the terminal** — the same registry, no cockpit required (handy over ssh):
487
+
488
+ ```bash
489
+ hsq backup list [<file>] # list rotating config.json / agent-accounts.json backups
490
+ hsq backup restore <file> [--at <time>] # restore JSON only; account folders are unchanged
491
+ hsq projects # list: id, branch or status, path, tags
492
+ hsq projects add ~/code/api # register a folder (defaults to the current repo)
493
+ hsq projects remove api # drop the registry entry; the repo is untouched
494
+ hsq projects tag api storefront backend # set the grouping tags (no tags clears them)
495
+ ```
496
+
497
+ These read and write `<config>/config.json` directly, so they work with the
498
+ server stopped, and `HSQ_HOME` (`CEZ_HOME` fallback) selects which workspace they operate on.
499
+
500
+ Settings split along the same line: **General** (the project's folder, its
501
+ registry facts, its parallel-task ceiling, and Remove), **Agents**, **Agent config**,
502
+ **Worktrees**, **Sidebar**, **Bookmarklets** and **Prompt templates** describe one
503
+ repo and live under `/p/<projectId>/settings`; **Appearance**,
504
+ **Notifications**, **Resources**, **Skills**, **Agent accounts** and **Projects**
505
+ are yours or the machine's and live at `/settings/global`.
506
+
507
+ **Settings → Sidebar** controls this project's task rows on desktop and mobile.
508
+ Set **Overall**, **Needs You**, **Finished**, and **Working** to a positive whole
509
+ number or **Unlimited**. Defaults are 10 overall and Unlimited for each section.
510
+ The overall budget is allocated in section order (Needs You, Finished, Working),
511
+ and each section must also fit its own limit. Unlimited removes only its selected
512
+ constraint. Pinned rows and groups containing pins bypass both budgets; a grouped
513
+ task counts as one row. Archived uses only the overall limit, with no pin exemption.
514
+ Save applies the preferences to this project and keeps them after a reload.
515
+ Refreshed preferences update an untouched form; unsaved edits stay in place.
516
+ Malformed stored sidebar limits fall back field by field to these defaults,
517
+ while valid limits and unrelated preferences are preserved.
518
+
519
+ On desktop, Settings replaces the sidebar task list with two groups: **This project**
520
+ and **Global · every project**. Each group includes General and its available sections;
521
+ the current section is highlighted, and the main page shows its content. On mobile,
522
+ the section picker and General page's section cards provide navigation.
523
+
524
+ The GitHub sidebar groups **Issues** (Assigned to me, No task yet, Has a task,
525
+ All open) and **Pull requests** (Review requested, Mine, Checks failing, All open).
526
+ Selecting a filter updates the URL, so reloading keeps that selection. The issue
527
+ list, detail pane and Hand to agent action stay in the main area. On mobile, the
528
+ GitHub tab opens the filter screen; selecting a row opens its list.
529
+
530
+ Has a task and No task yet use issue references from this project's non-archived
531
+ tasks, excluding references to other repositories. The list loads 50 rows at a time
532
+ and loads the next page as you scroll toward its end. The tabs and All open show
533
+ GitHub's exact open totals. A preset count shows a `+` while more pages remain
534
+ unloaded, and a search count shows one when the search reaches its result limit;
535
+ an unavailable count is not shown as zero. Filtering by search, label, assignee or
536
+ board narrows the loaded rows; while it is on, the next page loads only when you press
537
+ Load more.
538
+
539
+ The `body` field on `GET /api/v1/github` list rows is deprecated. It is still sent,
540
+ and a later minor removes it; read an item's body from the comments route's `detail`. Views without their own navigation still show tasks in the sidebar.
541
+
542
+ Open an issue to see **Linked tasks (N)** beneath its heading. Each row opens a task
543
+ in the current project and shows its title, status and date, newest first. Archived
544
+ tasks remain listed with an **Archived** label, so diagnosis and implementation
545
+ sessions are both reachable.
546
+
547
+ The Git sidebar lists **Task worktrees** that still exist on disk, including retained
548
+ worktrees from finished tasks. Each row shows its branch, task title, status and
549
+ available diff counts, and opens that task's Changes tab. Reclaimed worktrees disappear
550
+ from the list. Changes, Commits and Branches remain tabs in the main repository header.
551
+ On mobile, Git sits in the More sheet and opens the worktree list; **Open repository** opens the repository
552
+ view, and **Back to worktrees** returns to the list.
553
+
554
+ ### Grouping connected repositories: tags and the All tasks page
555
+
556
+ Work rarely stops at a repo boundary. A storefront is an API, a web app and a
557
+ design system; a platform is a handful of services plus the infra that runs
558
+ them. **Tags** are how you say so, and **All tasks** is where saying so pays off.
559
+
560
+ **Tag a repo** in **Settings → Projects**: type into the *Tags* cell on its row
561
+ and press Enter (comma works too; the × on a chip, or Backspace in an empty
562
+ field, removes one). The field **autocompletes from the tags already used in the
563
+ workspace** — click the field to see them all, arrow keys and Enter to pick —
564
+ which is what keeps the second repo landing on the first one's spelling instead
565
+ of inventing `store-front` next to `storefront`. Anything not on the list is
566
+ just typed. A tag is a free-form label — `storefront`, `infra`, `client-acme` —
567
+ and a project can carry several, because a repo can belong to more than one
568
+ piece of work. Tags are trimmed, deduplicated case-insensitively (`API` and
569
+ `api` are one tag) and stored in `<config>/config.json` beside the rest of the
570
+ registry, so they are yours and this machine's, never something added to the
571
+ repo.
572
+
573
+ **All tasks** — the layers icon on the desktop rail, `/tasks`, or `⌘K → All tasks` —
574
+ then shows every registered project's work in one table:
575
+
576
+ - **Filter** by tag, status and workflow. Tags are one-click chips; status and
577
+ workflow are searchable multi-selects. Every facet ORs inside itself and ANDs
578
+ across, so *"anything running or waiting in storefront or infra"* is one set
579
+ of clicks. Each option carries how many tasks it would leave, so a filter that
580
+ would empty the table says so before you click it. The search box matches
581
+ title, project, workflow, branch and tags.
582
+ - **Group by** tag, project, status or workflow — click the pressed one again to
583
+ ungroup. Grouping by tag is the reason tags exist: three repos tagged
584
+ `storefront` become one section, and a repo tagged twice appears under both —
585
+ it genuinely belongs to both.
586
+
587
+ The filters, the grouping and the Active/Archived tab live in the **URL**, so a
588
+ filtered view survives a refresh, pastes into a chat, and sits in a bookmark —
589
+ `/tasks?tag=storefront&status=running&group=tag` is a link to exactly what you
590
+ were looking at. Only what you changed shows up: Active is the default, so the
591
+ Archived view is `?archived=1` and a normal link carries no key for it.
592
+
593
+ Each row shows **every** PR and issue it references — a task opened on an issue
594
+ that landed a PR shows both — plus its cost and live CPU/memory, and can be
595
+ marked **read/unread** (the eye) or **archived** (or restored) right there. Every task title, project name and project group heading links into that
596
+ project, so the thread, its diff and its worktree are one click away and stay
597
+ exactly where they were. Returning to a long thread restores its saved row measurements
598
+ once the replay has rebuilt the same ordered messages, keeping the same content in view.
599
+ Scrolling, jumping to the latest message, or loading different history takes ownership
600
+ from that restoration; a thread left at its live tail follows the current tail.
601
+
602
+ There is deliberately **no project filter**: narrowing this page to one project
603
+ is that project's own Tasks page, which is a better version of the same answer
604
+ (live updates, the full column set, the composer). So picking a project *leaves*
605
+ for it rather than turning the global view into a worse local one.
606
+
607
+ Nothing else in Squawk reads tags, on purpose: a tag is a lens, not a permission,
608
+ a queue or a routing rule. Removing one changes what you see and nothing else.
609
+
610
+ > The page reads a workspace-wide index capped at the newest 200 tasks per
611
+ > project — it says so, and names the projects it capped, rather than showing a
612
+ > short list as if it were complete. Older tasks are always in that project's own
613
+ > Tasks page.
614
+
615
+ **Old page URLs keep working.** Every unprefixed page path — `/`, `/tasks/<id>`,
616
+ `/settings` — still answers, bound to the project Squawk was started in; the
617
+ cockpit redirects flat paths to their `/p/<boot>/…` twin, so existing bookmarks
618
+ and bookmarklets need no change. The HTTP API is the exception: it moved to
619
+ `/api/v1/…` (see the CHANGELOG), so a script that calls it needs the extra
620
+ segment.
621
+
622
+ > **Hosted cockpit?** The folder picker is confined to the independent browse
623
+ > root. Set `HSQ_BROWSE_ROOT` (`CEZ_BROWSE_ROOT` fallback) narrowly before first boot (or save it in
624
+ > **Settings → Projects**) when a remote viewer should not enumerate the host's
625
+ > whole home. Clones continue to use the separate checkout root.
626
+
627
+ ---
628
+
629
+ ## Waiting for PR checks, merges and timers
630
+
631
+ An agent waits on something outside its turn with `cezar_wait`. With `kind: "pr"` and
632
+ a GitHub PR URL in `pr`, Squawk watches the PR outside the model: its checks
633
+ (`until: "checks"`, the default), its eventual merge (`until: "merge"`), or a merge
634
+ the agent has requested (`until: "merge_or_blocked"`). The last target wakes when
635
+ the PR merges, closes, conflicts, or is neither queued nor scheduled for auto-merge.
636
+ It includes any known queue-removal or auto-merge-disable reason. A pending queue
637
+ slot or enabled auto-merge keeps it open. The ordinary merge target ignores queue
638
+ removal; use `wake_on_conflict: false` for a dependency wait that also ignores
639
+ conflicts. Only `merged` confirms success. The optional
640
+ `timeout_seconds` defaults to 1,800 and accepts 1–7,200. With `kind: "timer"`,
641
+ `seconds` (60–7,200) and an optional `note`, Squawk wakes the agent at that time and
642
+ hands the note back. No authored configuration or worker delegation permission is
643
+ needed. A PR wait requires `gh`, access to the repository, and a supported GitHub
644
+ host; GitHub Enterprise hosts must already be recognized by the forge/auth
645
+ configuration. Tool startup itself makes no GitHub request. With **Monitoring
646
+ wake-up** turned off in **Settings → Resources**, `cezar_wait` refuses a timer
647
+ (`timers_disabled`); once the automatic-wake budget of 40 is spent, it refuses one
648
+ with `wake_budget_spent`, and a run with nothing else to wait on waits for you. The
649
+ budget is kept on the task, so a cockpit restart keeps it; a message from you or a
650
+ Continue starts it again.
651
+
652
+ A CI wait stays pending while any GitHub Actions workflow run on its captured
653
+ head commit is incomplete, even when a rerun temporarily hides that run's checks.
654
+ It checks again every 30 seconds within the original deadline. Once those runs
655
+ complete, it reads the checks again to decide the result. A result describes what
656
+ GitHub reported; it does not predict workflows that have not appeared yet or grant
657
+ merge approval.
658
+
659
+ A merge wait (`until: "merge"`, hearsay-tools/cezarion#1425) reads the PR's state at
660
+ once and then every 30 seconds within its deadline. It ends as `merged` only when
661
+ GitHub reports the PR merged, with the merge time and merge commit when GitHub gives
662
+ them, and as `closed` when the PR closed without merge. Green checks keep it open,
663
+ and so does a new head commit. A merge wait holds none of the four watcher slots, so
664
+ long merge waits never delay a checks wait. By default both targets also end as
665
+ `conflicting` when the PR has merge conflicts. Set `wake_on_conflict: false` when the
666
+ agent watches a PR it does not own, such as another agent's PR its work depends on:
667
+ it cannot resolve those conflicts. With `until: "checks"`, GitHub often runs no
668
+ workflows on a conflicting PR, so such a wait usually ends as `no_checks` or at its
669
+ deadline. A checks wait and a merge wait on the same PR are two waits.
670
+
671
+ The agent asks you with `cezar_ask`, a card of one to four questions in the ask
672
+ format. A question with two to four options shows them as choices; a question without
673
+ options is open, and the card shows a text box for your answer. The task reads Needs
674
+ you once the turn ends, and your next message answers it. `cezar_wait` takes PR, worker, request,
675
+ peer, process and timer waits only, and points an agent that asks it for a human wait to `cezar_ask`. A run
676
+ has one question to you at a time, and the agent cannot cancel it once you have seen
677
+ it. A native question opens the same kind of wait. When the work is
678
+ done and verified, the agent calls `cezar_done` (an optional `summary`), and the task
679
+ finishes at the end of that turn: its open waits are cancelled and the summary is
680
+ written as a note. In a workflow step that is not the last, `cezar_done` finishes that step
681
+ and Cezarion starts the next one. `cezar_done` refuses while owned workers are live or uncollected,
682
+ a worker question is unanswered or a question to you is still pending, and says what to do first. An
683
+ autonomous task does not wait for you until its automatic-wake budget is spent.
684
+
685
+ A run can have several waits open at once, up to 16. Each answer carries the
686
+ wait's id, its absolute deadline and the list of waits still open, and
687
+ `cezar_cancel_wait` closes one by its id. The agent ends its turn to wait, with no
688
+ marker required. The run is then `waiting`, and the pill reads **waiting for CI**,
689
+ **waiting for merge** or **monitoring** rather than Needs you. The header lists every open wait: **Waiting
690
+ for CI — owner/repo#N** or **Waiting for merge — owner/repo#N** with a PR link and the deadline, or **Next automatic check**
691
+ with its time and note. **CI result ready — waiting for capacity** means the
692
+ observation is owed to the agent and its wake turn has not started yet. A run parked
693
+ on CI or a timer keeps its agent slot, a monitoring slot when one is free, so the
694
+ wake usually starts at once. Claude's `ScheduleWakeup` opens a timer in the same list.
695
+
696
+ Every agent session needs these tools. Squawk starts a private local socket for them,
697
+ in the system temporary directory, when the first session of a cockpit launches. If it
698
+ cannot start, for example because that directory is full or not writable, the task fails
699
+ before the agent starts. The error names the cause and the fix: free space or fix the
700
+ permissions, then Continue the task. A task woken by a wait retries with the usual backoff.
701
+ The cockpit and other tasks keep working, and the next launch tries again.
702
+
703
+ Squawk reports passed, failed, cancelled or skipped checks, no checks, changed head,
704
+ timeout or an operational error. It watches the registered commit: a new PR head
705
+ is reported separately, and the agent decides whether to wait again. The first
706
+ observation runs immediately. Later check-status and PR-head polls run every 30
707
+ seconds, and no setting changes that interval. Four watchers run concurrently;
708
+ queued waits retain their original deadline. Results are bounded
709
+ observations, not merge approval or evidence that every expected workflow appeared.
710
+ The agent still decides its next action; CI success never completes the task or
711
+ accepts review. A wait ends only when its own result arrives, its deadline passes,
712
+ or someone cancels it: the agent with `cezar_cancel_wait`, or Squawk when the task
713
+ is stopped, finished, cancelled or deleted. A human message wakes the agent without
714
+ closing any wait, and every delivered turn ends with a list of the waits still open.
715
+ CI never answers a pending human question. If the agent's session fails or closes while a
716
+ result is owed, Squawk retries the delivery after 15 and then 30 seconds; a third
717
+ failure marks the task failed and keeps the result. Continue delivers it, and Stop
718
+ discards it and leaves the task failed.
719
+ Controller recovery can replay an
720
+ observation after an ambiguous delivery checkpoint, identified by its stable
721
+ lifecycle input ID.
722
+
723
+ The deprecated `cezar_wait_for_ci` tool was removed (hearsay-tools/cezarion#1236):
724
+ call `cezar_wait` with `kind: "pr"` instead. `kind: "ci"` itself was replaced by
725
+ `kind: "pr"` (hearsay-tools/cezarion#1425) and is refused with a message that names
726
+ the new spelling.
727
+
728
+ The adapters are bundled for Claude (including `claude-cli`), Codex, OpenCode,
729
+ Cursor, Pi and OMP. Internal socket/capability environment values are runtime wiring,
730
+ not settings to create or share. If the tool is unavailable or denied, its error
731
+ is surfaced while ordinary tasks continue. See [the CI-wait protocol](AGENT_PROTOCOL.md#ci-wait-tool-contract-474)
732
+ for the owners of the limits and the harness evidence required before a runner ships.
733
+
734
+ ## Discover runners and models
735
+
736
+ Inspect the same host catalog the cockpit uses before selecting a runner or model:
737
+
738
+ ```sh
739
+ hsq discover runners
740
+ hsq discover models --runner=codex
741
+ ```
742
+
743
+ Both commands return JSON. `runners` lists connection status (`connected`, `disconnected`, `not-installed`, or `unknown`) and enablement, with `scope: "host-default-account"`. Model rows include `effortLevels` when the runner advertises them: an absent field means unknown; an empty array means no advertised levels. Omit `--effort` when spawning to keep the existing default. Model responses retain `source`, `stale`, and any unavailable `reason`; discovery never invents model IDs or effort support.
744
+
745
+ For operators, the command finds the running cockpit for the current checkout; `--repo`, `--url`, and `HSQ_URL` (`CEZ_URL` fallback) work as they do for `hsq task`. A missing cockpit returns an error and never starts a server. Inside a parent delegation session, the same command uses that session's authenticated controller, including headless runs. It rejects `--url` and `--repo` in that context and never falls back to a public cockpit after an authentication failure. Owned workers cannot use the private discovery route.
746
+
747
+ The catalog describes host default accounts, not every named account or the selections permitted by a task's model locks and workflow pins.
748
+
749
+ ## Parallel variant removal
750
+
751
+ Parallel variants (×2/×3) are removed in the next breaking minor release (0.17).
752
+ The owner chose immediate removal without a deprecation window
753
+ (hearsay-tools/cezarion#1542). The composer starts one task. `POST /api/v1/runs`
754
+ refuses `variants: 2` or `3` with `400`; it never turns them into one candidate.
755
+ The old `variants: 1` spelling still means an ordinary run.
756
+
757
+ The compare page and its group routes are retired too (hearsay-tools/cezarion#1760).
758
+ Historical `groupId` and `variant` fields remain stored, and old variant runs list as
759
+ ordinary tasks. Old `/compare/:groupId` links, including project-scoped links, open the
760
+ task list. No retirement migration deletes runs, branches or worktrees;
761
+ normal retention and explicit cleanup still apply. Saved multi-candidate drafts and
762
+ automations offer **Use one task** before saving or launching. A saved automation with
763
+ `task.variants > 1` reports an error on launch; edit it to remove that field or set it to `1`.
764
+
765
+ For explicit comparison, ask a task: “Spawn two owned workers from the same committed
766
+ baseline. Try a minimal change and a structural approach. Collect both results and
767
+ compare their diffs. Show me the commits to choose from before integration and cleanup.”
768
+ The parent uses `hsq worker spawn`, `collect` and `diff`, reviews the chosen commits,
769
+ integrates them with Git, then uses `hsq worker destroy` for verified cleanup. Read
770
+ `diffSnapshot` from an available collection's JSON file rather than applying that file
771
+ as a patch. Collect each worker's latest settled revision before finishing. Owned workers
772
+ keep their ownership, isolation, resource limits and Git cleanup safeguards. There is
773
+ no one-click comparison page, automatic winner selection or automatic loser cleanup.
774
+
775
+ ## Owned workers
776
+
777
+ Every task has two settings, both on by default:
778
+
779
+ - **Allow cezar workers**: the task's agent may start Cezar workers and resume them. Each worker is a separate paid agent session. The worker limits below cap resources, not spending.
780
+ - **Allow task messaging**: the task's agent may list, message and wait on other tasks in this project with `cez message`.
781
+
782
+ Set them in the new-task form, in the task's header menu at any time, with `cez task start` or `cez run` and `--no-workers` / `--no-messaging`, or in an automation's `task.allowWorkers` / `task.allowMessaging`. A task created before these settings existed counts as on for both. The cockpit and headless `cez run` start one private loopback listener; each eligible session receives the absolute bundled Node/CLI invocation and its own environment credentials. No `cez` installation on the agent's PATH, config file, separate daemon, or remembered port is needed. If the listener cannot start, ordinary tasks keep working without delegation tools.
783
+
784
+ Turning **Allow cezar workers** off refuses new `spawn` and `--resume` at once, including through a session's existing credential and for a spawn still waiting to be accepted. The task keeps messaging, waiting on, inspecting, collecting, stopping and destroying the workers it already has, and work already accepted finishes. Turning **Allow task messaging** off refuses peer discovery, new peer waits and new peer messages in both directions; a reply to a request accepted earlier still lands, and messages between a task and its own workers are never blocked. A root task with both off, no worker receipt and no open peer request gets no credential; worker sessions, and roots with a worker receipt (also a deleted worker's, so its retained result stays collectable) or an open peer request, keep theirs. Native subagents inside one session are not Cezar workers, and these settings do not change them. These settings are cooperative supervision, not process isolation.
785
+
786
+ `CEZ_DELEGATION` is retired and has no effect. A caller that set `CEZ_DELEGATION=1` needs no change. A caller that relied on it being unset turns the settings off per task, for example `cez run --no-workers --no-messaging "<task>"`.
787
+
788
+ The provisioned command has these forms (the session instructions supply the absolute invocation):
789
+
790
+ ```sh
791
+ cez worker spawn --baseline parent-head --request-id <UUID> 'Implement the assigned change'
792
+ cez worker spawn --baseline parent-head --request-id <UUID> --runner codex --effort high --context-file ./selected-context.txt 'Review the parser'
793
+ cez worker spawn --baseline parent-head --request-id <UUID> --workflow review 'Review the parser change'
794
+ cez worker list # All own workers, revisions and cleanup resources (fetches pages automatically)
795
+ cez worker inspect <worker-id>
796
+ cez worker steer <worker-id> 'Consider this additional constraint'
797
+ cez worker diff <worker-id>
798
+ cez worker collect <worker-id>
799
+ cez worker wait <worker-id> --mode one --timeout-seconds 600
800
+ cez worker wait <first-id> <second-id> --mode any --timeout-seconds 600
801
+ cez worker wait <first-id> <second-id> --mode all --timeout-seconds 600
802
+ cez worker cancel-wait <wait-id>
803
+ cez message request <recipient-run-id> 'Please check this decision' --id <message-UUID>
804
+ cez worker resume <worker-id> 'Correct the returned result' --id <new-message-UUID>
805
+ cez message progress <recipient-run-id> 'Parser tests pass' --id <message-UUID>
806
+ cez message follow-up <recipient-run-id> 'Include empty input' --id <message-UUID> --request-id <request-UUID>
807
+ cez message reply <recipient-run-id> 'Checked; empty input is covered' --id <message-UUID> --request-id <request-UUID>
808
+ cez message conversation <recipient-run-id>
809
+ cez message wait --request <request-UUID> --request <another-request-UUID> --mode all
810
+ cez message wait --peer <task-id> --timeout-seconds 1800 # Wake on that peer task's next message, or when it settles
811
+ cez message inbox
812
+ cez message tasks --all
813
+ cez message cancel-wait <wait-id>
814
+ cez message cancel-request <request-UUID>
815
+ cez worker stop <worker-id>
816
+ cez worker destroy <worker-id>
817
+ ```
818
+
819
+ Use `cez message --help` for messaging commands. Use `cez worker --help` to list worker operations and flags, or `cez worker <operation> --help` for one operation. Explicit help prints human-readable text and exits successfully without an active delegation session. Commands otherwise return bounded JSON and a nonzero exit on failure or incomplete cleanup. Spawn requires a committed baseline (`parent-head` or an explicit ref) and pins its SHA at acceptance; dirty parent edits are excluded. Optional `--context '<text>'` or `--context-file <UTF-8-file>` supplies selected context, not the parent's conversation. The two flags are mutually exclusive, and combined task/context text is limited to 100,000 characters. The API also accepts up to 32 pinned-baseline file or parent-attachment references, with at most 8 MiB of copied attachments. Inspect reports worker-local input locations. Reuse a request ID only with the same task, baseline, context, runner, model, effort and workflow when retrying a lost response. `--runner` and its alias `--backend` count as the same field, so a retry may switch spelling. A parent holds at most 32 outstanding workers: accepted, live, or not yet verifiably destroyed. A verified destroy (`cez worker destroy`, or **Clean up** on a finished worker in the cockpit's Workers list) frees a slot; incomplete cleanup keeps its slot until a retry completes. A parent can create at most 1,024 workers in total; past that, start a new task. These limits bound disk resources and runaway spawning, not spending: a worker can be resumed with Continue, and destroying it does not undo charges already made. Cost stays bounded by `maxParallel` and by stopping the parent. There are at most 32 undelivered steering messages per worker.
820
+
821
+ An incomplete destroy reports the remaining resources and a reason. Cezarion retries that recorded request after a delay, including after the project's context recovers on server restart. It removes the owned checkout only after process termination and ownership are verified. If the reason persists, inspect the worker process, Git worktree lock and ownership receipt; correct the blocker and use `cez worker destroy <worker-id>` or the cockpit Destroy action to retry immediately. Cezarion leaves ambiguous or replaced resources in place for operator review.
822
+
823
+ `--workflow <name>` runs a catalog workflow inside the worker: the built-in `quick-task` or any `.ai/cezar/workflows/*.yaml` by name, with its agent and check steps, `skill:` bodies and `onFail` loops, so a repo's `review.yaml` becomes a dedicated reviewer. Omitted `--workflow` runs `quick-task` exactly as before. `--runner`, `--model` and `--effort` fill only the steps that leave those fields unset; a step's own `allowedTools`/`bashAllowlist` narrow the parent's grants and never widen them. An unknown name is refused. Agent steps may mix runners: at spawn every agent step is resolved and pinned separately, so an implement-with-codex, review-with-claude chain runs each step under its own runner, account, model, effort and grants. A step's optional `agentProfile` names the account it runs under (an id the registry does not know is refused); same-runner steps otherwise inherit the parent's account and other runners resolve their project/default one. Run-level columns show the first agent step.
824
+
825
+ Explicit default-account model pins are checked against a fresh, nonempty host catalog after account/model resolution and before a worker is created. Named accounts retain existing validation because a default-account catalog cannot disprove their model access. A miss returns `invalid_input`, available models with advertised efforts, and other runners listing the requested ID in `modelChoices`. Empty, stale, or unavailable discovery leaves existing selection validation in place. Accepted retries and omitted model defaults are unchanged.
826
+
827
+ Omitted `--runner` inherits the parent's active runner. Same-runner workers inherit omitted model/account/effort; `--runner <claude|codex|opencode|pi|cursor|omp>` selecting another runner resolves that runner's project/default account and model without forwarding another provider's settings. `--backend` is a permanent alias of `--runner`; giving both with different values is refused as `invalid_input`. Worker `inspect` and `collect` still report the selected runner in a field named `backend`. `--model <model>` selects a supported model, subject to existing locks. `--effort <low|medium|high|xhigh|max>` pins reasoning effort on same-runner and mixed-runner spawn; omitted `--effort` still inherits the parent pin on same-runner spawn and drops it on mixed-runner spawn. Accepted identity and grants remain fixed across queuing, restart and Continue, including explicit empty grants. Changing or deleting an account registry entry does not rebind a worker. Missing accepted identity evidence or account homes, incompatible Claude state-file layouts, and conflicting later model locks refuse execution explicitly. Credentials and vendor configuration are never copied; each worker receives its own delegation credential, and unspecified native models stay unspecified.
828
+
829
+ Wait registers immediately. End the parent turn to release scheduler capacity; Cezarion resumes it on a selected settled outcome or the finite deadline. `any` is the default, `one` requires exactly one worker, and `all` waits for every selected worker. Review, completion, failure, cancellation with proven termination, and destruction are outcomes. Timeout defaults to 600 seconds (1–1800 accepted). `cancel-wait` is idempotent for the retained wait ID and cannot cancel a newer wait. Timeout and wait cancellation report partial outcomes and unresolved workers, never cancel workers, and never automatically re-wait. Steering is attributed agent input and cannot answer a pending human question.
830
+
831
+ Parents and owned workers can converse in both directions; a worker may address only its parent. `send --kind request` opens a reply obligation whose ID is the message ID; `send --kind progress` (or `progress`) does not. Follow-ups clarify an existing request; only an explicit correlated `reply` settles it as replied. Retry a message with the same ID and exact payload, including deadline duration; changed payloads are rejected. Acceptance, provider delivery, reply, and task completion are separate facts, visible in the task transcript and `conversation` JSON.
832
+
833
+ Messages allow 100,000 characters each, with at most 32 undelivered inputs per recipient, 1,024 messages per family, and 32 pending requests. Request deadlines default to 600 seconds, configurable per message with `--timeout-seconds 1–1800`. Request waits use the same limits and `one`/`any`/`all` modes as worker waits, and each run has one active wait. Incoming conversation can interrupt a parked wait without settling its requests. `cancel-request` cancels an obligation; `cancel-wait` only stops waiting. Completion without a reply, failure, cancellation, destruction, timeout, or sender closure settle obligations distinctly. Late replies remain visible without reopening them.
834
+
835
+ Messages reach a live recipient as soon as they are accepted, including mid-turn: Claude, Codex, Pi, OMP and OpenCode steer them into the running turn, and the model reads them at its next step. Cursor delivers at the turn boundary, because a second prompt would cancel its running turn. Pending conversations go together, in order, up to 32 messages and 100,000 formatted characters per batch; a single valid message is never split. Every message keeps its ID, sender, delivery receipt and request outcome; receipts show queued, delivered and read (when the agent's harness can tell) separately. A pending human question holds messages until it is answered, then they follow right behind the answer. The thread's Details distinguish creation, delivery confirmation and event-recording times.
836
+
837
+ Sending a message to a review or terminal participant reports `not-delivered` and `continuation-required`, with the reason and next command; the CLI exits 1. An active parent can use `cez worker resume` to continue its settled done/review/failed worker with that message as the new instruction. No human Continue is needed for this parent-controlled action. A retry with the same payload and ID never creates another continuation; resuming after a rejected message requires a new ID. Stopped or destroyed workers need a new worker. Workers cannot resume parents, and conversation never answers a pending human question. Durable IDs deduplicate accepted queue entries and event replay, but a crash between provider acceptance and its durable delivery checkpoint can leave transport delivery ambiguous; this is not an exactly-once execution guarantee.
838
+
839
+ Collect returns the worker's execution revision, status/outcome, `settled` and `partial` flags, and typed availability for assistant summary, HEAD, bounded diff and artifact descriptors. Missing evidence is explicit; running output is partial. An available `diff.path` points to a **JSON result file** containing `{ result, diffSnapshot }`; its `diffSnapshot` field holds the patch. Read and review that field before applying any changes. The latest collected result is stored under the parent and survives restart. Collection acknowledges observation, not Git integration or successful work. Review desired worker commits and deliberately integrate them into the parent before destroying their worktrees/branches; there is no automatic merge.
840
+
841
+ Parent completion requires collection of every worker's latest settled execution revision. A worker Continue invalidates older readiness. An early completion attempt waits for outstanding workers and wakes the parent to inspect/collect; it does not silently finish on wake. While workers remain live, markerless replies, completion timeouts, and repeated premature completion park the parent as monitoring with the existing capped wakeups. Once workers settle, repeated completion without collecting their results retains attention. Human Finish also refuses unresolved/uncollected workers. If the parent is already under review, Continue the parent first, then Continue its worker. Human questions remain authoritative.
842
+
843
+ Stop requests cancellation; `stopping` does not prove termination. Destroy checkpoints obtainable results, waits up to 30 seconds for proven termination, and removes only verified owned resources. An `incomplete` response lists remaining resources; resolve the cause and retry explicitly. Cleanup order is: collect/integrate desired results, destroy owned resources, explicitly delete child histories through the cockpit/API, then delete parent history. Parent-owned summaries and bounded diff snapshots remain until parent deletion, including after child-history deletion; general artifact bytes are not archived. Branch/path strings and SHAs become historical descriptors after removal, not promises of available Git objects or files. The human cleanup endpoint `POST /api/v1/p/<projectId>/runs/<worker-id>/worker-destroy` stays available when delegation is disabled. The CLI bounds each HTTP request to 45 seconds and rejects endpoint/auth/origin overrides and redirects.
844
+
845
+ Provisioned root tasks and workers may use native subagents, and each mechanism has its own purpose. Use native subagents for work that needs no separate worktree: research, code reading and focused analysis, for example a subagent that reads the parser and summarizes its error handling. Native subagents need no worker creation, worktree, collection or destruction. Use Cezarion workers for work that needs its own worktree, its own commits or a tracked lifecycle. Workers may use native subagents too, but cannot spawn Cezarion workers. An agent may message its own subagents with its runner's tools; it reaches another Cezarion task only through `cez message`. Where a runner's native tool for reaching another session is separate from subagent messaging, a per-run adapter control turns it off: Codex's cross-thread message board, and an OpenCode plugin that refuses a `task` call whose `task_id` names a session outside the caller's own session tree. Claude sessions refuse messages from other sessions on every launch. Known limitations: a Claude session Cezarion starts can still list and message Claude sessions that Cezarion did not start, and sessions on other machines; an OpenCode session that an older Cezarion created under delegation keeps its `task` deny on Continue and restart recovery, because OpenCode cannot remove a session permission rule (new OpenCode sessions allow subagents). These controls are cooperative same-user supervision, not isolation ([Governed delegation controls](AGENT_PROTOCOL.md#governed-delegation-controls-d1)). When the listener is unavailable, ordinary tools/settings stay unchanged. The listener binds to `127.0.0.1`, including hosted cockpit mode. Its session credentials authorize only what that session may do: a root manages its own workers and messages peer roots in the same project, subject to the task's settings and relationship checks; a worker addresses only its parent. This is cooperative local-agent supervision; same-user unrestricted shell and custom tools are not hard isolation. Workers cannot spawn Cezarion workers or message peers through Cezarion. Review remains a human gate with no automatic acceptance. Never read, echo, forward, or persist the generated token.
846
+
847
+ ## From the terminal: `cez task` and `cez message`
848
+
849
+ `cez task` starts, watches and steers tasks **in the running cockpit** from a shell — for you, or
850
+ for a bot driving one. Every command prints one JSON object and exits with a code the caller can
851
+ branch on, so nothing has to parse prose. It never starts a server: it finds the cockpit whose
852
+ project registry holds this checkout (ports 4321–4370; a task worktree resolves to its parent
853
+ project), or you point it at one with `--url` / `CEZ_URL`.
854
+
855
+ ```text
856
+ cez task [--url <origin> | --repo <dir>] <operation> …
857
+ ```
858
+
859
+ The shared `--url`, `--repo` and `--help`/`-h` flags also work before the operation;
860
+ `--url` and `--repo` accept both `--flag value` and `--flag=value`. A shared flag repeated
861
+ before the operation or on both sides is a usage error. Operation flags stay after the
862
+ operation. `cez task --help <operation>` shows that operation's help without discovery.
863
+ An explicit `--url` wins over `CEZ_URL`; `--repo` selects the checkout to discover.
864
+
865
+ `cez task send` is human input. It can answer a pending human question. It refuses
866
+ inside a task (`CEZ_TASK_ID` is set). Agents use `cez message` for task messages,
867
+ including peer and parent/worker conversations; see [Owned workers](#owned-workers).
868
+
869
+ ```bash
870
+ id=$(cez task start --task-file - <<'EOF' | jq -r .id
871
+ Fix the `cez task` docs. Keep $(example) and "quotes" literal.
872
+ EOF
873
+ )
874
+ cez task wait "$id" --timeout-seconds 900 # 0 done/review/needs you · 1 failed · 3 timeout
875
+ cez task list # currentStepId (running), pullRequestUrl (done/review), capped error (failed)
876
+ cez task status "$id" # slim JSON: status, attention, question, branch, handoffUrl…
877
+ cez task send "$id" 'Use the retry helper instead' # delivered live, queued before start
878
+ cez task send "$id" --resume 'Continue with the next step' # resumed: reopen a settled session
879
+ cez task log "$id" --follow --timeout-seconds 300 # JSON lines until it needs you or ends
880
+ ```
881
+
882
+ `list --status` accepts comma-separated values: `queued`, `running`, `waiting`, `review`,
883
+ `done`, `failed`, `cancelled`. Default rows include only the next-action field for their status
884
+ when defined; errors use the first line, at most 200 characters including `…` when cut.
885
+ Default `status` includes `handoffUrl`, a URL to the existing handoff endpoint even before
886
+ contents are seeded, and keeps the full error. `--full` still prints the contract unchanged.
887
+ To answer a pending `question`, use the same `send` with the answer text. Without `--resume`,
888
+ a closed session returns `delivery: not-delivered` and the `next` command. For multi-line or
889
+ shell-sensitive messages use `send <id> --text-file <path|->` (`-` reads stdin); the quoting
890
+ rules below apply to messages too.
891
+
892
+ Use `--task-file PATH` to read a saved task (for example, `cez task start --task-file task.md`),
893
+ or `--task-file -` to read stdin as above. The quoted heredoc delimiter (`<<'EOF'`) keeps
894
+ backticks and `$()` literal in the task text.
895
+
896
+ POSIX shells, including Bash, expand backticks and `$()` in double-quoted arguments before
897
+ cez receives the text. **Do not put raw backticks in double-quoted task arguments.** This can
898
+ execute parts of your prompt as shell commands and leave holes in the stored task, including
899
+ when starting tasks through SSH and `bash -lc`. Prefer a task file or stdin with a quoted
900
+ heredoc delimiter. A single-quoted positional argument still works for short tasks:
901
+ `cez task start 'Fix the typo'`.
902
+
903
+ `cez task start --task-file task.md --skill <name>` names one skill as the task's agent step;
904
+ `--skill` and `--workflow` are mutually exclusive. The CLI checks `GET /skills` first and
905
+ includes a `warning` in its JSON result if the skill is missing or the catalog cannot be
906
+ checked; it still starts the run. Like a cockpit skill start, if the skill is missing at
907
+ execution, the agent uses the plain prompt and the run logs a note. CLI starts do not change
908
+ the cockpit composer's recent picks or skill-usage ranking.
909
+ Without either flag, `start` still runs `quick-task`.
910
+
911
+ `--runner <claude|codex|opencode|pi|cursor|omp>` picks the runner, as in a workflow step and
912
+ `cez discover --runner`; `--model` and `--effort` pin the rest. `--backend` is a permanent
913
+ alias of `--runner` with no warning. Giving both with different values exits 64.
914
+
915
+ `--archive-when-done` archives the task after **Done**. `--auto-merge-pr` merges its
916
+ PR after **Done** only when current-head CI and GitHub rules pass. It can mark a
917
+ draft PR ready. Both controls are off by default. They also appear as switches in
918
+ the task composer and task details. With both on, Cezarion merges before it archives;
919
+ without a PR, it archives on Done. Pending or blocked completion actions show their
920
+ reason in task details. Use `status <id> --full` to read the saved `archiveWhenDone`,
921
+ `autoMergePr` and `completionAction` fields. Existing task choices can be changed
922
+ through `PATCH /api/v1/p/:projectId/runs/:id` with the matching boolean fields.
923
+
924
+ `start` is retry-safe: it sends a request id (`--request-id <UUID>` to pick your own), and a
925
+ retry with the same id and start options answers with the run the first one created
926
+ (`created: false`) instead of starting a second. Changing a completion control on that
927
+ retry is a payload conflict. Also: `list`, `stop`, `finish`, `diff [--stat]`, `open`.
928
+ Use `archive <id>` to hide a task from `list`, `unarchive <id>` to restore it, and
929
+ `list --all` to include archived tasks. `list` never shows owned workers, with or without
930
+ `--all`: they are steer targets of their parent task. Id-addressed commands (`status`, `wait`,
931
+ `send`, `log`, `stop`, …) still accept a worker's id. `archive-finished` sweeps finished tasks (not scheduled runs waiting on a usage limit, and not owned workers, which leave with their parent) and prints
932
+ `{"archived": count, "ids": [...], "pinnedIds": [...]}`. The single-task commands print `{"id": "…", "archived": true|false}`.
933
+ Exit codes:
934
+ `0` ok (`wait`/`start --wait`/`log --follow`: the task ended `done`/`review` or stopped for attention), `1` task
935
+ failed/cancelled or a message was not delivered, `2` no cockpit or the cockpit refused (its `error`
936
+ is passed through), `3` timed out, `64` usage error. `cez task --help` lists every flag.
937
+
938
+ **When a task needs you.** `status`, `list`, `wait` and the final `log --follow` line carry `attention` and `attentionLabel`,
939
+ derived by the same function the cockpit's Needs You uses, so the CLI and the cockpit cannot
940
+ disagree. Read those rather than the raw status:
941
+
942
+ - `attention: waiting` (`attentionLabel` "needs you" / "needs review"), `error` or `permission`
943
+ means the task wants a human. A `waiting` task is attention **even when no question is
944
+ pending** — a finished turn parks the task for follow-up without a structured question —
945
+ unless its top open wait is CI or a timer (below). A pending question shows as `question`
946
+ on `status`, with the agent's Markdown context as `questionContext` when it sent one, and as
947
+ `waitingOn` `{ kind: 'human' }`; never clear a task on its absence alone.
948
+ - `attention: running` with `attentionLabel` "waiting for CI", "waiting for merge" or "monitoring"
949
+ (`status: waiting` with an open PR wait or timer in `waitingOn`) is neither settled nor attention: the agent is
950
+ still working on its own sub-agents or a watched command, whatever its last log line says.
951
+ - `attention: none` with "waiting on 2 workers" is a task parked on its own workers; it will wake
952
+ by itself.
953
+
954
+ `wait`, `start --wait` and `log --follow` stop as soon as a task needs you or ends
955
+ (`--until attention`, the default); `--until settled` waits for a terminal status only — for
956
+ `--autonomous` runs, or a bot that wants an outcome:
957
+
958
+ ```bash
959
+ cez task wait "$id" # stops when the task needs you, or ends
960
+ cez task wait "$id" --until settled # done/review/failed/cancelled only
961
+ cez task start --task-file task.md --wait # returns as soon as the agent parks
962
+ cez task start --task-file task.md --wait --autonomous --until settled # runs to completion
963
+ cez task log "$id" --follow # streams until the task needs you, or ends
964
+ cez task log "$id" --follow --until settled # streams until done/review/failed/cancelled
965
+ ```
966
+
967
+ *Migrating from `--until settled`.* Before 0.16, `wait` and `start --wait` defaulted to
968
+ `settled`, so an ordinary interactive task ran out the timeout (exit 3) although the agent had
969
+ parked within seconds. The default is now `attention`. A bot that polls for terminal state adds
970
+ `--until settled` to its `wait` / `start --wait` calls; nothing else about `settled` changed. Each
971
+ run in the `wait` output (and the `start --wait` object) now carries `attention` +
972
+ `attentionLabel`, and the output's top level says which `until` was in force, so a caller can tell
973
+ "parked for follow-up" (`status: waiting`, `attention: waiting`) from "finished" (`status: done`,
974
+ `attention: none`) without knowing Cezarion's status vocabulary.
975
+
976
+ *`log --follow` (#931).* `log --follow` used to stop on a terminal status only, so tailing an
977
+ interactive task streamed until `--timeout-seconds` and exited 3 after the agent had parked. It
978
+ now takes the same `--until` with the same `attention` default, judged by the same function as
979
+ `wait`; `--until` without `--follow` is a usage error. Every event is still printed before the
980
+ final line, which is now `{"id", "status", "attention", "attentionLabel", "until", "timedOut"}`. A
981
+ bot that tails to terminal state adds `--until settled`. `log` without `--follow` is unchanged.
982
+
983
+ **A bot that lives behind an HTTP endpoint** does not have to poll. Add a webhook (a name, a
984
+ description, a URL and an optional Bearer token) under **Webhooks** in the project's **Settings →
985
+ General** and turn on **Task notifications**. Every task that opts in then POSTs one delivery to
986
+ each such webhook when it enters a state that webhook selects: **Needs you**, **Failed**,
987
+ **Done** and **Cancelled** by default, plus **Running**, **Waiting for agents**, **Waiting on CI**,
988
+ **Waiting** (a timer) and **Any other wait** when you tick them. A question that puts the task in
989
+ Needs you is `task.question`; every other entry is `task.status`, and the body's `state` names the
990
+ state. `task.subscribed` (when it opts in, at start or on hand-off) and **Send test** always go out.
991
+ Each body carries the same slim projection `cez task status` prints, under `task`. `cez task start`
992
+ opts in whenever the project has a webhook (`--no-notify` to skip it); the cockpit's New task form
993
+ has a **Notify webhook** toggle; and a running task's **Hand off** button (or
994
+ `cez task notify <id> --message '…'`) turns it on later with a note for the bot. `notify` (and
995
+ `send --notify`) on a worker's id is a usage error that names the parent to notify instead;
996
+ `notify --off` still works on one. The note goes to
997
+ the webhook only, never to the agent. Delivery is best-effort: 10 s timeout, 3 attempts, and a
998
+ failure shows in the thread without touching the task. The token is stored in `~/.cezar` and never
999
+ sent back to a browser. Under `CEZ_DRY_RUN=1` nothing is sent; the payload is logged in the thread.
1000
+
1001
+ A project can hold several webhooks, each with its own states, and each body names the webhook it
1002
+ went to under `webhook`. One failing webhook never delays or stops another.
1003
+
1004
+ ### Reports from agents: `cez webhook`
1005
+
1006
+ Turn on **Let agents send reports** for a webhook, and agents in that project can send it a report
1007
+ on demand: a friction report to a triage bot instead of a new GitHub issue, for example. Agents see
1008
+ each such webhook's name and description in their system prompt, so write the description as
1009
+ instructions ("Send friction you hit with tools here instead of filing a GitHub issue"). A webhook
1010
+ without that switch cannot be reached this way.
1011
+
1012
+ ```sh
1013
+ cez webhook list # the webhooks open to agents
1014
+ cez webhook send 'Friction reports' --message-file report.md --title 'Squeal skipped an edit'
1015
+ cez webhook send <name|id> --message 'Short report' [--data '{"severity":"low"}']
1016
+ ```
1017
+
1018
+ The body is `event: "agent.report"` with `webhook`, `title`, the Markdown `message`, your `data`,
1019
+ and the reporting task's `runId`, thread `url` and `task` projection. The command prints the
1020
+ outcome as JSON and exits 0 delivered, 1 not delivered, 2 refused or no cockpit, 64 usage.
1021
+
1022
+ ### Automations from a task: `cez automation`
1023
+
1024
+ `cez automation` creates and manages automations (on by default; `CEZ_AUTOMATIONS=0` disables them) on the cockpit that
1025
+ runs the task, so an agent asked to "do X every morning" or "whenever a PR opens" sets up an
1026
+ automation instead of a cron job. Like `cez task`, it prints one JSON object per invocation and
1027
+ exits 0 ok, 1 check failed, 2 refused or no cockpit, 3 check timed out, 64 usage.
1028
+
1029
+ ```sh
1030
+ cez automation schema # the definition reference (needs no cockpit)
1031
+ cez automation add --name 'Weekday triage' --cron '0 7 * * 1-5' --prompt 'Triage new issues'
1032
+ cez automation add --name 'Review PRs' --on pull_request.opened --every 5m --label bug --prompt-file p.md
1033
+ cez automation add --name 'Agent triage' --on issue.labeled --changed-label needs-agent --prompt 'Triage #{{github.number}}'
1034
+ cez automation create --file def.json [--enable] # full JSON form; stdin when no flag is given
1035
+ cez automation update <id> --json '{"task":{"prompt":"…"}}'
1036
+ cez automation add --name 'Check the rollout' --at 2026-10-29T09:00 --tz Europe/Warsaw --prompt 'Check the rollout'
1037
+ cez automation add --name 'Follow up' --in 7d --latest-start 6h --prompt 'Follow up on the migration'
1038
+ cez automation check <id> [--execute] · run <id> · list [--archived include|only] · show <id> · enable <id> · pause <id> · cancel <id> · delete <id>
1039
+ ```
1040
+
1041
+ `add` and `create` send the same body and create the automation **paused** unless `--enable` is
1042
+ given; `--cron` accepts the four shapes a schedule can take (daily, weekdays, one weekday, every N
1043
+ hours) and anything else is a usage error pointing to the JSON form. `update` replaces each key
1044
+ it is given, except `task`, which merges key by key (`null` removes one); it restates `enabled`
1045
+ and echoes the revision it read, so a concurrent edit in the cockpit is refused (exit 2), never
1046
+ overwritten. Mutating commands print the automation's cockpit page as `url`.
1047
+
1048
+ `add` accepts `--archive-when-done` and `--auto-merge-pr` with the same behavior as
1049
+ `cez task start`. The JSON keys are `task.archiveWhenDone` and `task.autoMergePr`.
1050
+ Both are optional booleans and default to off. The automation editor has the same
1051
+ switches. Editing these choices affects future tasks only; it does not change tasks
1052
+ the automation already launched. Enabling an automation or making its tasks autonomous
1053
+ does not enable either completion control.
1054
+
1055
+ GitHub automations exclude events before enablement by default. Turn on **Include existing items**
1056
+ in the editor, pass `--include-existing` to `add`, or set `"filters": {"includeExisting": true,
1057
+ "lookbackDays": 7, "maxRecords": 25}` in a JSON definition to include older matches within the
1058
+ lookback (1–90 days). Turning this on for an enabled automation reopens that window on its next
1059
+ check. Changing only the lookback preserves the completed cursor; pause and re-enable to
1060
+ reopen the wider history window. Previously processed matches stay deduplicated across edits, pauses and restarts, and
1061
+ per-check limits still apply. Historical scans resume across checks and restarts when capped.
1062
+ GitHub search is limited to 1,000 items per window and label timelines to 100 events per item;
1063
+ reaching either limit reports an error with guidance to narrow the filters or lookback. **Test filter** previews the selected window independently of the
1064
+ execution cursor; it never launches tasks. For label triggers, the window applies to the label
1065
+ event's time, so a newly added label can match an old issue even with history off. Historical
1066
+ label discovery revisits the rolling window because later comments can move issues between pages;
1067
+ receipts prevent those repeated observations from launching duplicate tasks.
1068
+
1069
+ A **one-time schedule** (**Once** in the editor, `--at` or `--in` on `add`, `"schedule":
1070
+ {"type": "once", "at": "2026-10-29T09:00", "timeZone": "Europe/Warsaw"}` in JSON) starts one
1071
+ ordinary task at a wall-clock time in an explicit IANA zone. It is created paused like every
1072
+ automation; **Enable** arms it. When it is due, Cezarion starts the task and moves the schedule to
1073
+ **Archived** with a link to that task; **Run now** does the same at once, so it never runs twice.
1074
+ **Cancel** archives it without a task. An archived schedule cannot change, and the list hides it
1075
+ until you pick the **Archived** filter. Cezarion must be running at the due time. If it was not,
1076
+ the schedule starts on the next boot only within its **Latest start** (no limit by default; 10
1077
+ minutes to 30 days); after that it is marked **Missed** and stays until you edit, cancel or run it.
1078
+ A launch that fails marks it **Failed**, and nothing retries on its own; **Retry** or **Run now**
1079
+ relaunches the same receipt, so one schedule starts at most one task. Agents can create and manage
1080
+ one-time schedules with the `cezar_schedule_task` and `cezar_scheduled_tasks` tools, which exist
1081
+ by default unless `CEZ_AUTOMATIONS=0` and also create schedules paused unless the user asked for them to run.
1082
+ These tools take and answer the due time in UTC, like every other time in a Cezar tool; the
1083
+ schedule keeps a wall time in the cockpit's time zone, so the cockpit shows it in local time.
1084
+
1085
+ Automation list counters use two windows. **Launched** counts every stored task with that
1086
+ automation's provenance, across definition revisions, including historical variants, completed and
1087
+ archived tasks. Restarting or compacting automation logs and receipts does not change it;
1088
+ deleting a task removes it from the count. **Matches**, **Duplicates** and **Errors** describe
1089
+ only that automation's latest 100 activity-log rows. Recent activity remains a separate log view.
1090
+
1091
+ The address comes from `CEZ_COCKPIT_URL` and `CEZ_PROJECT_ID`, which the cockpit puts in a task's
1092
+ environment. Without them, only an explicit `--url`, `--repo` or `CEZ_URL` looks for a cockpit;
1093
+ otherwise the command exits 2 and never starts a server. With automations off, the cockpit's `409`
1094
+ is relayed verbatim (exit 2).
1095
+
1096
+ ## Workflow format
1097
+
1098
+ A workflow is a small YAML file in `.ai/cezar/workflows/`:
1099
+
1100
+ ```yaml
1101
+ name: fix-and-verify
1102
+ description: Implement the task, then verify; retry with failing output on red.
1103
+ steps:
1104
+ - id: implement
1105
+ name: Implement
1106
+ prompt: "{{task}}"
1107
+ skill: project-conventions # optional — from .ai/skills or .ai/cezar/skills
1108
+ # model: opus # optional per-step model override
1109
+ # effort: high # optional per-step effort: low · medium · high · xhigh · max
1110
+ # runner: codex # optional per-step backend: claude · codex · opencode · cursor · pi · omp
1111
+ # timeoutMs: 7200000 # optional agent-step wall-clock cap (2 hours); 0 = no limit
1112
+ # allowedTools: [Read, Edit, Write, Grep, Glob, Bash]
1113
+ - id: verify
1114
+ name: Verify
1115
+ command: "npm test" # a check step: exit 0 passes
1116
+ onFail:
1117
+ retry: implement # loop back to an earlier step…
1118
+ max: 2 # …at most twice
1119
+ ```
1120
+
1121
+ `{{task}}` is replaced with the task text you typed. When a check fails and loops
1122
+ back, its failing output is appended to the retried agent's prompt so the next
1123
+ attempt can see what broke.
1124
+
1125
+ Agent steps have no wall-clock limit by default, including steps before a check or
1126
+ another agent. This applies to cockpit tasks, owned workers and `cez run`, on every
1127
+ runner. Non-final agent steps still close after their turn and advance the chain.
1128
+ An authored agent step may opt into `timeoutMs`: an integer from `0` to `2147483647`
1129
+ milliseconds, with `0` disabling the cap. A positive limit measures the entire
1130
+ session from startup, including waiting; expiry fails the step and stops the chain.
1131
+ It does not add workflow retry/resume behavior. Check steps reject this field.
1132
+ Skill shorthand, default tasks and free-form Continue have no wall-clock cap.
1133
+ All managed sessions have a separate 30-minute no-progress safeguard: while a turn
1134
+ is open, native stream, tool or heartbeat activity refreshes it. A silent turn
1135
+ fails and its process is terminated, with SIGKILL escalation if needed. Busy turns
1136
+ can run longer than 30 minutes. Waiting at a turn boundary or for a human answer
1137
+ pauses this safeguard; the next turn or answer rearms it. Standalone runner calls
1138
+ keep their 30-minute wall-clock default. Startup protection and the existing
1139
+ parked-session lifecycle still apply.
1140
+
1141
+ Prefer skills over steps? A workflow can also be written in the portable
1142
+ shorthand — an ordered list of skill names, each becoming one agent step:
1143
+
1144
+ ```yaml
1145
+ name: triage-and-fix
1146
+ skills: [reproduce, root-cause, implement, self-review]
1147
+ ```
1148
+
1149
+ ---
1150
+
1151
+ ## How it runs agents
1152
+
1153
+ Cezarion shells out to your locally installed, logged-in agent CLI —
1154
+ **your subscription, no API key**. With the default Claude Code backend that
1155
+ means headless `stream-json` mode, tool access via `--allowedTools`, with
1156
+ unapproved tools denied without prompting (`--permission-mode dontAsk`) inside
1157
+ the task's worktree — but note the zero-config default list (`Read`, `Edit`,
1158
+ `Write`, `Grep`, `Glob`, `Bash`) grants unrestricted `Bash` unless a step sets
1159
+ `bashAllowlist`, so treat a run as having full shell access in its worktree,
1160
+ not a sandboxed allowlist. Set `CEZ_APPROVAL_GATE=1` to opt into Claude's
1161
+ interactive approval UI. Codex, OpenCode and Cursor are driven through their
1162
+ own native protocols and don't honor `allowedTools` at all; OpenCode's own
1163
+ permission config decides what it asks. pi and OMP map `allowedTools` onto
1164
+ their own tool allowlists — see
1165
+ [Coding agent backends](#coding-agent-backends) for what each one actually
1166
+ locks down. Nothing runs on a server you don't own.
1167
+
1168
+ Live Preview lets Chromium use host graphics when available. Chromium selects the
1169
+ backend and falls back to software when hardware is unavailable or blocked. This
1170
+ needs no Cezarion setting or VirGL-specific setup. On Linux, GPU access may also
1171
+ need a working display in the cockpit process environment. JPEG streaming is
1172
+ unchanged; GPU rendering does not guarantee hardware frame encoding.
1173
+
1174
+ Useful environment variables:
1175
+
1176
+ | Var | Effect |
1177
+ |---|---|
1178
+ | `HSQ_*` aliases below | Ordinary settings prefer a defined HSQ value, including empty. Home, hosted-mode REMOTE and native shell controls use the separate rules below. Both home locators and inherited controller authority are removed from child environments, even in full-env mode. |
1179
+ | `CEZ_DELEGATION` | Retired (hearsay-tools/cezarion#2784); has no effect. Workers and task messaging are per-task settings, both on by default. See [Owned workers](#owned-workers). |
1180
+ | `HSQ_DELEGATION_URL`, `CEZ_DELEGATION_URL`, `HSQ_DELEGATION_TOKEN`, `CEZ_DELEGATION_TOKEN` | Internal generated session values; do not configure or copy them. Tokens rotate on Continue/restart and are revoked when the session/controller closes. |
1181
+ | `HSQ_REMOTE`, `CEZ_REMOTE` | Hosted mode: exact `1` under either name disables local handoff and local settings administration. Empty or `0` cannot cancel the other name's hosted-mode pin. Server installers pin both names. |
1182
+ | `HSQ_API_PORT`, `CEZ_API_PORT` | Local service port used by the development web proxy; defaults to 4321. |
1183
+ | `HSQ_CODEX_NETWORK`, `CEZ_CODEX_NETWORK` | Codex sandbox network access: exact `0` disables it. |
1184
+ | `HSQ_CODEX_REASONING`, `CEZ_CODEX_REASONING` | Codex reasoning summary: auto (default), concise, detailed or none. |
1185
+ | `HSQ_RELEASE_CHANNEL`, `CEZ_RELEASE_CHANNEL` | Explicitly requests `nightly` in `release-snapshot.mjs`. Other nonempty values, including `stable` and `development`, publish nothing. When unset or empty, the event selects development snapshots. `release.mjs` selects stable releases through its bump argument. |
1186
+ | `HSQ_RELEASE_ROOT`, `CEZ_RELEASE_ROOT` | Repository root containing the package manifests that `release.mjs` reads and stamps. |
1187
+ | `HSQ_SNAPSHOT_ROOT`, `CEZ_SNAPSHOT_ROOT` | Repository root containing the package manifests that `release-snapshot.mjs` reads and stamps. |
1188
+ | `HSQ_ALLOW_TEST_SPAWN`, `CEZ_ALLOW_TEST_SPAWN` | Test harness opt-in for real agent process spawning. Leave unset outside tests. |
1189
+ | `HSQ_ARTIFACTS_DIR`, `CEZ_ARTIFACTS_DIR`, `HSQ_HANDOFF_FILE`, `CEZ_HANDOFF_FILE`, `HSQ_TASK_ID`, `CEZ_TASK_ID`, `HSQ_TODOS_FILE`, `CEZ_TODOS_FILE`, `HSQ_PROJECT_ROOT`, `CEZ_PROJECT_ROOT` | Internal task paths and identity generated by the controller. Do not configure them. |
1190
+ | `HSQ_TOOL_SOCKET`, `CEZ_TOOL_SOCKET`, `HSQ_TOOL_TOKEN`, `CEZ_TOOL_TOKEN` | Internal tool transport authority generated for each session. Do not configure or copy it. |
1191
+ | `HSQ_AUTOSAVE_OWNER`, `CEZ_AUTOSAVE_OWNER`, `HSQ_RESTARTED_FROM`, `CEZ_RESTARTED_FROM` | Internal process attribution markers. Do not configure them. |
1192
+ | `HSQ_DESKTOP`, `CEZ_DESKTOP`, `HSQ_SUPERVISED`, `CEZ_SUPERVISED`, `HSQ_SUPERVISOR_PID`, `CEZ_SUPERVISOR_PID`, `HSQ_SUPERVISOR_STDIN`, `CEZ_SUPERVISOR_STDIN` | Internal desktop and supervisor lifecycle values. The shell's CEZ value wins when present, including empty values; HSQ is used only when CEZ is absent. Do not configure them. |
1193
+ | `HSQ_DISCLAIM_EXEC`, `CEZ_DISCLAIM_EXEC` | Desktop executable used to remove inherited macOS execution attribution. A defined CEZ value wins over HSQ. Discovered automatically. |
1194
+ | `HSQ_UPDATE_CHANNEL`, `CEZ_UPDATE_CHANNEL` | Managed desktop channel: stable (default), nightly, or development. The version dialog's saved choice takes precedence. |
1195
+ | `HSQ_DESKTOP_ENTRY` / `CEZ_DESKTOP_ENTRY` | Native-shell development entry file. The HSQ name wins when present, including an empty value. |
1196
+ | `HSQ_DESKTOP_CWD` / `CEZ_DESKTOP_CWD` | Native-shell starting project directory. The HSQ name wins when present. |
1197
+ | `HSQ_DESKTOP_NODE` / `CEZ_DESKTOP_NODE` | Native-shell Node executable. The HSQ name wins when present. Empty selects `node` on PATH. |
1198
+ | `HSQ_DESKTOP_NO_UPDATE=1` / `CEZ_DESKTOP_NO_UPDATE=1` | Disable signed native-shell updates. The HSQ name wins when present. Debug builds already disable updates. |
1199
+ | `HSQ_DESKTOP_DEBUG_IPC` / `CEZ_DESKTOP_DEBUG_IPC` | Debug builds only: exercise native title-bar IPC after loading the cockpit. The HSQ name wins when present. |
1200
+ | `HSQ_URL`, `CEZ_URL` | Cockpit origin for `cez task` and operator `cez discover` (e.g. a hosted `HSQ_REMOTE`, `CEZ_REMOTE` cockpit). Unset, they find the local cockpit serving this checkout on ports 4321–4370. Parent discovery uses its delegation controller instead. |
1201
+ | `HSQ_COCKPIT_URL`, `CEZ_COCKPIT_URL`, `HSQ_PROJECT_ID`, `CEZ_PROJECT_ID` | Set by the cockpit in every agent's environment once it listens: the bound origin and the run's project. `cez automation` calls that address; a headless `cez run` sets neither. Do not configure them. |
1202
+ | `HSQ_DRY_RUN=1`, `CEZ_DRY_RUN=1` | Use bundled mocks for all five agent backends — the cockpit works offline for demos and development. Explicit backend binary overrides still win. |
1203
+ | `HSQ_AGENT_MODELS_LOCKED=1`, `CEZ_AGENT_MODELS_LOCKED=1` | Globally lock each runner to the model configured in its native Claude/Codex/OpenCode settings while keeping runner selection available. Exact `1` also delegates authentication and provider enablement to those native agents, so Cezarion skips its credential probes and provider-disable preferences. Existing Cezarion presets are preserved but ignored, and an environment change requires a restart. The config-file equivalent is `"modelsLocked": true` in global `~/.cezar/config.json` or one repository's `.ai/cezar/config.json`; config-file locks do not disable provider checks. |
1204
+ | `HSQ_APPROVAL_GATE=1`, `CEZ_APPROVAL_GATE=1` | Opt into Claude's interactive approval UI; by default, unapproved tools are denied without interrupting the run. Ignored when `HSQ_CLAUDE_PERMISSION_MODE`, `CEZ_CLAUDE_PERMISSION_MODE` is a recognized value (`dontAsk`, `acceptEdits`, or `bypass`). |
1205
+ | `HSQ_CLAUDE_PERMISSION_MODE`, `CEZ_CLAUDE_PERMISSION_MODE` | Claude agent-run permission flag: `dontAsk` (default), `acceptEdits`, or `bypass`. `bypass` passes `--dangerously-skip-permissions` and omits `--permission-mode`. Unset or unknown keeps today's `dontAsk` / `HSQ_APPROVAL_GATE`, `CEZ_APPROVAL_GATE` path. Provider verification commands are never given this flag. |
1206
+ | `HSQ_CLAUDE_SETTING_SOURCES`, `CEZ_CLAUDE_SETTING_SOURCES` | When set, Claude agent runs also pass `--setting-sources <value>` (e.g. `user,project,local`). Unset or empty omits the flag. Provider verification is never given this flag. |
1207
+ | `HSQ_ARCHIVE_ON_MERGE=1`, `CEZ_ARCHIVE_ON_MERGE=1` | Archive settled task families after all associated pull requests merge. Off by default; only `1` enables this environment default. Saved project settings override global Tasks settings, which override the environment. Runs in the background while the cockpit is open, including unopened projects, without starting agents. Unarchive preserves restored tasks until a later merge. |
1208
+ | `HSQ_AUTOMATIONS=0`, `CEZ_AUTOMATIONS=0` | Disable **automations** (GitHub polls and schedules). On by default; only the exact value `0` disables them. Unset, empty, `1` and other values keep them on. The Automations view and agent schedule tools are available by default. New automations start paused; each enabled automation launches an ordinary task per match or occurrence while Cezarion is open. Schedules need no GitHub remote. With `0`, nothing polls or fires, automation endpoints answer `409`, and the nav item and schedule tools are hidden. Read at boot: restart after changing it. Existing enabled definitions resume after an upgrade unless you set `HSQ_AUTOMATIONS=0`, `CEZ_AUTOMATIONS=0` before restart. Definitions, receipts and high-watermarks are retained; unset the flag and restart to resume without migration. |
1209
+ | `HSQ_VOICE=1`, `CEZ_VOICE=1` | Turn on **voice mode** (experimental): the ⌘K palette understands a sentence such as “open the next finished task” or “answer yes”, and the server asks Jev (TypeSafe) to turn it into one action that the cockpit shows and runs. Needs `TYPESAFE_API_KEY` (read by the server only; `HSQ_DRY_RUN=1`, `CEZ_DRY_RUN=1` uses a fake engine instead). Off by default, and only the exact value `1` enables it — without it the voice endpoints answer `409` and the palette is unchanged. Read at boot, so restart after changing it. |
1210
+ | `HSQ_PREVIEW=1`, `CEZ_PREVIEW=1` | Turn on **live preview** (experimental): agents register a dev server with the `cezar_preview_serve` tool, and the cockpit opens it in a headless Chromium on the host, docked next to the task. Cezarion first runs a registered command after you press Run and open. Agents can then use `cezar_preview_stop({ port, restart?: boolean })` to stop or restart their own Cezarion-started server with that unchanged approval; changed command, cwd or path needs Run and open again. Adopted servers cannot be stopped by this tool. Each agent session also gets `HSQ_PREVIEW_CDP_URL`, `CEZ_PREVIEW_CDP_URL`, a cockpit address through which it drives the same browser (`agent-browser --cdp "$CEZ_PREVIEW_CDP_URL" --pin-tab …`) while you watch; Chromium itself opens no debug port. Off by default, and only the exact value `1` enables it — without it the tool is not listed, its route and the preview WebSocket refuse, and `capabilities.preview` is `false`. Read at boot, so restart after changing it. |
1211
+ | `HSQ_PREVIEW_NO_SANDBOX=1`, `CEZ_PREVIEW_NO_SANDBOX=1` | Launch the preview's Chromium with `--no-sandbox`. Off by default and never added automatically, not even for root or in a container; use it only where Chromium's sandbox cannot start, and only for pages you trust. Only the exact value `1` applies. Read at boot. |
1212
+ | `HSQ_AUTOSAVE=1`, `CEZ_AUTOSAVE=1` | Re-enable the periodic (90 s) autosave commit in task worktrees. Off by default (open-mercato/cezar#471) — turn-end and pre-PR flushes always run, so branches still end complete. Every autosave names its trigger in the commit subject (`cezar autosave (periodic)` vs `(turn end)` / `(run finalize)` / `(pre-PR)`), so the flushes you keep are distinguishable from the timer you disabled. The turn-end / run-finalize flushes and the timer commit only while HEAD is the task's own `cez/<id8>` branch; on a branch the agent checked out they leave the work uncommitted, and the closing flush says so in the handoff's cezar records block, not its Progress log (hearsay-tools/cezarion#1004, hearsay-tools/cezarion#1809). A turn-end / run-finalize commit is reported there too, with its `git reset --soft` fold-back command, and the timer's commits share one line per run of consecutive periodic commits (count, first and latest sha), with no cockpit note. The pre-PR flush is unchanged. |
1213
+ | `HSQ_CLAUDE_BIN=/path/to/claude`, `CEZ_CLAUDE_BIN=/path/to/claude` | Override the Claude executable for model discovery and execution. A set `HSQ_CLAUDE_BIN` wins over `CEZ_CLAUDE_BIN`; an explicit binary argument wins over both. |
1214
+ | `HSQ_CODEX_BIN=/path/to/codex`, `CEZ_CODEX_BIN=/path/to/codex` | Override which `codex` binary is used. |
1215
+ | `HSQ_OPENCODE_BIN=/path/to/opencode`, `CEZ_OPENCODE_BIN=/path/to/opencode` | Override which `opencode` binary is used. |
1216
+ | `HSQ_PI_BIN=/path/to/pi`, `CEZ_PI_BIN=/path/to/pi` | Override which `pi` binary is used. |
1217
+ | `HSQ_OMP_BIN=/path/to/omp`, `CEZ_OMP_BIN=/path/to/omp` | Override which `omp` (Oh My Pi) binary is used. |
1218
+ | `HSQ_CURSOR_BIN=/path/to/agent`, `CEZ_CURSOR_BIN=/path/to/agent` | Override the Cursor CLI (`agent`) executable. |
1219
+ | `CLAUDE_CONFIG_DIR`, `CODEX_HOME`, `PI_CODING_AGENT_DIR`, `OMP_PROFILE` | The agents' **own** variables, honoured where the vendor documents one. Setting one moves that agent's **default account** — the config folder (for omp, the profile) Cezarion discovers. A *second* login of the same CLI is deliberately not an environment setting, since one process-wide value cannot differ per project: add it under **Settings → Agent accounts** and pick it per project. |
1220
+ | `HSQ_BROWSE_ROOT=~/`, `CEZ_BROWSE_ROOT=~/` | Default root for **Add project → Open local folder…**. The picker cannot navigate above it; a saved workspace value overrides the environment default and must name an existing folder. |
1221
+ | `HSQ_PROJECTS_DIR=~/cezar/projects`, `CEZ_PROJECTS_DIR=~/cezar/projects` | Default destination for **Clone from GitHub** and **New project**. Saved workspace settings override it, and missing directories are created recursively. |
1222
+ | `HSQ_PROJECT_WARMUP=0`, `CEZ_PROJECT_WARMUP=0` | Prepare each registered project only when it is first opened. By default the cockpit prepares every other registered project in the background once it listens, one at a time, most recently opened first: the run store opens and interrupted runs resume, so the first click on a project does not wait. A project another live cockpit serves is skipped. |
1223
+ | `HSQ_AUTONOMOUS_DEFAULT=0`, `CEZ_AUTONOMOUS_DEFAULT=0` | Seed the New Task Autonomous default (`0` or `1`). Without a seed, skills default on and workflows off; a saved global Resources setting overrides it. |
1224
+ | `HSQ_WORKTREE_DEFAULT=1`, `CEZ_WORKTREE_DEFAULT=1` | Seed the New Task Worktree default (`0` or `1`). Without a seed, eligible runs default on; a saved global Resources setting overrides it. |
1225
+ | `HSQ_DISABLE_REPO_LOCK=1`, `CEZ_DISABLE_REPO_LOCK=1` | **Dangerous escape hatch:** allow any run executing in the repository root — an explicit `worktree=false` run, non-Git degradation, or a continuation whose worktree cannot be restored — to proceed without Cezarion’s repository-root lease. Agents can overwrite each other’s files or Git state; isolated worktree runs are unaffected. Off by default; only the exact value `1` enables it. |
1226
+ | `HSQ_SINGLE_PROJECT=1`, `CEZ_SINGLE_PROJECT=1` | Opt into a launch-project-only cockpit: only the exact value `1` enables it. Project add, edit, checkout, folder browsing, and removal are refused and only the launch project is shown. Off by default; stored registry rows are retained, so unsetting it and restarting restores the full multi-project workspace without migration or data loss. |
1227
+ | `HSQ_HIDE_TOKEN_USAGE=1`, `CEZ_HIDE_TOKEN_USAGE=1` | Hide raw input/output token counts throughout the browser cockpit while leaving backend-reported cost visible. Only the exact value `1` enables it; telemetry and API payloads are unchanged, and a restart is required after changing it. |
1228
+ | `HSQ_HIDE_COST=1`, `CEZ_HIDE_COST=1` | Hide backend-reported monetary cost throughout the browser cockpit while leaving raw input/output token counts visible. Only the exact value `1` enables it; telemetry and API payloads are unchanged, and a restart is required after changing it. |
1229
+ | `HSQ_HIDE_TOKEN_METRICS=1`, `CEZ_HIDE_TOKEN_METRICS=1` | Legacy master switch that hides both token usage and cost. It takes precedence over the two independent flags; only the exact value `1` enables it, payloads are unchanged, and a restart is required. |
1230
+ | `GITHUB_TOKEN` | Fallback for GitHub reads/PRs when `gh` isn't authenticated. |
1231
+ | `HSQ_HOME=/path/to/home` | Reserved for the split home layout behind the disabled release switch. Once enabled, selects `config/`, `state/`, `data/`, `cache/`, and `run/` below this directory and takes precedence over `CEZ_HOME`. Both home locators are always removed from child environments. |
1232
+ | `HSQ_ENV_PASSTHROUGH=A,B`, `CEZ_ENV_PASSTHROUGH=A,B` | Forward these extra host env vars to spawned agents. `CEZ_HOME` and `HSQ_HOME` are always removed, including in full-env mode. By default agents get a least-privilege env (safe shell/toolchain vars + the backend's own auth + `GITHUB_TOKEN` + `CEZ_*`), not your full environment — use this to add a var an agent needs. A dev server live preview starts gets the same env without the backend's auth and `GITHUB_TOKEN`, plus these names. |
1233
+ | `HSQ_AGENT_ENV_FULL=1`, `CEZ_AGENT_ENV_FULL=1` | Escape hatch: give spawned agents, and dev servers live preview starts, the full host environment except `CEZ_HOME` and `HSQ_HOME` (pre-hardening behavior). Off by default; only set it if you understand that this hands every host secret to the agent process. |
1234
+ | `HSQ_AGENT_TMPDIR=0`, `CEZ_AGENT_TMPDIR=0` | Stop giving each task its own temp directory and hand agents the host `TMPDIR` again (pre-open-mercato/cezar#785 behavior). On by default: every run gets `TMPDIR`/`TEMP`/`TMP` pointing at `.ai/cezar/t/<task-id8>` (`.ai/cezar/tmp/<task-id>` before hearsay-tools/cezarion#1022), created and write-probed before the agent spawns, kept across session close, Continue, and restart while the task is live, and reaped at terminal completion or history deletion (hearsay-tools/cezarion#515) — and kept short enough for unix-socket paths: a checkout so deep that `.ai/cezar/t/<task-id8>` would leave no room under the kernel's socket-path limit for Chromium's singleton socket resolves it to a `cez-agent-…` directory under the system temp dir instead (hearsay-tools/cezarion#387), with its location recorded so host temp-environment changes cannot move live scratch. So concurrent tasks stop sharing one directory and a task refuses to start rather than run against a temp directory that silently swallows its shell output (see Troubleshooting below). Only an exact `0` disables it, and it disables the whole thing — the pre-spawn check included, so this stays an escape hatch you can actually take. |
1235
+ | `HSQ_REDACT_SECRETS=0`, `CEZ_REDACT_SECRETS=0` | Disable scrubbing of credential values/token shapes from the on-disk state (the NDJSON transcript and the free-text fields of the run records in `runs.db`). On by default; leave it on. Controller-generated delegation tokens are always scrubbed. Best-effort defense-in-depth, not a guarantee: it catches known token shapes and the values of your own secret-named env vars, so a credential in neither category can still get through. |
1236
+ | `HSQ_TITLE_UPDATES=0`, `CEZ_TITLE_UPDATES=0` | Turn off the live task-title refresh (namer re-runs on each turn end). The Settings → Agents toggle overrides this default. |
1237
+ | `HSQ_AUTONAME=0`, `CEZ_AUTONAME=0` | Disable ALL LLM task naming (creation + live) — titles stay heuristic (`437: /om-auto-review-pr`). Under `HSQ_DRY_RUN=1`, `CEZ_DRY_RUN=1` naming is already off unless forced with `HSQ_AUTONAME=1`, `CEZ_AUTONAME=1`. |
1238
+ | `HSQ_REVIEW_GATE=1`, `CEZ_REVIEW_GATE=1` | Turn ON the optional diff-first review gate (open-mercato/cezar#489): a successful, non-autonomous run with changes parks at `review` (Accept / Send back / Draft PR) instead of finishing. Off by default — changed runs settle to `done` with the diff left in the worktree. Only `1` enables. The Settings → Agents toggle overrides this; autonomous runs always skip it. |
1239
+ | `VITE_HSQ_API_BASE=http://localhost:4321`, `VITE_CEZ_API_BASE=http://localhost:4321` | **Build time only**, and only when the cockpit bundle is deployed apart from the service it talks to. Empty (the default) means "the origin that served this page", which is right for both normal cases: the CLI serves the bundle itself, and `npm run dev` proxies `/api` to the local service. A deployment that must be configured without a rebuild can put `<meta name="cez-api-base" content="…">` in the served HTML instead, which wins over this. |
1240
+ | `VITE_HSQ_E2E=1`, `VITE_CEZ_E2E=1` | **Build time only.** The cockpit e2e suite sets this when it builds the bundle it drives. It pins `useNow` and every `refetchInterval` so a wait cannot span a 30s tick or a 4s poll. Leave unset for production. |
1241
+
1242
+ ### Troubleshooting: the agent's shell returns nothing
1243
+
1244
+ **Symptom.** A task on the Claude backend keeps working, but every shell command
1245
+ comes back with no output and a spurious non-zero exit status — `echo hello`
1246
+ included. Redirecting into a file inside the worktree still produces the right
1247
+ content, so the commands genuinely run; only the *capture* is lost. Codex tasks
1248
+ on the same machine are unaffected, because that backend streams over stdio
1249
+ pipes instead of round-tripping a command's output through a temp file.
1250
+
1251
+ **Diagnosis.** The temp directory the agent was given is out of space or out of
1252
+ quota. One line tells you:
1253
+
1254
+ ```bash
1255
+ echo probe > "${TMPDIR:-/tmp}/probe" # "Disk quota exceeded" / "No space left on device"
1256
+ df -i "${TMPDIR:-/tmp}" # a tmpfs can exhaust inodes long before bytes
1257
+ ```
1258
+
1259
+ Under quota the file is *created* and the write then fails, so the backend reads
1260
+ back a zero-byte capture file and hands the agent an empty result.
1261
+
1262
+ **Fix.** Since open-mercato/cezar#785 Cezarion gives each task its own `TMPDIR` under
1263
+ `.ai/cezar/t/<task-id8>` and write-probes it before spawning, so a broken temp
1264
+ directory fails the task with `agent temp directory is not writable: …` on the
1265
+ task thread instead of corrupting its work. If you see that error, free space on
1266
+ the disk holding the repo. `CEZ_AGENT_TMPDIR=0` turns the whole mechanism off —
1267
+ per-task directory and pre-spawn check alike — and hands agents the host
1268
+ `TMPDIR` again, which is the way out if the check itself is wrong on your
1269
+ platform.
1270
+
1271
+ ### Troubleshooting: tools inside a task fail with a socket-path error
1272
+
1273
+ **Symptom.** Inside a task, `npm install`, `npm run typecheck`, or another tool
1274
+ dies with `listen EINVAL` or a "socket path too long" / `ENAMETOOLONG` error —
1275
+ with `TMPDIR=/tmp` set by hand, the same commands succeed. Tools like `tsx` bind
1276
+ *named* unix sockets under `TMPDIR` (its IPC server builds
1277
+ `<tmpdir>/tsx-<uid>/<pid>.pipe`), and the kernel caps a socket path at 104–108
1278
+ bytes — a temp directory near that length leaves no room for the name.
1279
+
1280
+ **Fix.** Since hearsay-tools/cezarion#387 Squawk keeps each task's temp directory short
1281
+ enough for these sockets: at most 58 bytes since hearsay-tools/cezarion#1022, which
1282
+ leaves room for Chromium's `<tmpdir>/org.chromium.Chromium.XXXXXX/SingletonSocket`
1283
+ on macOS's 104-byte limit. The repo-local directory is `.ai/cezar/t/<task-id8>`
1284
+ (the first 8 characters of the task id), short enough for ordinary checkouts such
1285
+ as `/home/<user>/projects/<repo>`. A checkout deep enough to push it past the limit
1286
+ gets a short `cez-agent-…` directory under the system temp directory instead —
1287
+ still per-task, still write-probed before the agent spawns, still reaped when the
1288
+ run ends.
1289
+ `HSQ_AGENT_TMPDIR=0` (`CEZ_AGENT_TMPDIR` fallback) reverts the whole mechanism to the host `TMPDIR`.
1290
+
1291
+ ---
1292
+
1293
+ ## Coding agent backends
1294
+
1295
+ Squawk is not married to one vendor. Every agent step runs through a single
1296
+ `AgentRunner` seam with six built-in backends:
1297
+
1298
+ | Backend | CLI | How Squawk drives it | Tool access |
1299
+ |---|---|---|---|
1300
+ | **Claude Code** (default) | [`claude`](https://github.com/anthropics/claude-code) | Headless `stream-json` mode. | Per-tool `--allowedTools` (`bashAllowlist` scopes `Bash`); `dontAsk` denies unapproved tools without prompting (`HSQ_APPROVAL_GATE=1` (`CEZ_APPROVAL_GATE` fallback) → `acceptEdits` + approval UI; `HSQ_CLAUDE_PERMISSION_MODE=bypass` (`CEZ_CLAUDE_PERMISSION_MODE` fallback) → `--dangerously-skip-permissions`). |
1301
+ | **Codex** | [`codex`](https://github.com/openai/codex) | `codex app-server` — JSON-RPC over stdio, the same transport the Codex IDE extensions use. | Ignores `allowedTools`; inherits managed permissions and Codex approval defaults. Confirmed unmanaged sessions use `danger-full-access`. `HSQ_CODEX_NETWORK=0` (`CEZ_CODEX_NETWORK` fallback) requires network restriction: unmanaged sessions use network-blocked `workspace-write`; managed filesystem rules remain intact, and an unconfirmed network restriction stops before any turn. If requirements discovery is unavailable, Codex permission defaults apply. |
1302
+ | **OpenCode** _(experimental)_ | [`opencode`](https://opencode.ai) | `opencode serve` — a local HTTP server with an SSE event stream. | Ignores `allowedTools` entirely; OpenCode's own permission config governs. Squawk answers OpenCode's built-in asks (outside-worktree reads, `.env` reads, the repeated-call guard) once, unless your config has a rule for that permission. Any other ask shows a permission card in the cockpit, and the run waits for your answer. |
1303
+ | **Cursor** | [`agent`](https://cursor.com/docs/cli/installation) | Resumable `--print --output-format stream-json` turns on a qualified build; an unqualified build fails the task before inference. | Print mode admits marketplace plugins, including user and team plugins. Per-run `allowedTools` and `bashAllowlist` are unsupported. |
1304
+ | **pi** _(experimental)_ | [`pi`](https://github.com/badlogic/pi-mono) | Persistent `--mode rpc` over JSONL; models are picked with the `provider/model` convention. | Maps `allowedTools` onto pi tool names. The default list, which adds the harness extras `Subagent`, `SubagentSupervisor` and `SubagentWait`, sends no allowlist: `--no-builtin-tools` plus a bundled extension that activates those built-ins, so MCP servers (`direct`, `codemode` and `deferred` exposure) and other pi extensions' tools stay callable. The six base tools alone, the list a worker inherits from a Claude parent, take the same path. A narrowed `allowedTools`, or one that names any tool outside that default set (an `mcp__` tool, `WebFetch` or a custom tool), uses pi's `--tools` allowlist, so a step that grants named tools reaches only those; a list that maps to nothing becomes `--no-tools` (or only the Squawk tools). A configured `bashAllowlist` disables Bash because pi cannot express command-prefix rules. |
1305
+ | **OMP** _(experimental)_ | [`omp`](https://github.com/can1357/oh-my-pi) | Persistent `--mode rpc` over JSONL (Oh My Pi, a pi fork); models use the `provider/model` convention and are discovered from `omp models --json`. | Maps `allowedTools` onto OMP's `--tools` allowlist (`[]` becomes `--no-tools`); default sessions also pass `todo`, `lsp`, `ast_edit`, `task` and `wait`. A configured `bashAllowlist` disables `bash` because OMP cannot express command-prefix rules. |
1306
+
1307
+ > ⚠️ **OpenCode, pi and OMP support are experimental.** These runners work but are less
1308
+ > battle-tested than the Claude Code and Codex backends, and OpenCode ignores
1309
+ > `allowedTools` (its own permission config governs what it asks). Treat them as
1310
+ > previews and expect rough edges.
1311
+
1312
+ On startup Squawk probes which CLIs are installed and the cockpit only offers
1313
+ the backends it found — install any one of the six and you're operational.
1314
+
1315
+ ### Cursor CLI
1316
+
1317
+ Install [Cursor CLI](https://cursor.com/docs/cli/installation) and run `agent login`,
1318
+ or set `CURSOR_API_KEY`. Squawk discovers `agent` on PATH; `HSQ_CURSOR_BIN` (`CEZ_CURSOR_BIN` fallback) overrides
1319
+ its location. Select **Cursor** in the runner picker. On build
1320
+ `2026.10.01-e373342` or newer, new sessions use print mode so marketplace plugins
1321
+ are available. Squawk checks `agent --version` and the native tool catalog before
1322
+ the first turn; `agent --version` is also the quick way to check your installation.
1323
+ Squawk starts the CLI with `--disable-auto-update`, so a task never updates it;
1324
+ update it yourself with `agent update`. An older build, or a build missing a core
1325
+ tool, fails the task before any inference, with the reason and the fix: run
1326
+ `agent update`, or update Squawk if your build is newer than it supports.
1327
+ ACP-tagged and untagged Cursor sessions cannot resume after ACP removal: Continue
1328
+ on one reports that, and you start a new task to carry the work on. Existing
1329
+ print-tagged sessions can still resume.
1330
+ A missing CLI leaves the other backends available. `HSQ_DRY_RUN=1` (`CEZ_DRY_RUN` fallback) uses the mock.
1331
+ Cursor questions from a plugin may be automatically skipped by print mode. Squawk's
1332
+ own `cezar_ask` questions remain answerable in the cockpit; plugins that require
1333
+ native questions may not work fully. Project-local Claude plugin settings may
1334
+ not disable a user or team marketplace copy. A previously confirmed Cursor
1335
+ session ID can also lose history inside Cursor without an error; Squawk resumes
1336
+ the recorded ID and checks that Cursor returns the same ID.
1337
+ Cursor provides no qualified token-usage telemetry; Squawk leaves usage unavailable
1338
+ instead of estimating it. Squawk discovers Cursor's canonical model IDs and advertised
1339
+ effort levels through Cursor's read-only ACP model catalog (`agent acp`), which opens
1340
+ no session. Print mode accepts those IDs and applies effort using a complete native
1341
+ parameter selection passed with `--model`, retaining the account catalog's defaults for
1342
+ other parameters. Advertised legacy print variants remain supported. An unsupported
1343
+ explicit effort fails instead of silently choosing another level.
1344
+
1345
+ Settings → Agent config exposes Cursor’s global `cli-config.json`, project
1346
+ `.cursor/cli.json` permissions, `.cursor/mcp.json`, and shared `AGENTS.md`.
1347
+ [Cursor’s configuration reference](https://cursor.com/docs/cli/reference/configuration)
1348
+ documents `CURSOR_CONFIG_DIR` and the Linux/BSD `XDG_CONFIG_HOME/cursor` override.
1349
+ These select configuration; Squawk does not offer alternate Cursor account profiles
1350
+ because a complete credential-and-session home override has not been verified.
1351
+
1352
+ ### OMP (Oh My Pi)
1353
+
1354
+ Install [OMP](https://github.com/can1357/oh-my-pi) (`curl -fsSL https://omp.sh/install | sh`
1355
+ installs a prebuilt binary; Bun is needed only for `--source`) and run `omp login`. Squawk discovers `omp` on PATH;
1356
+ `HSQ_OMP_BIN` (`CEZ_OMP_BIN` fallback) overrides its location. `omp` is a separate backend from `pi`: a host with
1357
+ both binaries keeps both, and `HSQ_PI_BIN` (`CEZ_PI_BIN` fallback) never selects OMP. Select **OMP** in the runner
1358
+ picker to use a persistent `--mode rpc` session. A missing CLI leaves the other backends
1359
+ available and shows OMP as unavailable. `HSQ_DRY_RUN=1` (`CEZ_DRY_RUN` fallback) uses the mock.
1360
+
1361
+ Agents ask questions through Squawk's `cezar_ask` tool, and OMP's own sub-agents appear in the
1362
+ Agents drawer. Settings → Agent config exposes OMP's `config.yml`, `mcp.json` and
1363
+ `AGENTS.md` files. Named OMP profiles and accounts are not supported yet.
1364
+
1365
+ **Pick a backend at three levels** (most specific wins):
1366
+
1367
+ 1. **Config default** — `"defaultRunner": "codex"` in `.ai/cezar/config.json`.
1368
+ 2. **Per task** — the backend picker next to the task box in the cockpit.
1369
+ 3. **Per workflow step** — `runner:` on any step in the YAML.
1370
+
1371
+ Per-step overrides are what make **mixed-agent strategies** a one-liner:
1372
+ implement with one agent, review with another, and let a shell check referee:
1373
+
1374
+ ```yaml
1375
+ name: implement-and-cross-review
1376
+ steps:
1377
+ - id: implement
1378
+ name: Implement
1379
+ prompt: "{{task}}"
1380
+ runner: codex # one vendor writes the code…
1381
+ effort: medium # …with a cheaper reasoning pass
1382
+ - id: review
1383
+ name: Cross-review
1384
+ prompt: "Review the diff produced for: {{task}}. Fix real issues only."
1385
+ runner: claude # …another one reviews it
1386
+ effort: high # …with more reasoning for review
1387
+ - id: verify
1388
+ name: Verify
1389
+ command: "npm test"
1390
+ onFail: { retry: implement, max: 2 }
1391
+ ```
1392
+
1393
+ Owned workers can compare approaches in separate worktrees. Each worker has its own
1394
+ runner and model selection; see [Owned workers](#owned-workers).
1395
+
1396
+ **Models come from your own machine.** For Claude, Codex, OpenCode, and Pi, the model picker
1397
+ is not a list Squawk ships — it asks the installed CLI what it can actually run
1398
+ (Claude stream-json `list_models`, `codex app-server`'s `model/list`,
1399
+ `opencode models`, and `pi --list-models`), caches the answer in
1400
+ memory for five minutes, and shows it. A model your provider rolled out
1401
+ yesterday is selectable without a Squawk release, and one it retired stops being
1402
+ offered. Claude discovery starts no model turn and uses safe mode with no session
1403
+ persistence. It has a 15-second deadline and a 200-model cap, with child cleanup
1404
+ on every outcome. Unsupported or unavailable Claude CLIs fall back to the
1405
+ `opus`, `sonnet`, and `haiku` aliases. `auto` (let the agent decide) is always
1406
+ available, including when the CLI is missing, logged out, or slow — discovery
1407
+ never blocks the cockpit, and a model you pinned yourself stays selectable even
1408
+ if it is absent from the discovered list.
1409
+
1410
+ The seam is deliberately small: a backend is one class implementing the
1411
+ `AgentRunner` interface (`packages/cezar/src/core/agent-runner.ts`) that turns a prompt into
1412
+ a stream of normalized events. Other CLIs — pi, aider, whatever ships next —
1413
+ can slot in the same way.
1414
+
1415
+ ---
1416
+
1417
+ ## Desktop app
1418
+
1419
+ Squawk Desktop is a Tauri 2 app for macOS, Windows and Linux. Start a local cockpit
1420
+ or connect to a remote HTTPS cockpit (loopback HTTP supports SSH tunnels). Remote
1421
+ windows have no native command permissions and need no local Node or agent install.
1422
+ Local mode needs Node.js 24.21.0+ and npm, then installs `@hearsay-tools/squawk` on first use.
1423
+
1424
+ See [desktop installation, development and testing](docs/desktop.md). PR builds
1425
+ provide test installers; public releases require platform signing and notarization.
1426
+
1427
+ ## Remote access (host Squawk on a server)
1428
+
1429
+ Squawk runs on `localhost` by default. To reach the cockpit from another machine —
1430
+ a shared team box, a VPS, your phone — put an **authenticated public front** in
1431
+ front of it. The built-in installer does this interactively, per **platform
1432
+ strategy**, and never escalates silently: every privileged command is printed
1433
+ and verified, and it ends with a real authenticated end-to-end check.
1434
+
1435
+ ```bash
1436
+ npx hsq server-install --platform ubuntu-vps # stand it up
1437
+ npx hsq server-deploy --platform ubuntu-vps # roll out a new version (reload the service)
1438
+ npx hsq server-uninstall --platform ubuntu-vps # reverse it
1439
+
1440
+ # host a SECOND cockpit for another domain on the same box (ubuntu-vps):
1441
+
1442
+ npx hsq server-install --platform ubuntu-vps --domain shop.example.com
1443
+ ```
1444
+
1445
+ On `ubuntu-vps` a single host can run several independent cockpits — add
1446
+ `--domain <host>` and each gets its own port, nginx site, login and service; a
1447
+ new domain never resumes or clobbers the first install.
1448
+
1449
+ **Already running a reverse proxy?** If Dokploy, Coolify, Caddy or your own
1450
+ nginx already owns `:80/:443`, Squawk's would fight it for the ports. Install the
1451
+ service only and let your proxy front it:
1452
+
1453
+ ```bash
1454
+ npx hsq server-install --platform ubuntu-vps \
1455
+ --external-proxy --domain Squawk.example.com --bind-host 172.17.0.1
1456
+ ```
1457
+
1458
+ `--bind-host` is only needed when the proxy runs in a **container** (Traefik
1459
+ can't reach the host's loopback); a host-installed proxy uses the `127.0.0.1`
1460
+ default. In this mode **your proxy must enforce authentication** — Squawk has
1461
+ none of its own. [Details →](docs/server-install/ubuntu-vps.md#the-box-already-has-a-reverse-proxy-dokploy-coolify-caddy)
1462
+
1463
+ | Provider | `--platform` | Public front | Guide |
1464
+ |----------|--------------|--------------|-------|
1465
+ | Ubuntu / Debian VPS | `ubuntu-vps` | nginx + Let's Encrypt HTTPS, htpasswd login, systemd | [Step-by-step →](docs/server-install/ubuntu-vps.md) |
1466
+ | Ubuntu + existing proxy | `ubuntu-vps --external-proxy` | your Dokploy/Traefik/Caddy front; Squawk ships the service only | [Step-by-step →](docs/server-install/ubuntu-vps.md#the-box-already-has-a-reverse-proxy-dokploy-coolify-caddy) |
1467
+ | macOS + ngrok | `macosx-ngrok` | ngrok tunnel + `--basic-auth`, launchd | [Step-by-step →](docs/server-install/macosx-ngrok.md) |
1468
+
1469
+ See the **[Remote access overview](docs/server-install/README.md)** for how it
1470
+ works and how to redeploy new versions. A remote cockpit keeps Agent config and
1471
+ worktree setup read-only; to edit them from the browser, see
1472
+ **[Remote settings administration](docs/server-install/remote-settings.md)**.
1473
+
1474
+ ---
1475
+
1476
+ ## Reviewing task files
1477
+
1478
+ File links in task messages open the Files tab at the selected file, rather than
1479
+ navigating to a host path under the cockpit URL. The selection stays in the URL,
1480
+ so bookmarks and browser Back work. This works with local and remote cockpits.
1481
+
1482
+ For a deliverable outside the project, an agent must explicitly publish a snapshot:
1483
+
1484
+ ```sh
1485
+ hsq artifact publish /tmp/decision.md
1486
+ ```
1487
+
1488
+ An agent starts a long command, such as a benchmark or a full test run, with `hsq job start`:
1489
+
1490
+ ```sh
1491
+ hsq job start bench -- npm run benchmark
1492
+ hsq job status bench
1493
+ ```
1494
+
1495
+ The command keeps running after the agent's shell call, turn and session end. It prints the
1496
+ paths of its log file and its exit-code file, which are in the task's temp directory unless
1497
+ `--dir` names another one. The agent waits for it with a process wait. A second start of a
1498
+ name that still runs is refused.
1499
+
1500
+ Squawk supplies the bundled command and task context to agent sessions automatically
1501
+ (`HSQ_TASK_ID` (`CEZ_TASK_ID` fallback) and `HSQ_ARTIFACTS_DIR` (`CEZ_ARTIFACTS_DIR` fallback); do not configure these yourself). The command
1502
+ returns JSON with a Markdown link for the agent to share. When the owning project
1503
+ is registered, the link keeps that project when copied or opened from another
1504
+ project. If ownership cannot be discovered, publication keeps the legacy task link.
1505
+ The Files tab also lists published artifacts. It previews text, Markdown and raster
1506
+ images; other formats can be downloaded. Published HTML links in assistant replies also
1507
+ show report cards. **Read report** opens the sandboxed reader beside the conversation
1508
+ on wide screens, in the main area on medium screens, and full screen on phones.
1509
+ Back returns to the source card. Unopened cards fetch metadata only.
1510
+ Report scripts never execute, and embedded images in Markdown documents do not load
1511
+ automatically.
1512
+
1513
+ Snapshots do not change when the original file changes. They survive worktree
1514
+ removal and are removed with task history, including normal history retention.
1515
+ Publication is limited to 10 MiB per file, 64 snapshots and 64 MiB per task; reaching
1516
+ a limit refuses the new publication without evicting earlier files. There is no
1517
+ arbitrary host-file reader or automatic collection of mentioned paths. Publish
1518
+ only intended review material, never credentials or unrelated private files.
1519
+
1520
+ ## Configuration (optional)
1521
+
1522
+ Zero config is the default — everything below is opt-in via the project's
1523
+ `config.json` in `.ai/squawk/` (`.ai/cezar/` before the project moves). A missing
1524
+ or malformed file uses the defaults, a bad value falls back to its own default,
1525
+ nothing blocks startup, and the cockpit never saves over a file that is not valid
1526
+ JSON:
1527
+
1528
+ ```jsonc
1529
+ {
1530
+ "skillsRepos": [], // team skills; none by default. Example: [{ "repo": "open-mercato/skills", "ref": "main" }]
1531
+ // Team-skill repos are code-trusted: a skill body becomes an agent system prompt.
1532
+ // Only owner/name, https/ssh URLs, or local paths (`/abs`, `./rel`, `~/dir`,
1533
+ // `C:\dir`) are accepted — no ext::/fd:: transport helpers. Write a relative
1534
+ // path as `./name`, not a bare `name`. Pin `ref` to a full commit SHA to freeze
1535
+ // the source against a moving branch head — Squawk verifies it resolves to
1536
+ // exactly that commit, and reports it as `team.commit`. `"enabled": false` keeps
1537
+ // a source listed but loads none of its skills. The Skills page edits this list,
1538
+ // keeps every other key, and refuses to write a file it cannot read.
1539
+ "worktreeRetention": 10, // keep the last N finished worktrees on disk; 0 = unlimited (no reclaim, no branch sweep)
1540
+ "defaultRunner": "claude", // agent backend: "claude" (default) · "codex" · "opencode" · "cursor" · "pi" · "omp"
1541
+ "modelsLocked": true, // optional: native per-runner model is fixed/read-only; runner stays selectable
1542
+ "plannerModel": "sonnet", // model the "Plan first" button uses to draft chains
1543
+ "baseBranch": "develop", // branch worktrees fork from + PRs target (also settable in the Git view)
1544
+ "worktreeSetup": { "commands": ["npm ci"] } // prepare each new worktree before the agent starts (below)
1545
+ }
1546
+ ```
1547
+
1548
+ Put the same `"modelsLocked": true` key in `<config>/config.json` to apply it
1549
+ to every registered project. When the key is absent or `false` in both config
1550
+ files (and `HSQ_AGENT_MODELS_LOCKED` (`CEZ_AGENT_MODELS_LOCKED` fallback) is not `1`), each runner's normal model
1551
+ selector uses that runner's discovered model list. While locked, the model is
1552
+ shown read-only and follows the selected runner's native settings; the runner
1553
+ itself remains selectable.
1554
+
1555
+ Run data (`runs.db` and its `-wal`/`-shm` files, the `runs.json.pre-sqlite*.bak`
1556
+ backups, NDJSON event logs, worktrees, `todos.json`) is git-ignored
1557
+ automatically; your workflows and skills stay committable. See [run history recovery](https://github.com/hearsay-tools/cezarion/blob/main/docs/run-history-recovery.md) for backup and repair steps.
1558
+
1559
+ Settings that belong to *you* rather than to a repo — the parallel cap
1560
+ (`maxParallel`, default **2**), the per-task memory ceiling and the checkout
1561
+ root — live once in `<config>/config.json`, alongside the
1562
+ [project registry](#multiple-projects-one-cockpit), and are edited from
1563
+ **Settings → Resources** and **Settings → Projects**. A `maxParallel` left over
1564
+ in a repo's `.ai/cezar/config.json` is imported into the workspace file the
1565
+ first time Squawk boots there, and ignored afterwards.
1566
+
1567
+ ### Session-start context
1568
+
1569
+ Every session Squawk launches — a fresh step, a retry, **Continue**, recovery, an owned
1570
+ worker — opens with the run's whole handoff file, so the agent has its notes without a tool
1571
+ call. Add your own context, such as a vision document, with an optional
1572
+ `.ai/cezar/context.yaml`:
1573
+
1574
+ ```yaml
1575
+ version: 1
1576
+ rules:
1577
+ - id: project-vision
1578
+ on: session_start
1579
+ target: both # parent · worker · both
1580
+ template: |
1581
+ Project vision:
1582
+ {{file:docs/vision.md}}
1583
+ ```
1584
+
1585
+ The whole prefix is capped at 64 KiB, blocks that do not fit are skipped whole, and each launch
1586
+ logs which blocks it applied or skipped. See [docs/context-injection.md](docs/context-injection.md)
1587
+ for the variables, the limits and the error handling.
1588
+
1589
+ ### Preparing new worktrees
1590
+
1591
+ Every task and worker runs in a fresh worktree, and a fresh worktree has nothing installed. Give
1592
+ the project a `worktreeSetup` and Squawk runs those commands in each new worktree before the
1593
+ agent's first turn, so the agent (and anything that runs beside it, such as a test watcher)
1594
+ starts in a ready tree:
1595
+
1596
+ ```jsonc
1597
+ // .ai/squawk/config.json (.ai/cezar/config.json before the project moves)
1598
+ "worktreeSetup": {
1599
+ "commands": ["npm ci", "cp \"$HSQ_PROJECT_ROOT/.env\" .env"],
1600
+ "timeoutSeconds": 900 // optional, per command; default 900, max 7200
1601
+ }
1602
+ ```
1603
+
1604
+ Or edit it in **Settings → Worktrees → Prepare new worktrees**, one command per line. These are
1605
+ commands the host runs, so a hosted cockpit (`HSQ_REMOTE=1` or `CEZ_REMOTE=1`) shows it read-only until the host
1606
+ operator runs `hsq remote-settings enable` ([Remote settings administration](docs/server-install/remote-settings.md)).
1607
+
1608
+ - **When it runs.** In every new task worktree and every worker worktree, and again when Continue
1609
+ rebuilds a worktree that retention reclaimed. Never for a task that runs in the repo working
1610
+ tree (worktree off), and never for a non-git directory.
1611
+ - **How it runs.** Each command runs as `bash -lc '<command>'` in the worktree root, in order,
1612
+ and the setup stops at the first command that fails or times out. Up to 20 commands.
1613
+ - **What it can see.** The same curated environment the live preview gives a dev server: your
1614
+ `PATH`, `HOME` and the shell basics, but no agent API keys and no GitHub token. A private
1615
+ registry token reaches it through `HSQ_ENV_PASSTHROUGH=NPM_TOKEN` (`CEZ_ENV_PASSTHROUGH` fallback) (or the tool's own config
1616
+ file under `HOME`). It also gets `HSQ_PROJECT_ROOT` (`CEZ_PROJECT_ROOT` fallback) (the main checkout, for copying untracked
1617
+ files like `.env`) and `HSQ_TASK_ID` (`CEZ_TASK_ID` fallback).
1618
+ - **What you see.** The task thread shows a "Ran `<command>`" card per command with its output
1619
+ (the last 20 KB) and a line with the outcome and duration.
1620
+ - **What the agent sees.** Its first message says what ran, so it doesn't repeat the install.
1621
+ If a command fails or times out, the agent still starts and its first message names the
1622
+ command, the exit code and the end of the output, so it can fix the cause or work around it.
1623
+ - **Keep generated files gitignored.** Autosave commits whatever Git doesn't ignore, so anything
1624
+ setup creates outside `.gitignore` becomes part of the task's changes. `node_modules/` and
1625
+ `.venv/` are usually ignored already.
1626
+
1627
+ Without the key nothing runs, exactly as before. Examples:
1628
+
1629
+ | Project | `commands` |
1630
+ | --- | --- |
1631
+ | npm | `["npm ci"]` |
1632
+ | pnpm | `["pnpm install --frozen-lockfile"]` |
1633
+ | Python (uv) | `["uv sync --frozen"]` |
1634
+ | Go | `["go mod download"]` |
1635
+ | Rust | `["cargo fetch"]` |
1636
+ | Copy local env | `["cp \"$CEZ_PROJECT_ROOT/.env\" .env"]` |
1637
+
1638
+ ### Editing the agents' own config (Settings → Agent config)
1639
+
1640
+ Squawk picks *which* agent runs; **Settings → Agent config** lets you edit *how* it
1641
+ behaves — the raw config files Claude, Codex, OpenCode, Cursor, pi and OMP read
1642
+ for settings, MCP, and memory. In the multi-project cockpit the section is project-scoped:
1643
+ repo-relative files resolve from the selected project's root, while user-scope
1644
+ files continue to resolve from the agent's home.
1645
+
1646
+ Each file keeps its native format and vendor-documented precedence. Tracked
1647
+ files reach task worktrees after commit; Claude's gitignored personal layer is
1648
+ seeded into each run's worktree. Config files can define hooks and MCP commands that run
1649
+ on the host, so a hosted cockpit (`HSQ_REMOTE=1` or `CEZ_REMOTE=1`) is read-only and never serves home-file
1650
+ contents until the host operator runs `hsq remote-settings enable`
1651
+ ([Remote settings administration](docs/server-install/remote-settings.md)).
1652
+
1653
+ ---
1654
+
1655
+ ## Local development
1656
+
1657
+ End-to-end, from a fresh clone to a global `hsq` command you can run in **any**
1658
+ repo on your machine — no npm publish required.
1659
+
1660
+ **1. Prerequisites** — Node 24.21.0+ and `git` (plus at least one logged-in agent CLI,
1661
+ as in [Quick start](#quick-start)).
1662
+
1663
+ **2. Clone & install**
1664
+
1665
+ The npm global prefix must be writable by your user. On Unix, use Node installed
1666
+ with nvm, or set a user-owned prefix (`npm config set prefix ~/.npm-global`) and
1667
+ add `~/.npm-global/bin` to your `PATH`. On Windows, use a user-owned npm prefix
1668
+ and add the prefix itself (reported by `npm prefix -g`) to `PATH`; npm puts
1669
+ Windows executables directly there. Set `PATH` before these commands.
1670
+
1671
+ ```bash
1672
+ git clone https://github.com/hearsay-tools/cezarion.git
1673
+ cd cezarion
1674
+ npm install --global pnpm@12.11.2
1675
+ pnpm install --frozen-lockfile
1676
+ ```
1677
+
1678
+ Dependency installation uses pnpm 12.11.2 (pinned in `packageManager`) and
1679
+ `pnpm-lock.yaml`. Use pnpm for dependency changes; keep npm for the existing
1680
+ build/test scripts. Workspace dependencies are linked locally and esbuild's
1681
+ install hook is approved in `pnpm-workspace.yaml`. The store uses hardlinks when
1682
+ the checkout and store share a filesystem. Publishing and end-user installation
1683
+ continue to use npm. For this repository's Worktrees setup, use
1684
+ `pnpm install --frozen-lockfile` after the checked-out base branch contains the migration.
1685
+
1686
+ **3. Build** — compiles the api-client and the server (`tsc → packages/cezar/dist/`) and the cockpit
1687
+ (`vite build → packages/cezar/web/dist/`), then runs the pack gate:
1688
+
1689
+ ```bash
1690
+ npm run build
1691
+ ```
1692
+
1693
+ **4. Install as a global command** — build + put `hsq` on
1694
+ your PATH pointing at *this checkout*:
1695
+
1696
+ ```bash
1697
+ npm run install-as-command # live link (default) — see the change loop below
1698
+ # or: npm run install-as-command:global # self-contained snapshot copy
1699
+
1700
+ ```
1701
+
1702
+ Now `cd` into any other repo and run it:
1703
+
1704
+ ```bash
1705
+ cd ~/some-other-project
1706
+ hsq # cockpit for that repo, straight off your checkout
1707
+ hsq --help # the same command as `npx hsq`
1708
+ ```
1709
+
1710
+ **5. The change loop**
1711
+
1712
+ - **Link mode** (default): edit source → `npm run build` → the global command
1713
+ reflects it immediately. No relink needed. (It is a live symlink into this
1714
+ checkout — don't move or delete the checkout while it's linked.)
1715
+ - **Snapshot mode** (`:global`): re-run `npm run install-as-command:global` to
1716
+ refresh the installed copy. It survives moving/deleting the checkout.
1717
+
1718
+ **6. Uninstall**
1719
+
1720
+ ```bash
1721
+ npm run uninstall-as-command # removes hsq and the compatibility commands (either flavor)
1722
+ ```
1723
+
1724
+ **7. Troubleshooting**
1725
+
1726
+ - **`hsq: command not found`** after install → your npm global bin dir isn't on
1727
+ PATH. The script prints the exact dir; add it to your shell profile
1728
+ (Unix: `export PATH="$(npm prefix -g)/bin:$PATH"`; Windows: add the directory
1729
+ reported by `npm prefix -g` itself to `PATH`, without a `bin` suffix).
1730
+ - **`EACCES` / permission denied** → your global prefix is root-owned. Point npm
1731
+ at a user-writable one and retry — **never** sudo:
1732
+ `npm config set prefix ~/.npm-global`.
1733
+ - **Already installed the published `@wjarka/cezarion` globally?** The
1734
+ link/snapshot install replaces it; `uninstall-as-command` removes ours, and
1735
+ `npm i -g @hearsay-tools/squawk` brings the published one back.
1736
+
1737
+ ### In-checkout scripts
1738
+
1739
+ ```bash
1740
+ npm run dev # server (API :4321) + Vite dev server, opens the cockpit in the browser
1741
+ npm run dev:server # tsx packages/cezar/src/index.ts — the API server alone
1742
+ npm run dev:web # Vite dev server alone (proxies /api to :4321)
1743
+ npm run build # tsc → packages/cezar/dist/, vite build → packages/cezar/web/dist/, then the pack gate
1744
+ npm run typecheck # check all four workspaces without building
1745
+ npm run typecheck:web # check web sources without building
1746
+ npm test # vitest — server + cockpit unit suites
1747
+ npm run test:changed # iteration only: tests related to branch + working-tree changes
1748
+ pnpm metrics <file> # function complexity; add --test <test-file> for coverage and CRAP
1749
+ npm run test:unit # node:test — fast core-module tests
1750
+ npm run test:package # pack/install and exercise the built CLI
1751
+ npm run test:e2e # real-browser cockpit suite (agent-browser)
1752
+ npm run test:e2e:local # full browser suite in four isolated, concurrent lanes
1753
+ ```
1754
+
1755
+ The four-lane local browser run needs roughly 8 GiB of RAM at peak. It keeps CI's
1756
+ serial-per-shard policy unchanged. See [cockpit E2E testing](packages/web/e2e/README.md#full-local-suite-in-four-lanes)
1757
+ for lane isolation, logs, and cleanup.
1758
+
1759
+ Calculate metrics for one JavaScript or TypeScript file, or select a function:
1760
+
1761
+ ```bash
1762
+ pnpm metrics packages/contract/src/attention.ts
1763
+ pnpm metrics packages/contract/src/attention.ts --function deriveAttention
1764
+ pnpm --silent metrics packages/contract/src/attention.ts --line 150 --json
1765
+ pnpm metrics packages/contract/src/attention.ts --function deriveAttention --test packages/contract/src/attention.test.ts
1766
+ pnpm metrics packages/contract/src/attention.ts --coverage coverage/coverage-final.json
1767
+ ```
1768
+
1769
+ Complexity follows ESLint's classic convention, including short-circuit operators,
1770
+ optional chaining, default parameters and each non-default switch case. Functions,
1771
+ methods and arrow functions have separate scores. Module and class initialization
1772
+ are excluded. Use `Class.method` or `--line` when a name is ambiguous.
1773
+
1774
+ CRAP is `C² × (1 − coverage)³ + C`, using executable line coverage within each
1775
+ function body. This is the line-coverage variant; the original proposal used
1776
+ basis-path coverage. An empty function uses its call counter. Missing coverage
1777
+ shows `unavailable`, or `null` for CRAP in JSON. It never assumes zero coverage.
1778
+ The command discovers `coverage/coverage-final.json` from the source directory
1779
+ up to the checkout root, then the current directory. An explicit `--coverage`
1780
+ selects an Istanbul JSON report. Reports older than the source leave CRAP unavailable;
1781
+ reports must describe the current source, so regenerate them after source changes.
1782
+
1783
+ Repeat `--test` to collect coverage from several Vitest test files. This runs only
1784
+ the supplied tests in the unit projects, with two workers and a ten-minute limit.
1785
+ Coverage files are temporary and are removed after the calculation. A failed test
1786
+ run exits nonzero and produces no scores. Without `--test`, no tests run. Test logs
1787
+ go to stderr, so `--json` stdout contains only the report. This tool belongs to the
1788
+ checkout and is available after the normal dependency installation. Use
1789
+ `pnpm --silent metrics ... --json` to also suppress pnpm's command banner.
1790
+
1791
+ The tool is bundled in the [check-code-quality skill](.ai/skills/check-code-quality/SKILL.md).
1792
+ Ask an agent to measure a file, function or module for a scoped stats report.
1793
+ That path uses available coverage and reports missing CRAP without starting the
1794
+ PR process. Ask explicitly for fresh coverage when needed.
1795
+
1796
+ The local pre-PR gate uses Squeal 0.1.423's one-shot changed-function check:
1797
+
1798
+ ```bash
1799
+ quality_report=$(mktemp "${TMPDIR:-/tmp}/code-quality.XXXXXXXX") || exit 2
1800
+ squeal code --base origin/main --json > "$quality_report"
1801
+ quality_status=$?
1802
+ printf 'Report: %s; exit: %s\n' "$quality_report" "$quality_status"
1803
+ ```
1804
+
1805
+ It checks changed JS/TS functions, including test callbacks and nested functions,
1806
+ with complexity at most 20 and CRAP at most 30. Equality passes. The default
1807
+ budget is 600 seconds. The base commit supplies the policy.
1808
+
1809
+ A pass requires complete evidence: no skipped, incomplete or uncounted functions,
1810
+ failed or unfinished tests, or exhausted budget. Exit 0 alone is insufficient
1811
+ because a report can contain skipped functions. Exits 1, 3 and 2 mean violations,
1812
+ incomplete measurement and usage/setup errors. Missing Squeal or unsupported
1813
+ evidence blocks the PR. There is no bundled fallback or inherited-refactor
1814
+ deferral. See the [pre-PR procedure](.ai/skills/check-code-quality/references/pre-pr.md)
1815
+ for report identity, completeness checks and reviewable evidence.
1816
+
1817
+ CI and explicit statistics commands keep their existing paths during this
1818
+ local-first rollout. CI artifact reuse and supported exceptions await the
1819
+ remaining work in hearsay-tools/squeal#167.
1820
+
1821
+ For iteration, run affected test files or `npm run test:changed` (inspect with
1822
+ `-- --plan`; override the local main comparison with `-- --base=<ref>`).
1823
+ The changed-test command includes staged, unstaged and untracked changes and
1824
+ falls back to full Vitest on shared/configuration/unknown input or missing Git
1825
+ history. It is not a substitute for final verification. See [AGENTS.md § Validation](AGENTS.md#validation)
1826
+ for targeted browser commands and the [CI guide](docs/sdlc/ci.md) for the final-gate/evidence-reuse policy.
1827
+
1828
+ `npm run typecheck` checks all four workspaces from source without writing build
1829
+ output. `npm run typecheck:web` checks the cockpit and reads the server route types
1830
+ from this checkout. Run `pnpm install --frozen-lockfile` in each new worktree first.
1831
+ Packaged CLI tests import built modules; CI checks them with
1832
+ `npm run typecheck:package` after `npm run build`.
1833
+
1834
+ CI runs four duration-balanced Vitest shards alongside the build and package checks.
1835
+ See [CI verification](docs/sdlc/ci.md) for the job graph and local commands.
1836
+
1837
+ The stack is deliberately small: **TypeScript** (strict, ESM), **Hono** + SSE for
1838
+ the server, **Zod** at every boundary, **YAML** for workflows, and a **React 19 +
1839
+ Vite + Tailwind v4 + shadcn/ui** cockpit shipped pre-built in `packages/cezar/web/dist/` — the
1840
+ published package carries the built app, so `npx` users never run a bundler.
1841
+ Every module is meant to be read in one sitting.
1842
+
1843
+ ---
1844
+
1845
+ ## License
1846
+
1847
+ **MIT** © Patryk Lewczuk (original Cezar) and Wiktor Jarka (Cezarion) — full text in [LICENSE](LICENSE).