@wjarka/cezarion 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (907) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +594 -207
  3. package/dist/agent-config/account-identity.d.ts +3 -19
  4. package/dist/agent-config/account-identity.js +8 -5
  5. package/dist/agent-config/account-identity.js.map +1 -1
  6. package/dist/agent-config/catalog.d.ts +3 -14
  7. package/dist/agent-config/catalog.js.map +1 -1
  8. package/dist/agent-config/files.d.ts +2 -6
  9. package/dist/agent-config/files.js +2 -6
  10. package/dist/agent-config/files.js.map +1 -1
  11. package/dist/agent-config/model-settings/types.d.ts +1 -1
  12. package/dist/agent-config/seed.d.ts +11 -3
  13. package/dist/agent-config/seed.js +52 -48
  14. package/dist/agent-config/seed.js.map +1 -1
  15. package/dist/agent-config/service.js +3 -2
  16. package/dist/agent-config/service.js.map +1 -1
  17. package/dist/agent-config/validate.d.ts +1 -4
  18. package/dist/agent-config/validate.js.map +1 -1
  19. package/dist/application-update/helper.d.ts +2 -2
  20. package/dist/application-update/helper.js +7 -12
  21. package/dist/application-update/helper.js.map +1 -1
  22. package/dist/application-update/launcher.d.ts +4 -0
  23. package/dist/application-update/launcher.js +18 -12
  24. package/dist/application-update/launcher.js.map +1 -1
  25. package/dist/application-update/service.d.ts +3 -3
  26. package/dist/application-update/service.js +1 -1
  27. package/dist/application-update/service.js.map +1 -1
  28. package/dist/archive-on-merge-setting.d.ts +15 -0
  29. package/dist/archive-on-merge-setting.js +14 -0
  30. package/dist/archive-on-merge-setting.js.map +1 -0
  31. package/dist/artifacts/cli.d.ts +8 -0
  32. package/dist/artifacts/cli.js +21 -2
  33. package/dist/artifacts/cli.js.map +1 -1
  34. package/dist/artifacts/resolve.js +2 -1
  35. package/dist/artifacts/resolve.js.map +1 -1
  36. package/dist/artifacts/store.js.map +1 -1
  37. package/dist/automations/automation-cli.d.ts +59 -0
  38. package/dist/automations/automation-cli.js +509 -0
  39. package/dist/automations/automation-cli.js.map +1 -0
  40. package/dist/automations/builtin-skill.d.ts +7 -0
  41. package/dist/automations/builtin-skill.js +14 -0
  42. package/dist/automations/builtin-skill.js.map +1 -0
  43. package/dist/automations/github-baseline.d.ts +3 -0
  44. package/dist/automations/github-baseline.js +17 -0
  45. package/dist/automations/github-baseline.js.map +1 -0
  46. package/dist/automations/github-poller.d.ts +23 -4
  47. package/dist/automations/github-poller.js +157 -88
  48. package/dist/automations/github-poller.js.map +1 -1
  49. package/dist/automations/prompts.d.ts +12 -0
  50. package/dist/automations/prompts.js +160 -0
  51. package/dist/automations/prompts.js.map +1 -0
  52. package/dist/automations/schedule-runner.d.ts +43 -24
  53. package/dist/automations/schedule-runner.js +207 -20
  54. package/dist/automations/schedule-runner.js.map +1 -1
  55. package/dist/automations/scheduler.d.ts +10 -2
  56. package/dist/automations/scheduler.js +200 -54
  57. package/dist/automations/scheduler.js.map +1 -1
  58. package/dist/automations/service.d.ts +777 -0
  59. package/dist/automations/service.js +444 -0
  60. package/dist/automations/service.js.map +1 -0
  61. package/dist/automations/store.d.ts +17 -7
  62. package/dist/automations/store.js +88 -17
  63. package/dist/automations/store.js.map +1 -1
  64. package/dist/automations/task-template.d.ts +7 -2
  65. package/dist/automations/task-template.js +93 -44
  66. package/dist/automations/task-template.js.map +1 -1
  67. package/dist/automations/tool-adapter.d.ts +6 -0
  68. package/dist/automations/tool-adapter.js +108 -0
  69. package/dist/automations/tool-adapter.js.map +1 -0
  70. package/dist/automations/types.d.ts +1 -405
  71. package/dist/automations/types.js +1 -218
  72. package/dist/automations/types.js.map +1 -1
  73. package/dist/autosave-cleanup.d.ts +26 -0
  74. package/dist/autosave-cleanup.js +87 -0
  75. package/dist/autosave-cleanup.js.map +1 -0
  76. package/dist/autosave-git.d.ts +3 -0
  77. package/dist/autosave-git.js +67 -35
  78. package/dist/autosave-git.js.map +1 -1
  79. package/dist/autosave-group.d.ts +8 -0
  80. package/dist/autosave-group.js +61 -0
  81. package/dist/autosave-group.js.map +1 -0
  82. package/dist/autosave-holders.d.ts +31 -4
  83. package/dist/autosave-holders.js +92 -7
  84. package/dist/autosave-holders.js.map +1 -1
  85. package/dist/autosave-windows.d.ts +14 -0
  86. package/dist/autosave-windows.js +36 -2
  87. package/dist/autosave-windows.js.map +1 -1
  88. package/dist/ci-wait/client.d.ts +20 -3
  89. package/dist/ci-wait/client.js +40 -44
  90. package/dist/ci-wait/client.js.map +1 -1
  91. package/dist/ci-wait/controller.d.ts +622 -36
  92. package/dist/ci-wait/controller.js +152 -20
  93. package/dist/ci-wait/controller.js.map +1 -1
  94. package/dist/ci-wait/errors.d.ts +19 -0
  95. package/dist/ci-wait/errors.js +180 -2
  96. package/dist/ci-wait/errors.js.map +1 -1
  97. package/dist/ci-wait/github.d.ts +25 -1
  98. package/dist/ci-wait/github.js +76 -9
  99. package/dist/ci-wait/github.js.map +1 -1
  100. package/dist/ci-wait/mcp.d.ts +0 -1
  101. package/dist/ci-wait/mcp.js +0 -2
  102. package/dist/ci-wait/mcp.js.map +1 -1
  103. package/dist/ci-wait/supervisor.d.ts +7 -0
  104. package/dist/ci-wait/supervisor.js +113 -17
  105. package/dist/ci-wait/supervisor.js.map +1 -1
  106. package/dist/ci-wait/tools.d.ts +536 -16
  107. package/dist/ci-wait/tools.js +165 -20
  108. package/dist/ci-wait/tools.js.map +1 -1
  109. package/dist/config.d.ts +3 -17
  110. package/dist/config.js +4 -60
  111. package/dist/config.js.map +1 -1
  112. package/dist/contract/active-provider.d.ts +12 -0
  113. package/dist/contract/agent-profiles.d.ts +2 -10
  114. package/dist/contract/ask-schema.d.ts +22 -4
  115. package/dist/contract/ask.d.ts +6 -4
  116. package/dist/contract/attachments.d.ts +35 -0
  117. package/dist/contract/attention.d.ts +46 -37
  118. package/dist/contract/automation-requests.d.ts +308 -0
  119. package/dist/contract/automation-schedule.d.ts +40 -11
  120. package/dist/contract/automation-storage.d.ts +512 -0
  121. package/dist/contract/automations.d.ts +421 -40
  122. package/dist/contract/ci-wait.d.ts +41 -4
  123. package/dist/contract/config-requests.d.ts +36 -0
  124. package/dist/contract/conversations.d.ts +24 -10
  125. package/dist/contract/defined.d.ts +8 -0
  126. package/dist/contract/delegation.d.ts +312 -8
  127. package/dist/contract/events.d.ts +24 -3
  128. package/dist/contract/github-requests.d.ts +26 -0
  129. package/dist/contract/github.d.ts +60 -27
  130. package/dist/contract/handoff.d.ts +43 -0
  131. package/dist/contract/health.d.ts +2 -2
  132. package/dist/contract/image-path.d.ts +6 -0
  133. package/dist/contract/index.d.ts +31 -0
  134. package/dist/contract/index.js +3756 -1525
  135. package/dist/contract/live-coordination.d.ts +158 -0
  136. package/dist/contract/live-limits.d.ts +8 -0
  137. package/dist/contract/live.d.ts +123 -0
  138. package/dist/contract/pending-ask.d.ts +58 -0
  139. package/dist/contract/permissions.d.ts +54 -0
  140. package/dist/contract/preview.d.ts +33 -0
  141. package/dist/contract/project-limits.d.ts +33 -0
  142. package/dist/contract/projects.d.ts +486 -20
  143. package/dist/contract/provider-requests.d.ts +77 -0
  144. package/dist/contract/query-requests.d.ts +52 -0
  145. package/dist/contract/repo-requests.d.ts +12 -0
  146. package/dist/contract/run-labels.d.ts +8 -0
  147. package/dist/contract/run-limits.d.ts +8 -0
  148. package/dist/contract/run-predicates.d.ts +32 -0
  149. package/dist/contract/run-requests.d.ts +33 -0
  150. package/dist/contract/run-search.d.ts +193 -0
  151. package/dist/contract/runs.d.ts +2232 -1894
  152. package/dist/contract/scheduled-tasks.d.ts +187 -0
  153. package/dist/contract/skills.d.ts +22 -772
  154. package/dist/contract/team-skill-ref.d.ts +10 -0
  155. package/dist/{core → contract}/tool-display.d.ts +4 -10
  156. package/dist/contract/ui-state-requests.d.ts +60 -0
  157. package/dist/contract/version.d.ts +3 -0
  158. package/dist/contract/voice.d.ts +213 -0
  159. package/dist/contract/waits.d.ts +1204 -0
  160. package/dist/contract/workflow-file.d.ts +37 -0
  161. package/dist/contract/workflow-requests.d.ts +7 -0
  162. package/dist/contract/workflows.d.ts +1 -2
  163. package/dist/contract/workspace.d.ts +34 -82
  164. package/dist/contract/zoned-time.d.ts +2 -11
  165. package/dist/core/agent-env.d.ts +4 -16
  166. package/dist/core/agent-env.js +14 -16
  167. package/dist/core/agent-env.js.map +1 -1
  168. package/dist/core/agent-profiles.d.ts +28 -40
  169. package/dist/core/agent-profiles.js +56 -51
  170. package/dist/core/agent-profiles.js.map +1 -1
  171. package/dist/core/agent-runner.d.ts +88 -44
  172. package/dist/core/agent-runner.js +17 -18
  173. package/dist/core/agent-runner.js.map +1 -1
  174. package/dist/core/ask.d.ts +3 -0
  175. package/dist/core/ask.js +12 -0
  176. package/dist/core/ask.js.map +1 -1
  177. package/dist/core/backend-detect.js +16 -2
  178. package/dist/core/backend-detect.js.map +1 -1
  179. package/dist/core/claude-cli-runner.d.ts +23 -4
  180. package/dist/core/claude-cli-runner.js +280 -76
  181. package/dist/core/claude-cli-runner.js.map +1 -1
  182. package/dist/core/claude-model-catalog.d.ts +2 -10
  183. package/dist/core/claude-model-catalog.js +2 -10
  184. package/dist/core/claude-model-catalog.js.map +1 -1
  185. package/dist/core/claude-ui-mapper.d.ts +2 -2
  186. package/dist/core/claude-ui-mapper.js +94 -2
  187. package/dist/core/claude-ui-mapper.js.map +1 -1
  188. package/dist/core/codex-app-server-runner.d.ts +3 -4
  189. package/dist/core/codex-app-server-runner.js +146 -51
  190. package/dist/core/codex-app-server-runner.js.map +1 -1
  191. package/dist/core/codex-app-server-transport.d.ts +4 -3
  192. package/dist/core/codex-app-server-transport.js +11 -7
  193. package/dist/core/codex-app-server-transport.js.map +1 -1
  194. package/dist/core/codex-approvals.d.ts +12 -0
  195. package/dist/core/codex-approvals.js +161 -0
  196. package/dist/core/codex-approvals.js.map +1 -0
  197. package/dist/core/codex-permissions.d.ts +1 -1
  198. package/dist/core/codex-ui-mapper.js +45 -1
  199. package/dist/core/codex-ui-mapper.js.map +1 -1
  200. package/dist/core/cursor-acp-runner.d.ts +1 -1
  201. package/dist/core/cursor-acp-runner.js +39 -15
  202. package/dist/core/cursor-acp-runner.js.map +1 -1
  203. package/dist/core/cursor-cli-flags.d.ts +19 -0
  204. package/dist/core/cursor-cli-flags.js +47 -0
  205. package/dist/core/cursor-cli-flags.js.map +1 -0
  206. package/dist/core/cursor-model-catalog.d.ts +22 -0
  207. package/dist/core/cursor-model-catalog.js +53 -24
  208. package/dist/core/cursor-model-catalog.js.map +1 -1
  209. package/dist/core/cursor-print-capabilities.d.ts +16 -0
  210. package/dist/core/cursor-print-capabilities.js +141 -0
  211. package/dist/core/cursor-print-capabilities.js.map +1 -0
  212. package/dist/core/cursor-print-process.d.ts +31 -0
  213. package/dist/core/cursor-print-process.js +117 -0
  214. package/dist/core/cursor-print-process.js.map +1 -0
  215. package/dist/core/cursor-print-runner.d.ts +31 -0
  216. package/dist/core/cursor-print-runner.js +555 -0
  217. package/dist/core/cursor-print-runner.js.map +1 -0
  218. package/dist/core/cursor-print-tool-catalog.d.ts +10 -0
  219. package/dist/core/cursor-print-tool-catalog.js +91 -0
  220. package/dist/core/cursor-print-tool-catalog.js.map +1 -0
  221. package/dist/core/cursor-print-ui-mapper.d.ts +47 -0
  222. package/dist/core/cursor-print-ui-mapper.js +553 -0
  223. package/dist/core/cursor-print-ui-mapper.js.map +1 -0
  224. package/dist/core/cursor-runner.d.ts +24 -0
  225. package/dist/core/cursor-runner.js +149 -0
  226. package/dist/core/cursor-runner.js.map +1 -0
  227. package/dist/core/cursor-ui-mapper.js +5 -2
  228. package/dist/core/cursor-ui-mapper.js.map +1 -1
  229. package/dist/core/defined.d.ts +1 -0
  230. package/dist/core/defined.js +2 -0
  231. package/dist/core/defined.js.map +1 -0
  232. package/dist/core/hook-items.d.ts +14 -0
  233. package/dist/core/hook-items.js +13 -0
  234. package/dist/core/hook-items.js.map +1 -0
  235. package/dist/core/host-model-catalog.d.ts +2 -9
  236. package/dist/core/host-model-catalog.js +2 -9
  237. package/dist/core/host-model-catalog.js.map +1 -1
  238. package/dist/core/managed-session.js +15 -3
  239. package/dist/core/managed-session.js.map +1 -1
  240. package/dist/core/model-identity.d.ts +4 -21
  241. package/dist/core/model-identity.js.map +1 -1
  242. package/dist/core/model-presets.d.ts +2 -13
  243. package/dist/core/model-presets.js +2 -13
  244. package/dist/core/model-presets.js.map +1 -1
  245. package/dist/core/omp-model-catalog.js.map +1 -1
  246. package/dist/core/omp-runner.d.ts +6 -7
  247. package/dist/core/omp-runner.js +92 -33
  248. package/dist/core/omp-runner.js.map +1 -1
  249. package/dist/core/omp-ui-mapper.js +1 -1
  250. package/dist/core/omp-ui-mapper.js.map +1 -1
  251. package/dist/core/opencode-model-catalog.js.map +1 -1
  252. package/dist/core/opencode-permissions.d.ts +52 -0
  253. package/dist/core/opencode-permissions.js +101 -0
  254. package/dist/core/opencode-permissions.js.map +1 -0
  255. package/dist/core/opencode-server-runner.d.ts +10 -9
  256. package/dist/core/opencode-server-runner.js +286 -28
  257. package/dist/core/opencode-server-runner.js.map +1 -1
  258. package/dist/core/opencode-session-error.d.ts +15 -7
  259. package/dist/core/opencode-session-error.js +25 -9
  260. package/dist/core/opencode-session-error.js.map +1 -1
  261. package/dist/core/opencode-ui-mapper.js +2 -2
  262. package/dist/core/opencode-ui-mapper.js.map +1 -1
  263. package/dist/core/pi-model-catalog.js.map +1 -1
  264. package/dist/core/pi-runner.d.ts +12 -4
  265. package/dist/core/pi-runner.js +171 -63
  266. package/dist/core/pi-runner.js.map +1 -1
  267. package/dist/core/pi-ui-mapper.js +1 -1
  268. package/dist/core/pi-ui-mapper.js.map +1 -1
  269. package/dist/core/process-usage.d.ts +5 -0
  270. package/dist/core/process-usage.js +24 -4
  271. package/dist/core/process-usage.js.map +1 -1
  272. package/dist/core/provider-auth.d.ts +16 -107
  273. package/dist/core/provider-auth.js +16 -132
  274. package/dist/core/provider-auth.js.map +1 -1
  275. package/dist/core/runner-factory.d.ts +4 -1
  276. package/dist/core/runner-factory.js +3 -3
  277. package/dist/core/runner-factory.js.map +1 -1
  278. package/dist/core/runner-runtime.d.ts +22 -0
  279. package/dist/core/runner-runtime.js +66 -5
  280. package/dist/core/runner-runtime.js.map +1 -1
  281. package/dist/core/runner-tool-grants.d.ts +21 -0
  282. package/dist/core/runner-tool-grants.js +64 -0
  283. package/dist/core/runner-tool-grants.js.map +1 -0
  284. package/dist/core/secret-redaction.d.ts +3 -20
  285. package/dist/core/secret-redaction.js +3 -20
  286. package/dist/core/secret-redaction.js.map +1 -1
  287. package/dist/core/session-process.d.ts +22 -2
  288. package/dist/core/session-process.js +170 -12
  289. package/dist/core/session-process.js.map +1 -1
  290. package/dist/core/shell-env.d.ts +2 -15
  291. package/dist/core/shell-env.js +2 -15
  292. package/dist/core/shell-env.js.map +1 -1
  293. package/dist/core/ui-events.d.ts +60 -47
  294. package/dist/core/ui-events.js +0 -23
  295. package/dist/core/ui-events.js.map +1 -1
  296. package/dist/core/usage-limit.js.map +1 -1
  297. package/dist/data-gitignore.js +3 -1
  298. package/dist/data-gitignore.js.map +1 -1
  299. package/dist/delegation/capacity.d.ts +4 -8
  300. package/dist/delegation/capacity.js +4 -8
  301. package/dist/delegation/capacity.js.map +1 -1
  302. package/dist/delegation/cli.js +123 -21
  303. package/dist/delegation/cli.js.map +1 -1
  304. package/dist/delegation/context.d.ts +19 -3
  305. package/dist/delegation/context.js +217 -22
  306. package/dist/delegation/context.js.map +1 -1
  307. package/dist/delegation/conversations.d.ts +4 -3
  308. package/dist/delegation/conversations.js +7 -5
  309. package/dist/delegation/conversations.js.map +1 -1
  310. package/dist/delegation/destroy-observation.d.ts +1 -1
  311. package/dist/delegation/destroy-observation.js.map +1 -1
  312. package/dist/delegation/effort.js.map +1 -1
  313. package/dist/delegation/execution-identity.d.ts +1 -1
  314. package/dist/delegation/execution-identity.js +41 -7
  315. package/dist/delegation/execution-identity.js.map +1 -1
  316. package/dist/delegation/idle-test-app.d.ts +4 -0
  317. package/dist/delegation/idle-test-app.js +174 -0
  318. package/dist/delegation/idle-test-app.js.map +1 -0
  319. package/dist/delegation/input.js.map +1 -1
  320. package/dist/delegation/park-notice.d.ts +42 -0
  321. package/dist/delegation/park-notice.js +71 -0
  322. package/dist/delegation/park-notice.js.map +1 -0
  323. package/dist/delegation/policy.d.ts +2 -0
  324. package/dist/delegation/policy.js +9 -1
  325. package/dist/delegation/policy.js.map +1 -1
  326. package/dist/delegation/process-liveness.d.ts +10 -15
  327. package/dist/delegation/process-liveness.js +11 -35
  328. package/dist/delegation/process-liveness.js.map +1 -1
  329. package/dist/delegation/provision.js +21 -19
  330. package/dist/delegation/provision.js.map +1 -1
  331. package/dist/delegation/questions.d.ts +3 -1
  332. package/dist/delegation/questions.js +10 -5
  333. package/dist/delegation/questions.js.map +1 -1
  334. package/dist/delegation/readiness.d.ts +2 -2
  335. package/dist/delegation/results.d.ts +4 -1
  336. package/dist/delegation/results.js +49 -18
  337. package/dist/delegation/results.js.map +1 -1
  338. package/dist/delegation/retry-backoff.d.ts +8 -0
  339. package/dist/delegation/retry-backoff.js +8 -0
  340. package/dist/delegation/retry-backoff.js.map +1 -1
  341. package/dist/delegation/routes.d.ts +114 -30
  342. package/dist/delegation/routes.js +4 -1
  343. package/dist/delegation/routes.js.map +1 -1
  344. package/dist/delegation/scratch-cleanup.d.ts +4 -5
  345. package/dist/delegation/scratch-cleanup.js +10 -8
  346. package/dist/delegation/scratch-cleanup.js.map +1 -1
  347. package/dist/delegation/service.d.ts +12 -4
  348. package/dist/delegation/service.js +76 -28
  349. package/dist/delegation/service.js.map +1 -1
  350. package/dist/delegation/transport.d.ts +154 -70
  351. package/dist/delegation/wait.d.ts +11 -0
  352. package/dist/delegation/wait.js +24 -0
  353. package/dist/delegation/wait.js.map +1 -1
  354. package/dist/delegation/windows-test-app.d.ts +5 -0
  355. package/dist/delegation/windows-test-app.js +63 -0
  356. package/dist/delegation/windows-test-app.js.map +1 -0
  357. package/dist/delegation/windows-workspace-identity.d.ts +3 -0
  358. package/dist/delegation/windows-workspace-identity.js +22 -0
  359. package/dist/delegation/windows-workspace-identity.js.map +1 -0
  360. package/dist/delegation/workspace.d.ts +5 -10
  361. package/dist/delegation/workspace.js +136 -75
  362. package/dist/delegation/workspace.js.map +1 -1
  363. package/dist/detached-process.d.ts +103 -0
  364. package/dist/detached-process.js +301 -0
  365. package/dist/detached-process.js.map +1 -0
  366. package/dist/discovery/catalog.d.ts +2 -1
  367. package/dist/discovery/catalog.js.map +1 -1
  368. package/dist/discovery/cli.js +3 -1
  369. package/dist/discovery/cli.js.map +1 -1
  370. package/dist/git-diff-base.d.ts +6 -61
  371. package/dist/git-diff-base.js +6 -70
  372. package/dist/git-diff-base.js.map +1 -1
  373. package/dist/git-index-copy.d.ts +4 -0
  374. package/dist/git-index-copy.js +10 -0
  375. package/dist/git-index-copy.js.map +1 -0
  376. package/dist/git-worktree-lock.d.ts +2 -4
  377. package/dist/git-worktree-lock.js +2 -4
  378. package/dist/git-worktree-lock.js.map +1 -1
  379. package/dist/git-worktree-release.d.ts +2 -2
  380. package/dist/git-worktree-release.js.map +1 -1
  381. package/dist/git-worktree.d.ts +47 -76
  382. package/dist/git-worktree.js +240 -94
  383. package/dist/git-worktree.js.map +1 -1
  384. package/dist/handoff.d.ts +51 -41
  385. package/dist/handoff.js +130 -78
  386. package/dist/handoff.js.map +1 -1
  387. package/dist/index.js +60 -39
  388. package/dist/index.js.map +1 -1
  389. package/dist/merge-observations.d.ts +13 -0
  390. package/dist/merge-observations.js +55 -0
  391. package/dist/merge-observations.js.map +1 -0
  392. package/dist/open-url.js +4 -14
  393. package/dist/open-url.js.map +1 -1
  394. package/dist/paths.d.ts +10 -13
  395. package/dist/paths.js +36 -17
  396. package/dist/paths.js.map +1 -1
  397. package/dist/planner.d.ts +2 -1
  398. package/dist/planner.js +9 -6
  399. package/dist/planner.js.map +1 -1
  400. package/dist/preview/agent-address.d.ts +34 -0
  401. package/dist/preview/agent-address.js +51 -0
  402. package/dist/preview/agent-address.js.map +1 -0
  403. package/dist/preview/agent-marker.d.ts +17 -0
  404. package/dist/preview/agent-marker.js +71 -0
  405. package/dist/preview/agent-marker.js.map +1 -0
  406. package/dist/preview/cdp-proxy.d.ts +54 -0
  407. package/dist/preview/cdp-proxy.js +151 -0
  408. package/dist/preview/cdp-proxy.js.map +1 -0
  409. package/dist/preview/cdp.d.ts +39 -3
  410. package/dist/preview/cdp.js +155 -57
  411. package/dist/preview/cdp.js.map +1 -1
  412. package/dist/preview/chromium.d.ts +18 -6
  413. package/dist/preview/chromium.js +112 -25
  414. package/dist/preview/chromium.js.map +1 -1
  415. package/dist/preview/dev-server.d.ts +1 -1
  416. package/dist/preview/dev-server.js +20 -44
  417. package/dist/preview/dev-server.js.map +1 -1
  418. package/dist/preview/host.d.ts +70 -3
  419. package/dist/preview/host.js +314 -28
  420. package/dist/preview/host.js.map +1 -1
  421. package/dist/preview/registration.d.ts +10 -5
  422. package/dist/preview/registration.js +2 -0
  423. package/dist/preview/registration.js.map +1 -1
  424. package/dist/preview/session.d.ts +2 -0
  425. package/dist/preview/session.js +10 -0
  426. package/dist/preview/session.js.map +1 -1
  427. package/dist/process-wait/exit-file.d.ts +29 -0
  428. package/dist/process-wait/exit-file.js +67 -0
  429. package/dist/process-wait/exit-file.js.map +1 -0
  430. package/dist/process-wait/supervisor.d.ts +30 -0
  431. package/dist/process-wait/supervisor.js +71 -0
  432. package/dist/process-wait/supervisor.js.map +1 -0
  433. package/dist/release/snapshot.d.ts +6 -6
  434. package/dist/runs/agent-tmpdir.d.ts +51 -36
  435. package/dist/runs/agent-tmpdir.js +389 -132
  436. package/dist/runs/agent-tmpdir.js.map +1 -1
  437. package/dist/runs/auto-name.d.ts +6 -6
  438. package/dist/runs/auto-name.js +1 -1
  439. package/dist/runs/auto-name.js.map +1 -1
  440. package/dist/runs/client-request.d.ts +3 -3
  441. package/dist/runs/client-request.js +3 -3
  442. package/dist/runs/client-request.js.map +1 -1
  443. package/dist/runs/delegation-state.d.ts +11 -2
  444. package/dist/runs/delegation-state.js.map +1 -1
  445. package/dist/runs/event-history-agent-context.d.ts +14 -0
  446. package/dist/runs/event-history-agent-context.js +105 -0
  447. package/dist/runs/event-history-agent-context.js.map +1 -0
  448. package/dist/runs/event-history-context.d.ts +15 -0
  449. package/dist/runs/event-history-context.js +109 -0
  450. package/dist/runs/event-history-context.js.map +1 -0
  451. package/dist/runs/event-history.d.ts +4 -1
  452. package/dist/runs/event-history.js +29 -130
  453. package/dist/runs/event-history.js.map +1 -1
  454. package/dist/runs/history-stream.d.ts +2 -0
  455. package/dist/runs/history-stream.js +62 -0
  456. package/dist/runs/history-stream.js.map +1 -0
  457. package/dist/runs/legacy-index.d.ts +6 -19
  458. package/dist/runs/legacy-index.js +6 -19
  459. package/dist/runs/legacy-index.js.map +1 -1
  460. package/dist/runs/live-item-snapshots.d.ts +13 -0
  461. package/dist/runs/live-item-snapshots.js +79 -0
  462. package/dist/runs/live-item-snapshots.js.map +1 -0
  463. package/dist/runs/loaded-run-healing.d.ts +3 -0
  464. package/dist/runs/loaded-run-healing.js +17 -0
  465. package/dist/runs/loaded-run-healing.js.map +1 -0
  466. package/dist/runs/outcome-commit.d.ts +98 -0
  467. package/dist/runs/outcome-commit.js +132 -0
  468. package/dist/runs/outcome-commit.js.map +1 -0
  469. package/dist/runs/pull-requests.d.ts +14 -0
  470. package/dist/runs/pull-requests.js +96 -0
  471. package/dist/runs/pull-requests.js.map +1 -0
  472. package/dist/runs/raw-record.d.ts +3 -15
  473. package/dist/runs/raw-record.js +3 -15
  474. package/dist/runs/raw-record.js.map +1 -1
  475. package/dist/runs/retention.d.ts +2 -2
  476. package/dist/runs/retention.js +7 -0
  477. package/dist/runs/retention.js.map +1 -1
  478. package/dist/runs/review-gate.d.ts +1 -1
  479. package/dist/runs/review-gate.js.map +1 -1
  480. package/dist/runs/run-claims.d.ts +2 -9
  481. package/dist/runs/run-claims.js.map +1 -1
  482. package/dist/runs/run-database.d.ts +29 -34
  483. package/dist/runs/run-database.js +124 -46
  484. package/dist/runs/run-database.js.map +1 -1
  485. package/dist/runs/run-index.d.ts +6 -25
  486. package/dist/runs/run-index.js +25 -38
  487. package/dist/runs/run-index.js.map +1 -1
  488. package/dist/runs/run-row.d.ts +5 -34
  489. package/dist/runs/run-row.js +13 -38
  490. package/dist/runs/run-row.js.map +1 -1
  491. package/dist/runs/store.d.ts +1597 -744
  492. package/dist/runs/store.js +1231 -739
  493. package/dist/runs/store.js.map +1 -1
  494. package/dist/runs/task-markers.d.ts +1 -0
  495. package/dist/runs/task-markers.js +5 -1
  496. package/dist/runs/task-markers.js.map +1 -1
  497. package/dist/runs/task-refs.d.ts +3 -3
  498. package/dist/runs/transcript-facts-fold.d.ts +64 -0
  499. package/dist/runs/transcript-facts-fold.js +109 -0
  500. package/dist/runs/transcript-facts-fold.js.map +1 -0
  501. package/dist/runs/transcript-facts-load.d.ts +11 -0
  502. package/dist/runs/transcript-facts-load.js +66 -0
  503. package/dist/runs/transcript-facts-load.js.map +1 -0
  504. package/dist/runs/transcript-facts-queue.d.ts +30 -0
  505. package/dist/runs/transcript-facts-queue.js +227 -0
  506. package/dist/runs/transcript-facts-queue.js.map +1 -0
  507. package/dist/runs/transcript-facts-worker.d.ts +15 -0
  508. package/dist/runs/transcript-facts-worker.js +26 -0
  509. package/dist/runs/transcript-facts-worker.js.map +1 -0
  510. package/dist/runs/transcript-facts.d.ts +13 -51
  511. package/dist/runs/transcript-facts.js +86 -202
  512. package/dist/runs/transcript-facts.js.map +1 -1
  513. package/dist/runs/ui-event-sink.d.ts +5 -30
  514. package/dist/runs/ui-event-sink.js +8 -30
  515. package/dist/runs/ui-event-sink.js.map +1 -1
  516. package/dist/runs/webhook.d.ts +104 -38
  517. package/dist/runs/webhook.js +180 -77
  518. package/dist/runs/webhook.js.map +1 -1
  519. package/dist/server/app-type.d.ts +2 -17
  520. package/dist/server/archive-on-merge.d.ts +35 -0
  521. package/dist/server/archive-on-merge.js +202 -0
  522. package/dist/server/archive-on-merge.js.map +1 -0
  523. package/dist/server/capabilities.d.ts +3 -15
  524. package/dist/server/capabilities.js +6 -19
  525. package/dist/server/capabilities.js.map +1 -1
  526. package/dist/server/checkout-progress.d.ts +10 -0
  527. package/dist/server/checkout-progress.js +27 -0
  528. package/dist/server/checkout-progress.js.map +1 -0
  529. package/dist/server/checkout.d.ts +10 -19
  530. package/dist/server/checkout.js +15 -45
  531. package/dist/server/checkout.js.map +1 -1
  532. package/dist/server/cockpit-ownership.d.ts +2 -0
  533. package/dist/server/cockpit-ownership.js +9 -0
  534. package/dist/server/cockpit-ownership.js.map +1 -1
  535. package/dist/server/cold-repo-handles.d.ts +2 -7
  536. package/dist/server/cold-repo-handles.js +2 -7
  537. package/dist/server/cold-repo-handles.js.map +1 -1
  538. package/dist/server/completion-actions.d.ts +30 -0
  539. package/dist/server/completion-actions.js +204 -0
  540. package/dist/server/completion-actions.js.map +1 -0
  541. package/dist/server/create-project.d.ts +71 -0
  542. package/dist/server/create-project.js +448 -0
  543. package/dist/server/create-project.js.map +1 -0
  544. package/dist/server/forge/github-filters.d.ts +7 -1
  545. package/dist/server/forge/github-filters.js +66 -51
  546. package/dist/server/forge/github-filters.js.map +1 -1
  547. package/dist/server/forge/github-merge-requirements.d.ts +18 -0
  548. package/dist/server/forge/github-merge-requirements.js +137 -0
  549. package/dist/server/forge/github-merge-requirements.js.map +1 -0
  550. package/dist/server/forge/github.d.ts +98 -111
  551. package/dist/server/forge/github.js +625 -306
  552. package/dist/server/forge/github.js.map +1 -1
  553. package/dist/server/forge/types.d.ts +25 -22
  554. package/dist/server/fs-browse.d.ts +3 -28
  555. package/dist/server/fs-browse.js.map +1 -1
  556. package/dist/server/git-changes.d.ts +5 -15
  557. package/dist/server/git-changes.js +3 -50
  558. package/dist/server/git-changes.js.map +1 -1
  559. package/dist/server/git.d.ts +3 -1
  560. package/dist/server/git.js +12 -0
  561. package/dist/server/git.js.map +1 -1
  562. package/dist/server/github.d.ts +1 -1
  563. package/dist/server/github.js +1 -1
  564. package/dist/server/github.js.map +1 -1
  565. package/dist/server/launch-key.d.ts +2 -4
  566. package/dist/server/launch-key.js +2 -4
  567. package/dist/server/launch-key.js.map +1 -1
  568. package/dist/server/live-routes.d.ts +68 -0
  569. package/dist/server/live-routes.js +147 -0
  570. package/dist/server/live-routes.js.map +1 -0
  571. package/dist/server/open-in-app.d.ts +4 -13
  572. package/dist/server/open-in-app.js +5 -41
  573. package/dist/server/open-in-app.js.map +1 -1
  574. package/dist/server/open-in-targets.d.ts +42 -0
  575. package/dist/server/open-in-targets.js +110 -0
  576. package/dist/server/open-in-targets.js.map +1 -0
  577. package/dist/server/open-in-terminal.d.ts +3 -0
  578. package/dist/server/open-in-terminal.js +6 -26
  579. package/dist/server/open-in-terminal.js.map +1 -1
  580. package/dist/server/preview-cdp-socket.d.ts +21 -0
  581. package/dist/server/preview-cdp-socket.js +112 -0
  582. package/dist/server/preview-cdp-socket.js.map +1 -0
  583. package/dist/server/preview-socket.d.ts +11 -11
  584. package/dist/server/preview-socket.js +22 -22
  585. package/dist/server/preview-socket.js.map +1 -1
  586. package/dist/server/preview-sockets.d.ts +14 -0
  587. package/dist/server/preview-sockets.js +18 -0
  588. package/dist/server/preview-sockets.js.map +1 -0
  589. package/dist/server/project-context.d.ts +54 -18
  590. package/dist/server/project-context.js +178 -5
  591. package/dist/server/project-context.js.map +1 -1
  592. package/dist/server/provider-action-gate.d.ts +0 -2
  593. package/dist/server/provider-action-gate.js +0 -21
  594. package/dist/server/provider-action-gate.js.map +1 -1
  595. package/dist/server/provider-auth-runtime.d.ts +3 -18
  596. package/dist/server/provider-auth-runtime.js +3 -18
  597. package/dist/server/provider-auth-runtime.js.map +1 -1
  598. package/dist/server/repo-branches.d.ts +3 -9
  599. package/dist/server/repo-branches.js +6 -22
  600. package/dist/server/repo-branches.js.map +1 -1
  601. package/dist/server/run-event-feed.d.ts +20 -0
  602. package/dist/server/run-event-feed.js +190 -0
  603. package/dist/server/run-event-feed.js.map +1 -0
  604. package/dist/server/server-deps.d.ts +37 -0
  605. package/dist/server/server-deps.js +114 -0
  606. package/dist/server/server-deps.js.map +1 -0
  607. package/dist/server/server.d.ts +14082 -11998
  608. package/dist/server/server.js +785 -1647
  609. package/dist/server/server.js.map +1 -1
  610. package/dist/server/start-run-options.d.ts +82 -0
  611. package/dist/server/start-run-options.js +111 -0
  612. package/dist/server/start-run-options.js.map +1 -0
  613. package/dist/server/validators.d.ts +3 -29
  614. package/dist/server/validators.js +1 -2
  615. package/dist/server/validators.js.map +1 -1
  616. package/dist/server/ws.d.ts +3 -23
  617. package/dist/server/ws.js +3 -23
  618. package/dist/server/ws.js.map +1 -1
  619. package/dist/server-install/engine.d.ts +6 -9
  620. package/dist/server-install/engine.js +2 -9
  621. package/dist/server-install/engine.js.map +1 -1
  622. package/dist/server-install/platforms/ubuntu-vps.d.ts +1 -1
  623. package/dist/server-install/state.d.ts +2 -4
  624. package/dist/server-install/state.js +2 -4
  625. package/dist/server-install/state.js.map +1 -1
  626. package/dist/server-install/steps.d.ts +2 -5
  627. package/dist/server-install/steps.js +3 -6
  628. package/dist/server-install/steps.js.map +1 -1
  629. package/dist/server-install/types.d.ts +3 -6
  630. package/dist/server-install/types.js +2 -5
  631. package/dist/server-install/types.js.map +1 -1
  632. package/dist/server-install/ui.d.ts +2 -8
  633. package/dist/server-install/ui.js +3 -3
  634. package/dist/server-install/ui.js.map +1 -1
  635. package/dist/session-context.d.ts +64 -0
  636. package/dist/session-context.js +264 -0
  637. package/dist/session-context.js.map +1 -0
  638. package/dist/skills-provision.d.ts +62 -0
  639. package/dist/skills-provision.js +325 -0
  640. package/dist/skills-provision.js.map +1 -0
  641. package/dist/skills-remote.d.ts +29 -27
  642. package/dist/skills-remote.js +236 -100
  643. package/dist/skills-remote.js.map +1 -1
  644. package/dist/skills.d.ts +25 -36
  645. package/dist/skills.js +43 -54
  646. package/dist/skills.js.map +1 -1
  647. package/dist/subcommands.d.ts +11 -0
  648. package/dist/subcommands.js +24 -0
  649. package/dist/subcommands.js.map +1 -0
  650. package/dist/task-cli/cli.js +78 -25
  651. package/dist/task-cli/cli.js.map +1 -1
  652. package/dist/task-cli/discovery.d.ts +4 -2
  653. package/dist/task-cli/discovery.js +14 -13
  654. package/dist/task-cli/discovery.js.map +1 -1
  655. package/dist/task-cli/hint.d.ts +20 -0
  656. package/dist/task-cli/hint.js +14 -0
  657. package/dist/task-cli/hint.js.map +1 -0
  658. package/dist/task-cli/http.d.ts +1 -0
  659. package/dist/task-cli/http.js +3 -1
  660. package/dist/task-cli/http.js.map +1 -1
  661. package/dist/task-cli/projections.d.ts +14 -11
  662. package/dist/task-cli/projections.js +15 -11
  663. package/dist/task-cli/projections.js.map +1 -1
  664. package/dist/task-cli/watch.d.ts +18 -10
  665. package/dist/task-cli/watch.js +128 -20
  666. package/dist/task-cli/watch.js.map +1 -1
  667. package/dist/ui-state.d.ts +17 -3
  668. package/dist/ui-state.js +56 -9
  669. package/dist/ui-state.js.map +1 -1
  670. package/dist/update-check.d.ts +0 -10
  671. package/dist/update-check.js +1 -16
  672. package/dist/update-check.js.map +1 -1
  673. package/dist/voice/decide.d.ts +32 -0
  674. package/dist/voice/decide.js +297 -0
  675. package/dist/voice/decide.js.map +1 -0
  676. package/dist/voice/decision-log.d.ts +52 -0
  677. package/dist/voice/decision-log.js +107 -0
  678. package/dist/voice/decision-log.js.map +1 -0
  679. package/dist/voice/engine.d.ts +119 -0
  680. package/dist/voice/engine.js +60 -0
  681. package/dist/voice/engine.js.map +1 -0
  682. package/dist/voice/fake-engine.d.ts +10 -0
  683. package/dist/voice/fake-engine.js +192 -0
  684. package/dist/voice/fake-engine.js.map +1 -0
  685. package/dist/voice/jev-engine.d.ts +17 -0
  686. package/dist/voice/jev-engine.js +110 -0
  687. package/dist/voice/jev-engine.js.map +1 -0
  688. package/dist/voice/pending-ask.d.ts +17 -0
  689. package/dist/voice/pending-ask.js +50 -0
  690. package/dist/voice/pending-ask.js.map +1 -0
  691. package/dist/voice/routes.d.ts +115 -0
  692. package/dist/voice/routes.js +91 -0
  693. package/dist/voice/routes.js.map +1 -0
  694. package/dist/voice/sentence.d.ts +21 -0
  695. package/dist/voice/sentence.js +61 -0
  696. package/dist/voice/sentence.js.map +1 -0
  697. package/dist/voice/thresholds.d.ts +28 -0
  698. package/dist/voice/thresholds.js +29 -0
  699. package/dist/voice/thresholds.js.map +1 -0
  700. package/dist/webhooks/cli.d.ts +18 -0
  701. package/dist/webhooks/cli.js +145 -0
  702. package/dist/webhooks/cli.js.map +1 -0
  703. package/dist/webhooks/prompt.d.ts +5 -0
  704. package/dist/webhooks/prompt.js +26 -0
  705. package/dist/webhooks/prompt.js.map +1 -0
  706. package/dist/workflows/active-run.d.ts +167 -0
  707. package/dist/workflows/active-run.js +21 -0
  708. package/dist/workflows/active-run.js.map +1 -0
  709. package/dist/workflows/continuation-admission.d.ts +913 -0
  710. package/dist/workflows/continuation-admission.js +265 -0
  711. package/dist/workflows/continuation-admission.js.map +1 -0
  712. package/dist/workflows/execution-account.d.ts +13 -0
  713. package/dist/workflows/execution-account.js +18 -0
  714. package/dist/workflows/execution-account.js.map +1 -0
  715. package/dist/workflows/input-acknowledgement.d.ts +152 -0
  716. package/dist/workflows/input-acknowledgement.js +38 -0
  717. package/dist/workflows/input-acknowledgement.js.map +1 -0
  718. package/dist/workflows/line-order.d.ts +5 -0
  719. package/dist/workflows/line-order.js +25 -0
  720. package/dist/workflows/line-order.js.map +1 -0
  721. package/dist/workflows/outcome-batches.d.ts +20 -0
  722. package/dist/workflows/outcome-batches.js +25 -0
  723. package/dist/workflows/outcome-batches.js.map +1 -0
  724. package/dist/workflows/question-routing.d.ts +8 -0
  725. package/dist/workflows/question-routing.js +18 -0
  726. package/dist/workflows/question-routing.js.map +1 -0
  727. package/dist/workflows/run-scheduling.d.ts +35 -0
  728. package/dist/workflows/run-scheduling.js +61 -0
  729. package/dist/workflows/run-scheduling.js.map +1 -0
  730. package/dist/workflows/run-states.d.ts +190 -0
  731. package/dist/workflows/run-states.js +295 -0
  732. package/dist/workflows/run-states.js.map +1 -0
  733. package/dist/workflows/run.d.ts +1296 -278
  734. package/dist/workflows/run.js +5730 -3265
  735. package/dist/workflows/run.js.map +1 -1
  736. package/dist/workflows/turn-end.d.ts +116 -0
  737. package/dist/workflows/turn-end.js +68 -0
  738. package/dist/workflows/turn-end.js.map +1 -0
  739. package/dist/workflows/types.d.ts +35 -130
  740. package/dist/workflows/types.js +47 -100
  741. package/dist/workflows/types.js.map +1 -1
  742. package/dist/workflows/waits.d.ts +74 -0
  743. package/dist/workflows/waits.js +197 -0
  744. package/dist/workflows/waits.js.map +1 -0
  745. package/dist/workspace/agent-accounts.d.ts +5 -38
  746. package/dist/workspace/agent-accounts.js +14 -40
  747. package/dist/workspace/agent-accounts.js.map +1 -1
  748. package/dist/workspace/agent-profiles.d.ts +40 -16
  749. package/dist/workspace/agent-profiles.js +77 -17
  750. package/dist/workspace/agent-profiles.js.map +1 -1
  751. package/dist/workspace/config.d.ts +48 -49
  752. package/dist/workspace/config.js +68 -72
  753. package/dist/workspace/config.js.map +1 -1
  754. package/dist/workspace/migrations.d.ts +3 -13
  755. package/dist/workspace/migrations.js.map +1 -1
  756. package/dist/workspace/projects-cli.d.ts +1 -1
  757. package/dist/workspace/projects-cli.js.map +1 -1
  758. package/dist/workspace/projects.d.ts +15 -18
  759. package/dist/workspace/projects.js +20 -16
  760. package/dist/workspace/projects.js.map +1 -1
  761. package/dist/workspace/semaphore.d.ts +11 -45
  762. package/dist/workspace/semaphore.js +6 -18
  763. package/dist/workspace/semaphore.js.map +1 -1
  764. package/dist/workspace/ui-state.d.ts +6 -4
  765. package/dist/workspace/ui-state.js +6 -4
  766. package/dist/workspace/ui-state.js.map +1 -1
  767. package/dist/workspace/webhooks.d.ts +40 -0
  768. package/dist/workspace/webhooks.js +146 -0
  769. package/dist/workspace/webhooks.js.map +1 -0
  770. package/dist/worktree-manifest.d.ts +165 -0
  771. package/dist/worktree-manifest.js +530 -0
  772. package/dist/worktree-manifest.js.map +1 -0
  773. package/dist/worktree-setup.js.map +1 -1
  774. package/package.json +6 -5
  775. package/scripts/benchmark-run-store-fixture.ts +7 -3
  776. package/scripts/check-pack.mjs +3 -1
  777. package/scripts/inline-contract.mjs +80 -27
  778. package/scripts/install-as-command.mjs +3 -1
  779. package/scripts/measure-transcript-facts-health.mjs +87 -0
  780. package/scripts/measure-transcript-facts-lag.mjs +68 -0
  781. package/scripts/mock-ci-tool.mjs +49 -6
  782. package/scripts/mock-claude-model-refusal.mjs +42 -0
  783. package/scripts/mock-claude.mjs +833 -591
  784. package/scripts/mock-codex-app-server.mjs +785 -418
  785. package/scripts/mock-cursor-acp.mjs +296 -125
  786. package/scripts/mock-cursor-print.mjs +256 -0
  787. package/scripts/mock-deferred-turn-start.mjs +16 -0
  788. package/scripts/mock-delivery-control.d.mts +23 -0
  789. package/scripts/mock-delivery-control.mjs +80 -0
  790. package/scripts/mock-env-record.mjs +11 -0
  791. package/scripts/mock-failure-control.d.mts +13 -0
  792. package/scripts/mock-failure-control.mjs +68 -0
  793. package/scripts/mock-multi-pr.mjs +7 -0
  794. package/scripts/mock-nudge.mjs +45 -0
  795. package/scripts/mock-omp-rpc.mjs +429 -255
  796. package/scripts/mock-opencode-serve.mjs +972 -557
  797. package/scripts/mock-pi-rpc.mjs +558 -331
  798. package/scripts/mock-runner-crash.mjs +18 -2
  799. package/scripts/mock-session-context.d.mts +5 -0
  800. package/scripts/mock-session-context.mjs +56 -0
  801. package/scripts/mock-silent-tail.mjs +10 -3
  802. package/scripts/pi-default-tools.mjs +22 -0
  803. package/scripts/pi-project-skills.mjs +59 -0
  804. package/scripts/probe-cursor-print.mjs +627 -0
  805. package/scripts/transcript-facts-fixture.mjs +53 -0
  806. package/scripts/voice-replay.ts +50 -0
  807. package/scripts/windows-workspace-identity.cs +208 -0
  808. package/scripts/windows-workspace-identity.ps1 +10 -0
  809. package/web/dist/assets/alert-dialog-DfctKUMw.js +1 -0
  810. package/web/dist/assets/button-CeupvoKG.js +41 -0
  811. package/web/dist/assets/centered-state-hDsyXrnH.js +1 -0
  812. package/web/dist/assets/cez-idle-D3aj_9lp.js +1 -0
  813. package/web/dist/assets/diff-BnIXZK3i2.js +3 -0
  814. package/web/dist/assets/diff-controls-GewpW9aF.js +1 -0
  815. package/web/dist/assets/diff-view-Byo7gpvW.js +11 -0
  816. package/web/dist/assets/dropdown-menu-COj_J5wd.js +6 -0
  817. package/web/dist/assets/eye-B8okNWXU.js +1 -0
  818. package/web/dist/assets/git-toolbar-DY0z0n4S.js +1 -0
  819. package/web/dist/assets/github-DwU6ALRK.js +1 -0
  820. package/web/dist/assets/{image-preview-FOEfqpZP.js → image-preview-C_t9q45f.js} +1 -1
  821. package/web/dist/assets/index-BOfE8pyD.js +34 -0
  822. package/web/dist/assets/index-D9HpsmdW.css +1 -0
  823. package/web/dist/assets/live-protocol-Uce2NwEX.js +64 -0
  824. package/web/dist/assets/live-worker-BizfZSoh.ts +33 -0
  825. package/web/dist/assets/markdown-BBDDg-4t.js +1 -0
  826. package/web/dist/assets/nav-row-styles-AoIhhIwf.js +1 -0
  827. package/web/dist/assets/popover-D56fhiXj.js +1 -0
  828. package/web/dist/assets/preview-pane-connected-BmVqfSU5.js +3 -0
  829. package/web/dist/assets/reference-chip-gQNk-4jc.js +1 -0
  830. package/web/dist/assets/repo-git-B5ECDUuv.js +1 -0
  831. package/web/dist/assets/{repo-git-CoKp-g9K.css → repo-git-DVXNOJDT.css} +1 -1
  832. package/web/dist/assets/run-header-C0Y1NvEM.js +2 -0
  833. package/web/dist/assets/run-header-CC7VUTg9.css +1 -0
  834. package/web/dist/assets/skills-DUeTkZ9z.js +1 -0
  835. package/web/dist/assets/status-dot-1PR0i69P.js +1 -0
  836. package/web/dist/assets/tab-link-DmWk4l5O.js +1 -0
  837. package/web/dist/assets/task-changes-DKZXuW89.js +1 -0
  838. package/web/dist/assets/task-commits-BZ6KxWdF.js +1 -0
  839. package/web/dist/assets/task-files-DlF7Apcn.js +2 -0
  840. package/web/dist/assets/task-github-item-CVPo3geZ.js +1 -0
  841. package/web/dist/assets/task-thread-DtQ6uGfQ.css +1 -0
  842. package/web/dist/assets/task-thread-mm4-ECyo.js +9 -0
  843. package/web/dist/assets/thread-state-CIw2BlhT.js +4 -0
  844. package/web/dist/assets/use-hand-to-agent-state-BCDjzHnG.js +1 -0
  845. package/web/dist/assets/use-hand-to-agent-state-C7esPJ-N.css +1 -0
  846. package/web/dist/assets/workflows-D8vYD-ql.js +7 -0
  847. package/web/dist/assets/zoomable-image-CxQSsfcn.js +1 -0
  848. package/web/dist/index.html +13 -17
  849. package/web/dist/live-worker.js +4 -0
  850. package/dist/core/tool-display.js +0 -179
  851. package/dist/core/tool-display.js.map +0 -1
  852. package/dist/runs/human-ask-summary.d.ts +0 -9
  853. package/dist/runs/human-ask-summary.js +0 -39
  854. package/dist/runs/human-ask-summary.js.map +0 -1
  855. package/dist/runs/run-search.d.ts +0 -29
  856. package/dist/runs/run-search.js +0 -63
  857. package/dist/runs/run-search.js.map +0 -1
  858. package/dist/skills-banner.d.ts +0 -22
  859. package/dist/skills-banner.js +0 -41
  860. package/dist/skills-banner.js.map +0 -1
  861. package/dist/skills-update.d.ts +0 -88
  862. package/dist/skills-update.js +0 -392
  863. package/dist/skills-update.js.map +0 -1
  864. package/dist/todos.d.ts +0 -48
  865. package/dist/todos.js +0 -201
  866. package/dist/todos.js.map +0 -1
  867. package/web/dist/assets/agent-accounts-CFOBMVHc.js +0 -1
  868. package/web/dist/assets/alert-dialog-BrpNUwMt.js +0 -1
  869. package/web/dist/assets/button-C_rd7CPp.js +0 -43
  870. package/web/dist/assets/compare-variants-D6WXhvXA.js +0 -1
  871. package/web/dist/assets/diff-DrEARXTV.js +0 -3
  872. package/web/dist/assets/diff-controls-B1-j7nFg.js +0 -1
  873. package/web/dist/assets/diff-view-DvGLjdTk.js +0 -6
  874. package/web/dist/assets/dropdown-menu-BegOZFrj.js +0 -1
  875. package/web/dist/assets/format-DpNe3S0A.js +0 -1
  876. package/web/dist/assets/git-toolbar-Cw4ljmhB.js +0 -1
  877. package/web/dist/assets/github-CfV5sqL0.js +0 -1
  878. package/web/dist/assets/index-DgWWlOLy.js +0 -13
  879. package/web/dist/assets/index-fBFnuvxu.css +0 -1
  880. package/web/dist/assets/nav-row-styles-vp2JbhuJ.js +0 -1
  881. package/web/dist/assets/popover-BohP6WTx.js +0 -1
  882. package/web/dist/assets/preview-pane-connected-qTA5KNoJ.js +0 -3
  883. package/web/dist/assets/preview-state-vuMviq6q.js +0 -1
  884. package/web/dist/assets/prompt-templates-Cubdut_C.js +0 -15
  885. package/web/dist/assets/repo-git-Cf4t5PD0.js +0 -1
  886. package/web/dist/assets/run-diff-BpkUW37Z.js +0 -3
  887. package/web/dist/assets/run-header-68WHf9wV.js +0 -1
  888. package/web/dist/assets/run-header-8GObNx6F.css +0 -1
  889. package/web/dist/assets/search-x-I9Q8pgUa.js +0 -1
  890. package/web/dist/assets/skills-DFBiAuJG.js +0 -1
  891. package/web/dist/assets/skills-DiVIgKeU.js +0 -1
  892. package/web/dist/assets/square-terminal-B6RYYieR.js +0 -1
  893. package/web/dist/assets/status-dot-CqTJHSP9.js +0 -1
  894. package/web/dist/assets/tab-link-B07Hu4QX.js +0 -1
  895. package/web/dist/assets/task-changes--lQF6EYf.js +0 -1
  896. package/web/dist/assets/task-commits-Cx0qy4DN.js +0 -1
  897. package/web/dist/assets/task-files-D50s-gKW.js +0 -2
  898. package/web/dist/assets/task-github-item-DaqmSwYT.js +0 -1
  899. package/web/dist/assets/task-thread-BPQ64lui.js +0 -7
  900. package/web/dist/assets/task-thread-zNE2Q9E-.css +0 -1
  901. package/web/dist/assets/textarea-D20O4Pw0.js +0 -1
  902. package/web/dist/assets/thread-state-DWcFMrvb.js +0 -4
  903. package/web/dist/assets/use-hand-to-agent-state-BLIGmwbd.css +0 -1
  904. package/web/dist/assets/use-hand-to-agent-state-Cy9eyyfL.js +0 -1
  905. package/web/dist/assets/utils-JsL3ZsJf.js +0 -64
  906. package/web/dist/assets/workflows-jwG7uxqi.js +0 -11
  907. package/web/dist/assets/zoomable-image-BJJ64KGc.js +0 -1
@@ -0,0 +1,91 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { basename } from 'node:path';
3
+ import { Hono } from 'hono';
4
+ import { voiceDecideRequestSchema, voiceOutcomeRequestSchema, } from '../contract/index.js';
5
+ import { jsonZodValidator } from '../server/validators.js';
6
+ import { appendVoiceLog } from './decision-log.js';
7
+ import { decideVoice } from './decide.js';
8
+ import { VoiceEngineError } from './engine.js';
9
+ import { readPendingHumanAsk } from './pending-ask.js';
10
+ /** The one refusal both routes answer while voice mode is off (capability `voice`). */
11
+ export const VOICE_OFF = 'Voice mode is off: set CEZ_VOICE=1 and TYPESAFE_API_KEY, then restart cezar';
12
+ /**
13
+ * Voice mode routes (spec 2026-10-21-voice-mode, "Architecture"). One chained family, mounted in the
14
+ * `v1` chain so they answer under `/api/v1/voice/*` and `/api/v1/p/:projectId/voice/*`. The gate runs
15
+ * before validation, so an off server never validates, decides or writes.
16
+ */
17
+ export function createVoiceRoutes(deps) {
18
+ const gate = async (c, next) => {
19
+ if (!deps.voiceEnabled())
20
+ return c.json({ error: VOICE_OFF }, 409);
21
+ await next();
22
+ };
23
+ return new Hono()
24
+ .use('/voice/*', gate)
25
+ .post('/voice/decide', jsonZodValidator(voiceDecideRequestSchema), async (c) => {
26
+ const project = c.get('project');
27
+ const body = c.req.valid('json');
28
+ // An id this project does not know is "no open task", not an error: the tab can outlive the run.
29
+ // Its card id goes with it, so "no open task" wins over a stale card.
30
+ const openRun = body.openRunId === undefined ? undefined : project.store.getRun(body.openRunId);
31
+ const { openRunId: _unknown, askRequestId: _card, ...rest } = body;
32
+ const request = openRun ? body : rest;
33
+ const screen = {
34
+ project: basename(project.root),
35
+ ...(openRun ? { openTask: { title: openRun.titleSummary ?? openRun.title, status: openRun.status } } : {}),
36
+ };
37
+ const ask = openRun ? readPendingHumanAsk(project.dataDir, openRun) : undefined;
38
+ const decisionId = deps.uuid?.() ?? randomUUID();
39
+ deps.recent.load(project.id, project.dataDir);
40
+ const recent = deps.recent.last(project.id);
41
+ const engine = deps.engine();
42
+ try {
43
+ const { decision, answers, latencyMs, state } = await decideVoice({
44
+ request,
45
+ ...(ask ? { ask } : {}),
46
+ screen,
47
+ recent,
48
+ engine,
49
+ decisionId,
50
+ signal: c.req.raw.signal,
51
+ });
52
+ appendVoiceLog(project.dataDir, {
53
+ type: 'decision',
54
+ at: new Date().toISOString(),
55
+ decisionId,
56
+ sentence: request.text,
57
+ ...(request.openRunId !== undefined ? { openRunId: request.openRunId } : {}),
58
+ engine: engine.id,
59
+ state,
60
+ answers,
61
+ decision,
62
+ latencyMs,
63
+ });
64
+ deps.recent.record(project.id, decisionId, request.text, decision.action);
65
+ return c.json(decision, 200);
66
+ }
67
+ catch (error) {
68
+ // The caller's own abort and any bug go to Hono's error handler and write no line.
69
+ if (!(error instanceof VoiceEngineError))
70
+ throw error;
71
+ appendVoiceLog(project.dataDir, {
72
+ type: 'decision-error',
73
+ at: new Date().toISOString(),
74
+ decisionId,
75
+ sentence: request.text,
76
+ code: error.code,
77
+ });
78
+ // Only the code leaves the server: never the engine's message, status or headers.
79
+ return c.json({ error: `Voice decision unavailable (${error.code})` }, 503);
80
+ }
81
+ })
82
+ .post('/voice/outcome', jsonZodValidator(voiceOutcomeRequestSchema), async (c) => {
83
+ const project = c.get('project');
84
+ const { decisionId, outcome } = c.req.valid('json');
85
+ deps.recent.load(project.id, project.dataDir);
86
+ appendVoiceLog(project.dataDir, { type: 'outcome', at: new Date().toISOString(), decisionId, outcome });
87
+ deps.recent.settle(project.id, decisionId, outcome);
88
+ return c.json({ ok: true }, 200);
89
+ });
90
+ }
91
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/voice/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The dictated sentence as numbered words (hearsay-tools/cezarion#1463). The engine labels each word
3
+ * with the part of the reply it belongs to; code copies the words back out of the sentence exactly as
4
+ * said (spec 2026-10-21-voice-mode, "Answer the question card"). Pure string work; nothing here
5
+ * decides anything.
6
+ */
7
+ export interface VoiceWord {
8
+ /** `W01`, `W02`, … as the engine sees it in `words`. */
9
+ id: string;
10
+ text: string;
11
+ /** Where the word sits in the sentence: `sentence.slice(start, end) === text`. */
12
+ start: number;
13
+ end: number;
14
+ }
15
+ export declare function wordId(index: number): string;
16
+ export declare function splitWords(sentence: string): VoiceWord[];
17
+ /** The indices of the words inside a question reference: they point at a question, they never answer it. */
18
+ export declare function questionReferenceWords(sentence: string, words: readonly VoiceWord[], headers: string[]): Set<number>;
19
+ export declare function namesQuestion(sentence: string, headers: string[]): boolean;
20
+ /** The words `first`..`last` exactly as said, without a trailing sentence mark or comma. */
21
+ export declare function copyRange(sentence: string, words: readonly VoiceWord[], first: number, last: number): string;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The dictated sentence as numbered words (hearsay-tools/cezarion#1463). The engine labels each word
3
+ * with the part of the reply it belongs to; code copies the words back out of the sentence exactly as
4
+ * said (spec 2026-10-21-voice-mode, "Answer the question card"). Pure string work; nothing here
5
+ * decides anything.
6
+ */
7
+ const ORDINAL = '(?:one|two|three|four|first|second|third|fourth|[1-4])';
8
+ function escapeRegExp(text) {
9
+ return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
10
+ }
11
+ /**
12
+ * Where the sentence names a question: by number ("to question first", "the second question") or by
13
+ * its card header ("to Library", "for the Library question", "Library question").
14
+ */
15
+ function questionAnchors(headers) {
16
+ const named = [...headers]
17
+ .filter((header) => header.trim() !== '')
18
+ .sort((a, b) => b.length - a.length)
19
+ .map((header) => {
20
+ const h = `(?<!\\w)${escapeRegExp(header.trim())}(?!\\w)`;
21
+ return `\\b(?:to|for)\\s+(?:the\\s+)?${h}(?:\\s+question\\b)?|(?:\\bthe\\s+)?${h}\\s+question\\b`;
22
+ });
23
+ const numbered = `(?:\\b(?:to|for)\\s+)?(?:\\bthe\\s+)?\\b(?:question\\s+${ORDINAL}|${ORDINAL}\\s+question)\\b`;
24
+ return new RegExp([...named, numbered].join('|'), 'gi');
25
+ }
26
+ export function wordId(index) {
27
+ return `W${String(index + 1).padStart(2, '0')}`;
28
+ }
29
+ export function splitWords(sentence) {
30
+ return [...sentence.matchAll(/\S+/g)].map((match, i) => ({
31
+ id: wordId(i),
32
+ text: match[0],
33
+ start: match.index,
34
+ end: match.index + match[0].length,
35
+ }));
36
+ }
37
+ /** The indices of the words inside a question reference: they point at a question, they never answer it. */
38
+ export function questionReferenceWords(sentence, words, headers) {
39
+ const found = new Set();
40
+ for (const anchor of sentence.matchAll(questionAnchors(headers))) {
41
+ const from = anchor.index;
42
+ const to = anchor.index + anchor[0].length;
43
+ words.forEach((word, i) => {
44
+ if (word.start < to && word.end > from)
45
+ found.add(i);
46
+ });
47
+ }
48
+ return found;
49
+ }
50
+ export function namesQuestion(sentence, headers) {
51
+ return questionAnchors(headers).test(sentence);
52
+ }
53
+ /** The words `first`..`last` exactly as said, without a trailing sentence mark or comma. */
54
+ export function copyRange(sentence, words, first, last) {
55
+ const from = words[first];
56
+ const to = words[last];
57
+ if (from === undefined || to === undefined)
58
+ return '';
59
+ return sentence.slice(from.start, to.end).replace(/[\s.!?,]+$/, '');
60
+ }
61
+ //# sourceMappingURL=sentence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentence.js","sourceRoot":"","sources":["../../src/voice/sentence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The confidence cut-offs `decideVoice` applies to engine answers. They are tuned against one pinned
3
+ * Jev version (spec 2026-10-21-voice-mode, "How it decides"); no other file holds a threshold.
4
+ */
5
+ /**
6
+ * `is_command` noul below this reads as chatter, but only when the action is `none` or below
7
+ * `ACTION_MIN`; it never vetoes a confident action. Live jev-1.13.0 scored real commands at 0.33–0.47
8
+ * ("open second failed": 0.33 with `open` at 0.98), while chatter had no action above 0.40.
9
+ */
10
+ export declare const IS_COMMAND_MIN = 0.5;
11
+ /** The `action` choice below this confidence is not acted on. */
12
+ export declare const ACTION_MIN = 0.55;
13
+ /** A confirm or cancel needs this much confidence, since it sends or drops a proposal. */
14
+ export declare const CONFIRM_MIN = 0.7;
15
+ /** The `status` choice below this confidence comes with alternatives. */
16
+ export declare const OPEN_STATUS_SURE = 0.6;
17
+ /** A card option is taken when its probability is at least this; otherwise the words go to Other. */
18
+ export declare const ANSWER_OPTION_MIN = 0.5;
19
+ /** A multi-select option is taken when its noul is at least this. */
20
+ export declare const OPTION_SELECTED_MIN = 0.5;
21
+ /**
22
+ * A reply target (an answer to one card question, or the message) is taken when the mean confidence
23
+ * of its words is at least this. Not the minimum: live jev-1.13.0 gave correct boundary words
24
+ * 0.04–0.5 (spike for hearsay-tools/cezarion#1463). Set just below the lowest mean of a correct
25
+ * target in three live runs of the replay set (`scripts/voice-replay.ts`): 0.36, for "tell it that
26
+ * that file is fine".
27
+ */
28
+ export declare const EXTRACT_MIN = 0.3;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The confidence cut-offs `decideVoice` applies to engine answers. They are tuned against one pinned
3
+ * Jev version (spec 2026-10-21-voice-mode, "How it decides"); no other file holds a threshold.
4
+ */
5
+ /**
6
+ * `is_command` noul below this reads as chatter, but only when the action is `none` or below
7
+ * `ACTION_MIN`; it never vetoes a confident action. Live jev-1.13.0 scored real commands at 0.33–0.47
8
+ * ("open second failed": 0.33 with `open` at 0.98), while chatter had no action above 0.40.
9
+ */
10
+ export const IS_COMMAND_MIN = 0.5;
11
+ /** The `action` choice below this confidence is not acted on. */
12
+ export const ACTION_MIN = 0.55;
13
+ /** A confirm or cancel needs this much confidence, since it sends or drops a proposal. */
14
+ export const CONFIRM_MIN = 0.7;
15
+ /** The `status` choice below this confidence comes with alternatives. */
16
+ export const OPEN_STATUS_SURE = 0.6;
17
+ /** A card option is taken when its probability is at least this; otherwise the words go to Other. */
18
+ export const ANSWER_OPTION_MIN = 0.5;
19
+ /** A multi-select option is taken when its noul is at least this. */
20
+ export const OPTION_SELECTED_MIN = 0.5;
21
+ /**
22
+ * A reply target (an answer to one card question, or the message) is taken when the mean confidence
23
+ * of its words is at least this. Not the minimum: live jev-1.13.0 gave correct boundary words
24
+ * 0.04–0.5 (spike for hearsay-tools/cezarion#1463). Set just below the lowest mean of a correct
25
+ * target in three live runs of the replay set (`scripts/voice-replay.ts`): 0.36, for "tell it that
26
+ * that file is fine".
27
+ */
28
+ export const EXTRACT_MIN = 0.3;
29
+ //# sourceMappingURL=thresholds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thresholds.js","sourceRoot":"","sources":["../../src/voice/thresholds.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,0FAA0F;AAC1F,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,yEAAyE;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,qEAAqE;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type DiscoverOptions } from '../task-cli/discovery.ts';
2
+ import { type Cockpit, type HttpResult } from '../task-cli/http.ts';
3
+ /**
4
+ * `cez webhook` (hearsay-tools/cezarion#1576): list the project webhooks the owner exposed to
5
+ * agents, and send one report through one of them. Inside a task it reaches the cockpit through
6
+ * `CEZ_COCKPIT_URL` and `CEZ_PROJECT_ID`, and names the reporting task with `CEZ_TASK_ID`.
7
+ */
8
+ export interface WebhookIo {
9
+ stdout(line: string): void;
10
+ readFile?: (path: string) => Promise<string>;
11
+ discover?: (options: DiscoverOptions) => Promise<Cockpit>;
12
+ /** The transport; tests point it at a test app. */
13
+ http?: (cockpit: Cockpit, path: string, init?: {
14
+ method?: string;
15
+ body?: unknown;
16
+ }) => Promise<HttpResult>;
17
+ }
18
+ export declare function runWebhookCommand(argv: string[], env?: NodeJS.ProcessEnv, io?: WebhookIo): Promise<number>;
@@ -0,0 +1,145 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { resolve } from 'node:path';
3
+ import { parseArgs } from 'node:util';
4
+ import { agentWebhooksResponseSchema, sendAgentReportResponseSchema, } from '../contract/index.js';
5
+ import { AGENT_REPORT_MESSAGE_MAX_LENGTH } from '../contract/index.js';
6
+ import { EXIT } from '../task-cli/cli.js';
7
+ import { discoverCockpit } from '../task-cli/discovery.js';
8
+ import { invalidResponse, refuse, request, TaskCliError } from '../task-cli/http.js';
9
+ const USAGE = `cez webhook — send reports to the project webhooks the owner exposed to agents.
10
+ One JSON object per invocation; exit 0 ok, 1 not delivered, 2 refused or no cockpit, 64 usage.
11
+
12
+ list the exposed webhooks: id, name and what each is for
13
+ send <name|id> (--message <text> | --message-file <path>) [--title <text>] [--data '<json object>']
14
+ POST one report (Markdown message) to that webhook; the
15
+ report names this task when CEZ_TASK_ID is set
16
+
17
+ Address: CEZ_COCKPIT_URL + CEZ_PROJECT_ID (set inside a task). --url <origin> or --repo <dir> look
18
+ for a cockpit instead.`;
19
+ const NO_COCKPIT = 'no cockpit address — this command works inside a task run by a cockpit';
20
+ const ADDRESS_FLAGS = { url: { type: 'string' }, repo: { type: 'string' } };
21
+ const SEND_FLAGS = {
22
+ message: { type: 'string' },
23
+ 'message-file': { type: 'string' },
24
+ title: { type: 'string' },
25
+ data: { type: 'string' },
26
+ };
27
+ function usageError(error) {
28
+ throw new TaskCliError(EXIT.usage, { code: 'invalid_input', error });
29
+ }
30
+ function parse(argv) {
31
+ const [name, ...rest] = argv;
32
+ if (name !== 'list' && name !== 'send')
33
+ usageError(name === undefined ? 'missing command (list, send)' : `unknown command "${name}"`);
34
+ let values;
35
+ let positionals;
36
+ try {
37
+ ({ values, positionals } = parseArgs({
38
+ args: rest,
39
+ allowPositionals: true,
40
+ strict: true,
41
+ options: name === 'send' ? { ...ADDRESS_FLAGS, ...SEND_FLAGS } : ADDRESS_FLAGS,
42
+ }));
43
+ }
44
+ catch (error) {
45
+ usageError(error instanceof Error ? error.message : String(error));
46
+ }
47
+ const expected = name === 'send' ? 1 : 0;
48
+ if (positionals.length !== expected)
49
+ usageError(name === 'send' ? 'send takes one webhook name or id' : 'list takes no positional arguments');
50
+ return { command: name, webhook: positionals[0] ?? '', values };
51
+ }
52
+ async function reportBody(values, env, io) {
53
+ if ((values.message === undefined) === (values['message-file'] === undefined))
54
+ usageError('give the report as --message OR --message-file');
55
+ let message = values.message;
56
+ if (values['message-file'] !== undefined) {
57
+ try {
58
+ message = await (io.readFile ?? ((path) => readFile(path, 'utf8')))(values['message-file']);
59
+ }
60
+ catch (error) {
61
+ usageError(`cannot read ${values['message-file']}: ${error instanceof Error ? error.message : String(error)}`);
62
+ }
63
+ }
64
+ if (!message?.trim())
65
+ usageError('the message is empty');
66
+ if (message.length > AGENT_REPORT_MESSAGE_MAX_LENGTH)
67
+ usageError(`the message is longer than ${AGENT_REPORT_MESSAGE_MAX_LENGTH} characters`);
68
+ let data;
69
+ if (values.data !== undefined) {
70
+ try {
71
+ data = JSON.parse(values.data);
72
+ }
73
+ catch {
74
+ usageError('--data must be a JSON object');
75
+ }
76
+ if (data === null || typeof data !== 'object' || Array.isArray(data))
77
+ usageError('--data must be a JSON object');
78
+ }
79
+ const runId = env.CEZ_TASK_ID?.trim();
80
+ return {
81
+ message,
82
+ ...(values.title?.trim() ? { title: values.title.trim() } : {}),
83
+ ...(data ? { data } : {}),
84
+ ...(runId ? { runId } : {}),
85
+ };
86
+ }
87
+ /** The env address first; discovery only when the caller named a cockpit or a checkout. */
88
+ async function resolveCockpit(env, values, io) {
89
+ const address = env.CEZ_COCKPIT_URL?.trim();
90
+ const projectId = env.CEZ_PROJECT_ID?.trim();
91
+ if (address && projectId) {
92
+ let origin;
93
+ try {
94
+ origin = new URL(address).origin;
95
+ }
96
+ catch {
97
+ throw new TaskCliError(EXIT.refused, { code: 'no-cockpit', error: `CEZ_COCKPIT_URL is not a URL: ${address}` });
98
+ }
99
+ return { origin, projectId, api: `${origin}/api/v1/p/${encodeURIComponent(projectId)}` };
100
+ }
101
+ const url = values.url ?? (env.CEZ_URL?.trim() || undefined);
102
+ if (url === undefined && values.repo === undefined)
103
+ throw new TaskCliError(EXIT.refused, { code: 'no-cockpit', error: NO_COCKPIT });
104
+ return (io.discover ?? discoverCockpit)({ url, repoDir: resolve(values.repo ?? process.cwd()) });
105
+ }
106
+ export async function runWebhookCommand(argv, env = process.env, io = { stdout: (line) => console.log(line) }) {
107
+ const print = (value) => io.stdout(JSON.stringify(value));
108
+ try {
109
+ if (argv.length === 0 || argv[0] === 'help' || argv.includes('--help') || argv.includes('-h')) {
110
+ io.stdout(USAGE);
111
+ return argv.length === 0 ? EXIT.usage : EXIT.ok;
112
+ }
113
+ // Input is judged before any cockpit is looked for: a usage error is 64 with or without one.
114
+ const { command, webhook, values } = parse(argv);
115
+ const body = command === 'send' ? await reportBody(values, env, io) : undefined;
116
+ const cockpit = await resolveCockpit(env, values, io);
117
+ const http = io.http ?? request;
118
+ if (command === 'list') {
119
+ const result = await http(cockpit, '/agent-webhooks');
120
+ if (result.status !== 200)
121
+ refuse(result);
122
+ const parsed = agentWebhooksResponseSchema.safeParse(result.data);
123
+ if (!parsed.success)
124
+ invalidResponse('webhook list');
125
+ print(parsed.data);
126
+ return EXIT.ok;
127
+ }
128
+ const result = await http(cockpit, `/agent-webhooks/${encodeURIComponent(webhook)}`, { method: 'POST', body });
129
+ if (result.status !== 200)
130
+ refuse(result);
131
+ const parsed = sendAgentReportResponseSchema.safeParse(result.data);
132
+ if (!parsed.success)
133
+ invalidResponse('webhook send');
134
+ print(parsed.data);
135
+ return parsed.data.ok ? EXIT.ok : EXIT.failed;
136
+ }
137
+ catch (error) {
138
+ if (error instanceof TaskCliError) {
139
+ print(error.body);
140
+ return error.exitCode;
141
+ }
142
+ throw error;
143
+ }
144
+ }
145
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/webhooks/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AgentWebhook } from '../contract/index.js';
2
+ /** The absolute `cez webhook` command, so an agent needs no `cez` on its PATH. */
3
+ export declare function webhookCliCommand(): string;
4
+ /** One line per webhook: the owner's description is what tells the agent when to use it. */
5
+ export declare function agentWebhooksPrompt(command: string, webhooks: readonly AgentWebhook[]): string | undefined;
@@ -0,0 +1,26 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ /**
3
+ * The "Project webhooks" part of an agent's system prompt (hearsay-tools/cezarion#1576): the
4
+ * webhooks the owner exposed to agents in this project, by name and description, and the command
5
+ * that sends a report to one. No exposed webhook: no part, so the zero-config prompt is unchanged.
6
+ */
7
+ const quote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
8
+ /** The absolute `cez webhook` command, so an agent needs no `cez` on its PATH. */
9
+ export function webhookCliCommand() {
10
+ const source = import.meta.url.endsWith('.ts');
11
+ const entry = fileURLToPath(new URL(source ? '../index.ts' : '../index.js', import.meta.url));
12
+ return [process.execPath, ...(source ? ['--import', import.meta.resolve('tsx')] : []), entry].map(quote).join(' ') + ' webhook';
13
+ }
14
+ /** One line per webhook: the owner's description is what tells the agent when to use it. */
15
+ export function agentWebhooksPrompt(command, webhooks) {
16
+ if (webhooks.length === 0)
17
+ return undefined;
18
+ const lines = webhooks.map((webhook) => `- "${webhook.name}"${webhook.description ? `: ${webhook.description.replace(/\s+/g, ' ').trim()}` : ''}`);
19
+ return [
20
+ '## Project webhooks',
21
+ 'The project owner lets you send reports to these webhooks. Read each description to decide when one applies, and use it instead of the channel it replaces (for example, a friction report goes to its webhook, not to a new GitHub issue):',
22
+ ...lines,
23
+ `Send one report with ${command} send '<name>' --message-file <report.md> [--title '<one line>'] [--data '<json object>'], or --message '<text>' for a short one. The message is Markdown; the report names this task. The command prints JSON: "ok": false means it was not delivered, and "error" says why. ${command} list prints the current list, which the owner can change while you work. Never put credentials or unrelated private data in a report.`,
24
+ ].join('\n');
25
+ }
26
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/webhooks/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC;;;;GAIG;AAEH,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAEvE,kFAAkF;AAClF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAClI,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,QAAiC;IACpF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnJ,OAAO;QACL,qBAAqB;QACrB,6OAA6O;QAC7O,GAAG,KAAK;QACR,wBAAwB,OAAO,iRAAiR,OAAO,wIAAwI;KAChc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,167 @@
1
+ import type { AgentSession, InputDelivery } from '../core/agent-runner.ts';
2
+ import type { Skill } from '../skills.ts';
3
+ import type { DelegationExecutionSettings } from './run.ts';
4
+ /**
5
+ * The in-memory state of a run this manager is executing, and the one place it is built
6
+ * (hearsay-tools/cezarion#1806). `RunManager` registers every instance through `activate`.
7
+ */
8
+ export interface ActiveRun {
9
+ /** Last cumulative Claude report per provider session during this process. */
10
+ reportedClaudeCost?: Map<string, number>;
11
+ delegationSettings?: DelegationExecutionSettings | undefined;
12
+ revokeDelegation?: (() => void) | undefined;
13
+ revokeCiTools?: (() => void) | undefined;
14
+ /** hearsay-tools/cezarion#1234: the last session started without cezar tools, so its prompt
15
+ * taught the lifecycle markers; kept after the session's tools are revoked. */
16
+ toolless?: boolean;
17
+ ciGeneration?: string;
18
+ ciTurnId?: string;
19
+ waitWakeTurn?: AgentSession | undefined;
20
+ cancelled: boolean;
21
+ /** Explicit human Finish survives disposal; shutdown-only result callbacks do not settle. */
22
+ finishRequested?: boolean;
23
+ interrupt: () => void;
24
+ /** Where this run's steps execute: the task worktree, or the repo root. */
25
+ cwd: string;
26
+ /** Live claude session of the currently running agent step, if any. */
27
+ session?: AgentSession | undefined;
28
+ pendingHumanAsk: boolean;
29
+ /** Native grants belong only to this live session generation. */
30
+ pendingPermissions?: Set<string>;
31
+ agentInputError?: string;
32
+ agentInputFlight?: {
33
+ session: AgentSession;
34
+ inputIds: readonly string[];
35
+ settled?: Promise<void>;
36
+ /** This batch carries timer results: it holds one unit of the automatic-wake budget, which
37
+ * every budget check counts, and charges it to the record on its acknowledgement. */
38
+ wakeReserved?: boolean;
39
+ /** This batch is an admitted wake (hearsay-tools/cezarion#1235): its acknowledgement spends
40
+ * the admission, a wake of messages alone included. */
41
+ admittedWake?: boolean;
42
+ } | undefined;
43
+ /** The current session's declared input delivery (#505). */
44
+ inputDelivery?: InputDelivery;
45
+ /** Accepted by this session's harness, not yet reported read (observable backends only).
46
+ * The harness still owes a turn for them, so they count as pending work (#505). */
47
+ unreadInputIds?: Set<string>;
48
+ /** Read before the acceptance checkpoint landed; applied when it does. */
49
+ consumedBeforeAck?: Set<string>;
50
+ /** Conversation input carried by a human answer's own write; read at that turn's end. */
51
+ bundledInputIds?: string[] | undefined;
52
+ /** Reported unread while their own submission was still unacknowledged. */
53
+ retiredInFlight?: Set<string>;
54
+ /** Liveness bound for unread input (#505): timer, and IDs already resubmitted once. */
55
+ unreadInputTimer?: NodeJS.Timeout | undefined;
56
+ /** Liveness bound for a no-wait nudge that was acknowledged without a turn (#544,
57
+ * hearsay-tools/cezarion#1234). */
58
+ noWaitNudgeReplyTimer?: NodeJS.Timeout | undefined;
59
+ /** Parent-level text/item/tool arrived for this nudge, possibly before the timer armed. */
60
+ noWaitNudgeSawContent?: boolean | undefined;
61
+ /** The reply bound expired on this session: a late reply from it resumes the run. */
62
+ noWaitNudgeParked?: AgentSession | undefined;
63
+ unreadRetried?: Set<string>;
64
+ /** #486: re-settle a boundary that deferred only because holdsHumanInput() was true. */
65
+ heldHumanInputTimer?: NodeJS.Timeout | undefined;
66
+ heldHumanInputSince?: number | undefined;
67
+ heldHumanInputExpired?: boolean | undefined;
68
+ /** Only this older ask is being answered by the current continuation's opening turn. */
69
+ openingAnswerAskSeq?: number | undefined;
70
+ openingAgentInputId?: string | undefined;
71
+ agentSessionError?: string | undefined;
72
+ doneAtBoundary?: AgentSession | undefined;
73
+ /** `cezar_done` accepted in this session since its last turn end (hearsay-tools/cezarion#1234). */
74
+ doneRequested?: {
75
+ session: AgentSession;
76
+ summary?: string;
77
+ } | undefined;
78
+ /** The session's done completes a workflow step that is not the last, and this step runs next
79
+ * (hearsay-tools/cezarion#1620). Undefined: the done finishes the task. */
80
+ nextStep?: {
81
+ session: AgentSession;
82
+ label: string;
83
+ } | undefined;
84
+ /** The step an accepted done closed. A workflow step that is not the last advances only on it. */
85
+ completedStepId?: string | undefined;
86
+ /** What declared the done `doneAtBoundary` closes on: the closing event names it. */
87
+ doneClose?: {
88
+ via: 'cezar_done' | 'done-line';
89
+ summary?: string;
90
+ } | undefined;
91
+ parkAfterAck?: {
92
+ session: AgentSession;
93
+ monitoring: boolean;
94
+ humanGate?: boolean;
95
+ nudgedLastTurn?: boolean;
96
+ scheduleWakeup?: number | null | undefined;
97
+ } | undefined;
98
+ /** Last completed boundary belongs to exactly this still-open session. */
99
+ atTurnBoundary?: AgentSession | undefined;
100
+ currentStepId?: string | undefined;
101
+ idleTimer?: NodeJS.Timeout | undefined;
102
+ /** The inactivity timer closed the wire; resource teardown must not imply task success. */
103
+ idleClosed?: boolean;
104
+ /** The monitoring-timer cap note was written for this session. */
105
+ monitoringCapNoted?: boolean | undefined;
106
+ autosaveTimer?: NodeJS.Timeout | undefined;
107
+ /** Has a session EVER opened on this run (#472)? `session` alone cannot answer
108
+ * it — teardown sets it back to `undefined`, so a closed session and one that
109
+ * never opened look identical. This distinguishes "still starting up, buffer
110
+ * the message" from "genuinely closed, 409". */
111
+ sessionEverOpened?: boolean;
112
+ /** Autonomous mode (#autonomous): nudge eligible turn ends until done or the cap.
113
+ * Pending input, native asks and lifecycle waits retain priority. */
114
+ autonomous?: boolean;
115
+ /** An eligible boundary nudge refused until the current transport becomes ready.
116
+ * Retains its slot, bounded by the existing idle timer; never represents a sent input. */
117
+ autonomousNudgePending?: AgentSession | undefined;
118
+ /** Session that received the no-wait nudge (hearsay-tools/cezarion#1234): its next no-wait
119
+ * turn end opens a human wait instead of nudging again. */
120
+ noWaitNudged?: AgentSession | undefined;
121
+ /** Session that received a refusal nudge for a blocked done (hearsay-tools/cezarion#1301); the
122
+ * next turn end on it reads and clears it. */
123
+ completionNudged?: AgentSession | undefined;
124
+ /** Session whose turn that just ended answered a refusal nudge (hearsay-tools/cezarion#1301): a
125
+ * blocked done at this turn end takes the second step. Every turn end sets or clears it. */
126
+ completionNudgeAnswered?: AgentSession | undefined;
127
+ /** Registry snapshot used to expand `/skill` follow-ups before a backend can
128
+ * mistake them for its own slash commands (#676). Only `RunManager.loadRunSkills` writes it,
129
+ * and only `RunManager.enabledSkills` reads it. */
130
+ skills?: Skill[];
131
+ /** The install a live `/name` started after its message went out (#1408); tests await it. */
132
+ liveSkillProvisioning?: Promise<void>;
133
+ /** Release for exclusive execution in the user's repository working tree.
134
+ * Worktree-backed runs never need it; root runs ordinarily do unless the
135
+ * explicit unsafe bypass is active. */
136
+ releaseRepoRoot?: (() => void) | undefined;
137
+ /** Durable directional-usage accounting state for the current runner
138
+ * invocation. Provider-local turn ids are unique only within this epoch. */
139
+ usageInvocation?: {
140
+ stepId: string;
141
+ epoch: number;
142
+ observed: boolean;
143
+ startedTurns: Set<string>;
144
+ recordedTurns: Set<string>;
145
+ };
146
+ }
147
+ /** What differs between the ways a run starts executing. Every other `ActiveRun` field starts the
148
+ * same on all of them, so a field with no value here has one in `createActiveRun`. */
149
+ export interface ActiveRunInit {
150
+ /** Where this run's steps execute: the task worktree, or the repo root. */
151
+ cwd: string;
152
+ pendingHumanAsk: boolean;
153
+ /** The run's durable mode: `input.autonomous` for a fresh run, the record's for a Continue. */
154
+ autonomous: boolean;
155
+ }
156
+ /**
157
+ * The ONE place an `ActiveRun` is built (hearsay-tools/cezarion#1806). `execute` (a fresh run) and
158
+ * `runContinuation` (Continue and restart recovery) both call it, then register the result through
159
+ * `RunManager.activate`. A field added to `ActiveRun` as required fails to compile here until this
160
+ * sets it, and one that differs by entry path becomes a required `ActiveRunInit` field, which
161
+ * fails to compile at both callers. open-mercato/cezar#811 shipped a field set in one of two
162
+ * literals; a second literal is refused by the `active-run-literal` ast-grep rule.
163
+ *
164
+ * The skill registry is not built here: it needs I/O after the run is registered, so
165
+ * `RunManager.loadRunSkills` loads it, from the same two callers.
166
+ */
167
+ export declare function createActiveRun(init: ActiveRunInit): ActiveRun;