commandmate 0.23.0 → 0.25.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 (688) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +415 -406
  3. package/.next/app-path-routes-manifest.json +27 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +4 -4
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update-check/route.js +1 -1
  11. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  13. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  14. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  16. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/messages/route.js +1 -1
  19. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  20. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/assistant/session/route.js +1 -1
  22. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/assistant/start/route.js +1 -1
  25. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  26. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/assistant/terminal/route.js +2 -2
  28. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  29. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/assistant/tools/route.js +1 -1
  31. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  32. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/daily-summary/route.js +1 -1
  37. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  38. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  40. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  41. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  52. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/push/escalation/route.js +1 -0
  59. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -0
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  62. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/push/vapid/route.js +1 -1
  64. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  65. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  68. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  70. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  72. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/clone/route.js +1 -1
  75. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/restore/route.js +1 -1
  79. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/route.js +1 -1
  82. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/scan/route.js +1 -1
  85. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/sync/route.js +1 -1
  88. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  100. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/todos/route.js +1 -1
  104. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  106. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/verification/runs/route.js +1 -1
  108. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  111. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  114. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  119. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  122. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +5 -5
  168. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  177. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  183. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  185. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  191. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  217. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  225. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/route.js +1 -1
  244. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/chat/page.js +2 -2
  247. package/.next/server/app/chat/page.js.nft.json +1 -1
  248. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/login/page.js +2 -2
  250. package/.next/server/app/login/page.js.nft.json +1 -1
  251. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/more/page.js +2 -2
  254. package/.next/server/app/more/page.js.nft.json +1 -1
  255. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/page.js +1 -1
  258. package/.next/server/app/page.js.nft.json +1 -1
  259. package/.next/server/app/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/proxy/[...path]/route.js +1 -1
  261. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/repositories/page.js +2 -2
  263. package/.next/server/app/repositories/page.js.nft.json +1 -1
  264. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  265. package/.next/server/app/review/page.js +1 -1
  266. package/.next/server/app/review/page.js.nft.json +1 -1
  267. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  268. package/.next/server/app/sessions/page.js +1 -1
  269. package/.next/server/app/sessions/page.js.nft.json +1 -1
  270. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/skills/[skillId]/page.js +2 -2
  272. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  273. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/skills/installed/page.js +2 -2
  275. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  276. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  277. package/.next/server/app/skills/page.js +2 -2
  278. package/.next/server/app/skills/page.js.nft.json +1 -1
  279. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  280. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  281. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  282. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/worktrees/[id]/page.js +7 -7
  284. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  285. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  287. package/.next/server/app-paths-manifest.json +27 -26
  288. package/.next/server/chunks/1029.js +1 -1
  289. package/.next/server/chunks/1296.js +1 -1
  290. package/.next/server/chunks/1366.js +1 -1
  291. package/.next/server/chunks/1601.js +7 -0
  292. package/.next/server/chunks/1825.js +1 -1
  293. package/.next/server/chunks/2119.js +1 -1
  294. package/.next/server/chunks/2404.js +1 -1
  295. package/.next/server/chunks/2445.js +1 -1
  296. package/.next/server/chunks/2546.js +1 -1
  297. package/.next/server/chunks/3346.js +1 -1
  298. package/.next/server/chunks/3417.js +1 -1
  299. package/.next/server/chunks/3480.js +1 -1
  300. package/.next/server/chunks/3543.js +1 -1
  301. package/.next/server/chunks/3945.js +1 -1
  302. package/.next/server/chunks/4393.js +1 -0
  303. package/.next/server/chunks/4444.js +1 -1
  304. package/.next/server/chunks/4455.js +1 -0
  305. package/.next/server/chunks/5164.js +1 -0
  306. package/.next/server/chunks/5571.js +1 -1
  307. package/.next/server/chunks/5959.js +5 -5
  308. package/.next/server/chunks/5998.js +1 -1
  309. package/.next/server/chunks/6130.js +1 -1
  310. package/.next/server/chunks/6159.js +1 -1
  311. package/.next/server/chunks/6274.js +2 -2
  312. package/.next/server/chunks/6285.js +1 -1
  313. package/.next/server/chunks/6401.js +1 -1
  314. package/.next/server/chunks/7458.js +5 -5
  315. package/.next/server/chunks/848.js +1 -1
  316. package/.next/server/chunks/8536.js +1 -1
  317. package/.next/server/chunks/8730.js +1 -0
  318. package/.next/server/chunks/880.js +21 -0
  319. package/.next/server/chunks/8807.js +134 -129
  320. package/.next/server/chunks/9058.js +1 -1
  321. package/.next/server/chunks/9123.js +8 -8
  322. package/.next/server/chunks/9328.js +1 -1
  323. package/.next/server/chunks/9358.js +1 -1
  324. package/.next/server/chunks/9373.js +3 -3
  325. package/.next/server/chunks/9687.js +1 -1
  326. package/.next/server/middleware-build-manifest.js +1 -1
  327. package/.next/server/middleware-manifest.json +5 -5
  328. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  329. package/.next/server/pages/500.html +1 -1
  330. package/.next/server/pages-manifest.json +1 -1
  331. package/.next/server/server-reference-manifest.json +1 -1
  332. package/.next/static/chunks/2053-dfac2d49227cc942.js +1 -0
  333. package/.next/static/chunks/3898-ef488bfa804507d9.js +1 -0
  334. package/.next/static/chunks/4322-dfd5a7119b5ba4fc.js +1 -0
  335. package/.next/static/chunks/{4974-eaf66770bfa9dea0.js → 4974-35592ec312322124.js} +1 -1
  336. package/.next/static/chunks/5229-35f9acab97a553c5.js +1 -0
  337. package/.next/static/chunks/6381-51f9c4a128aadc0b.js +1 -0
  338. package/.next/static/chunks/7229.7f0f5a7032b612b4.js +1 -0
  339. package/.next/static/chunks/{9599-d29d2f8eeaf7c249.js → 8649-f551b0010dba4986.js} +1 -1
  340. package/.next/static/chunks/9263.f2034ec525abcf72.js +1 -0
  341. package/.next/static/chunks/app/api/app/update/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  342. package/.next/static/chunks/app/api/app/update-check/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  343. package/.next/static/chunks/app/api/assistant/conversation/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  344. package/.next/static/chunks/app/api/assistant/current-output/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  345. package/.next/static/chunks/app/api/assistant/messages/route-fae89f8d4cc3ff97.js +1 -0
  346. package/.next/static/chunks/app/api/assistant/session/route-fae89f8d4cc3ff97.js +1 -0
  347. package/.next/static/chunks/app/api/assistant/start/route-fae89f8d4cc3ff97.js +1 -0
  348. package/.next/static/chunks/app/api/assistant/terminal/route-fae89f8d4cc3ff97.js +1 -0
  349. package/.next/static/chunks/app/api/assistant/tools/route-fae89f8d4cc3ff97.js +1 -0
  350. package/.next/static/chunks/app/api/auth/login/route-fae89f8d4cc3ff97.js +1 -0
  351. package/.next/static/chunks/app/api/auth/logout/route-fae89f8d4cc3ff97.js +1 -0
  352. package/.next/static/chunks/app/api/auth/status/route-fae89f8d4cc3ff97.js +1 -0
  353. package/.next/static/chunks/app/api/daily-summary/route-fae89f8d4cc3ff97.js +1 -0
  354. package/.next/static/chunks/app/api/daily-summary/status/route-fae89f8d4cc3ff97.js +1 -0
  355. package/.next/static/chunks/app/api/external-apps/[id]/health/route-fae89f8d4cc3ff97.js +1 -0
  356. package/.next/static/chunks/app/api/external-apps/[id]/route-fae89f8d4cc3ff97.js +1 -0
  357. package/.next/static/chunks/app/api/external-apps/route-fae89f8d4cc3ff97.js +1 -0
  358. package/.next/static/chunks/app/api/fs/browse/route-fae89f8d4cc3ff97.js +1 -0
  359. package/.next/static/chunks/app/api/fs/recent-paths/route-fae89f8d4cc3ff97.js +1 -0
  360. package/.next/static/chunks/app/api/hooks/agent-event/route-fae89f8d4cc3ff97.js +1 -0
  361. package/.next/static/chunks/app/api/hooks/claude-done/route-fae89f8d4cc3ff97.js +1 -0
  362. package/.next/static/chunks/app/api/hooks/permission-request/route-fae89f8d4cc3ff97.js +1 -0
  363. package/.next/static/chunks/app/api/metrics/vibe/route-fae89f8d4cc3ff97.js +1 -0
  364. package/.next/static/chunks/app/api/ollama/models/route-fae89f8d4cc3ff97.js +1 -0
  365. package/.next/static/chunks/app/api/push/escalation/route-fae89f8d4cc3ff97.js +1 -0
  366. package/.next/static/chunks/app/api/push/subscriptions/route-fae89f8d4cc3ff97.js +1 -0
  367. package/.next/static/chunks/app/api/push/vapid/route-fae89f8d4cc3ff97.js +1 -0
  368. package/.next/static/chunks/app/api/repositories/[id]/route-fae89f8d4cc3ff97.js +1 -0
  369. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +1 -0
  370. package/.next/static/chunks/app/api/repositories/[id]/todos/route-fae89f8d4cc3ff97.js +1 -0
  371. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-fae89f8d4cc3ff97.js +1 -0
  372. package/.next/static/chunks/app/api/repositories/clone/route-fae89f8d4cc3ff97.js +1 -0
  373. package/.next/static/chunks/app/api/repositories/excluded/route-fae89f8d4cc3ff97.js +1 -0
  374. package/.next/static/chunks/app/api/repositories/restore/route-fae89f8d4cc3ff97.js +1 -0
  375. package/.next/static/chunks/app/api/repositories/route-fae89f8d4cc3ff97.js +1 -0
  376. package/.next/static/chunks/app/api/repositories/scan/route-fae89f8d4cc3ff97.js +1 -0
  377. package/.next/static/chunks/app/api/repositories/sync/route-fae89f8d4cc3ff97.js +1 -0
  378. package/.next/static/chunks/app/api/repositories/validate-path/route-fae89f8d4cc3ff97.js +1 -0
  379. package/.next/static/chunks/app/api/sidebar/group-order/route-fae89f8d4cc3ff97.js +1 -0
  380. package/.next/static/chunks/app/api/skills/[id]/route-fae89f8d4cc3ff97.js +1 -0
  381. package/.next/static/chunks/app/api/skills/installations/route-fae89f8d4cc3ff97.js +1 -0
  382. package/.next/static/chunks/app/api/skills/operations/route-fae89f8d4cc3ff97.js +1 -0
  383. package/.next/static/chunks/app/api/skills/reindex/route-fae89f8d4cc3ff97.js +1 -0
  384. package/.next/static/chunks/app/api/skills/route-fae89f8d4cc3ff97.js +1 -0
  385. package/.next/static/chunks/app/api/slash-commands/route-fae89f8d4cc3ff97.js +1 -0
  386. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-fae89f8d4cc3ff97.js +1 -0
  387. package/.next/static/chunks/app/api/tasks/[taskId]/route-fae89f8d4cc3ff97.js +1 -0
  388. package/.next/static/chunks/app/api/templates/[id]/route-fae89f8d4cc3ff97.js +1 -0
  389. package/.next/static/chunks/app/api/templates/route-fae89f8d4cc3ff97.js +1 -0
  390. package/.next/static/chunks/app/api/todos/route-fae89f8d4cc3ff97.js +1 -0
  391. package/.next/static/chunks/app/api/verification/runs/[runId]/route-fae89f8d4cc3ff97.js +1 -0
  392. package/.next/static/chunks/app/api/verification/runs/route-fae89f8d4cc3ff97.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-fae89f8d4cc3ff97.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-fae89f8d4cc3ff97.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-fae89f8d4cc3ff97.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-fae89f8d4cc3ff97.js +1 -0
  397. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-fae89f8d4cc3ff97.js +1 -0
  398. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-fae89f8d4cc3ff97.js +1 -0
  399. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-fae89f8d4cc3ff97.js +1 -0
  400. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  401. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-fae89f8d4cc3ff97.js +1 -0
  402. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-fae89f8d4cc3ff97.js +1 -0
  403. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-fae89f8d4cc3ff97.js +1 -0
  404. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-fae89f8d4cc3ff97.js +1 -0
  405. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-fae89f8d4cc3ff97.js +1 -0
  406. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-fae89f8d4cc3ff97.js +1 -0
  407. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-fae89f8d4cc3ff97.js +1 -0
  408. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-fae89f8d4cc3ff97.js +1 -0
  409. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-fae89f8d4cc3ff97.js +1 -0
  410. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-fae89f8d4cc3ff97.js +1 -0
  411. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-fae89f8d4cc3ff97.js +1 -0
  412. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-fae89f8d4cc3ff97.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-fae89f8d4cc3ff97.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-fae89f8d4cc3ff97.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-fae89f8d4cc3ff97.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-fae89f8d4cc3ff97.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-fae89f8d4cc3ff97.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-fae89f8d4cc3ff97.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-fae89f8d4cc3ff97.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-fae89f8d4cc3ff97.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-fae89f8d4cc3ff97.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-fae89f8d4cc3ff97.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-fae89f8d4cc3ff97.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-fae89f8d4cc3ff97.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-fae89f8d4cc3ff97.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-fae89f8d4cc3ff97.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-fae89f8d4cc3ff97.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-fae89f8d4cc3ff97.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-fae89f8d4cc3ff97.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-fae89f8d4cc3ff97.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-fae89f8d4cc3ff97.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-fae89f8d4cc3ff97.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-fae89f8d4cc3ff97.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/route-fae89f8d4cc3ff97.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-fae89f8d4cc3ff97.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-fae89f8d4cc3ff97.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-fae89f8d4cc3ff97.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/search/route-fae89f8d4cc3ff97.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/send/route-fae89f8d4cc3ff97.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-fae89f8d4cc3ff97.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-fae89f8d4cc3ff97.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-fae89f8d4cc3ff97.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-fae89f8d4cc3ff97.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-fae89f8d4cc3ff97.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-fae89f8d4cc3ff97.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-fae89f8d4cc3ff97.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-fae89f8d4cc3ff97.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-fae89f8d4cc3ff97.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-fae89f8d4cc3ff97.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-fae89f8d4cc3ff97.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-fae89f8d4cc3ff97.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-fae89f8d4cc3ff97.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-fae89f8d4cc3ff97.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-fae89f8d4cc3ff97.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-fae89f8d4cc3ff97.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-fae89f8d4cc3ff97.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-fae89f8d4cc3ff97.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-fae89f8d4cc3ff97.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-fae89f8d4cc3ff97.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-fae89f8d4cc3ff97.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/route-fae89f8d4cc3ff97.js +1 -0
  465. package/.next/static/chunks/app/chat/page-439b35c9cb90dbe0.js +1 -0
  466. package/.next/static/chunks/app/layout-6a26ea22d5cf03dc.js +1 -0
  467. package/.next/static/chunks/app/login/page-eefd515d8c37e5ee.js +1 -0
  468. package/.next/static/chunks/app/manifest.webmanifest/route-fae89f8d4cc3ff97.js +1 -0
  469. package/.next/static/chunks/app/more/page-889b7546a8a553dc.js +1 -0
  470. package/.next/static/chunks/app/page-a8d04ac0e3e4c9fc.js +1 -0
  471. package/.next/static/chunks/app/proxy/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  472. package/.next/static/chunks/app/repositories/page-f3c4d8839b1ca203.js +1 -0
  473. package/.next/static/chunks/app/review/page-6dc88649fe88ac16.js +1 -0
  474. package/.next/static/chunks/app/sessions/page-2c9ed9e969097688.js +1 -0
  475. package/.next/static/chunks/app/skills/[skillId]/page-19beef6121c4c982.js +1 -0
  476. package/.next/static/chunks/app/skills/installed/page-d5b9cef6d21fabda.js +1 -0
  477. package/.next/static/chunks/app/skills/page-06ef637e07dd9377.js +1 -0
  478. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-5fed3984fafcd910.js +1 -0
  479. package/.next/static/chunks/app/worktrees/[id]/layout-fae89f8d4cc3ff97.js +1 -0
  480. package/.next/static/chunks/app/worktrees/[id]/page-207c69540fd856ef.js +1 -0
  481. package/.next/static/chunks/{webpack-180bebdee221b6f4.js → webpack-9d892a9ff07c289d.js} +1 -1
  482. package/.next/static/css/e865c4979a41aa03.css +1 -0
  483. package/.next/static/ehkNc5xDMDkXlua08Bwq0/_buildManifest.js +1 -0
  484. package/.next/trace +12 -12
  485. package/.next/types/app/api/push/escalation/route.ts +347 -0
  486. package/.next/types/routes.d.ts +2 -1
  487. package/.next/types/validator.ts +9 -0
  488. package/README.md +96 -45
  489. package/dist/cli/commands/capture.d.ts.map +1 -1
  490. package/dist/cli/commands/capture.js +6 -0
  491. package/dist/cli/commands/instances.d.ts.map +1 -1
  492. package/dist/cli/commands/instances.js +19 -1
  493. package/dist/cli/commands/task.d.ts.map +1 -1
  494. package/dist/cli/commands/task.js +6 -0
  495. package/dist/cli/commands/verify.js +6 -1
  496. package/dist/cli/types/api-responses.d.ts +46 -0
  497. package/dist/cli/types/api-responses.d.ts.map +1 -1
  498. package/dist/cli/utils/verify-runner.d.ts.map +1 -1
  499. package/dist/cli/utils/verify-runner.js +17 -1
  500. package/dist/server/locales/en/notifications.json +20 -1
  501. package/dist/server/locales/ja/notifications.json +20 -1
  502. package/dist/server/server.js +23 -0
  503. package/dist/server/src/config/activity-bar-config.js +5 -1
  504. package/dist/server/src/lib/auto-yes-poller.js +40 -4
  505. package/dist/server/src/lib/cli-tools/codex.js +58 -29
  506. package/dist/server/src/lib/db/db.js +2 -1
  507. package/dist/server/src/lib/db/migrations/index.js +2 -0
  508. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  509. package/dist/server/src/lib/db/migrations/v56-gate-result-source.js +58 -0
  510. package/dist/server/src/lib/db/verification-db.js +26 -6
  511. package/dist/server/src/lib/detection/cli-patterns.js +148 -6
  512. package/dist/server/src/lib/detection/model-info-extractor.js +384 -0
  513. package/dist/server/src/lib/detection/status-detector.js +28 -0
  514. package/dist/server/src/lib/hooks/sources/antigravity/source.js +4 -0
  515. package/dist/server/src/lib/hooks/sources/claude/source.js +7 -0
  516. package/dist/server/src/lib/hooks/sources/codex/source.js +5 -0
  517. package/dist/server/src/lib/hooks/sources/define-source.js +8 -0
  518. package/dist/server/src/lib/hooks/sources/event-mapper.js +20 -0
  519. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +6 -0
  520. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +22 -0
  521. package/dist/server/src/lib/hooks/sources/opencode/source.js +3 -0
  522. package/dist/server/src/lib/polling/response-checker.js +47 -0
  523. package/dist/server/src/lib/push/escalation-settings.js +114 -0
  524. package/dist/server/src/lib/push/index.js +21 -1
  525. package/dist/server/src/lib/push/notification-dedup.js +35 -0
  526. package/dist/server/src/lib/push/push-sender.js +66 -7
  527. package/dist/server/src/lib/push/waiting-push-notifier.js +231 -0
  528. package/dist/server/src/lib/realtime/waiting-broadcast.js +93 -0
  529. package/dist/server/src/lib/session/agent-event-state.js +260 -0
  530. package/dist/server/src/lib/session/current-output-builder.js +24 -0
  531. package/dist/server/src/lib/session/next-action-helper.js +93 -0
  532. package/dist/server/src/lib/session/prompt-waiting-composition.js +38 -0
  533. package/dist/server/src/lib/session/waiting-episode-state.js +136 -0
  534. package/dist/server/src/lib/session/waiting-kind.js +59 -0
  535. package/dist/server/src/lib/tasks/contract-message.js +64 -21
  536. package/dist/server/src/lib/tasks/contract-parser.js +58 -12
  537. package/dist/server/src/lib/verification/gate-runner.js +64 -22
  538. package/dist/server/src/lib/verification/verify-config.js +84 -51
  539. package/dist/server/src/lib/ws-server.js +9 -0
  540. package/dist/server/src/types/sidebar.js +68 -0
  541. package/package.json +1 -1
  542. package/.next/server/chunks/3451.js +0 -1
  543. package/.next/server/chunks/6283.js +0 -1
  544. package/.next/server/chunks/646.js +0 -21
  545. package/.next/static/chunks/2053-52d3c82014e1cd54.js +0 -1
  546. package/.next/static/chunks/4560-0917ae2e6a0e5400.js +0 -1
  547. package/.next/static/chunks/6488-95ba9d24a76f0cc5.js +0 -1
  548. package/.next/static/chunks/7229.edb331fb9fbafa27.js +0 -1
  549. package/.next/static/chunks/744-fa8c0ae444c8338c.js +0 -1
  550. package/.next/static/chunks/9263.5259f73f89220d64.js +0 -1
  551. package/.next/static/chunks/app/api/assistant/messages/route-973ec48531555712.js +0 -1
  552. package/.next/static/chunks/app/api/assistant/session/route-973ec48531555712.js +0 -1
  553. package/.next/static/chunks/app/api/assistant/start/route-973ec48531555712.js +0 -1
  554. package/.next/static/chunks/app/api/assistant/terminal/route-973ec48531555712.js +0 -1
  555. package/.next/static/chunks/app/api/assistant/tools/route-973ec48531555712.js +0 -1
  556. package/.next/static/chunks/app/api/auth/login/route-973ec48531555712.js +0 -1
  557. package/.next/static/chunks/app/api/auth/logout/route-973ec48531555712.js +0 -1
  558. package/.next/static/chunks/app/api/auth/status/route-973ec48531555712.js +0 -1
  559. package/.next/static/chunks/app/api/daily-summary/route-973ec48531555712.js +0 -1
  560. package/.next/static/chunks/app/api/daily-summary/status/route-973ec48531555712.js +0 -1
  561. package/.next/static/chunks/app/api/external-apps/[id]/health/route-973ec48531555712.js +0 -1
  562. package/.next/static/chunks/app/api/external-apps/[id]/route-973ec48531555712.js +0 -1
  563. package/.next/static/chunks/app/api/external-apps/route-973ec48531555712.js +0 -1
  564. package/.next/static/chunks/app/api/fs/browse/route-973ec48531555712.js +0 -1
  565. package/.next/static/chunks/app/api/fs/recent-paths/route-973ec48531555712.js +0 -1
  566. package/.next/static/chunks/app/api/hooks/agent-event/route-973ec48531555712.js +0 -1
  567. package/.next/static/chunks/app/api/hooks/claude-done/route-973ec48531555712.js +0 -1
  568. package/.next/static/chunks/app/api/hooks/permission-request/route-973ec48531555712.js +0 -1
  569. package/.next/static/chunks/app/api/metrics/vibe/route-973ec48531555712.js +0 -1
  570. package/.next/static/chunks/app/api/ollama/models/route-973ec48531555712.js +0 -1
  571. package/.next/static/chunks/app/api/push/subscriptions/route-973ec48531555712.js +0 -1
  572. package/.next/static/chunks/app/api/push/vapid/route-973ec48531555712.js +0 -1
  573. package/.next/static/chunks/app/api/repositories/[id]/route-973ec48531555712.js +0 -1
  574. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-973ec48531555712.js +0 -1
  575. package/.next/static/chunks/app/api/repositories/[id]/todos/route-973ec48531555712.js +0 -1
  576. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-973ec48531555712.js +0 -1
  577. package/.next/static/chunks/app/api/repositories/clone/route-973ec48531555712.js +0 -1
  578. package/.next/static/chunks/app/api/repositories/excluded/route-973ec48531555712.js +0 -1
  579. package/.next/static/chunks/app/api/repositories/restore/route-973ec48531555712.js +0 -1
  580. package/.next/static/chunks/app/api/repositories/route-973ec48531555712.js +0 -1
  581. package/.next/static/chunks/app/api/repositories/scan/route-973ec48531555712.js +0 -1
  582. package/.next/static/chunks/app/api/repositories/sync/route-973ec48531555712.js +0 -1
  583. package/.next/static/chunks/app/api/repositories/validate-path/route-973ec48531555712.js +0 -1
  584. package/.next/static/chunks/app/api/sidebar/group-order/route-973ec48531555712.js +0 -1
  585. package/.next/static/chunks/app/api/skills/[id]/route-973ec48531555712.js +0 -1
  586. package/.next/static/chunks/app/api/skills/installations/route-973ec48531555712.js +0 -1
  587. package/.next/static/chunks/app/api/skills/operations/route-973ec48531555712.js +0 -1
  588. package/.next/static/chunks/app/api/skills/reindex/route-973ec48531555712.js +0 -1
  589. package/.next/static/chunks/app/api/skills/route-973ec48531555712.js +0 -1
  590. package/.next/static/chunks/app/api/slash-commands/route-973ec48531555712.js +0 -1
  591. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-973ec48531555712.js +0 -1
  592. package/.next/static/chunks/app/api/tasks/[taskId]/route-973ec48531555712.js +0 -1
  593. package/.next/static/chunks/app/api/templates/[id]/route-973ec48531555712.js +0 -1
  594. package/.next/static/chunks/app/api/templates/route-973ec48531555712.js +0 -1
  595. package/.next/static/chunks/app/api/todos/route-973ec48531555712.js +0 -1
  596. package/.next/static/chunks/app/api/verification/runs/[runId]/route-973ec48531555712.js +0 -1
  597. package/.next/static/chunks/app/api/verification/runs/route-973ec48531555712.js +0 -1
  598. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-973ec48531555712.js +0 -1
  599. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-973ec48531555712.js +0 -1
  600. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-973ec48531555712.js +0 -1
  601. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-973ec48531555712.js +0 -1
  602. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-973ec48531555712.js +0 -1
  603. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-973ec48531555712.js +0 -1
  604. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-973ec48531555712.js +0 -1
  605. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-973ec48531555712.js +0 -1
  606. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-973ec48531555712.js +0 -1
  607. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-973ec48531555712.js +0 -1
  608. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-973ec48531555712.js +0 -1
  609. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-973ec48531555712.js +0 -1
  610. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-973ec48531555712.js +0 -1
  611. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-973ec48531555712.js +0 -1
  612. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-973ec48531555712.js +0 -1
  613. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-973ec48531555712.js +0 -1
  614. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-973ec48531555712.js +0 -1
  615. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-973ec48531555712.js +0 -1
  616. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-973ec48531555712.js +0 -1
  617. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-973ec48531555712.js +0 -1
  618. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-973ec48531555712.js +0 -1
  619. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-973ec48531555712.js +0 -1
  620. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-973ec48531555712.js +0 -1
  621. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-973ec48531555712.js +0 -1
  622. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-973ec48531555712.js +0 -1
  623. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-973ec48531555712.js +0 -1
  624. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-973ec48531555712.js +0 -1
  625. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-973ec48531555712.js +0 -1
  626. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-973ec48531555712.js +0 -1
  627. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-973ec48531555712.js +0 -1
  628. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-973ec48531555712.js +0 -1
  629. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-973ec48531555712.js +0 -1
  630. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-973ec48531555712.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-973ec48531555712.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-973ec48531555712.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-973ec48531555712.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-973ec48531555712.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-973ec48531555712.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-973ec48531555712.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-973ec48531555712.js +0 -1
  638. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-973ec48531555712.js +0 -1
  639. package/.next/static/chunks/app/api/worktrees/[id]/route-973ec48531555712.js +0 -1
  640. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-973ec48531555712.js +0 -1
  641. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-973ec48531555712.js +0 -1
  642. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-973ec48531555712.js +0 -1
  643. package/.next/static/chunks/app/api/worktrees/[id]/search/route-973ec48531555712.js +0 -1
  644. package/.next/static/chunks/app/api/worktrees/[id]/send/route-973ec48531555712.js +0 -1
  645. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-973ec48531555712.js +0 -1
  646. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-973ec48531555712.js +0 -1
  647. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-973ec48531555712.js +0 -1
  648. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-973ec48531555712.js +0 -1
  649. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-973ec48531555712.js +0 -1
  650. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-973ec48531555712.js +0 -1
  651. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-973ec48531555712.js +0 -1
  652. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-973ec48531555712.js +0 -1
  653. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-973ec48531555712.js +0 -1
  654. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-973ec48531555712.js +0 -1
  655. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-973ec48531555712.js +0 -1
  656. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-973ec48531555712.js +0 -1
  657. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-973ec48531555712.js +0 -1
  658. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-973ec48531555712.js +0 -1
  659. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-973ec48531555712.js +0 -1
  660. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-973ec48531555712.js +0 -1
  661. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-973ec48531555712.js +0 -1
  662. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-973ec48531555712.js +0 -1
  663. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-973ec48531555712.js +0 -1
  664. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-973ec48531555712.js +0 -1
  665. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-973ec48531555712.js +0 -1
  666. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-973ec48531555712.js +0 -1
  667. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-973ec48531555712.js +0 -1
  668. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-973ec48531555712.js +0 -1
  669. package/.next/static/chunks/app/api/worktrees/route-973ec48531555712.js +0 -1
  670. package/.next/static/chunks/app/chat/page-83a2238ab453afaa.js +0 -1
  671. package/.next/static/chunks/app/layout-86574192bd3c0e6b.js +0 -1
  672. package/.next/static/chunks/app/login/page-0247a3fb569bb22b.js +0 -1
  673. package/.next/static/chunks/app/manifest.webmanifest/route-973ec48531555712.js +0 -1
  674. package/.next/static/chunks/app/more/page-1619018cac999bbc.js +0 -1
  675. package/.next/static/chunks/app/page-a34d26812f085b6c.js +0 -1
  676. package/.next/static/chunks/app/proxy/[...path]/route-973ec48531555712.js +0 -1
  677. package/.next/static/chunks/app/repositories/page-202680fe6ec169c8.js +0 -1
  678. package/.next/static/chunks/app/review/page-b559bfb11c46931b.js +0 -1
  679. package/.next/static/chunks/app/sessions/page-3fa7e767d0ab3889.js +0 -1
  680. package/.next/static/chunks/app/skills/[skillId]/page-10d6f983e5f06ffb.js +0 -1
  681. package/.next/static/chunks/app/skills/installed/page-6641f95e6a6e5f9d.js +0 -1
  682. package/.next/static/chunks/app/skills/page-184f8e23e31a3667.js +0 -1
  683. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-6041d3c3db326317.js +0 -1
  684. package/.next/static/chunks/app/worktrees/[id]/layout-973ec48531555712.js +0 -1
  685. package/.next/static/chunks/app/worktrees/[id]/page-966a451ae7b0903a.js +0 -1
  686. package/.next/static/css/d3453a6876553d32.css +0 -1
  687. package/.next/static/wH6K6QNPHSdATFkVoIcy3/_buildManifest.js +0 -1
  688. /package/.next/static/{wH6K6QNPHSdATFkVoIcy3 → ehkNc5xDMDkXlua08Bwq0}/_ssgManifest.js +0 -0
@@ -17,7 +17,7 @@ const path_1 = __importDefault(require("path"));
17
17
  * Current schema version
18
18
  * Increment this when adding new migrations
19
19
  */
20
- exports.CURRENT_SCHEMA_VERSION = 55;
20
+ exports.CURRENT_SCHEMA_VERSION = 56;
21
21
  /**
22
22
  * Get current schema version from database
23
23
  */
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Migration v56: record where each verification gate was declared (Issue #1791).
4
+ *
5
+ * An execution contract can now carry gate *definitions* of its own, not just a
6
+ * selection of the repository's (#1756 案 B). That is what stops an orchestrator
7
+ * from having to append an Issue-specific gate to `.commandmate/verify.yaml` —
8
+ * a file that stays inside the work-evidence change set, so a worktree carrying
9
+ * nothing but that append reads as "the agent did work".
10
+ *
11
+ * The separation is only real if a reader can see it. Two gates in one report
12
+ * spell their ids the same way whether the repository declared them or one
13
+ * delegation did, and the contract's copy is not on disk to be checked against.
14
+ * Without this column, per-delegation gates are a second verify.yaml that
15
+ * nothing announces — a run could be green on criteria the repository never
16
+ * agreed to, and its report would look identical to one that passed the real
17
+ * ones.
18
+ *
19
+ * Nullable, with no backfill and no default. Rows written before this migration
20
+ * were produced by a runner that had no contract gates at all, so `verify.yaml`
21
+ * would be *almost* true of them and outright wrong for the built-ins — and
22
+ * verification history is evidence, which is not rewritten to make a column
23
+ * look complete. null therefore reads as "written before v56, nobody recorded
24
+ * this", the same discipline `timingsMeasured` uses for pre-#1625 timestamps.
25
+ *
26
+ * The CHECK mirrors VERIFICATION_GATE_SOURCES in verification-db.ts, for the
27
+ * reason v49's `trigger` CHECK does: a vocabulary that lives only in the writer
28
+ * lets a typo land as a new bucket nothing queries.
29
+ */
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.v56_migrations = void 0;
32
+ exports.v56_migrations = [
33
+ {
34
+ version: 56,
35
+ name: 'add-source-to-verification-gate-results',
36
+ up: (db) => {
37
+ // `ADD COLUMN IF NOT EXISTS` does not exist in SQLite, and the rollback
38
+ // below deliberately leaves the column in place — so a database rolled
39
+ // back past v56 and migrated forward again reaches this statement with
40
+ // the column already there. Without the guard that upgrade path dies on
41
+ // "duplicate column name".
42
+ const columns = db
43
+ .prepare('PRAGMA table_info(verification_gate_results)')
44
+ .all();
45
+ if (columns.some((column) => column.name === 'source'))
46
+ return;
47
+ db.exec(`
48
+ ALTER TABLE verification_gate_results ADD COLUMN source TEXT
49
+ CHECK (source IS NULL OR source IN ('builtin', 'verify.yaml', 'contract'));
50
+ `);
51
+ },
52
+ down: () => {
53
+ // SQLite drops columns only by rebuilding the table, which would rewrite
54
+ // every historical gate verdict to remove one nullable column. Same
55
+ // no-op rollback as v35/v36.
56
+ },
57
+ },
58
+ ];
@@ -20,7 +20,7 @@
20
20
  * exactly the failure this table exists to make impossible.
21
21
  */
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.MAX_RUN_HISTORY_DAYS = exports.MAX_RUN_HISTORY_LIMIT = exports.DEFAULT_RUN_HISTORY_LIMIT = exports.VERIFICATION_TRIGGERS = void 0;
23
+ exports.MAX_RUN_HISTORY_DAYS = exports.MAX_RUN_HISTORY_LIMIT = exports.DEFAULT_RUN_HISTORY_LIMIT = exports.VERIFICATION_GATE_SOURCES = exports.VERIFICATION_TRIGGERS = void 0;
24
24
  exports.createVerificationRun = createVerificationRun;
25
25
  exports.finishVerificationRun = finishVerificationRun;
26
26
  exports.createGateResult = createGateResult;
@@ -38,11 +38,28 @@ exports.listVerificationRunsForPeriod = listVerificationRunsForPeriod;
38
38
  * trigger cannot be accepted by an API route and then rejected by SQLite.
39
39
  */
40
40
  exports.VERIFICATION_TRIGGERS = ['manual', 'wait', 'api', 'task'];
41
+ /**
42
+ * Where a gate's definition came from (Issue #1791, migration v56).
43
+ *
44
+ * `builtin` = work-evidence / scope / env-clean (and the `config` pseudo-gate),
45
+ * which are the runner's own. `verify.yaml` = the repository's declared
46
+ * criterion of passing. `contract` = a gate the execution contract carried for
47
+ * this delegation alone.
48
+ *
49
+ * Recorded rather than inferred from the id, because the whole point of letting
50
+ * a contract carry gates is that a reader can tell the repository's definition
51
+ * of "passes" from one Issue's. Without it in the report, per-delegation gates
52
+ * are a second verify.yaml that nothing announces.
53
+ *
54
+ * The runtime tuple mirrors the CHECK constraint in migration v56.
55
+ */
56
+ exports.VERIFICATION_GATE_SOURCES = ['builtin', 'verify.yaml', 'contract'];
41
57
  const RUN_COLUMNS = `
42
58
  id, worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
43
59
  `;
44
60
  const GATE_COLUMNS = `
45
- id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
61
+ id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at,
62
+ source
46
63
  `;
47
64
  function mapRunRow(row) {
48
65
  return {
@@ -69,6 +86,7 @@ function mapGateRow(row) {
69
86
  logTail: row.log_tail,
70
87
  startedAt: new Date(row.started_at),
71
88
  finishedAt: row.finished_at === null ? null : new Date(row.finished_at),
89
+ source: row.source ?? null,
72
90
  timingsMeasured: row.finished_at !== null &&
73
91
  row.duration_ms !== null &&
74
92
  row.finished_at - row.started_at === row.duration_ms,
@@ -108,11 +126,12 @@ function createGateResult(db, runId, input) {
108
126
  const info = db
109
127
  .prepare(`
110
128
  INSERT INTO verification_gate_results (
111
- run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
129
+ run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at,
130
+ finished_at, source
112
131
  )
113
- VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL)
132
+ VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL, ?)
114
133
  `)
115
- .run(runId, input.gateId, input.command, now);
134
+ .run(runId, input.gateId, input.command, now, input.source);
116
135
  const row = db
117
136
  .prepare(`SELECT ${GATE_COLUMNS} FROM verification_gate_results WHERE id = ?`)
118
137
  .get(Number(info.lastInsertRowid));
@@ -266,7 +285,7 @@ function listVerificationRunsForPeriod(db, opts = {}) {
266
285
  const placeholders = runRows.map(() => '?').join(', ');
267
286
  const gateRows = db
268
287
  .prepare(`
269
- SELECT run_id, gate_id, status, exit_code, duration_ms
288
+ SELECT run_id, gate_id, status, exit_code, duration_ms, source
270
289
  FROM verification_gate_results
271
290
  WHERE run_id IN (${placeholders})
272
291
  ORDER BY started_at ASC, id ASC
@@ -279,6 +298,7 @@ function listVerificationRunsForPeriod(db, opts = {}) {
279
298
  status: row.status,
280
299
  exitCode: row.exit_code,
281
300
  durationMs: row.duration_ms,
301
+ source: row.source ?? null,
282
302
  };
283
303
  const bucket = byRun.get(row.run_id);
284
304
  if (bucket)
@@ -4,11 +4,12 @@
4
4
  * Shared between response-poller.ts and API routes
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = exports.CLAUDE_SESSION_ERROR_PATTERNS = exports.extractAnsiSequences = exports.stripAnsi = exports.ANTIGRAVITY_SKIP_PATTERNS = exports.ANTIGRAVITY_SELECTION_LIST_PATTERN = exports.ANTIGRAVITY_SEPARATOR_PATTERN = exports.ANTIGRAVITY_THINKING_PATTERN = exports.ANTIGRAVITY_PROMPT_PATTERN = exports.VIBE_LOCAL_THINKING_PATTERN = exports.VIBE_LOCAL_PROMPT_PATTERN = exports.COPILOT_SKIP_PATTERNS = exports.COPILOT_SELECTION_LIST_PATTERN = exports.COPILOT_SEPARATOR_PATTERN = exports.COPILOT_THINKING_PATTERN = exports.COPILOT_PROMPT_PATTERN = exports.OPENCODE_SKIP_PATTERNS = exports.OPENCODE_SEPARATOR_PATTERN = exports.CLAUDE_SELECTION_LIST_FOOTER = exports.CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN = exports.OPENCODE_SELECTION_LIST_PATTERN = exports.OPENCODE_PROCESSING_INDICATOR = exports.OPENCODE_RESPONSE_COMPLETE = exports.OPENCODE_LOADING_PATTERN = exports.OPENCODE_THINKING_PATTERN = exports.OPENCODE_PROMPT_AFTER_RESPONSE = exports.OPENCODE_PROMPT_PATTERN = exports.GEMINI_THINKING_PATTERN = exports.GEMINI_PROMPT_PATTERN = exports.MAX_PASTED_TEXT_RETRIES = exports.PASTED_TEXT_DETECT_DELAY = exports.PASTED_TEXT_PATTERN = exports.CODEX_STATUS_BAR_PATTERN = exports.CODEX_PAGER_FOOTER_PATTERN = exports.CODEX_APPROVAL_FOOTER_PATTERN = exports.CODEX_SELECTION_LIST_PATTERN = exports.CODEX_SEPARATOR_PATTERN = exports.CODEX_DIALOG_PATTERN = exports.CODEX_PROMPT_PATTERN = exports.CLAUDE_TRUST_DIALOG_PATTERN = exports.CLAUDE_SEPARATOR_PATTERN = exports.CLAUDE_PROMPT_PATTERN = exports.CODEX_INTERRUPT_HINT_PATTERN = exports.CODEX_THINKING_PATTERN = exports.CLAUDE_INTERRUPT_HINT_PATTERN = exports.CLAUDE_THINKING_PATTERN = exports.CLAUDE_SPINNER_CHARS = void 0;
7
+ exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = exports.CLAUDE_SESSION_ERROR_PATTERNS = exports.extractAnsiSequences = exports.stripAnsi = exports.ANTIGRAVITY_SKIP_PATTERNS = exports.ANTIGRAVITY_SELECTION_LIST_PATTERN = exports.ANTIGRAVITY_SEPARATOR_PATTERN = exports.ANTIGRAVITY_THINKING_PATTERN = exports.ANTIGRAVITY_PROMPT_PATTERN = exports.VIBE_LOCAL_THINKING_PATTERN = exports.VIBE_LOCAL_PROMPT_PATTERN = exports.COPILOT_SKIP_PATTERNS = exports.COPILOT_SELECTION_LIST_PATTERN = exports.COPILOT_SEPARATOR_PATTERN = exports.COPILOT_THINKING_PATTERN = exports.COPILOT_PROMPT_PATTERN = exports.OPENCODE_SKIP_PATTERNS = exports.OPENCODE_SEPARATOR_PATTERN = exports.CLAUDE_SELECTION_LIST_FOOTER = exports.CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN = exports.OPENCODE_SELECTION_LIST_PATTERN = exports.OPENCODE_PROCESSING_INDICATOR = exports.OPENCODE_RESPONSE_COMPLETE = exports.OPENCODE_LOADING_PATTERN = exports.OPENCODE_THINKING_PATTERN = exports.OPENCODE_PROMPT_AFTER_RESPONSE = exports.OPENCODE_PROMPT_PATTERN = exports.GEMINI_THINKING_PATTERN = exports.GEMINI_PROMPT_PATTERN = exports.MAX_PASTED_TEXT_RETRIES = exports.PASTED_TEXT_DETECT_DELAY = exports.PASTED_TEXT_PATTERN = exports.CODEX_STATUS_BAR_PATTERN = exports.CODEX_PAGER_FOOTER_PATTERN = exports.CODEX_APPROVAL_FOOTER_PATTERN = exports.CODEX_SELECTION_LIST_PATTERN = exports.CODEX_SEPARATOR_PATTERN = exports.CODEX_HOOKS_REVIEW_ANCHORS = exports.CODEX_DIALOG_PATTERN = exports.CODEX_PROMPT_PATTERN = exports.CLAUDE_TRUST_DIALOG_PATTERN = exports.CLAUDE_SEPARATOR_PATTERN = exports.CLAUDE_PROMPT_PATTERN = exports.CODEX_INTERRUPT_HINT_PATTERN = exports.CODEX_THINKING_PATTERN = exports.CLAUDE_INTERRUPT_HINT_PATTERN = exports.CLAUDE_THINKING_PATTERN = exports.CLAUDE_SPINNER_CHARS = void 0;
8
8
  exports.isCodexTurnActive = isCodexTurnActive;
9
9
  exports.findClaudeChromeStart = findClaudeChromeStart;
10
10
  exports.isCodexPromptReady = isCodexPromptReady;
11
11
  exports.getCodexActiveDialog = getCodexActiveDialog;
12
+ exports.getCodexLifecycleDialog = getCodexLifecycleDialog;
12
13
  exports.detectThinking = detectThinking;
13
14
  exports.getCliToolPatterns = getCliToolPatterns;
14
15
  exports.stripBoxDrawing = stripBoxDrawing;
@@ -330,7 +331,18 @@ function isCodexPromptReady(output) {
330
331
  * update dialog wins over its own "Press enter to continue" footer, because Enter
331
332
  * on the update dialog could confirm the default "1. Update now" (npm install).
332
333
  */
333
- function getCodexActiveDialog(output) {
334
+ /**
335
+ * The lines of Codex's ACTIVE region: everything strictly below the bottom-most
336
+ * genuine input-prompt line, or the whole frame when there is no prompt line
337
+ * (Issue #892).
338
+ *
339
+ * This is the one rule that keeps every Codex dialog classifier honest.
340
+ * capturePane returns scrollback, so a dialog that was answered minutes ago is
341
+ * still in the frame; only what sits BELOW the live prompt is still awaiting a
342
+ * key. Shared by getCodexActiveDialog and getCodexLifecycleDialog so the two
343
+ * cannot drift into disagreeing about what "active" means.
344
+ */
345
+ function codexActiveRegionLines(output) {
334
346
  const lines = output.split('\n');
335
347
  // Index of the bottom-most genuine input-prompt line (-1 if none).
336
348
  let promptIdx = -1;
@@ -340,10 +352,12 @@ function getCodexActiveDialog(output) {
340
352
  break;
341
353
  }
342
354
  }
343
- // Active region = lines strictly below the genuine prompt (the whole frame when
344
- // there is no genuine prompt). Residual dialog text above a live prompt is
345
- // excluded, so a dialog lingering in scrollback is never treated as active.
346
- const active = lines.slice(promptIdx + 1).join('\n');
355
+ return lines.slice(promptIdx + 1);
356
+ }
357
+ function getCodexActiveDialog(output) {
358
+ // Residual dialog text above a live prompt is excluded, so a dialog lingering
359
+ // in scrollback is never treated as active.
360
+ const active = codexActiveRegionLines(output).join('\n');
347
361
  if (active === '') {
348
362
  return null;
349
363
  }
@@ -359,6 +373,134 @@ function getCodexActiveDialog(output) {
359
373
  }
360
374
  return null;
361
375
  }
376
+ /**
377
+ * Anchors of codex's "Hooks need review" launch dialog — screen 1 of the three
378
+ * it can put in front of a session (Issue #1760, re-measured on codex-cli
379
+ * 0.148.0 for Issue #1829):
380
+ *
381
+ * ```
382
+ * Hooks need review
383
+ * 4 hooks are new or changed.
384
+ * Hooks can run outside the sandbox after you trust them.
385
+ *
386
+ * > 1. Review hooks
387
+ * 2. Trust all and continue
388
+ * 3. Continue without trusting (hooks won't run)
389
+ * Press enter to confirm or esc to go back
390
+ * ```
391
+ *
392
+ * The hook COUNT is data — 0.147.0 said 5, 0.148.0 said 4 — so neither anchor
393
+ * reads it. Both strings are required so a "hooks" mention elsewhere cannot
394
+ * select an option on a live prompt.
395
+ */
396
+ exports.CODEX_HOOKS_REVIEW_ANCHORS = ['Hooks need review', 'Continue without trusting'];
397
+ /**
398
+ * Footer of screen 2, the hooks LIST, new in codex-cli 0.148.0 (Issue #1829):
399
+ * `Press t to trust all; enter to review hooks; esc to close`.
400
+ *
401
+ * The semicolon is what separates it from screen 3's footer — "trust all;" and
402
+ * "trust;" are disjoint — and matching the footer rather than the table above it
403
+ * keeps the two screens distinguishable by a single line each.
404
+ */
405
+ const CODEX_HOOKS_LIST_FOOTER_PATTERN = /press\s+t\s+to\s+trust\s+all\s*;/i;
406
+ /**
407
+ * Footer of screen 3, the per-hook review DETAIL (Issue #1829):
408
+ * `Press t to trust; esc to go back`. Where both live sessions in the Issue were
409
+ * found parked.
410
+ */
411
+ const CODEX_HOOKS_DETAIL_FOOTER_PATTERN = /press\s+t\s+to\s+trust\s*;/i;
412
+ /**
413
+ * How much of the active region {@link getCodexLifecycleDialog} judges, in
414
+ * non-blank lines counted from the bottom (Issue #1829).
415
+ *
416
+ * `getCodexActiveDialog` searches the whole active region, which is right for
417
+ * its caller: `waitForReady` only ever runs during `startSession`, when nothing
418
+ * else can be on screen. This classifier runs on every Auto-Yes poll for the
419
+ * life of the session, where "active region" alone is not enough — a codex
420
+ * approval request renders no `› ` composer line, so an approval that comes up
421
+ * while a dismissed hooks screen is still inside the capture window would have
422
+ * the whole frame as its active region and would be mistaken for the dialog.
423
+ * Requiring the dialog to be in the TAIL is what separates the screen the user
424
+ * is looking at from the one they have already left.
425
+ *
426
+ * 12 lines fits the tallest screen this has to recognise (the review dialog's
427
+ * two anchors sit 6 lines apart) and none of the shorter frames below it.
428
+ */
429
+ const CODEX_LIFECYCLE_TAIL_LINES = 12;
430
+ /**
431
+ * The interactive update dialog, by its option-3 label or its option-1 line.
432
+ *
433
+ * Deliberately stricter than `getCodexActiveDialog`'s `Update` AND `Skip`
434
+ * fallback: that pair can occur in ordinary agent output, and here a false
435
+ * positive silently stops Auto-Yes answering a real prompt. Both anchors below
436
+ * are dialog chrome that agent output does not produce.
437
+ */
438
+ const CODEX_UPDATE_DIALOG_ANCHORS = [
439
+ /skip until next version/i,
440
+ /^\s*[›❯]?\s*\d+\.\s*Update now/im,
441
+ ];
442
+ /** The directory-trust dialog's question line. */
443
+ const CODEX_TRUST_DIALOG_ANCHOR = /Do you trust/;
444
+ /**
445
+ * Classify the bottom-most ACTIVE codex lifecycle screen (Issue #1829).
446
+ *
447
+ * Position-based, via {@link codexActiveRegionLines}: a dialog left in
448
+ * scrollback above a live prompt is not active and returns `null`. That is not
449
+ * a detail — the auto-answer guard in the Auto-Yes poller is built on this
450
+ * function, and a whole-frame version of it would switch Auto-Yes off for the
451
+ * rest of a codex session the moment any launch dialog scrolled past.
452
+ *
453
+ * The two hooks screens are matched FIRST and bottom-up, because a stuck pane
454
+ * holds screen 2 above screen 3 and the way out of each differs. The remaining
455
+ * three are region-level substring tests, which is all their anchors allow:
456
+ * the review dialog's are on two different lines.
457
+ *
458
+ * Deliberately NOT used to decide whether a prompt exists. `detectPrompt` still
459
+ * reports these screens, so a human still sees them; what this function gates is
460
+ * only whether a machine may answer on their behalf.
461
+ *
462
+ * @param output - ANSI-stripped pane capture
463
+ * @returns The active lifecycle screen, or null when none is
464
+ */
465
+ function getCodexLifecycleDialog(output) {
466
+ const activeLines = codexActiveRegionLines(output);
467
+ const window = [];
468
+ for (let i = activeLines.length - 1; i >= 0 && window.length < CODEX_LIFECYCLE_TAIL_LINES; i--) {
469
+ if (activeLines[i].trim() === '')
470
+ continue;
471
+ window.unshift(activeLines[i]);
472
+ }
473
+ if (window.length === 0)
474
+ return null;
475
+ const text = window.join('\n');
476
+ // One bottom-up pass, returning on the first line that decides the question --
477
+ // including the lines that decide it NEGATIVELY. A stuck pane holds screen 2
478
+ // above screen 3, and an approval request can come up with a hooks screen
479
+ // still inside the capture window; in both cases the screen the user is
480
+ // looking at is the lower one.
481
+ for (let i = window.length - 1; i >= 0; i--) {
482
+ const line = window[i];
483
+ if (CODEX_HOOKS_LIST_FOOTER_PATTERN.test(line))
484
+ return 'hooks-list';
485
+ if (CODEX_HOOKS_DETAIL_FOOTER_PATTERN.test(line))
486
+ return 'hooks-detail';
487
+ // The agent asking the human for permission mid-turn (Issue #1628's
488
+ // "esc to cancel" footer, which no lifecycle screen wears). This is exactly
489
+ // the prompt Auto-Yes exists to answer, so whatever lifecycle text is still
490
+ // above it has been left behind and must not withhold the answer.
491
+ if (exports.CODEX_APPROVAL_FOOTER_PATTERN.test(line))
492
+ return null;
493
+ if (CODEX_UPDATE_DIALOG_ANCHORS.some((pattern) => pattern.test(line)))
494
+ return 'update';
495
+ if (CODEX_TRUST_DIALOG_ANCHOR.test(line))
496
+ return 'trust';
497
+ // Both anchors required, so a stray "hooks" mention cannot claim the screen.
498
+ if (line.includes(exports.CODEX_HOOKS_REVIEW_ANCHORS[1]) && text.includes(exports.CODEX_HOOKS_REVIEW_ANCHORS[0])) {
499
+ return 'hooks-review';
500
+ }
501
+ }
502
+ return null;
503
+ }
362
504
  /**
363
505
  * Codex separator pattern
364
506
  */