commandmate 0.27.0 → 0.28.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 (918) hide show
  1. package/.env.example +28 -0
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +286 -256
  4. package/.next/app-path-routes-manifest.json +36 -32
  5. package/.next/build-manifest.json +2 -2
  6. package/.next/prerender-manifest.json +12 -12
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +32 -0
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route.js +1 -1
  11. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  12. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update-check/route.js +1 -1
  14. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  16. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  19. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  20. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js +1 -1
  22. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js +1 -1
  25. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  26. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/assistant/start/route.js +32 -1
  28. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  29. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/assistant/terminal/route.js +34 -3
  31. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  32. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js +1 -1
  34. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  35. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route.js +1 -1
  42. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  43. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  45. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  46. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  48. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  49. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  52. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/external-apps/route.js +1 -1
  54. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  55. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/fs/browse/route.js +1 -1
  57. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  58. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  60. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  61. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  63. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  64. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  66. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  69. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  70. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/metrics/vibe/route.js +1 -1
  72. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  73. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/push/escalation/route.js +1 -1
  76. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  77. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/push/subscriptions/route.js +7 -1
  79. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  80. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/push/vapid/route.js +1 -1
  82. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  83. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  85. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  88. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/clone/route.js +1 -1
  97. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  100. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/restore/route.js +1 -1
  103. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/route.js +1 -1
  106. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/scan/route.js +1 -1
  109. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/sync/route.js +1 -1
  112. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  115. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  118. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  119. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/skills/installations/route.js +1 -1
  123. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  124. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/skills/operations/route.js +1 -1
  126. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  127. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/skills/reindex/route.js +1 -1
  129. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  130. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  132. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  134. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  136. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  137. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  139. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  140. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/templates/[id]/route.js +2 -2
  142. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  143. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/templates/route.js +2 -2
  145. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  146. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/todos/route.js +1 -1
  148. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  149. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  151. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/verification/runs/route.js +1 -1
  154. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  155. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  158. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  169. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/current-output/route.js +2 -2
  172. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  181. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -0
  256. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -0
  257. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -0
  258. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  268. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +4 -4
  271. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -0
  283. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -0
  284. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -0
  285. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -0
  286. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -0
  287. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -0
  288. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -0
  289. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -0
  290. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -0
  291. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +5 -1
  304. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/schedules/route.js +6 -2
  310. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/send/route.js +7 -3
  316. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  328. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -3
  361. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/route.js +1 -1
  391. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  392. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  393. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  394. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  395. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  396. package/.next/server/app/more/page.js +1 -1
  397. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  398. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  399. package/.next/server/app/page_client-reference-manifest.js +1 -1
  400. package/.next/server/app/proxy/[...path]/route.js +1 -1
  401. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  402. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  403. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  404. package/.next/server/app/review/page.js +1 -1
  405. package/.next/server/app/review/page.js.nft.json +1 -1
  406. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  407. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  408. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  409. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  410. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  411. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  412. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  413. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  414. package/.next/server/app/worktrees/[id]/page.js +15 -10
  415. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  416. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  417. package/.next/server/app/worktrees/[id]/terminal/page.js +2 -2
  418. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  419. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app-paths-manifest.json +36 -32
  421. package/.next/server/chunks/1058.js +1 -0
  422. package/.next/server/chunks/1068.js +1 -3
  423. package/.next/server/chunks/1191.js +13 -0
  424. package/.next/server/chunks/1296.js +1 -1
  425. package/.next/server/chunks/1601.js +2 -2
  426. package/.next/server/chunks/1714.js +7 -0
  427. package/.next/server/chunks/1886.js +5 -0
  428. package/.next/server/chunks/1944.js +1 -0
  429. package/.next/server/chunks/2119.js +1 -1
  430. package/.next/server/chunks/221.js +19 -0
  431. package/.next/server/chunks/222.js +1 -0
  432. package/.next/server/chunks/2328.js +1 -1
  433. package/.next/server/chunks/2366.js +1 -0
  434. package/.next/server/chunks/2404.js +2 -2
  435. package/.next/server/chunks/243.js +1 -0
  436. package/.next/server/chunks/2445.js +1 -1
  437. package/.next/server/chunks/2759.js +1 -1
  438. package/.next/server/chunks/3346.js +1 -1
  439. package/.next/server/chunks/3480.js +17 -1
  440. package/.next/server/chunks/3558.js +1 -0
  441. package/.next/server/chunks/4299.js +1 -0
  442. package/.next/server/chunks/4393.js +1 -1
  443. package/.next/server/chunks/5017.js +1 -1
  444. package/.next/server/chunks/5089.js +1 -1
  445. package/.next/server/chunks/5354.js +1 -1
  446. package/.next/server/chunks/5571.js +1 -1
  447. package/.next/server/chunks/6130.js +1 -1
  448. package/.next/server/chunks/6274.js +11 -10
  449. package/.next/server/chunks/6285.js +1 -1
  450. package/.next/server/chunks/6337.js +1 -0
  451. package/.next/server/chunks/6401.js +1 -1
  452. package/.next/server/chunks/663.js +78 -0
  453. package/.next/server/chunks/7472.js +1 -1
  454. package/.next/server/chunks/7824.js +1 -0
  455. package/.next/server/chunks/7905.js +1 -0
  456. package/.next/server/chunks/880.js +1 -1
  457. package/.next/server/chunks/8807.js +84 -18
  458. package/.next/server/chunks/9130.js +5 -0
  459. package/.next/server/chunks/9328.js +1 -1
  460. package/.next/server/chunks/9358.js +1 -1
  461. package/.next/server/chunks/9508.js +1 -1
  462. package/.next/server/chunks/9584.js +1 -0
  463. package/.next/server/chunks/9627.js +274 -0
  464. package/.next/server/chunks/9798.js +2 -0
  465. package/.next/server/chunks/9938.js +1 -1
  466. package/.next/server/middleware-manifest.json +5 -5
  467. package/.next/server/pages/500.html +1 -1
  468. package/.next/server/server-reference-manifest.json +1 -1
  469. package/.next/static/chunks/1188-8567ee5ecfef02ee.js +1 -0
  470. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +1 -0
  471. package/.next/static/chunks/3968-8d8ca15657748bfb.js +1 -0
  472. package/.next/static/chunks/6381-d921ab728eda1191.js +1 -0
  473. package/.next/static/chunks/app/api/app/update/route-9247d6b9d647f750.js +1 -0
  474. package/.next/static/chunks/app/api/app/update-check/route-9247d6b9d647f750.js +1 -0
  475. package/.next/static/chunks/app/api/assistant/conversation/route-9247d6b9d647f750.js +1 -0
  476. package/.next/static/chunks/app/api/assistant/current-output/route-9247d6b9d647f750.js +1 -0
  477. package/.next/static/chunks/app/api/assistant/messages/route-9247d6b9d647f750.js +1 -0
  478. package/.next/static/chunks/app/api/assistant/session/route-9247d6b9d647f750.js +1 -0
  479. package/.next/static/chunks/app/api/assistant/start/route-9247d6b9d647f750.js +1 -0
  480. package/.next/static/chunks/app/api/assistant/terminal/route-9247d6b9d647f750.js +1 -0
  481. package/.next/static/chunks/app/api/assistant/tools/route-9247d6b9d647f750.js +1 -0
  482. package/.next/static/chunks/app/api/auth/login/route-9247d6b9d647f750.js +1 -0
  483. package/.next/static/chunks/app/api/auth/logout/route-9247d6b9d647f750.js +1 -0
  484. package/.next/static/chunks/app/api/auth/status/route-9247d6b9d647f750.js +1 -0
  485. package/.next/static/chunks/app/api/capabilities/route-9247d6b9d647f750.js +1 -0
  486. package/.next/static/chunks/app/api/daily-summary/route-9247d6b9d647f750.js +1 -0
  487. package/.next/static/chunks/app/api/daily-summary/status/route-9247d6b9d647f750.js +1 -0
  488. package/.next/static/chunks/app/api/external-apps/[id]/health/route-9247d6b9d647f750.js +1 -0
  489. package/.next/static/chunks/app/api/external-apps/[id]/route-9247d6b9d647f750.js +1 -0
  490. package/.next/static/chunks/app/api/external-apps/route-9247d6b9d647f750.js +1 -0
  491. package/.next/static/chunks/app/api/fs/browse/route-9247d6b9d647f750.js +1 -0
  492. package/.next/static/chunks/app/api/fs/recent-paths/route-9247d6b9d647f750.js +1 -0
  493. package/.next/static/chunks/app/api/hooks/agent-event/route-9247d6b9d647f750.js +1 -0
  494. package/.next/static/chunks/app/api/hooks/claude-done/route-9247d6b9d647f750.js +1 -0
  495. package/.next/static/chunks/app/api/hooks/permission-request/route-9247d6b9d647f750.js +1 -0
  496. package/.next/static/chunks/app/api/metrics/vibe/route-9247d6b9d647f750.js +1 -0
  497. package/.next/static/chunks/app/api/ollama/models/route-9247d6b9d647f750.js +1 -0
  498. package/.next/static/chunks/app/api/push/escalation/route-9247d6b9d647f750.js +1 -0
  499. package/.next/static/chunks/app/api/push/subscriptions/route-9247d6b9d647f750.js +1 -0
  500. package/.next/static/chunks/app/api/push/vapid/route-9247d6b9d647f750.js +1 -0
  501. package/.next/static/chunks/app/api/repositories/[id]/route-9247d6b9d647f750.js +1 -0
  502. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
  503. package/.next/static/chunks/app/api/repositories/[id]/todos/route-9247d6b9d647f750.js +1 -0
  504. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-9247d6b9d647f750.js +1 -0
  505. package/.next/static/chunks/app/api/repositories/clone/route-9247d6b9d647f750.js +1 -0
  506. package/.next/static/chunks/app/api/repositories/excluded/route-9247d6b9d647f750.js +1 -0
  507. package/.next/static/chunks/app/api/repositories/restore/route-9247d6b9d647f750.js +1 -0
  508. package/.next/static/chunks/app/api/repositories/route-9247d6b9d647f750.js +1 -0
  509. package/.next/static/chunks/app/api/repositories/scan/route-9247d6b9d647f750.js +1 -0
  510. package/.next/static/chunks/app/api/repositories/sync/route-9247d6b9d647f750.js +1 -0
  511. package/.next/static/chunks/app/api/repositories/validate-path/route-9247d6b9d647f750.js +1 -0
  512. package/.next/static/chunks/app/api/sidebar/group-order/route-9247d6b9d647f750.js +1 -0
  513. package/.next/static/chunks/app/api/skills/[id]/route-9247d6b9d647f750.js +1 -0
  514. package/.next/static/chunks/app/api/skills/installations/route-9247d6b9d647f750.js +1 -0
  515. package/.next/static/chunks/app/api/skills/operations/route-9247d6b9d647f750.js +1 -0
  516. package/.next/static/chunks/app/api/skills/reindex/route-9247d6b9d647f750.js +1 -0
  517. package/.next/static/chunks/app/api/skills/route-9247d6b9d647f750.js +1 -0
  518. package/.next/static/chunks/app/api/slash-commands/route-9247d6b9d647f750.js +1 -0
  519. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-9247d6b9d647f750.js +1 -0
  520. package/.next/static/chunks/app/api/tasks/[taskId]/route-9247d6b9d647f750.js +1 -0
  521. package/.next/static/chunks/app/api/templates/[id]/route-9247d6b9d647f750.js +1 -0
  522. package/.next/static/chunks/app/api/templates/route-9247d6b9d647f750.js +1 -0
  523. package/.next/static/chunks/app/api/todos/route-9247d6b9d647f750.js +1 -0
  524. package/.next/static/chunks/app/api/verification/runs/[runId]/route-9247d6b9d647f750.js +1 -0
  525. package/.next/static/chunks/app/api/verification/runs/route-9247d6b9d647f750.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-9247d6b9d647f750.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-9247d6b9d647f750.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-9247d6b9d647f750.js +1 -0
  529. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-9247d6b9d647f750.js +1 -0
  530. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-9247d6b9d647f750.js +1 -0
  531. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-9247d6b9d647f750.js +1 -0
  532. package/.next/static/chunks/app/api/worktrees/[id]/env/route-9247d6b9d647f750.js +1 -0
  533. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-9247d6b9d647f750.js +1 -0
  534. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-9247d6b9d647f750.js +1 -0
  535. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-9247d6b9d647f750.js +1 -0
  536. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-9247d6b9d647f750.js +1 -0
  537. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-9247d6b9d647f750.js +1 -0
  538. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-9247d6b9d647f750.js +1 -0
  539. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-9247d6b9d647f750.js +1 -0
  540. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-9247d6b9d647f750.js +1 -0
  541. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-9247d6b9d647f750.js +1 -0
  542. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-9247d6b9d647f750.js +1 -0
  543. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-9247d6b9d647f750.js +1 -0
  544. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-9247d6b9d647f750.js +1 -0
  545. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-9247d6b9d647f750.js +1 -0
  546. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-9247d6b9d647f750.js +1 -0
  547. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-9247d6b9d647f750.js +1 -0
  548. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-9247d6b9d647f750.js +1 -0
  549. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-9247d6b9d647f750.js +1 -0
  550. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-9247d6b9d647f750.js +1 -0
  551. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-9247d6b9d647f750.js +1 -0
  552. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-9247d6b9d647f750.js +1 -0
  553. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-9247d6b9d647f750.js +1 -0
  554. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-9247d6b9d647f750.js +1 -0
  555. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-9247d6b9d647f750.js +1 -0
  556. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-9247d6b9d647f750.js +1 -0
  557. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-9247d6b9d647f750.js +1 -0
  558. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-9247d6b9d647f750.js +1 -0
  559. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-9247d6b9d647f750.js +1 -0
  560. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-9247d6b9d647f750.js +1 -0
  561. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-9247d6b9d647f750.js +1 -0
  562. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-9247d6b9d647f750.js +1 -0
  563. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-9247d6b9d647f750.js +1 -0
  564. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-9247d6b9d647f750.js +1 -0
  565. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-9247d6b9d647f750.js +1 -0
  566. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-9247d6b9d647f750.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-9247d6b9d647f750.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-9247d6b9d647f750.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-9247d6b9d647f750.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-9247d6b9d647f750.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-9247d6b9d647f750.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-9247d6b9d647f750.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-9247d6b9d647f750.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/route-9247d6b9d647f750.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-9247d6b9d647f750.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-9247d6b9d647f750.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-9247d6b9d647f750.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/search/route-9247d6b9d647f750.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/send/route-9247d6b9d647f750.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-9247d6b9d647f750.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-9247d6b9d647f750.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-9247d6b9d647f750.js +1 -0
  583. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-9247d6b9d647f750.js +1 -0
  584. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-9247d6b9d647f750.js +1 -0
  585. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-9247d6b9d647f750.js +1 -0
  586. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-9247d6b9d647f750.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-9247d6b9d647f750.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-9247d6b9d647f750.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-9247d6b9d647f750.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-9247d6b9d647f750.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-9247d6b9d647f750.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-9247d6b9d647f750.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-9247d6b9d647f750.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-9247d6b9d647f750.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-9247d6b9d647f750.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-9247d6b9d647f750.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-9247d6b9d647f750.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-9247d6b9d647f750.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-9247d6b9d647f750.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-9247d6b9d647f750.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-9247d6b9d647f750.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-9247d6b9d647f750.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/route-9247d6b9d647f750.js +1 -0
  605. package/.next/static/chunks/app/manifest.webmanifest/route-9247d6b9d647f750.js +1 -0
  606. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +1 -0
  607. package/.next/static/chunks/app/proxy/[...path]/route-9247d6b9d647f750.js +1 -0
  608. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +1 -0
  609. package/.next/static/chunks/app/worktrees/[id]/layout-9247d6b9d647f750.js +1 -0
  610. package/.next/static/chunks/app/worktrees/[id]/page-27b7cb2e77099eec.js +1 -0
  611. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +1 -0
  612. package/.next/static/css/98722bc4152cedcc.css +1 -0
  613. package/.next/trace +13 -13
  614. package/.next/types/app/api/worktrees/[id]/instances/opencode/route.ts +347 -0
  615. package/.next/types/app/api/worktrees/[id]/opencode/diff/route.ts +347 -0
  616. package/.next/types/app/api/worktrees/[id]/opencode/session/route.ts +347 -0
  617. package/.next/types/app/api/worktrees/[id]/opencode/share/route.ts +347 -0
  618. package/.next/types/routes.d.ts +5 -1
  619. package/.next/types/validator.ts +36 -0
  620. package/README.md +9 -1
  621. package/dist/cli/commands/init.d.ts.map +1 -1
  622. package/dist/cli/commands/init.js +66 -0
  623. package/dist/cli/commands/instances.d.ts.map +1 -1
  624. package/dist/cli/commands/instances.js +46 -1
  625. package/dist/cli/commands/interrupt.d.ts +25 -0
  626. package/dist/cli/commands/interrupt.d.ts.map +1 -0
  627. package/dist/cli/commands/interrupt.js +146 -0
  628. package/dist/cli/commands/report.d.ts.map +1 -1
  629. package/dist/cli/commands/report.js +11 -4
  630. package/dist/cli/commands/respond.d.ts.map +1 -1
  631. package/dist/cli/commands/respond.js +146 -1
  632. package/dist/cli/commands/status.d.ts.map +1 -1
  633. package/dist/cli/commands/status.js +104 -0
  634. package/dist/cli/commands/wait.d.ts.map +1 -1
  635. package/dist/cli/commands/wait.js +39 -1
  636. package/dist/cli/config/agent-target-options.d.ts +12 -0
  637. package/dist/cli/config/agent-target-options.d.ts.map +1 -1
  638. package/dist/cli/config/agent-target-options.js +15 -1
  639. package/dist/cli/docs/agent-operations.d.ts +1 -1
  640. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  641. package/dist/cli/docs/agent-operations.js +34 -0
  642. package/dist/cli/program.d.ts.map +1 -1
  643. package/dist/cli/program.js +6 -0
  644. package/dist/cli/types/api-responses.d.ts +375 -0
  645. package/dist/cli/types/api-responses.d.ts.map +1 -1
  646. package/dist/cli/types/index.d.ts +63 -0
  647. package/dist/cli/types/index.d.ts.map +1 -1
  648. package/dist/cli/types/index.js +31 -1
  649. package/dist/cli/utils/daemon.d.ts.map +1 -1
  650. package/dist/cli/utils/daemon.js +3 -0
  651. package/dist/cli/utils/env-setup.d.ts +24 -0
  652. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  653. package/dist/cli/utils/env-setup.js +70 -0
  654. package/dist/cli/utils/vapid-keygen.d.ts +74 -0
  655. package/dist/cli/utils/vapid-keygen.d.ts.map +1 -0
  656. package/dist/cli/utils/vapid-keygen.js +111 -0
  657. package/dist/lib/cli-tools/types.d.ts +11 -1
  658. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  659. package/dist/lib/detection/tools/verified-against.d.ts +14 -3
  660. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
  661. package/dist/lib/detection/tools/verified-against.js +14 -3
  662. package/dist/lib/push/vapid.d.ts +178 -0
  663. package/dist/lib/push/vapid.d.ts.map +1 -0
  664. package/dist/lib/push/vapid.js +293 -0
  665. package/dist/lib/server/localhost-self-check.d.ts +203 -0
  666. package/dist/lib/server/localhost-self-check.d.ts.map +1 -0
  667. package/dist/lib/server/localhost-self-check.js +333 -0
  668. package/dist/server/locales/en/notifications.json +23 -1
  669. package/dist/server/locales/ja/notifications.json +23 -1
  670. package/dist/server/server.js +103 -0
  671. package/dist/server/src/config/image-extensions.js +244 -0
  672. package/dist/server/src/config/opencode-constants.js +69 -0
  673. package/dist/server/src/config/tmux-pane-config.js +100 -1
  674. package/dist/server/src/lib/cli-tools/base.js +33 -48
  675. package/dist/server/src/lib/cli-tools/opencode-config.js +12 -0
  676. package/dist/server/src/lib/cli-tools/opencode.js +435 -7
  677. package/dist/server/src/lib/cli-tools/start-availability.js +160 -0
  678. package/dist/server/src/lib/cmate-cli-tool-parser.js +328 -7
  679. package/dist/server/src/lib/cmate-parser.js +12 -0
  680. package/dist/server/src/lib/db/agent-instances-db.js +129 -0
  681. package/dist/server/src/lib/db/agent-session-cost-db.js +204 -0
  682. package/dist/server/src/lib/db/agent-session-cost-sampler.js +194 -0
  683. package/dist/server/src/lib/db/chat-db.js +33 -0
  684. package/dist/server/src/lib/db/db-instance.js +11 -0
  685. package/dist/server/src/lib/db/db.js +8 -3
  686. package/dist/server/src/lib/db/migrations/index.js +6 -0
  687. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  688. package/dist/server/src/lib/db/migrations/v57-push-subscription-defaults-notice.js +54 -0
  689. package/dist/server/src/lib/db/migrations/v58-agent-session-costs.js +100 -0
  690. package/dist/server/src/lib/db/migrations/v59-opencode-instance-settings.js +71 -0
  691. package/dist/server/src/lib/db/push-subscriptions-db.js +56 -5
  692. package/dist/server/src/lib/detection/cli-patterns.js +17 -6
  693. package/dist/server/src/lib/detection/excerpt.js +48 -0
  694. package/dist/server/src/lib/detection/model-info-extractor.js +26 -3
  695. package/dist/server/src/lib/detection/opencode-modal-overlay.js +400 -0
  696. package/dist/server/src/lib/detection/opencode-pane-obstruction.js +181 -0
  697. package/dist/server/src/lib/detection/status-detector.js +7 -0
  698. package/dist/server/src/lib/detection/status-reason.js +20 -0
  699. package/dist/server/src/lib/detection/terminal-columns.js +94 -0
  700. package/dist/server/src/lib/detection/tools/opencode/detect.js +43 -0
  701. package/dist/server/src/lib/detection/tools/opencode/prompt.js +20 -0
  702. package/dist/server/src/lib/detection/tools/verified-against.js +14 -3
  703. package/dist/server/src/lib/detection/upstream-faults.js +7 -22
  704. package/dist/server/src/lib/hooks/agent-session-telemetry.js +324 -0
  705. package/dist/server/src/lib/hooks/pending-decision-kind.js +72 -0
  706. package/dist/server/src/lib/hooks/sources/define-source.js +88 -0
  707. package/dist/server/src/lib/hooks/sources/opencode/client.js +907 -2
  708. package/dist/server/src/lib/hooks/sources/opencode/diff.js +336 -0
  709. package/dist/server/src/lib/hooks/sources/opencode/history.js +480 -0
  710. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +76 -7
  711. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +222 -0
  712. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +31 -0
  713. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +45 -0
  714. package/dist/server/src/lib/hooks/sources/opencode/ports.js +16 -0
  715. package/dist/server/src/lib/hooks/sources/opencode/push.js +307 -0
  716. package/dist/server/src/lib/hooks/sources/opencode/reattach.js +284 -0
  717. package/dist/server/src/lib/hooks/sources/opencode/runtime.js +165 -2
  718. package/dist/server/src/lib/hooks/sources/opencode/source.js +46 -2
  719. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +407 -4
  720. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +383 -0
  721. package/dist/server/src/lib/hooks/structured-decision-response.js +460 -0
  722. package/dist/server/src/lib/job-executor.js +43 -20
  723. package/dist/server/src/lib/polling/response-checker.js +43 -16
  724. package/dist/server/src/lib/polling/structured-history-gate.js +75 -0
  725. package/dist/server/src/lib/prompt-answer-sender.js +153 -2
  726. package/dist/server/src/lib/push/delivery-health.js +237 -0
  727. package/dist/server/src/lib/push/failure-push-notifier.js +109 -7
  728. package/dist/server/src/lib/push/index.js +25 -1
  729. package/dist/server/src/lib/push/prompt-card-state.js +254 -14
  730. package/dist/server/src/lib/push/push-sender.js +63 -12
  731. package/dist/server/src/lib/push/resolution-push-notifier.js +15 -3
  732. package/dist/server/src/lib/push/vapid.js +264 -5
  733. package/dist/server/src/lib/push/waiting-push-notifier.js +7 -0
  734. package/dist/server/src/lib/server/localhost-self-check.js +333 -0
  735. package/dist/server/src/lib/session/agent-event-state.js +169 -4
  736. package/dist/server/src/lib/session/claude-executor.js +152 -15
  737. package/dist/server/src/lib/session/current-output-builder.js +182 -15
  738. package/dist/server/src/lib/session/opencode-session-api.js +214 -0
  739. package/dist/server/src/lib/session/opencode-session-recall.js +168 -0
  740. package/dist/server/src/lib/session/opencode-session-store.js +274 -0
  741. package/dist/server/src/lib/session/provisional-turn.js +54 -1
  742. package/dist/server/src/lib/session/send-user-message.js +6 -5
  743. package/dist/server/src/lib/session/structured-prompt.js +53 -2
  744. package/dist/server/src/lib/skills/compatibility-matrix.js +50 -1
  745. package/dist/server/src/lib/tmux/tmux.js +74 -4
  746. package/dist/server/src/lib/verification/gate-runner.js +71 -8
  747. package/dist/server/src/types/agent-session.js +63 -0
  748. package/dist/server/src/types/agent-transcript.js +80 -0
  749. package/dist/server/src/types/opencode-export.js +228 -0
  750. package/dist/server/src/types/opencode-instance-settings.js +140 -0
  751. package/dist/server/src/types/opencode-share.js +111 -0
  752. package/dist/server/src/types/terminal-keys.js +69 -1
  753. package/dist/types/cli-tool-contracts.d.ts +48 -0
  754. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  755. package/dist/types/terminal-keys.d.ts +89 -0
  756. package/dist/types/terminal-keys.d.ts.map +1 -0
  757. package/dist/types/terminal-keys.js +105 -0
  758. package/package.json +1 -1
  759. package/.next/server/chunks/1029.js +0 -1
  760. package/.next/server/chunks/1239.js +0 -1
  761. package/.next/server/chunks/1538.js +0 -7
  762. package/.next/server/chunks/2546.js +0 -1
  763. package/.next/server/chunks/2689.js +0 -13
  764. package/.next/server/chunks/3292.js +0 -1
  765. package/.next/server/chunks/3417.js +0 -1
  766. package/.next/server/chunks/3736.js +0 -1
  767. package/.next/server/chunks/4423.js +0 -1
  768. package/.next/server/chunks/4444.js +0 -32
  769. package/.next/server/chunks/4565.js +0 -3
  770. package/.next/server/chunks/467.js +0 -1
  771. package/.next/server/chunks/4905.js +0 -5
  772. package/.next/server/chunks/552.js +0 -19
  773. package/.next/server/chunks/5998.js +0 -74
  774. package/.next/server/chunks/6919.js +0 -1
  775. package/.next/server/chunks/7970.js +0 -229
  776. package/.next/server/chunks/8536.js +0 -1
  777. package/.next/server/chunks/9284.js +0 -1
  778. package/.next/static/chunks/3361-5d6e93fba8a92bc1.js +0 -1
  779. package/.next/static/chunks/6381-b7250e8ca7a44c6c.js +0 -1
  780. package/.next/static/chunks/8521-c43994fb58501d13.js +0 -1
  781. package/.next/static/chunks/app/api/app/update/route-6add0d88e2828c23.js +0 -1
  782. package/.next/static/chunks/app/api/app/update-check/route-6add0d88e2828c23.js +0 -1
  783. package/.next/static/chunks/app/api/assistant/conversation/route-6add0d88e2828c23.js +0 -1
  784. package/.next/static/chunks/app/api/assistant/current-output/route-6add0d88e2828c23.js +0 -1
  785. package/.next/static/chunks/app/api/assistant/messages/route-6add0d88e2828c23.js +0 -1
  786. package/.next/static/chunks/app/api/assistant/session/route-6add0d88e2828c23.js +0 -1
  787. package/.next/static/chunks/app/api/assistant/start/route-6add0d88e2828c23.js +0 -1
  788. package/.next/static/chunks/app/api/assistant/terminal/route-6add0d88e2828c23.js +0 -1
  789. package/.next/static/chunks/app/api/assistant/tools/route-6add0d88e2828c23.js +0 -1
  790. package/.next/static/chunks/app/api/auth/login/route-6add0d88e2828c23.js +0 -1
  791. package/.next/static/chunks/app/api/auth/logout/route-6add0d88e2828c23.js +0 -1
  792. package/.next/static/chunks/app/api/auth/status/route-6add0d88e2828c23.js +0 -1
  793. package/.next/static/chunks/app/api/capabilities/route-6add0d88e2828c23.js +0 -1
  794. package/.next/static/chunks/app/api/daily-summary/route-6add0d88e2828c23.js +0 -1
  795. package/.next/static/chunks/app/api/daily-summary/status/route-6add0d88e2828c23.js +0 -1
  796. package/.next/static/chunks/app/api/external-apps/[id]/health/route-6add0d88e2828c23.js +0 -1
  797. package/.next/static/chunks/app/api/external-apps/[id]/route-6add0d88e2828c23.js +0 -1
  798. package/.next/static/chunks/app/api/external-apps/route-6add0d88e2828c23.js +0 -1
  799. package/.next/static/chunks/app/api/fs/browse/route-6add0d88e2828c23.js +0 -1
  800. package/.next/static/chunks/app/api/fs/recent-paths/route-6add0d88e2828c23.js +0 -1
  801. package/.next/static/chunks/app/api/hooks/agent-event/route-6add0d88e2828c23.js +0 -1
  802. package/.next/static/chunks/app/api/hooks/claude-done/route-6add0d88e2828c23.js +0 -1
  803. package/.next/static/chunks/app/api/hooks/permission-request/route-6add0d88e2828c23.js +0 -1
  804. package/.next/static/chunks/app/api/metrics/vibe/route-6add0d88e2828c23.js +0 -1
  805. package/.next/static/chunks/app/api/ollama/models/route-6add0d88e2828c23.js +0 -1
  806. package/.next/static/chunks/app/api/push/escalation/route-6add0d88e2828c23.js +0 -1
  807. package/.next/static/chunks/app/api/push/subscriptions/route-6add0d88e2828c23.js +0 -1
  808. package/.next/static/chunks/app/api/push/vapid/route-6add0d88e2828c23.js +0 -1
  809. package/.next/static/chunks/app/api/repositories/[id]/route-6add0d88e2828c23.js +0 -1
  810. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  811. package/.next/static/chunks/app/api/repositories/[id]/todos/route-6add0d88e2828c23.js +0 -1
  812. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-6add0d88e2828c23.js +0 -1
  813. package/.next/static/chunks/app/api/repositories/clone/route-6add0d88e2828c23.js +0 -1
  814. package/.next/static/chunks/app/api/repositories/excluded/route-6add0d88e2828c23.js +0 -1
  815. package/.next/static/chunks/app/api/repositories/restore/route-6add0d88e2828c23.js +0 -1
  816. package/.next/static/chunks/app/api/repositories/route-6add0d88e2828c23.js +0 -1
  817. package/.next/static/chunks/app/api/repositories/scan/route-6add0d88e2828c23.js +0 -1
  818. package/.next/static/chunks/app/api/repositories/sync/route-6add0d88e2828c23.js +0 -1
  819. package/.next/static/chunks/app/api/repositories/validate-path/route-6add0d88e2828c23.js +0 -1
  820. package/.next/static/chunks/app/api/sidebar/group-order/route-6add0d88e2828c23.js +0 -1
  821. package/.next/static/chunks/app/api/skills/[id]/route-6add0d88e2828c23.js +0 -1
  822. package/.next/static/chunks/app/api/skills/installations/route-6add0d88e2828c23.js +0 -1
  823. package/.next/static/chunks/app/api/skills/operations/route-6add0d88e2828c23.js +0 -1
  824. package/.next/static/chunks/app/api/skills/reindex/route-6add0d88e2828c23.js +0 -1
  825. package/.next/static/chunks/app/api/skills/route-6add0d88e2828c23.js +0 -1
  826. package/.next/static/chunks/app/api/slash-commands/route-6add0d88e2828c23.js +0 -1
  827. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-6add0d88e2828c23.js +0 -1
  828. package/.next/static/chunks/app/api/tasks/[taskId]/route-6add0d88e2828c23.js +0 -1
  829. package/.next/static/chunks/app/api/templates/[id]/route-6add0d88e2828c23.js +0 -1
  830. package/.next/static/chunks/app/api/templates/route-6add0d88e2828c23.js +0 -1
  831. package/.next/static/chunks/app/api/todos/route-6add0d88e2828c23.js +0 -1
  832. package/.next/static/chunks/app/api/verification/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  833. package/.next/static/chunks/app/api/verification/runs/route-6add0d88e2828c23.js +0 -1
  834. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-6add0d88e2828c23.js +0 -1
  835. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-6add0d88e2828c23.js +0 -1
  836. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-6add0d88e2828c23.js +0 -1
  837. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-6add0d88e2828c23.js +0 -1
  838. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-6add0d88e2828c23.js +0 -1
  839. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-6add0d88e2828c23.js +0 -1
  840. package/.next/static/chunks/app/api/worktrees/[id]/env/route-6add0d88e2828c23.js +0 -1
  841. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-6add0d88e2828c23.js +0 -1
  842. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-6add0d88e2828c23.js +0 -1
  843. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-6add0d88e2828c23.js +0 -1
  844. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-6add0d88e2828c23.js +0 -1
  845. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-6add0d88e2828c23.js +0 -1
  846. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-6add0d88e2828c23.js +0 -1
  847. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-6add0d88e2828c23.js +0 -1
  848. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-6add0d88e2828c23.js +0 -1
  849. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-6add0d88e2828c23.js +0 -1
  850. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-6add0d88e2828c23.js +0 -1
  851. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-6add0d88e2828c23.js +0 -1
  852. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-6add0d88e2828c23.js +0 -1
  853. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-6add0d88e2828c23.js +0 -1
  854. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-6add0d88e2828c23.js +0 -1
  855. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-6add0d88e2828c23.js +0 -1
  856. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-6add0d88e2828c23.js +0 -1
  857. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-6add0d88e2828c23.js +0 -1
  858. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-6add0d88e2828c23.js +0 -1
  859. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-6add0d88e2828c23.js +0 -1
  860. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-6add0d88e2828c23.js +0 -1
  861. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-6add0d88e2828c23.js +0 -1
  862. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-6add0d88e2828c23.js +0 -1
  863. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-6add0d88e2828c23.js +0 -1
  864. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-6add0d88e2828c23.js +0 -1
  865. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-6add0d88e2828c23.js +0 -1
  866. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-6add0d88e2828c23.js +0 -1
  867. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-6add0d88e2828c23.js +0 -1
  868. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-6add0d88e2828c23.js +0 -1
  869. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-6add0d88e2828c23.js +0 -1
  870. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-6add0d88e2828c23.js +0 -1
  871. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-6add0d88e2828c23.js +0 -1
  872. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-6add0d88e2828c23.js +0 -1
  873. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-6add0d88e2828c23.js +0 -1
  874. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-6add0d88e2828c23.js +0 -1
  875. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-6add0d88e2828c23.js +0 -1
  876. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-6add0d88e2828c23.js +0 -1
  877. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-6add0d88e2828c23.js +0 -1
  878. package/.next/static/chunks/app/api/worktrees/[id]/route-6add0d88e2828c23.js +0 -1
  879. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-6add0d88e2828c23.js +0 -1
  880. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-6add0d88e2828c23.js +0 -1
  881. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-6add0d88e2828c23.js +0 -1
  882. package/.next/static/chunks/app/api/worktrees/[id]/search/route-6add0d88e2828c23.js +0 -1
  883. package/.next/static/chunks/app/api/worktrees/[id]/send/route-6add0d88e2828c23.js +0 -1
  884. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-6add0d88e2828c23.js +0 -1
  885. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-6add0d88e2828c23.js +0 -1
  886. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-6add0d88e2828c23.js +0 -1
  887. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-6add0d88e2828c23.js +0 -1
  888. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-6add0d88e2828c23.js +0 -1
  889. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-6add0d88e2828c23.js +0 -1
  890. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-6add0d88e2828c23.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-6add0d88e2828c23.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-6add0d88e2828c23.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-6add0d88e2828c23.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-6add0d88e2828c23.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-6add0d88e2828c23.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-6add0d88e2828c23.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-6add0d88e2828c23.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-6add0d88e2828c23.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-6add0d88e2828c23.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-6add0d88e2828c23.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-6add0d88e2828c23.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-6add0d88e2828c23.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-6add0d88e2828c23.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-6add0d88e2828c23.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-6add0d88e2828c23.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/route-6add0d88e2828c23.js +0 -1
  909. package/.next/static/chunks/app/manifest.webmanifest/route-6add0d88e2828c23.js +0 -1
  910. package/.next/static/chunks/app/more/page-3266dfa945972649.js +0 -1
  911. package/.next/static/chunks/app/proxy/[...path]/route-6add0d88e2828c23.js +0 -1
  912. package/.next/static/chunks/app/review/page-8f63aff862fee421.js +0 -1
  913. package/.next/static/chunks/app/worktrees/[id]/layout-6add0d88e2828c23.js +0 -1
  914. package/.next/static/chunks/app/worktrees/[id]/page-e4f28966b4fc0ce1.js +0 -1
  915. package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +0 -1
  916. package/.next/static/css/928e5a8830fbf997.css +0 -1
  917. /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_buildManifest.js +0 -0
  918. /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=5017,exports.ids=[5017],exports.modules={45017:(a,b,c)=>{c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>B,bZ:()=>C,W8:()=>d.W8,W5:()=>I,_i:()=>J,_C:()=>K});var d=c(24455),e=c(31766),f=c(26895),g=c(75498),h=c(91318),i=c(52277),j=c(74258),k=c(19515);let l=["enforce","legacy"],m={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy"};var n=c(52767),o=c(88807),p=c(52660),q=c(63869),r=c(94565),s=c(85164),t=c(77093),u=c(93997),v=c(68901),w=c(72626),x=c(66007);let y=(0,w.h)("auto-yes-poller"),z=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function A(a){return z.get(a)}function B(a){let b=A(a);return b?.lastServerResponseTimestamp??null}function C(a){return z.has(a)}function D(a){let b=A(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=v.ul)){let b=(0,d.Ue)(a),c=(0,d.pL)(a);c&&(0,d.XK)(b,c,"consecutive_errors",(0,d.GE)(a)??void 0),J(a)}}async function E(a,b,c,d){let f=c??v.FW,g=await (0,e.Wh)(a,b,f,d);return(0,s._A)((0,s.aJ)(g))}async function F(a,b,e,v,w,x){let z=(0,d.v7)(a,e,x);try{let D=(0,s.KO)(e),E=(0,f.gF)(v,{...D,...w&&{precomputedLines:w}});if(!E.isPrompt||!E.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let F=(B=E.promptData,`${B.type}:${B.question}`);if(b.lastAnsweredPromptKey===F&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let G="codex"===e?(0,s.E6)(v):null;if(G)return(0,i.ZS)(a,e,x,{reason:"agent-launch-dialog",mode:null,promptType:E.promptData.type}),y.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:x,dialog:G,promptType:E.promptData.type}),"no_answer";let H=function(a,b,c,d=process.env){let e=(0,k.bN)(a),f=function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let g=c.trim(),h=f.trim();l.includes(h)&&("*"===g?d=h:g===a&&(e=h))}return e??d??m[a]??"legacy"}(a,d);if("multiple_choice"!==b||!e.hasDialogRules||"legacy"===f)return{allowed:!0,dialog:null,mode:f,gated:!1};let g=e.detectDialog((0,j.z)(c));return{allowed:null!==g&&"numbered"===g.answerMode,dialog:g,mode:f,gated:!0}}(e,E.promptData.type,v);if(!H.allowed)return(0,i.ZS)(a,e,x,{reason:"unclassified-frame",mode:null,promptType:E.promptData.type}),y.warn("poller:auto-yes-skipped-unclassified-frame",{worktreeId:a,cliToolId:e,instanceId:x,promptType:E.promptData.type,dialogKind:H.dialog?.kind??null,answerMode:H.dialog?.answerMode??null,gateMode:H.mode}),"no_answer";let I=(0,h.n)(a,e,x),J=(0,g.sD)(E.promptData,I);J.suppressedBy&&((0,i.ZS)(a,e,x,{reason:J.suppressedBy,mode:I?.mode??null,promptType:E.promptData.type,pattern:J.pattern}),y.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:x,reason:J.suppressedBy,mode:I?.mode??null,pattern:J.pattern,promptType:E.promptData.type}));let K=J.answer;if(null===K)return"no_answer";let L=r.s.getInstance().getTool(e).getSessionName(a,x);try{await (0,q.t)({sessionName:L,answer:K,cliToolId:e,promptData:E.promptData})}finally{(0,u.gm)(L)}var B,C=Date.now();let M=A(z);M&&(M.lastServerResponseTimestamp=C);let N=A(z);N&&(N.consecutiveErrors=0,N.currentInterval=d.ps),b.lastAnsweredPromptKey=F,b.lastAnsweredAt=Date.now(),y.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:x}),(0,n.r)((0,o.getDbInstance)(),a,e,x??e,"prompt_answered_auto",{promptType:E.promptData.type});let O=null;try{O=(0,p.pG)((0,o.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:x??e,promptData:E.promptData,answer:K,answeredBy:"auto",content:E.rawContent||E.cleanContent})}catch(b){y.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:x,error:(0,t.u1)(b)})}if(O){let b=O;Promise.all([c.e(1503),c.e(1719),c.e(2759)]).then(c.bind(c,95620)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:P},{broadcastTerminalSnapshotAfterInteraction:Q}]=await Promise.all([Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1719),c.e(3480),c.e(2759),c.e(7472),c.e(467),c.e(1601),c.e(552),c.e(2839)]).then(c.bind(c,95220)),Promise.all([c.e(1503),c.e(1719),c.e(2759),c.e(7472),c.e(467),c.e(9508)]).then(c.bind(c,99508))]);return P(a,e,x),Q(a,e,x),"responded"}catch{return D(z),y.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:x}),"error"}}async function G(a,b,c){let e=(0,d.v7)(a,b,c),f=A(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return J(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(J(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?v.FW:v.Ke,i=await E(a,b,h,c),j=i.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,(0,d.Cs)(a,f,J)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,i))return;let k=await F(a,f,b,i,j,c);if("responded"===k)return void H(a,b,c,d.ZO);if("no_prompt"===k){let e=j.slice(-d.Re).join("\n");if((0,s.ut)(b,e))return void H(a,b,c,v.QN)}}catch(d){D(e),y.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,t.u1)(d)})}H(a,b,c)}}function H(a,b,c,e){let f=A((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{G(a,b,c)},g)}function I(a,b,c){if(!(0,x.h6)(a))return{started:!1,reason:"invalid worktree ID"};let e=c??b,f=(0,d.aq)(a,b,e);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=(0,d.v7)(a,b,e),i=A(g);if(!i&&z.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&J(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return z.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{G(a,b,e)},d.ps),y.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function J(a){let b=A(a);b&&(b.timerId&&clearTimeout(b.timerId),z.delete(a),(0,h.ie)(a),y.info("poller:stopped",{compositeKey:a}))}function K(a){(0,d._9)(Array.from(z.keys()),a).forEach(a=>J(a))}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},63869:(a,b,c)=>{c.d(b,{t:()=>j});var d=c(69785),e=c(81254),f=c(93997),g=c(20610);let h=/^\[[ x]\] /;function i(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function j(a){let{sessionName:b,answer:c,cliToolId:j,promptData:k,fallbackPromptType:l,fallbackDefaultOptionNumber:m}=a;if(("claude"===j||"antigravity"===j)&&(k?.type==="multiple_choice"||"multiple_choice"===l)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),f=null;if(k?.type==="multiple_choice"){let b=(f=k.options).find(a=>a.isDefault);a=b?.number??1}else a=m??1;let g=e-a;if(null!==f&&f.some(a=>h.test(a.label))&&null!==f){let a=f.filter(a=>h.test(a.label)).length,c=[...i(g),"Space"];c.push(...i(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=i(g),c=k?.type==="multiple_choice"&&!0===k.isAskUserQuestion&&0===g?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let f=function(a){let b=(a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0)??a.fallbackSubmitMode??"answer_then_enter";return(0,e.MI)(b)?b:"answer_then_enter"}(a);"answer_only"===f&&(a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,g.pL)),await (0,d.V1)(b,"",!0))}(0,f.gm)(b)}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}}};
1
+ "use strict";exports.id=5017,exports.ids=[5017],exports.modules={45017:(a,b,c)=>{c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>B,bZ:()=>C,W8:()=>d.W8,W5:()=>I,_i:()=>J,_C:()=>K});var d=c(24455),e=c(31766),f=c(26895),g=c(75498),h=c(91318),i=c(52277),j=c(74258),k=c(32759);let l=["enforce","legacy"],m={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy"};var n=c(52767),o=c(88807),p=c(52660),q=c(63869),r=c(59701),s=c(85164),t=c(77093),u=c(93997),v=c(68901),w=c(72626),x=c(66007);let y=(0,w.h)("auto-yes-poller"),z=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function A(a){return z.get(a)}function B(a){let b=A(a);return b?.lastServerResponseTimestamp??null}function C(a){return z.has(a)}function D(a){let b=A(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=v.ul)){let b=(0,d.Ue)(a),c=(0,d.pL)(a);c&&(0,d.XK)(b,c,"consecutive_errors",(0,d.GE)(a)??void 0),J(a)}}async function E(a,b,c,d){let f=c??v.FW,g=await (0,e.Wh)(a,b,f,d);return(0,s._A)((0,s.aJ)(g))}async function F(a,b,e,v,w,x){let z=(0,d.v7)(a,e,x);try{let D=(0,s.KO)(e),E=(0,f.gF)(v,{...D,...w&&{precomputedLines:w}});if(!E.isPrompt||!E.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let F=(B=E.promptData,`${B.type}:${B.question}`);if(b.lastAnsweredPromptKey===F&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let G="codex"===e?(0,s.E6)(v):null;if(G)return(0,i.ZS)(a,e,x,{reason:"agent-launch-dialog",mode:null,promptType:E.promptData.type}),y.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:x,dialog:G,promptType:E.promptData.type}),"no_answer";let H=function(a,b,c,d=process.env){let e=(0,k.bN)(a),f=function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let g=c.trim(),h=f.trim();l.includes(h)&&("*"===g?d=h:g===a&&(e=h))}return e??d??m[a]??"legacy"}(a,d);if("multiple_choice"!==b||!e.hasDialogRules||"legacy"===f)return{allowed:!0,dialog:null,mode:f,gated:!1};let g=e.detectDialog((0,j.z)(c));return{allowed:null!==g&&"numbered"===g.answerMode,dialog:g,mode:f,gated:!0}}(e,E.promptData.type,v);if(!H.allowed)return(0,i.ZS)(a,e,x,{reason:"unclassified-frame",mode:null,promptType:E.promptData.type}),y.warn("poller:auto-yes-skipped-unclassified-frame",{worktreeId:a,cliToolId:e,instanceId:x,promptType:E.promptData.type,dialogKind:H.dialog?.kind??null,answerMode:H.dialog?.answerMode??null,gateMode:H.mode}),"no_answer";let I=(0,h.n)(a,e,x),J=(0,g.sD)(E.promptData,I);J.suppressedBy&&((0,i.ZS)(a,e,x,{reason:J.suppressedBy,mode:I?.mode??null,promptType:E.promptData.type,pattern:J.pattern}),y.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:x,reason:J.suppressedBy,mode:I?.mode??null,pattern:J.pattern,promptType:E.promptData.type}));let K=J.answer;if(null===K)return"no_answer";let L=r.CLIToolManager.getInstance().getTool(e).getSessionName(a,x);try{await (0,q.tV)({sessionName:L,answer:K,cliToolId:e,promptData:E.promptData})}finally{(0,u.gm)(L)}var B,C=Date.now();let M=A(z);M&&(M.lastServerResponseTimestamp=C);let N=A(z);N&&(N.consecutiveErrors=0,N.currentInterval=d.ps),b.lastAnsweredPromptKey=F,b.lastAnsweredAt=Date.now(),y.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:x}),(0,n.r)((0,o.getDbInstance)(),a,e,x??e,"prompt_answered_auto",{promptType:E.promptData.type});let O=null;try{O=(0,p.pG)((0,o.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:x??e,promptData:E.promptData,answer:K,answeredBy:"auto",content:E.rawContent||E.cleanContent})}catch(b){y.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:x,error:(0,t.u1)(b)})}if(O){let b=O;Promise.all([c.e(1503),c.e(1719),c.e(2759)]).then(c.bind(c,95620)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:P},{broadcastTerminalSnapshotAfterInteraction:Q}]=await Promise.all([Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1719),c.e(1191),c.e(6337),c.e(2759),c.e(7472),c.e(1058),c.e(1601),c.e(221),c.e(2839)]).then(c.bind(c,95220)),Promise.all([c.e(1503),c.e(1719),c.e(2759),c.e(7472),c.e(1058),c.e(9508)]).then(c.bind(c,99508))]);return P(a,e,x),Q(a,e,x),"responded"}catch{return D(z),y.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:x}),"error"}}async function G(a,b,c){let e=(0,d.v7)(a,b,c),f=A(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return J(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(J(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?v.FW:v.Ke,i=await E(a,b,h,c),j=i.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,(0,d.Cs)(a,f,J)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,i))return;let k=await F(a,f,b,i,j,c);if("responded"===k)return void H(a,b,c,d.ZO);if("no_prompt"===k){let e=j.slice(-d.Re).join("\n");if((0,s.ut)(b,e))return void H(a,b,c,v.QN)}}catch(d){D(e),y.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,t.u1)(d)})}H(a,b,c)}}function H(a,b,c,e){let f=A((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{G(a,b,c)},g)}function I(a,b,c){if(!(0,x.h6)(a))return{started:!1,reason:"invalid worktree ID"};let e=c??b,f=(0,d.aq)(a,b,e);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=(0,d.v7)(a,b,e),i=A(g);if(!i&&z.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&J(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return z.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{G(a,b,e)},d.ps),y.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function J(a){let b=A(a);b&&(b.timerId&&clearTimeout(b.timerId),z.delete(a),(0,h.ie)(a),y.info("poller:stopped",{compositeKey:a}))}function K(a){(0,d._9)(Array.from(z.keys()),a).forEach(a=>J(a))}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},63869:(a,b,c)=>{c.d(b,{Pw:()=>l,tV:()=>p});var d=c(79892),e=c(74258),f=c(32759),g=c(81254),h=c(93997),i=c(20610);let j=/^\[[ x]\] /,k="answer_mode_keys";class l extends Error{constructor(a,b,c){super(`Refused to send "${b}" to ${a}: its ${c.kind} dialog takes '${c.answerMode}' input, not a typed number (${k}). The digit would be swallowed and the Enter after it would confirm whatever is highlighted. Nothing was sent.`),this.name="PromptAnswerRejectedError",this.reason=k,this.dialogKind=c.kind,this.answerMode=c.answerMode}}async function m(a){if(void 0!==a.frame)return a.frame;try{return await (0,d.Xg)(a.sessionName,200)}catch{return null}}async function n(a){if(!/^\d+$/.test(a.answer))return;let b=(0,f.bN)(a.cliToolId);if(!b.hasDialogRules)return;let c=await m(a);if(null===c)return;let d=b.detectDialog((0,e.z)(c));if(null!==d&&"numbered"!==d.answerMode)throw new l(a.cliToolId,a.answer,d)}function o(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function p(a){let{sessionName:b,answer:c,cliToolId:e,promptData:f,fallbackPromptType:k,fallbackDefaultOptionNumber:l}=a;if(await n(a),("claude"===e||"antigravity"===e)&&(f?.type==="multiple_choice"||"multiple_choice"===k)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),g=null;if(f?.type==="multiple_choice"){let b=(g=f.options).find(a=>a.isDefault);a=b?.number??1}else a=l??1;let h=e-a;if(null!==g&&g.some(a=>j.test(a.label))&&null!==g){let a=g.filter(a=>j.test(a.label)).length,c=[...o(h),"Space"];c.push(...o(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=o(h),c=f?.type==="multiple_choice"&&!0===f.isAskUserQuestion&&0===h?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let e=function(a){let b=(a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0)??a.fallbackSubmitMode??"answer_then_enter";return(0,g.MI)(b)?b:"answer_then_enter"}(a);"answer_only"===e&&(a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,i.pL)),await (0,d.V1)(b,"",!0))}(0,h.gm)(b)}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=5089,exports.ids=[5089],exports.modules={10290:(a,b,c)=>{c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,mB:()=>r,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6;f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c})).displayName="DropdownMenuLabel";let r=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));r.displayName="DropdownMenuSeparator"},22317:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},30430:(a,b,c)=>{c.d(b,{j:()=>i,p:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(26691),h=c(35595);let i=(0,g.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),j=f().forwardRef(({className:a,inputSize:b,type:c="text",...e},f)=>(0,d.jsx)("input",{ref:f,type:c,className:(0,h.cn)(i({inputSize:b}),a),...e}));j.displayName="Input"},31210:(a,b,c)=>{c.d(b,{Wu:()=>k,ZB:()=>j,Zp:()=>h,aR:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function h({variant:a="default",hover:b=!1,interactive:c=!1,padding:e="md",className:h="",children:i,...j}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:a,hover:b,interactive:c,padding:e}),h),...j,children:i})}function i({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)("mb-3",a),...c,children:b})}function j({className:a="",children:b,...c}){return(0,d.jsx)("h3",{className:(0,f.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function k({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(a),...c,children:b})}},35089:(a,b,c)=>{c.d(b,{Ex:()=>f.E,$n:()=>d.$,Zp:()=>e.Zp,Wu:()=>e.Wu,aR:()=>e.aR,ZB:()=>e.ZB,Sc:()=>v,TM:()=>i.TM,pd:()=>j.p,Jh:()=>h.a,z6:()=>y,CU:()=>z,l6:()=>K,gC:()=>N,eb:()=>O,bq:()=>M,yv:()=>L,EA:()=>l.E,y$:()=>m.y,md:()=>g.m,dO:()=>n.d,tU:()=>C,av:()=>F,j7:()=>D,Xi:()=>E,k_:()=>k.T,j1:()=>j.j});var d=c(94260),e=c(31210),f=c(80755),g=c(22317),h=c(98033),i=c(79782),j=c(30430),k=c(73790),l=c(79689),m=c(17793),n=c(74892),o=c(21124),p=c(38301),q=c.n(p),r=c(89339),s=c(51881),t=c(71613),u=c(35595);let v=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(r.bL,{ref:c,className:(0,u.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,o.jsx)(r.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,o.jsx)(s.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,o.jsx)(t.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));v.displayName="Checkbox";var w=c(64450),x=c(90133);let y=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(w.bL,{ref:c,className:(0,u.cn)("grid gap-2",a),...b}));y.displayName="RadioGroup";let z=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(w.q7,{ref:c,className:(0,u.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,o.jsx)(w.C1,{className:"flex items-center justify-center",children:(0,o.jsx)(x.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));z.displayName="RadioGroupItem";var A=c(89989);let B=q().createContext("underline"),C=q().forwardRef(({variant:a="underline",...b},c)=>(0,o.jsx)(B.Provider,{value:a,children:(0,o.jsx)(A.bL,{ref:c,...b})}));C.displayName="Tabs";let D=q().forwardRef(({className:a,...b},c)=>{let d=q().useContext(B);return(0,o.jsx)(A.B8,{ref:c,className:(0,u.cn)("inline-flex items-center","pill"===d?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});D.displayName="TabsList";let E=q().forwardRef(({className:a,...b},c)=>{let d=q().useContext(B);return(0,o.jsx)(A.l9,{ref:c,className:(0,u.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===d?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});E.displayName="TabsTrigger";let F=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(A.UC,{ref:c,className:(0,u.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));F.displayName="TabsContent";var G=c(39567),H=c(85351),I=c(82042),J=c(11010);let K=G.bL;G.YJ;let L=G.WT,M=q().forwardRef(({className:a,children:b,...c},d)=>(0,o.jsxs)(G.l9,{ref:d,className:(0,u.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,o.jsx)(G.In,{asChild:!0,children:(0,o.jsx)(H.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));M.displayName="SelectTrigger";let N=q().forwardRef(({className:a,children:b,position:c="popper",...d},e)=>(0,o.jsx)(G.ZL,{children:(0,o.jsxs)(G.UC,{ref:e,position:c,style:{zIndex:J.M.POPOVER},className:(0,u.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,o.jsx)(G.PP,{className:"flex h-6 items-center justify-center",children:(0,o.jsx)(I.A,{size:16,"aria-hidden":"true"})}),(0,o.jsx)(G.LM,{className:(0,u.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,o.jsx)(G.wn,{className:"flex h-6 items-center justify-center",children:(0,o.jsx)(H.A,{size:16,"aria-hidden":"true"})})]})}));N.displayName="SelectContent",q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(G.JU,{ref:c,className:(0,u.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let O=q().forwardRef(({className:a,children:b,...c},d)=>(0,o.jsxs)(G.q7,{ref:d,className:(0,u.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,o.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,o.jsx)(G.VF,{children:(0,o.jsx)(t.A,{size:16,"aria-hidden":"true"})})}),(0,o.jsx)(G.p4,{children:b})]}));O.displayName="SelectItem",q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(G.wv,{ref:c,className:(0,u.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var P=c(16992);P.Kq,P.bL,P.l9,q().forwardRef(({className:a,sideOffset:b=4,children:c,...d},e)=>(0,o.jsx)(P.ZL,{children:(0,o.jsxs)(P.UC,{ref:e,sideOffset:b,style:{zIndex:J.M.POPOVER},className:(0,u.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,o.jsx)(P.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},73790:(a,b,c)=>{c.d(b,{T:()=>h});var d=c(21124),e=c(38301),f=c.n(e),g=c(35595);let h=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)("textarea",{ref:c,className:(0,g.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));h.displayName="Textarea"},74892:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},79689:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},80755:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},85647:(a,b,c)=>{c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}}};
1
+ "use strict";exports.id=5089,exports.ids=[5089],exports.modules={10290:(a,b,c)=>{c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,mB:()=>r,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6;f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c})).displayName="DropdownMenuLabel";let r=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));r.displayName="DropdownMenuSeparator"},22317:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},30430:(a,b,c)=>{c.d(b,{j:()=>i,p:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(26691),h=c(35595);let i=(0,g.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),j=f().forwardRef(({className:a,inputSize:b,type:c="text",...e},f)=>(0,d.jsx)("input",{ref:f,type:c,className:(0,h.cn)(i({inputSize:b}),a),...e}));j.displayName="Input"},31210:(a,b,c)=>{c.d(b,{Wu:()=>k,ZB:()=>j,Zp:()=>h,aR:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function h({variant:a="default",hover:b=!1,interactive:c=!1,padding:e="md",className:h="",children:i,...j}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:a,hover:b,interactive:c,padding:e}),h),...j,children:i})}function i({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)("mb-3",a),...c,children:b})}function j({className:a="",children:b,...c}){return(0,d.jsx)("h3",{className:(0,f.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function k({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(a),...c,children:b})}},35089:(a,b,c)=>{c.d(b,{Ex:()=>f.E,$n:()=>d.$,Zp:()=>e.Zp,Wu:()=>e.Wu,aR:()=>e.aR,ZB:()=>e.ZB,Sc:()=>v,TM:()=>i.TM,pd:()=>j.p,Jh:()=>h.a,z6:()=>y,CU:()=>z,l6:()=>K,gC:()=>N,eb:()=>O,bq:()=>M,yv:()=>L,EA:()=>l.E,y$:()=>m.y,md:()=>g.m,dO:()=>n.d,tU:()=>C,av:()=>F,j7:()=>D,Xi:()=>E,k_:()=>k.T,j1:()=>j.j,SC:()=>i.SC});var d=c(94260),e=c(31210),f=c(80755),g=c(22317),h=c(98033),i=c(79782),j=c(30430),k=c(73790),l=c(79689),m=c(17793),n=c(74892),o=c(21124),p=c(38301),q=c.n(p),r=c(89339),s=c(51881),t=c(71613),u=c(35595);let v=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(r.bL,{ref:c,className:(0,u.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,o.jsx)(r.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,o.jsx)(s.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,o.jsx)(t.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));v.displayName="Checkbox";var w=c(64450),x=c(90133);let y=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(w.bL,{ref:c,className:(0,u.cn)("grid gap-2",a),...b}));y.displayName="RadioGroup";let z=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(w.q7,{ref:c,className:(0,u.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,o.jsx)(w.C1,{className:"flex items-center justify-center",children:(0,o.jsx)(x.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));z.displayName="RadioGroupItem";var A=c(89989);let B=q().createContext("underline"),C=q().forwardRef(({variant:a="underline",...b},c)=>(0,o.jsx)(B.Provider,{value:a,children:(0,o.jsx)(A.bL,{ref:c,...b})}));C.displayName="Tabs";let D=q().forwardRef(({className:a,...b},c)=>{let d=q().useContext(B);return(0,o.jsx)(A.B8,{ref:c,className:(0,u.cn)("inline-flex items-center","pill"===d?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});D.displayName="TabsList";let E=q().forwardRef(({className:a,...b},c)=>{let d=q().useContext(B);return(0,o.jsx)(A.l9,{ref:c,className:(0,u.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===d?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});E.displayName="TabsTrigger";let F=q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(A.UC,{ref:c,className:(0,u.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));F.displayName="TabsContent";var G=c(39567),H=c(85351),I=c(82042),J=c(11010);let K=G.bL;G.YJ;let L=G.WT,M=q().forwardRef(({className:a,children:b,...c},d)=>(0,o.jsxs)(G.l9,{ref:d,className:(0,u.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,o.jsx)(G.In,{asChild:!0,children:(0,o.jsx)(H.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));M.displayName="SelectTrigger";let N=q().forwardRef(({className:a,children:b,position:c="popper",...d},e)=>(0,o.jsx)(G.ZL,{children:(0,o.jsxs)(G.UC,{ref:e,position:c,style:{zIndex:J.M.POPOVER},className:(0,u.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,o.jsx)(G.PP,{className:"flex h-6 items-center justify-center",children:(0,o.jsx)(I.A,{size:16,"aria-hidden":"true"})}),(0,o.jsx)(G.LM,{className:(0,u.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,o.jsx)(G.wn,{className:"flex h-6 items-center justify-center",children:(0,o.jsx)(H.A,{size:16,"aria-hidden":"true"})})]})}));N.displayName="SelectContent",q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(G.JU,{ref:c,className:(0,u.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let O=q().forwardRef(({className:a,children:b,...c},d)=>(0,o.jsxs)(G.q7,{ref:d,className:(0,u.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,o.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,o.jsx)(G.VF,{children:(0,o.jsx)(t.A,{size:16,"aria-hidden":"true"})})}),(0,o.jsx)(G.p4,{children:b})]}));O.displayName="SelectItem",q().forwardRef(({className:a,...b},c)=>(0,o.jsx)(G.wv,{ref:c,className:(0,u.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var P=c(16992);P.Kq,P.bL,P.l9,q().forwardRef(({className:a,sideOffset:b=4,children:c,...d},e)=>(0,o.jsx)(P.ZL,{children:(0,o.jsxs)(P.UC,{ref:e,sideOffset:b,style:{zIndex:J.M.POPOVER},className:(0,u.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,o.jsx)(P.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},73790:(a,b,c)=>{c.d(b,{T:()=>h});var d=c(21124),e=c(38301),f=c.n(e),g=c(35595);let h=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)("textarea",{ref:c,className:(0,g.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));h.displayName="Textarea"},74892:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},79689:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},80755:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},85647:(a,b,c)=>{c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}}};
@@ -1 +1 @@
1
- "use strict";exports.id=5354,exports.ids=[5354],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(18698),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},93813:(a,b,c)=>{c.d(b,{B1:()=>m,Bx:()=>i,Nc:()=>h,b1:()=>g,ef:()=>n,gZ:()=>k,lp:()=>l});var d=c(79748),e=c(33873);let f=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],g={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function h(a,b){if(b===a)return!0;if(b.startsWith("*.")){let c=b.slice(1);if(a.endsWith(c))return!0}if(b.endsWith(".*")){let c=b.slice(0,-2);if(a.startsWith(c+"."))return!0}return!1}function i(a){return f.some(b=>h(a,b))}async function j(a){try{return(await (0,d.readdir)(a)).filter(a=>!i(a)).length}catch{return 0}}async function k(a,b=""){let c,f=b?(0,e.join)(a,b):a;try{c=await (0,d.stat)(f)}catch{throw Error(`Directory not found: ${b||"(root)"}`)}if(!c.isDirectory())throw Error(`Path is not a directory: ${b}`);let h=await (0,d.readdir)(f),l=[];for(let a of h){if(i(a))continue;let b=(0,e.join)(f,a);try{let c=await (0,d.lstat)(b);if(c.isSymbolicLink())continue;if(c.isDirectory()){let c=await j(b);l.push({name:a,type:"directory",itemCount:c})}else if(c.isFile()){let b=(0,e.extname)(a),d={name:a,type:"file",size:c.size,birthtime:c.birthtime.toISOString(),mtime:c.mtime.toISOString()};b&&b.length>1&&(d.extension=b.slice(1)),l.push(d)}}catch{continue}if(l.length>=g.MAX_ITEMS_PER_DIR)break}let m=[...l].sort((a,b)=>a.type!==b.type?"directory"===a.type?-1:1:a.name.toLowerCase().localeCompare(b.name.toLowerCase())),n=null;if(b){let a=(0,e.dirname)(b);n="."===a?"":a}return{path:b,name:b?(0,e.basename)(b):"",items:m,parentPath:n}}function l(a){let b=a instanceof Error?a.message:"Unknown error";return b.includes("not found")?{error:"Directory not found",status:404}:b.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function m(a){return{error:`Worktree '${a}' not found`,status:404}}function n(a="Invalid path"){return{error:`Access denied: ${a}`,status:403}}},95736:(a,b,c)=>{a.exports=c(44870)}};
1
+ "use strict";exports.id=5354,exports.ids=[5354],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(27727),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},93813:(a,b,c)=>{c.d(b,{B1:()=>m,Bx:()=>i,Nc:()=>h,b1:()=>g,ef:()=>n,gZ:()=>k,lp:()=>l});var d=c(79748),e=c(33873);let f=[".git",".env",".env.*","node_modules",".DS_Store","Thumbs.db","*.pem","*.key",".env.local",".env.development",".env.production",".env.test"],g={MAX_ITEMS_PER_DIR:500,MAX_DEPTH:10,MAX_FILE_SIZE_PREVIEW:1048576};function h(a,b){if(b===a)return!0;if(b.startsWith("*.")){let c=b.slice(1);if(a.endsWith(c))return!0}if(b.endsWith(".*")){let c=b.slice(0,-2);if(a.startsWith(c+"."))return!0}return!1}function i(a){return f.some(b=>h(a,b))}async function j(a){try{return(await (0,d.readdir)(a)).filter(a=>!i(a)).length}catch{return 0}}async function k(a,b=""){let c,f=b?(0,e.join)(a,b):a;try{c=await (0,d.stat)(f)}catch{throw Error(`Directory not found: ${b||"(root)"}`)}if(!c.isDirectory())throw Error(`Path is not a directory: ${b}`);let h=await (0,d.readdir)(f),l=[];for(let a of h){if(i(a))continue;let b=(0,e.join)(f,a);try{let c=await (0,d.lstat)(b);if(c.isSymbolicLink())continue;if(c.isDirectory()){let c=await j(b);l.push({name:a,type:"directory",itemCount:c})}else if(c.isFile()){let b=(0,e.extname)(a),d={name:a,type:"file",size:c.size,birthtime:c.birthtime.toISOString(),mtime:c.mtime.toISOString()};b&&b.length>1&&(d.extension=b.slice(1)),l.push(d)}}catch{continue}if(l.length>=g.MAX_ITEMS_PER_DIR)break}let m=[...l].sort((a,b)=>a.type!==b.type?"directory"===a.type?-1:1:a.name.toLowerCase().localeCompare(b.name.toLowerCase())),n=null;if(b){let a=(0,e.dirname)(b);n="."===a?"":a}return{path:b,name:b?(0,e.basename)(b):"",items:m,parentPath:n}}function l(a){let b=a instanceof Error?a.message:"Unknown error";return b.includes("not found")?{error:"Directory not found",status:404}:b.includes("not a directory")?{error:"Path is not a directory",status:400}:{error:"Failed to read directory",status:500}}function m(a){return{error:`Worktree '${a}' not found`,status:404}}function n(a="Invalid path"){return{error:`Access denied: ${a}`,status:403}}},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1 +1 @@
1
- "use strict";exports.id=5571,exports.ids=[5571],exports.modules={95571:a=>{a.exports=JSON.parse('{"title":"Schedules","executionLogs":"Execution Logs","tabs":{"schedules":"Schedules","logs":"Logs"},"emptyState":{"title":"No schedules yet","description":"Run an agent automatically on a cron schedule.","createButton":"Create Schedule","manualToggle":"Or edit CMATE.md manually"},"noSchedules":"No schedules configured. Add a CMATE.md with a Schedules section.","noSchedulesTitle":"No schedules configured","noSchedulesStep1":"Switch to the Files tab","noSchedulesStep2":"Click the CMATE button in the toolbar to create CMATE.md","noSchedulesStep3":"Edit the Schedules table (Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"Click CMATE again to validate","noLogs":"No execution logs yet.","status":{"running":"Running","completed":"Completed","failed":"Failed","timeout":"Timeout","cancelled":"Cancelled"},"enabled":"Enabled","disabled":"Disabled","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"In-memory cron state currently registered by the scheduler.","noActiveSchedules":"No schedules are currently registered in memory.","nextRun":"Next run","agentLabel":"Agent","activeState":{"active":"Active","inactive":"Inactive","executing":"Executing"},"lastRun":"Last run","cron":"Cron","exitCode":"Exit","noOutput":"(no output)","message":"Message","response":"Response","unknownSchedule":"(deleted schedule)","retry":"Retry","loading":"Loading...","notes":"Notes","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"Agent Settings","selectAgents":"Select 2 agents to display in the terminal header tabs.","agentSaveSuccess":"Agent settings saved.","agentSaveError":"Failed to save agent settings.","agentInstances":"Agent Instances","agentInstancesDescription":"Manage the agents shown in the terminal header tabs. Add multiple instances of the same tool and give each an alias.","agentInstanceAliasLabel":"Alias","agentInstanceAliasPlaceholder":"Display name","agentInstanceBaseTool":"Base tool","agentInstanceAdd":"Add instance","agentInstanceDelete":"Delete instance","agentInstanceMoveUp":"Move up","agentInstanceMoveDown":"Move down","agentInstanceActions":"Instance actions","memoMoveUp":"Move up","memoMoveDown":"Move down","agentInstanceMax":"Up to {max} instances can be added.","agentInstanceMin":"At least {min} instance is required.","agentInstanceSaveError":"Failed to save agent instances.","mobileVisibleInstances":"Show on this device","mobileVisibleInstancesDescription":"Choose which instances appear as tabs on this device. This selection is saved per device and does not change the shared instance list.","mobileVisibleInstanceMin":"At least one instance must stay visible on this device.","vibeLocalModel":"Ollama Model","vibeLocalModelDefault":"Default","vibeLocalContextWindow":"Context Window","vibeLocalContextWindowDefault":"Default (auto)","ollamaNotAvailable":"Ollama is not running. Start Ollama to select a model.","cmateCreated":"CMATE.md created with template. Edit it to configure schedules.","cmateValidation":{"noSchedulesSection":"CMATE.md has no Schedules section.","valid":"{count} schedule(s) validated successfully.","errors":"{errorCount} validation error(s) found: {details}","failed":"Failed to process CMATE.md."},"edit":{"newSchedule":"New Schedule","titleCreate":"New Schedule","titleEdit":"Edit Schedule","sectionBasic":"Basic","sectionAdvanced":"Advanced","sectionMessage":"Message","name":"Name","namePlaceholder":"daily-review","cron":"Cron Expression","cronPlaceholder":"0 9 * * *","cronPreset":"Preset","cronPresetHourly":"Every hour (0 */1 * * *)","cronPresetDaily9":"Daily at 9:00 (0 9 * * *)","cronPresetWeeklyMon9":"Mondays at 9:00 (0 9 * * 1)","cronPresetCustom":"Custom","askAiCron":"Ask AI","askAiMessage":"Ask AI to draft","askAiHint":"Drafts a prompt into the AI chat (no auto-send)","aiPrompts":{"cron":"I want to express the schedule timing as a cron expression. Convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","cronRefine":"I want to express the schedule timing as a cron expression. The current input is {current}. Building on that, convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","messageDraft":"For this schedule, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer.","messageDraftNamed":"For the schedule {name}, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer."},"cliTool":"CLI Tool","model":"Model","modelPlaceholder":"gpt-4.1","permission":"Permission","message":"Message","messagePlaceholder":"Summarize README.md","charCount":"{count} / {max}","enabledLabel":"Enabled","save":"Save","cancel":"Cancel","edit":"Edit","delete":"Delete","enable":"Enable","disable":"Disable","confirmDelete":"Delete schedule \\"{name}\\"?","saveError":"Failed to save the schedule.","errorNameRequired":"Name is required.","errorNameTooLong":"Name must be {max} characters or less.","errorNameInvalid":"Name contains invalid characters.","errorCronInvalid":"Invalid cron expression.","errorMessageRequired":"Message is required.","errorMessageTooLong":"Message must be {max} characters or less.","errorModelInvalid":"Invalid model name."},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"Verification","envTab":"Env","timer":{"title":"Delayed Messages","titleCreate":"New Timer","createButton":"Create Timer","newTimer":"New Timer","close":"Cancel","agent":"Agent","message":"Message","delay":"Send After","register":"Register Timer","cancel":"Cancel","noTimers":"No timers registered.","maxReached":"Maximum {max} timers per worktree.","registerSuccess":"Timer registered.","registerError":"Failed to register timer.","cancelSuccess":"Timer cancelled.","cancelError":"Failed to cancel timer.","status":{"pending":"Pending","sending":"Sending","sent":"Sent","failed":"Failed","cancelled":"Cancelled","no_session":"No Session"},"sessionWarning":"Session is not running. If the session is not running when the timer fires, the message will not be sent.","minutesShort":"{minutes}m","hoursMinutesShort":"{hours}h {minutes}m","loadMore":"Load more","clearHistory":"Clear history","clearConfirm":"Delete all sent, failed, and cancelled timer history?","cleared":"History cleared ({count} items)","detailTitle":"Timer Details","statusLabel":"Status","scheduledTime":"Scheduled Send","createdTime":"Created","sentTime":"Sent","failureReason":"Failure Reason"},"memoAdd":"Add Memo","memoRemaining":"{count} remaining","memoDefaultTitle":"Memo","memoTitlePlaceholder":"Memo title","memoInsertToMessage":"Insert to message","memoCopyContent":"Copy memo content","memoDelete":"Delete memo","memoContentPlaceholder":"Enter memo content...","memoLoading":"Loading memos...","memoSearchToggle":"Search memos","memoEmpty":"No memos yet.","memoEmptyHint":"Click the button below to add one.","memoNoMatch":"No memos match your search.","memoSearchLabel":"Memo search","memoSearchPlaceholder":"Search...","memoSearchInputLabel":"Search memos","memoSearchPrev":"Previous match (prev)","memoSearchNext":"Next match (next)","memoSearchClose":"Close search (close)"}')}};
1
+ "use strict";exports.id=5571,exports.ids=[5571],exports.modules={95571:a=>{a.exports=JSON.parse('{"title":"Schedules","executionLogs":"Execution Logs","tabs":{"schedules":"Schedules","logs":"Logs"},"emptyState":{"title":"No schedules yet","description":"Run an agent automatically on a cron schedule.","createButton":"Create Schedule","manualToggle":"Or edit CMATE.md manually"},"noSchedules":"No schedules configured. Add a CMATE.md with a Schedules section.","noSchedulesTitle":"No schedules configured","noSchedulesStep1":"Switch to the Files tab","noSchedulesStep2":"Click the CMATE button in the toolbar to create CMATE.md","noSchedulesStep3":"Edit the Schedules table (Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"Click CMATE again to validate","noLogs":"No execution logs yet.","status":{"running":"Running","completed":"Completed","failed":"Failed","timeout":"Timeout","cancelled":"Cancelled"},"enabled":"Enabled","disabled":"Disabled","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"In-memory cron state currently registered by the scheduler.","noActiveSchedules":"No schedules are currently registered in memory.","nextRun":"Next run","agentLabel":"Agent","activeState":{"active":"Active","inactive":"Inactive","executing":"Executing"},"lastRun":"Last run","cron":"Cron","exitCode":"Exit","noOutput":"(no output)","message":"Message","response":"Response","unknownSchedule":"(deleted schedule)","retry":"Retry","loading":"Loading...","notes":"Notes","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"Agent Settings","selectAgents":"Select 2 agents to display in the terminal header tabs.","agentSaveSuccess":"Agent settings saved.","agentSaveError":"Failed to save agent settings.","agentInstances":"Agent Instances","agentInstancesDescription":"Manage the agents shown in the terminal header tabs. Add multiple instances of the same tool and give each an alias.","agentInstanceAliasLabel":"Alias","agentInstanceAliasPlaceholder":"Display name","agentInstanceBaseTool":"Base tool","agentInstanceAdd":"Add instance","agentInstanceDelete":"Delete instance","agentInstanceMoveUp":"Move up","agentInstanceMoveDown":"Move down","agentInstanceActions":"Instance actions","memoMoveUp":"Move up","memoMoveDown":"Move down","agentInstanceMax":"Up to {max} instances can be added.","agentInstanceMin":"At least {min} instance is required.","agentInstanceSaveError":"Failed to save agent instances.","mobileVisibleInstances":"Show on this device","mobileVisibleInstancesDescription":"Choose which instances appear as tabs on this device. This selection is saved per device and does not change the shared instance list.","mobileVisibleInstanceMin":"At least one instance must stay visible on this device.","vibeLocalModel":"Ollama Model","vibeLocalModelDefault":"Default","vibeLocalContextWindow":"Context Window","vibeLocalContextWindowDefault":"Default (auto)","ollamaNotAvailable":"Ollama is not running. Start Ollama to select a model.","cmateCreated":"CMATE.md created with template. Edit it to configure schedules.","cmateValidation":{"noSchedulesSection":"CMATE.md has no Schedules section.","valid":"{count} schedule(s) validated successfully.","errors":"{errorCount} validation error(s) found: {details}","failed":"Failed to process CMATE.md."},"edit":{"newSchedule":"New Schedule","titleCreate":"New Schedule","titleEdit":"Edit Schedule","sectionBasic":"Basic","sectionAdvanced":"Advanced","sectionMessage":"Message","name":"Name","namePlaceholder":"daily-review","cron":"Cron Expression","cronPlaceholder":"0 9 * * *","cronPreset":"Preset","cronPresetHourly":"Every hour (0 */1 * * *)","cronPresetDaily9":"Daily at 9:00 (0 9 * * *)","cronPresetWeeklyMon9":"Mondays at 9:00 (0 9 * * 1)","cronPresetCustom":"Custom","askAiCron":"Ask AI","askAiMessage":"Ask AI to draft","askAiHint":"Drafts a prompt into the AI chat (no auto-send)","aiPrompts":{"cron":"I want to express the schedule timing as a cron expression. Convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","cronRefine":"I want to express the schedule timing as a cron expression. The current input is {current}. Building on that, convert a plain-language request (e.g. \\"every Monday at 9\\") into a cron expression and suggest a few candidates (e.g. \\"every Monday at 9\\" → `0 9 * * 1`).","messageDraft":"For this schedule, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer.","messageDraftNamed":"For the schedule {name}, I want to write the message (the instruction prompt) that the CLI tool will run on a schedule. First ask me what it is for, then propose the message content based on my answer."},"cliTool":"CLI Tool","model":"Model","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent (opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant (opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"Session title (opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"Continue the last session (--continue)","permission":"Permission","message":"Message","messagePlaceholder":"Summarize README.md","charCount":"{count} / {max}","enabledLabel":"Enabled","save":"Save","cancel":"Cancel","edit":"Edit","delete":"Delete","enable":"Enable","disable":"Disable","confirmDelete":"Delete schedule \\"{name}\\"?","saveError":"Failed to save the schedule.","errorNameRequired":"Name is required.","errorNameTooLong":"Name must be {max} characters or less.","errorNameInvalid":"Name contains invalid characters.","errorCronInvalid":"Invalid cron expression.","errorMessageRequired":"Message is required.","errorMessageTooLong":"Message must be {max} characters or less.","errorModelInvalid":"Invalid model name.","errorAgentInvalid":"Invalid agent name.","errorVariantInvalid":"Invalid variant name.","errorTitleInvalid":"Invalid session title."},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"Verification","envTab":"Env","timer":{"title":"Delayed Messages","titleCreate":"New Timer","createButton":"Create Timer","newTimer":"New Timer","close":"Cancel","agent":"Agent","message":"Message","delay":"Send After","register":"Register Timer","cancel":"Cancel","noTimers":"No timers registered.","maxReached":"Maximum {max} timers per worktree.","registerSuccess":"Timer registered.","registerError":"Failed to register timer.","cancelSuccess":"Timer cancelled.","cancelError":"Failed to cancel timer.","status":{"pending":"Pending","sending":"Sending","sent":"Sent","failed":"Failed","cancelled":"Cancelled","no_session":"No Session"},"sessionWarning":"Session is not running. If the session is not running when the timer fires, the message will not be sent.","minutesShort":"{minutes}m","hoursMinutesShort":"{hours}h {minutes}m","loadMore":"Load more","clearHistory":"Clear history","clearConfirm":"Delete all sent, failed, and cancelled timer history?","cleared":"History cleared ({count} items)","detailTitle":"Timer Details","statusLabel":"Status","scheduledTime":"Scheduled Send","createdTime":"Created","sentTime":"Sent","failureReason":"Failure Reason"},"memoAdd":"Add Memo","memoRemaining":"{count} remaining","memoDefaultTitle":"Memo","memoTitlePlaceholder":"Memo title","memoInsertToMessage":"Insert to message","memoCopyContent":"Copy memo content","memoDelete":"Delete memo","memoContentPlaceholder":"Enter memo content...","memoLoading":"Loading memos...","memoSearchToggle":"Search memos","memoEmpty":"No memos yet.","memoEmptyHint":"Click the button below to add one.","memoNoMatch":"No memos match your search.","memoSearchLabel":"Memo search","memoSearchPlaceholder":"Search...","memoSearchInputLabel":"Search memos","memoSearchPrev":"Previous match (prev)","memoSearchNext":"Next match (next)","memoSearchClose":"Close search (close)","opencodeSettings":"opencode launch settings","opencodeSettingsDescription":"The agent, model and variant this instance starts opencode with and sends prompts as.","opencodeAgent":"Agent","opencodeModel":"Model","opencodeVariant":"Variant (reasoning effort)","opencodeDefault":"opencode default","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"This model has no variants.","opencodeSettingsOffline":"opencode is not running, so no candidates could be read. Values can be typed in directly (model as provider/model).","opencodeVariantLaunchNote":"Agent and model take effect the next time this instance starts. The variant cannot be passed as a launch flag — opencode 1.18.22\'s TUI has no --variant — so it is applied to the prompts CommandMate posts, from the next message on.","opencodeSettingsLoadError":"Failed to load the opencode launch settings.","opencodeSettingsSaveError":"Failed to save the opencode launch settings."}')}};
@@ -1 +1 @@
1
- "use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.27.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}},90164:(a,b,c)=>{c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`}};
1
+ "use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.28.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}},90164:(a,b,c)=>{c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`}};
@@ -1,13 +1,14 @@
1
- "use strict";exports.id=6274,exports.ids=[6274],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},76274:(a,b,c)=>{c.d(b,{Wb:()=>M,AT:()=>_});var d=c(79646),e=c(29021),f=c(88807),g=c(56791),h=c(48524),i=c(2412),j=c(72626),k=c(81099),l=c(11501),m=c(52767),n=c(74985),o=c(77142),p=c(49987),q=c(53604);let r=".commandmate/",s=`(exempt: ${r})`,t=".commandmate/tasks/";function u(a){return a.startsWith(t)}function v(a){return{pattern:a,regexp:function(a){let b=a.replace(/\/+$/,""),c=function(a){let b=0;for(let c of a)if("{"===c)b+=1;else if("}"===c&&(b-=1)<0)return!1;return 0===b}(b),d="",e=0,f=0;for(;f<b.length;){let a=b[f];if("*"===a){let a=f;for(;"*"===b[a];)a+=1;let c=a-f>1,e=0===f||"/"===b[f-1];if(c&&e&&"/"===b[a]){d+="(?:[^/]*/)*",f=a+1;continue}if(c&&e&&a===b.length){d+=".*",f=a;continue}d+="[^/]*",f=a;continue}if("?"===a){d+="[^/]",f+=1;continue}if(c&&"{"===a){e+=1,d+="(?:",f+=1;continue}if(c&&"}"===a&&e>0){e-=1,d+=")",f+=1;continue}if(c&&","===a&&e>0){d+="|",f+=1;continue}d+=a.replace(/[.*+?^${}()|[\]\\]/,"\\$&"),f+=1}return RegExp(`^${d}(?:/.*)?$`)}(a)}}class w{constructor(a,b=null){this.contractPath=b,this.allow=a.allow.map(v),this.deny=a.deny.map(v)}classify(a){let b=this.deny.find(b=>b.regexp.test(a));if(b)return{admitted:!1,pattern:b.pattern};if(a.startsWith(r))return{admitted:!0,pattern:s};if(a===this.contractPath)return{admitted:!0,pattern:"(exempt: contract path)"};let c=this.allow.find(b=>b.regexp.test(a));return c?{admitted:!0,pattern:c.pattern}:{admitted:!1,pattern:null}}isViolation(a){return!this.classify(a).admitted}}function x(a,b){return new Promise(c=>{let e="",f="",g=(0,d.spawn)("git",a,{cwd:b,stdio:["ignore","pipe","pipe"]});g.stdout?.on("data",a=>{e+=a.toString("utf8")}),g.stderr?.on("data",a=>{f+=a.toString("utf8")}),g.on("error",a=>c({code:null,stdout:"",stderr:a.message})),g.on("close",a=>c({code:a,stdout:e,stderr:f}))})}function y(a){let b=a.split("\0"),c=[],d=0;for(;d<b.length;){let a=b[d];if(d+=1,a.length<4)continue;let e=[a.slice(3)],[f,g]=a;if("R"===f||"C"===f||"R"===g||"C"===g){let a=b[d];d+=1,a&&e.push(a)}c.push(e)}return c}async function z(a,b){let c=await x(["merge-base",b,"HEAD"],a);if(0!==c.code||""===c.stdout.trim())return{error:`'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`+(c.stderr.trim()?`
1
+ "use strict";exports.id=6274,exports.ids=[6274],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},76274:(a,b,c)=>{c.d(b,{Wb:()=>O,AT:()=>ab});var d=c(79646),e=c(29021),f=c(88807),g=c(56791),h=c(48524),i=c(2412),j=c(72626),k=c(81099),l=c(11501),m=c(52767),n=c(74985),o=c(77142),p=c(49987),q=c(53604);let r=".commandmate/",s=`(exempt: ${r})`,t=".commandmate/tasks/";function u(a){return a.startsWith(t)}function v(a){return{pattern:a,regexp:function(a){let b=a.replace(/\/+$/,""),c=function(a){let b=0;for(let c of a)if("{"===c)b+=1;else if("}"===c&&(b-=1)<0)return!1;return 0===b}(b),d="",e=0,f=0;for(;f<b.length;){let a=b[f];if("*"===a){let a=f;for(;"*"===b[a];)a+=1;let c=a-f>1,e=0===f||"/"===b[f-1];if(c&&e&&"/"===b[a]){d+="(?:[^/]*/)*",f=a+1;continue}if(c&&e&&a===b.length){d+=".*",f=a;continue}d+="[^/]*",f=a;continue}if("?"===a){d+="[^/]",f+=1;continue}if(c&&"{"===a){e+=1,d+="(?:",f+=1;continue}if(c&&"}"===a&&e>0){e-=1,d+=")",f+=1;continue}if(c&&","===a&&e>0){d+="|",f+=1;continue}d+=a.replace(/[.*+?^${}()|[\]\\]/,"\\$&"),f+=1}return RegExp(`^${d}(?:/.*)?$`)}(a)}}class w{constructor(a,b=null){this.contractPath=b,this.allow=a.allow.map(v),this.deny=a.deny.map(v)}classify(a){let b=this.deny.find(b=>b.regexp.test(a));if(b)return{admitted:!1,pattern:b.pattern};if(a.startsWith(r))return{admitted:!0,pattern:s};if(a===this.contractPath)return{admitted:!0,pattern:"(exempt: contract path)"};let c=this.allow.find(b=>b.regexp.test(a));return c?{admitted:!0,pattern:c.pattern}:{admitted:!1,pattern:null}}isViolation(a){return!this.classify(a).admitted}}function x(a,b){return new Promise(c=>{let e="",f="",g=(0,d.spawn)("git",a,{cwd:b,stdio:["ignore","pipe","pipe"]});g.stdout?.on("data",a=>{e+=a.toString("utf8")}),g.stderr?.on("data",a=>{f+=a.toString("utf8")}),g.on("error",a=>c({code:null,stdout:"",stderr:a.message})),g.on("close",a=>c({code:a,stdout:e,stderr:f}))})}function y(a){let b=a.split("\0"),c=[],d=0;for(;d<b.length;){let a=b[d];if(d+=1,a.length<4)continue;let e=[a.slice(3)],[f,g]=a;if("R"===f||"C"===f||"R"===g||"C"===g){let a=b[d];d+=1,a&&e.push(a)}c.push(e)}return c}async function z(a,b){let c=await x(["merge-base",b,"HEAD"],a);if(0!==c.code||""===c.stdout.trim())return{error:`'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`+(c.stderr.trim()?`
2
2
  ${c.stderr.trim()}`:"")};let d=c.stdout.trim(),e=await x(["diff","--name-only","-z","--no-renames",d,"HEAD"],a);if(0!==e.code)return{error:`'git diff --name-only ${d} HEAD' failed.`+(e.stderr.trim()?`
3
3
  ${e.stderr.trim()}`:"")};let f=await x(["status","--porcelain","-z","--untracked-files=all"],a);return 0!==f.code?{error:"'git status --porcelain' failed."+(f.stderr.trim()?`
4
- ${f.stderr.trim()}`:"")}:{paths:[...new Set([...e.stdout.split("\0").filter(a=>""!==a),...y(f.stdout).flat()].filter(a=>!u(a)))].sort(),mergeBase:d}}function A(a){return a.length>0?a.join(", "):"(none)"}function B(a,b,c){return null===c?` ${a} ${b}`:` ${a} ${b} \u2190 ${c}`}async function C(a,b,c,d,e=null){let f=Date.now(),g=(a,b,c)=>({status:a,exitCode:c,startedAt:f,durationMs:Date.now()-f,logTail:b});if(!b)return g("skipped","scope: no contract is attached to this run, so no scope is declared to check.",null);if(!c)return g("skipped","scope: the contract sets success.requireScopeClean: false.",null);if(!d)return g("error","scope: no base ref, so there is nothing to diff against. Set options.baseRef in .commandmate/verify.yaml; origin/HEAD did not resolve a default branch.",null);let h=await z(a,d);if("error"in h)return g("error",`scope: ${h.error}`,null);let i=new w(b,e),j=[],k=[],l=new Map;for(let a of h.paths){let b=i.classify(a);if(b.admitted){j.push({path:a,pattern:b.pattern});continue}k.push(a),null!==b.pattern&&l.set(a,b.pattern)}let m=[`scope: baseRef=${d} changed=${h.paths.length} violations=${k.length}`,`allow: ${A(b.allow)}`,`deny: ${A(b.deny)}`,...function(a){if(0===a.length)return[];let b=a.slice(0,100),c=a.length-b.length;return["admitted:",...b.map(a=>B("+",a.path,a.pattern)),...c>0?[` ... (+${c} more)`]:[]]}(j)].join("\n");if(0===k.length)return g("passed",m,0);let n=k.slice(0,100),o=k.length-n.length;return g("failed",[m,"out of scope:",...n.map(a=>B("-",a,l.get(a)??null)),...o>0?[` ... and ${o} more`]:[],"To allow this diff, add the paths above to the contract's scope.allow (the issue's target-file list) and re-send the task (`send --contract`) — scope is judged from the send-time snapshot, so editing the contract file alone changes nothing. A path matching deny: is a deliberate prohibition; revert it instead."].join("\n"),1)}var D=c(90384);let E=(0,j.h)("lib/verification/gate-runner"),F="git diff --name-only / status --porcelain \xd7 contract scope",G="lsof -iTCP -sTCP:LISTEN / tmux list-sessions / $HOME / ~/.commandmate \xd7 task-start snapshot",H="[mutex]",I="[flaky]";function J(a,b){return`--- ${I} run ${a}/2: ${b.status} exit=${L(b.exitCode)} duration=${K(b.durationMs)} ---`}function K(a){return`${(a/1e3).toFixed(1)}s`}function L(a){return null===a?"n/a":String(a)}class M extends Error{constructor(a,b){super(`Verification run ${b} is already running for worktree '${a}'`),this.name="VerificationConflictError",this.worktreeId=a,this.runningRunId=b}}let N=0,O=[],P=new Map;class Q{constructor(a){this.maxBytes=a,this.chunks=[],this.size=0}append(a){if(!(this.maxBytes<=0)&&0!==a.length){for(this.chunks.push(a),this.size+=a.length;this.chunks.length>0&&this.size-this.chunks[0].length>=this.maxBytes;)this.size-=this.chunks.shift().length;if(this.size>this.maxBytes){let a=this.size-this.maxBytes;this.chunks[0]=this.chunks[0].subarray(a),this.size-=a}}}toString(){return 0===this.chunks.length?"":Buffer.concat(this.chunks).toString("utf8")}}function R(a,b,c,e,f){return new Promise(g=>{let h,i=Date.now(),j=new Q(e),k=!1,l=!1,m=(0,d.spawn)(a,{shell:!0,cwd:b,env:function(a){let b={...process.env,CI:"true",...a};return delete b.NODE_ENV,b}(f),detached:!0,stdio:["ignore","pipe","pipe"]});m.stdout?.on("data",a=>j.append(a)),m.stderr?.on("data",a=>j.append(a));let n=a=>{if(void 0!==m.pid)try{process.kill(-m.pid,a)}catch{try{m.kill(a)}catch{}}},o=a=>{k||(k=!0,clearTimeout(p),h&&clearTimeout(h),g({...a,startedAt:i,durationMs:Date.now()-i}))},p=setTimeout(()=>{l=!0,n("SIGTERM"),h=setTimeout(()=>n("SIGKILL"),5e3),h.unref?.()},1e3*c);p.unref?.(),m.on("error",a=>{o({status:"error",exitCode:null,logTail:`${j.toString()}
4
+ ${f.stderr.trim()}`:"")}:{paths:[...new Set([...e.stdout.split("\0").filter(a=>""!==a),...y(f.stdout).flat()].filter(a=>!u(a)))].sort(),mergeBase:d}}function A(a){return a.length>0?a.join(", "):"(none)"}function B(a,b,c){return null===c?` ${a} ${b}`:` ${a} ${b} \u2190 ${c}`}async function C(a,b,c,d,e=null){let f=Date.now(),g=(a,b,c)=>({status:a,exitCode:c,startedAt:f,durationMs:Date.now()-f,logTail:b});if(!b)return g("skipped","scope: no contract is attached to this run, so no scope is declared to check.",null);if(!c)return g("skipped","scope: the contract sets success.requireScopeClean: false.",null);if(!d)return g("error","scope: no base ref, so there is nothing to diff against. Set options.baseRef in .commandmate/verify.yaml; origin/HEAD did not resolve a default branch.",null);let h=await z(a,d);if("error"in h)return g("error",`scope: ${h.error}`,null);let i=new w(b,e),j=[],k=[],l=new Map;for(let a of h.paths){let b=i.classify(a);if(b.admitted){j.push({path:a,pattern:b.pattern});continue}k.push(a),null!==b.pattern&&l.set(a,b.pattern)}let m=[`scope: baseRef=${d} changed=${h.paths.length} violations=${k.length}`,`allow: ${A(b.allow)}`,`deny: ${A(b.deny)}`,...function(a){if(0===a.length)return[];let b=a.slice(0,100),c=a.length-b.length;return["admitted:",...b.map(a=>B("+",a.path,a.pattern)),...c>0?[` ... (+${c} more)`]:[]]}(j)].join("\n");if(0===k.length)return g("passed",m,0);let n=k.slice(0,100),o=k.length-n.length;return g("failed",[m,"out of scope:",...n.map(a=>B("-",a,l.get(a)??null)),...o>0?[` ... and ${o} more`]:[],"To allow this diff, add the paths above to the contract's scope.allow (the issue's target-file list) and re-send the task (`send --contract`) — scope is judged from the send-time snapshot, so editing the contract file alone changes nothing. A path matching deny: is a deliberate prohibition; revert it instead."].join("\n"),1)}var D=c(90384),E=c(62171),F=c(85322);let G=(0,j.h)("lib/verification/gate-runner"),H="git diff --name-only / status --porcelain \xd7 contract scope",I="lsof -iTCP -sTCP:LISTEN / tmux list-sessions / $HOME / ~/.commandmate \xd7 task-start snapshot",J="[mutex]",K="[flaky]";function L(a,b){return`--- ${K} run ${a}/2: ${b.status} exit=${N(b.exitCode)} duration=${M(b.durationMs)} ---`}function M(a){return`${(a/1e3).toFixed(1)}s`}function N(a){return null===a?"n/a":String(a)}class O extends Error{constructor(a,b){super(`Verification run ${b} is already running for worktree '${a}'`),this.name="VerificationConflictError",this.worktreeId=a,this.runningRunId=b}}let P=0,Q=[],R=new Map;class S{constructor(a){this.maxBytes=a,this.chunks=[],this.size=0}append(a){if(!(this.maxBytes<=0)&&0!==a.length){for(this.chunks.push(a),this.size+=a.length;this.chunks.length>0&&this.size-this.chunks[0].length>=this.maxBytes;)this.size-=this.chunks.shift().length;if(this.size>this.maxBytes){let a=this.size-this.maxBytes;this.chunks[0]=this.chunks[0].subarray(a),this.size-=a}}}toString(){return 0===this.chunks.length?"":Buffer.concat(this.chunks).toString("utf8")}}function T(a,b,c,e,f){return new Promise(g=>{let h,i=Date.now(),j=new S(e),k=!1,l=!1,m=(0,d.spawn)(a,{shell:!0,cwd:b,env:function(a){let b={...process.env,CI:"true",...a};return delete b.NODE_ENV,b}(f),detached:!0,stdio:["ignore","pipe","pipe"]});m.stdout?.on("data",a=>j.append(a)),m.stderr?.on("data",a=>j.append(a));let n=a=>{if(void 0!==m.pid)try{process.kill(-m.pid,a)}catch{try{m.kill(a)}catch{}}},o=a=>{k||(k=!0,clearTimeout(p),h&&clearTimeout(h),g({...a,startedAt:i,durationMs:Date.now()-i}))},p=setTimeout(()=>{l=!0,n("SIGTERM"),h=setTimeout(()=>n("SIGKILL"),5e3),h.unref?.()},1e3*c);p.unref?.(),m.on("error",a=>{o({status:"error",exitCode:null,logTail:`${j.toString()}
5
5
  [gate could not be spawned: ${a.message}]`.trim()})}),m.on("close",(a,b)=>{if(l)return void o({status:"timeout",exitCode:null,logTail:`${j.toString()}
6
- [gate exceeded ${c}s and was terminated (${b??"exited"})]`.trim()});o({status:0===a?"passed":"failed",exitCode:a,logTail:j.toString()||null})})})}async function S(a,b,c,d){let e=a.mutex;if(!e)return R(a.command,b,a.timeoutSec,c,d);let f=await (0,p.xL)(e,{timeoutMs:1e3*a.timeoutSec});if(!f.acquired)return{status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:function(a,b,c){var d;if(c.acquired)throw Error("mutexWaitTimeoutLog called for an acquired lock");let e=c.heldBy?` (held by ${c.heldBy})`:"";return`reason=mutex-wait waited=${K(c.waitedMs)}
7
- ${H} name=${b} lock=${d=b,(0,p.M)(d,(0,p.H)())}${e}
8
- Gate '${a.id}' declares mutex '${b}' and the machine-wide lock stayed held for its whole ${a.timeoutSec}s budget, so the command was never started. This is a resource conflict, not a verdict on the work: re-run once the other run finishes, or raise the gate's timeoutSec.`}(a,e,f)};try{var g,h,i;let j=await R(a.command,b,a.timeoutSec,c,d);return{...j,logTail:(g=f.waitedMs,h=f.handle.path,i=j.logTail,U(`${H} name=${e} waited=${K(g)} lock=${h}`,i))}}finally{f.handle.release()}}async function T(a,b,c,d){let e=await S(a,b,c,d);if(1!==a.retryOnFail||"failed"!==e.status)return e;let f=await S(a,b,c,d);return"passed"!==f.status&&"failed"!==f.status?{...e,logTail:U(`${I} retry reached no verdict (${f.status}); the first run's result stands. Retry log:
9
- `+(f.logTail??"(no output)"),e.logTail)}:function(a,b,c){let d="passed"===c.status?"flaky":"fail",e="flaky"===d&&!0===a.flakyIsPass,f=e?c:"flaky"===d?b:c,g=`${I} runs=2 outcome=${d} exit=${L(b.exitCode)},${L(c.exitCode)} duration=${K(b.durationMs)},${K(c.durationMs)} verdict=${e?"pass":"fail"}`,h=[J(1,b),b.logTail??"",J(2,c),c.logTail??""].join("\n");return{status:e?"passed":"failed",exitCode:f.exitCode,startedAt:b.startedAt,durationMs:b.durationMs+c.durationMs,logTail:`${g}
10
- ${h}`}}(a,e,f)}function U(a,b){return b?`${a}
11
- ${b}`:a}function V(a,b){return new Promise(c=>{let e="",f=(0,d.spawn)("git",a,{cwd:b,stdio:["ignore","pipe","ignore"]});f.stdout?.on("data",a=>{e+=a.toString("utf8")}),f.on("error",()=>c({code:null,stdout:""})),f.on("close",a=>c({code:a,stdout:e}))})}async function W(a,b,c){let d=Date.now(),e=(a,b,c)=>({status:a,exitCode:c,startedAt:d,durationMs:Date.now()-d,logTail:b});if(!b)return e("error",`work-evidence: no base ref. Set options.baseRef in ${D.aT}; origin/HEAD did not resolve a default branch.`,null);let f=await V(["merge-base",b,"HEAD"],a);if(0!==f.code||""===f.stdout.trim())return e("error",`work-evidence: 'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`,null);let g=f.stdout.trim(),h=await V(["rev-list","--count",`${g}..HEAD`,"--",":(top)",`:(exclude,top)${t}`],a);if(0!==h.code)return e("error",`work-evidence: 'git rev-list --count ${g}..HEAD' failed.`,null);let i=Number.parseInt(h.stdout.trim(),10),j=await V(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==j.code)return e("error","work-evidence: 'git status --porcelain' failed.",null);let k=y(j.stdout).filter(a=>a.some(a=>!u(a))).length,l=`work-evidence: baseRef=${b} commits=${i} uncommitted=${k}`+(c.required?" requireCommit=true":"")+" (contract files excluded)";return Number.isFinite(i)&&(0!==i||0!==k)?c.required&&0===i?e("failed",`${l}
12
- ${c.sources.join(" and ")} requires a commit: uncommitted changes are not work evidence, commit them.`,1):e("passed",l,0):e("failed",`${l}
13
- No commits and no uncommitted changes: nothing to verify.`,1)}async function X(a,b){if(a.options.baseRef)return a.options.baseRef;let c=await (0,i.tR)(b);return c?`origin/${c}`:null}async function Y(a,b,c,d,f,h,i,j,k,m){var o,p;let{maxLogTailBytes:r,skipInPrimaryCheckout:s}=f.options,{runWorkEvidence:t,gates:u}=h,v=(0,l.fc)(j?.contract??null,f),w=null,x=()=>w??={CM_WORKTREE_ID:c,CM_WORKTREE_INDEX:String((0,q.Cr)(c))},y=(b,c)=>((0,g.finishGateResult)(a,b,{status:c.status,exitCode:c.exitCode,durationMs:c.durationMs,logTail:c.logTail,executionWindow:{startedAt:c.startedAt,finishedAt:c.startedAt+c.durationMs}}),c),z=async(c,d,e,f)=>y((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,await f()),A=(c,d,e,f)=>{let h={status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:f};return y((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,h)},B=[];if(t){let a=await z(D.uz,"git merge-base / rev-list / status --porcelain (excluding contract files)","builtin",()=>W(d,i,v));if("passed"!==a.status){let b=`skipped: the ${D.uz} gate did not pass.`;for(let a of("off"!==h.scope&&A(D.le,F,"builtin",b),h.runEnvClean&&A(D.Q5,G,"builtin",b),u))A(a.id,a.command,a.source,b);return"failed"===a.status?"not_started":"error"}B.push(a.status)}if("off"!==h.scope){let a=k?A(D.le,F,"builtin",(o=k.id,p=k.status,`scope: task ${o} declares a scope for this worktree, but it is ${p} and this run was not attached to it, so its scope was NOT judged. Name the task when starting the run (\`wait --verify\` does this automatically).`)):await z(D.le,F,"builtin",()=>C(d,j?.contract.scope??null,j?.contract.success.requireScopeClean??!1,i,j?.contractPath??null)),b="explicit"===h.scope||null!==k;("skipped"!==a.status||b)&&B.push(a.status)}if(h.runEnvClean){let a=await z(D.Q5,G,"builtin",()=>(0,n.uT)({worktreeId:m.worktreeId,worktreePath:d,taskId:m.taskId,baseline:m.baseline,sources:m.decision.sources}));B.push(a.status)}let E=s&&function(a,b){try{return(0,e.realpathSync)(a)===(0,e.realpathSync)(b)}catch{return!1}}(d,process.cwd());for(let a of u){if(E){B.push(A(a.id,a.command,a.source,"skipped: worktreePath is the server process working directory and options.skipInPrimaryCheckout is true.").status);continue}let b=await z(a.id,a.command,a.source,()=>T(a,d,r,x()));B.push(b.status)}return B.some(a=>"failed"===a||"timeout"===a||"error"===a)?"failed":B.some(a=>"skipped"===a)?"error":"passed"}function Z(a,b,c,d){try{(0,m.g)(a,b,c,void 0===d?void 0:{runId:d})}catch(a){E.warn("task-transition-failed",{taskId:b,event:c,error:a instanceof Error?a.message:String(a)})}}function $(a,b,c,d,e){let f;try{f=(0,g.getVerificationRun)(a,c)?.gates.filter(a=>"passed"!==a.status&&"skipped"!==a.status).map(a=>a.gateId)}catch{}(0,k.notifyVerificationFailurePush)({worktreeId:b.worktreeId,runId:c,taskId:d,status:e,trigger:b.trigger,instanceId:b.instanceId??null,failedGateIds:f}).catch(()=>{})}async function _(a){let b=(0,f.getDbInstance)(),c=(0,g.getRunningVerificationRun)(b,a.worktreeId);if(c)throw new M(a.worktreeId,c.id);let d=void 0!==a.taskId?(0,g.getTask)(b,a.taskId):(0,h.Zj)(b,a.worktreeId),e=function(a,b,c){if(null!==c||void 0!==b.taskId)return null;let[d]=(0,g.listTasks)(a,b.worktreeId,1);return d&&"pending"!==d.status&&d.contract.success.requireScopeClean?d:null}(b,a,d),i=a.taskId??d?.id??null,j=a.gateIds??(d?(0,l.Ky)(d.contract)??void 0:void 0),k=null,m=null;try{(k=(0,D.yR)(a.worktreePath))||(m=`${D.aT} not found in ${a.worktreePath}. Declare the repository verification gates there before running verification.`)}catch(a){m=a instanceof D.Yp?a.message:`Failed to read ${D.aT}: ${a.message}`}let p=(0,n.Uq)(d?.contract??null,k),q=null;if(k&&!m){let a=function(a,b){let c=a.gates.map(a=>({...a,source:"verify.yaml"})),d=new Set(c.map(a=>a.id)),e=b.filter(a=>d.has(a.id)).map(a=>a.id);return e.length>0?`Contract gate id(s) ${e.join(", ")} are already declared in ${D.aT}. A contract may add gates, never redefine the repository's own.`:[...c,...b.map(a=>({...a,source:"contract"}))]}(k,d?(0,l.cI)(d.contract):[]);if("string"==typeof a)m=a;else{let b=function(a,b,c){if(!b)return{runWorkEvidence:!0,scope:"implicit",runEnvClean:c,gates:a};let d=new Set([D.uz,D.le,D.Q5,...a.map(a=>a.id)]),e=b.filter(a=>!d.has(a));if(e.length>0)return`Unknown gate id(s): ${e.join(", ")}. Declared gates: ${[...d].join(", ")}.`;let f=new Set(b),g={runWorkEvidence:f.has(D.uz),scope:f.has(D.le)?"explicit":"off",runEnvClean:f.has(D.Q5)||c,gates:a.filter(a=>f.has(a.id))};return g.runWorkEvidence||"off"!==g.scope||g.runEnvClean||0!==g.gates.length?g:"gateIds selected no gates; a run with no gates has nothing to report."}(a,j,p.required);"string"==typeof b?m=b:q=b}}let r=k?await X(k,a.worktreePath):null,s=(0,g.createVerificationRun)(b,{worktreeId:a.worktreeId,trigger:a.trigger,instanceId:a.instanceId??null,taskId:i,baseRef:r});if(!k||!q){let c=Date.now(),e=(0,g.createGateResult)(b,s.id,{gateId:"config",command:D.aT,source:"builtin"});return(0,g.finishGateResult)(b,e.id,{status:"error",exitCode:null,durationMs:0,logTail:m,executionWindow:{startedAt:c,finishedAt:c}}),(0,g.finishVerificationRun)(b,s.id,"error"),E.warn("verification-config-unusable",{runId:s.id,worktreeId:a.worktreeId}),$(b,a,s.id,i,"error"),d&&(Z(b,d.id,"verify_started",s.id),Z(b,d.id,"verify_failed",s.id)),{runId:s.id}}d&&Z(b,d.id,"verify_started",s.id);let t=k,u=q,v={worktreeId:a.worktreeId,taskId:i,baseline:u.runEnvClean&&i?(0,o.g9)(i):null,decision:p},w=(async()=>{await (N<2?(N+=1,Promise.resolve()):new Promise(a=>{O.push(a)}));let c="error";try{let f=await Y(b,s.id,a.worktreeId,a.worktreePath,t,u,r,d,e,v);return c=f,(0,g.finishVerificationRun)(b,s.id,f),f}catch(a){E.error("verification-run-crashed",{runId:s.id,error:a instanceof Error?a.message:String(a)});try{(0,g.finishVerificationRun)(b,s.id,"error")}catch{}return"error"}finally{d&&Z(b,d.id,function(a){switch(a){case"passed":return"verify_passed";case"not_started":return"verify_not_started";case"cancelled":return"cancel";default:return"verify_failed"}}(c),s.id),$(b,a,s.id,i,c),function(){let a=O.shift();if(a)return a();N-=1}(),P.delete(s.id)}})();return P.set(s.id,w),{runId:s.id}}}};
6
+ [gate exceeded ${c}s and was terminated (${b??"exited"})]`.trim()});o({status:0===a?"passed":"failed",exitCode:a,logTail:j.toString()||null})})})}async function U(a,b,c,d){let e=a.mutex;if(!e)return T(a.command,b,a.timeoutSec,c,d);let f=await (0,p.xL)(e,{timeoutMs:1e3*a.timeoutSec});if(!f.acquired)return{status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:function(a,b,c){var d;if(c.acquired)throw Error("mutexWaitTimeoutLog called for an acquired lock");let e=c.heldBy?` (held by ${c.heldBy})`:"";return`reason=mutex-wait waited=${M(c.waitedMs)}
7
+ ${J} name=${b} lock=${d=b,(0,p.M)(d,(0,p.H)())}${e}
8
+ Gate '${a.id}' declares mutex '${b}' and the machine-wide lock stayed held for its whole ${a.timeoutSec}s budget, so the command was never started. This is a resource conflict, not a verdict on the work: re-run once the other run finishes, or raise the gate's timeoutSec.`}(a,e,f)};try{var g,h,i;let j=await T(a.command,b,a.timeoutSec,c,d);return{...j,logTail:(g=f.waitedMs,h=f.handle.path,i=j.logTail,W(`${J} name=${e} waited=${M(g)} lock=${h}`,i))}}finally{f.handle.release()}}async function V(a,b,c,d){let e=await U(a,b,c,d);if(1!==a.retryOnFail||"failed"!==e.status)return e;let f=await U(a,b,c,d);return"passed"!==f.status&&"failed"!==f.status?{...e,logTail:W(`${K} retry reached no verdict (${f.status}); the first run's result stands. Retry log:
9
+ `+(f.logTail??"(no output)"),e.logTail)}:function(a,b,c){let d="passed"===c.status?"flaky":"fail",e="flaky"===d&&!0===a.flakyIsPass,f=e?c:"flaky"===d?b:c,g=`${K} runs=2 outcome=${d} exit=${N(b.exitCode)},${N(c.exitCode)} duration=${M(b.durationMs)},${M(c.durationMs)} verdict=${e?"pass":"fail"}`,h=[L(1,b),b.logTail??"",L(2,c),c.logTail??""].join("\n");return{status:e?"passed":"failed",exitCode:f.exitCode,startedAt:b.startedAt,durationMs:b.durationMs+c.durationMs,logTail:`${g}
10
+ ${h}`}}(a,e,f)}function W(a,b){return b?`${a}
11
+ ${b}`:a}function X(a,b){return new Promise(c=>{let e="",f=(0,d.spawn)("git",a,{cwd:b,stdio:["ignore","pipe","ignore"]});f.stdout?.on("data",a=>{e+=a.toString("utf8")}),f.on("error",()=>c({code:null,stdout:""})),f.on("close",a=>c({code:a,stdout:e}))})}async function Y(a,b,c,d){let e=Date.now(),f=(a,b,c)=>({status:a,exitCode:c,startedAt:e,durationMs:Date.now()-e,logTail:b});if(!b)return f("error",`work-evidence: no base ref. Set options.baseRef in ${D.aT}; origin/HEAD did not resolve a default branch.`,null);let g=await X(["merge-base",b,"HEAD"],a);if(0!==g.code||""===g.stdout.trim())return f("error",`work-evidence: 'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`,null);let h=g.stdout.trim(),i=await X(["rev-list","--count",`${h}..HEAD`,"--",":(top)",`:(exclude,top)${t}`],a);if(0!==i.code)return f("error",`work-evidence: 'git rev-list --count ${h}..HEAD' failed.`,null);let j=Number.parseInt(i.stdout.trim(),10),k=await X(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==k.code)return f("error","work-evidence: 'git status --porcelain' failed.",null);let l=y(k.stdout).filter(a=>a.some(a=>!u(a))).length,m=`work-evidence: baseRef=${b} commits=${j} uncommitted=${l}`+(c.required?" requireCommit=true":"")+" (contract files excluded)";if(!Number.isFinite(j)||0===j&&0===l){let a=Number.isFinite(j)?d.fileCount():null;return null===a||0===a?f("failed",`${m}
12
+ No commits and no uncommitted changes: nothing to verify.`,1):f("passed",`${m}
13
+ ${d.label}: ${a} file(s) changed. git found nothing; the agent did.`,0)}return c.required&&0===j?f("failed",`${m}
14
+ ${c.sources.join(" and ")} requires a commit: uncommitted changes are not work evidence, commit them.`,1):f("passed",m,0)}async function Z(a,b){if(a.options.baseRef)return a.options.baseRef;let c=await (0,i.tR)(b);return c?`origin/${c}`:null}async function $(a,b,c,d,f,h,i,j,k,m,o){var p,r;let{maxLogTailBytes:s,skipInPrimaryCheckout:t}=h.options,{runWorkEvidence:u,gates:v}=i,w={label:"opencode session diff",fileCount:()=>void 0!==f&&(f===F.k||(0,g.getAgentInstances)(a,c).some(a=>a.id===f&&a.cliTool===F.k))?(0,E.pw)(c,f):null},x=(0,l.fc)(k?.contract??null,h),y=null,z=()=>y??={CM_WORKTREE_ID:c,CM_WORKTREE_INDEX:String((0,q.Cr)(c))},A=(b,c)=>((0,g.finishGateResult)(a,b,{status:c.status,exitCode:c.exitCode,durationMs:c.durationMs,logTail:c.logTail,executionWindow:{startedAt:c.startedAt,finishedAt:c.startedAt+c.durationMs}}),c),B=async(c,d,e,f)=>A((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,await f()),G=(c,d,e,f)=>{let h={status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:f};return A((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,h)},J=[];if(u){let a=await B(D.uz,"git merge-base / rev-list / status --porcelain (excluding contract files)","builtin",()=>Y(d,j,x,w));if("passed"!==a.status){let b=`skipped: the ${D.uz} gate did not pass.`;for(let a of("off"!==i.scope&&G(D.le,H,"builtin",b),i.runEnvClean&&G(D.Q5,I,"builtin",b),v))G(a.id,a.command,a.source,b);return"failed"===a.status?"not_started":"error"}J.push(a.status)}if("off"!==i.scope){let a=m?G(D.le,H,"builtin",(p=m.id,r=m.status,`scope: task ${p} declares a scope for this worktree, but it is ${r} and this run was not attached to it, so its scope was NOT judged. Name the task when starting the run (\`wait --verify\` does this automatically).`)):await B(D.le,H,"builtin",()=>C(d,k?.contract.scope??null,k?.contract.success.requireScopeClean??!1,j,k?.contractPath??null)),b="explicit"===i.scope||null!==m;("skipped"!==a.status||b)&&J.push(a.status)}if(i.runEnvClean){let a=await B(D.Q5,I,"builtin",()=>(0,n.uT)({worktreeId:o.worktreeId,worktreePath:d,taskId:o.taskId,baseline:o.baseline,sources:o.decision.sources}));J.push(a.status)}let K=t&&function(a,b){try{return(0,e.realpathSync)(a)===(0,e.realpathSync)(b)}catch{return!1}}(d,process.cwd());for(let a of v){if(K){J.push(G(a.id,a.command,a.source,"skipped: worktreePath is the server process working directory and options.skipInPrimaryCheckout is true.").status);continue}let b=await B(a.id,a.command,a.source,()=>V(a,d,s,z()));J.push(b.status)}return J.some(a=>"failed"===a||"timeout"===a||"error"===a)?"failed":J.some(a=>"skipped"===a)?"error":"passed"}function _(a,b,c,d){try{(0,m.g)(a,b,c,void 0===d?void 0:{runId:d})}catch(a){G.warn("task-transition-failed",{taskId:b,event:c,error:a instanceof Error?a.message:String(a)})}}function aa(a,b,c,d,e){let f;try{f=(0,g.getVerificationRun)(a,c)?.gates.filter(a=>"passed"!==a.status&&"skipped"!==a.status).map(a=>a.gateId)}catch{}(0,k.notifyVerificationFailurePush)({worktreeId:b.worktreeId,runId:c,taskId:d,status:e,trigger:b.trigger,instanceId:b.instanceId??null,failedGateIds:f}).catch(()=>{})}async function ab(a){let b=(0,f.getDbInstance)(),c=(0,g.getRunningVerificationRun)(b,a.worktreeId);if(c)throw new O(a.worktreeId,c.id);let d=void 0!==a.taskId?(0,g.getTask)(b,a.taskId):(0,h.Zj)(b,a.worktreeId),e=function(a,b,c){if(null!==c||void 0!==b.taskId)return null;let[d]=(0,g.listTasks)(a,b.worktreeId,1);return d&&"pending"!==d.status&&d.contract.success.requireScopeClean?d:null}(b,a,d),i=a.taskId??d?.id??null,j=a.gateIds??(d?(0,l.Ky)(d.contract)??void 0:void 0),k=null,m=null;try{(k=(0,D.yR)(a.worktreePath))||(m=`${D.aT} not found in ${a.worktreePath}. Declare the repository verification gates there before running verification.`)}catch(a){m=a instanceof D.Yp?a.message:`Failed to read ${D.aT}: ${a.message}`}let p=(0,n.Uq)(d?.contract??null,k),q=null;if(k&&!m){let a=function(a,b){let c=a.gates.map(a=>({...a,source:"verify.yaml"})),d=new Set(c.map(a=>a.id)),e=b.filter(a=>d.has(a.id)).map(a=>a.id);return e.length>0?`Contract gate id(s) ${e.join(", ")} are already declared in ${D.aT}. A contract may add gates, never redefine the repository's own.`:[...c,...b.map(a=>({...a,source:"contract"}))]}(k,d?(0,l.cI)(d.contract):[]);if("string"==typeof a)m=a;else{let b=function(a,b,c){if(!b)return{runWorkEvidence:!0,scope:"implicit",runEnvClean:c,gates:a};let d=new Set([D.uz,D.le,D.Q5,...a.map(a=>a.id)]),e=b.filter(a=>!d.has(a));if(e.length>0)return`Unknown gate id(s): ${e.join(", ")}. Declared gates: ${[...d].join(", ")}.`;let f=new Set(b),g={runWorkEvidence:f.has(D.uz),scope:f.has(D.le)?"explicit":"off",runEnvClean:f.has(D.Q5)||c,gates:a.filter(a=>f.has(a.id))};return g.runWorkEvidence||"off"!==g.scope||g.runEnvClean||0!==g.gates.length?g:"gateIds selected no gates; a run with no gates has nothing to report."}(a,j,p.required);"string"==typeof b?m=b:q=b}}let r=k?await Z(k,a.worktreePath):null,s=(0,g.createVerificationRun)(b,{worktreeId:a.worktreeId,trigger:a.trigger,instanceId:a.instanceId??null,taskId:i,baseRef:r});if(!k||!q){let c=Date.now(),e=(0,g.createGateResult)(b,s.id,{gateId:"config",command:D.aT,source:"builtin"});return(0,g.finishGateResult)(b,e.id,{status:"error",exitCode:null,durationMs:0,logTail:m,executionWindow:{startedAt:c,finishedAt:c}}),(0,g.finishVerificationRun)(b,s.id,"error"),G.warn("verification-config-unusable",{runId:s.id,worktreeId:a.worktreeId}),aa(b,a,s.id,i,"error"),d&&(_(b,d.id,"verify_started",s.id),_(b,d.id,"verify_failed",s.id)),{runId:s.id}}d&&_(b,d.id,"verify_started",s.id);let t=k,u=q,v={worktreeId:a.worktreeId,taskId:i,baseline:u.runEnvClean&&i?(0,o.g9)(i):null,decision:p},w=(async()=>{await (P<2?(P+=1,Promise.resolve()):new Promise(a=>{Q.push(a)}));let c="error";try{let f=await $(b,s.id,a.worktreeId,a.worktreePath,a.instanceId,t,u,r,d,e,v);return c=f,(0,g.finishVerificationRun)(b,s.id,f),f}catch(a){G.error("verification-run-crashed",{runId:s.id,error:a instanceof Error?a.message:String(a)});try{(0,g.finishVerificationRun)(b,s.id,"error")}catch{}return"error"}finally{d&&_(b,d.id,function(a){switch(a){case"passed":return"verify_passed";case"not_started":return"verify_not_started";case"cancelled":return"cancel";default:return"verify_failed"}}(c),s.id),aa(b,a,s.id,i,c),function(){let a=Q.shift();if(a)return a();P-=1}(),R.delete(s.id)}})();return R.set(s.id,w),{runId:s.id}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6285,exports.ids=[6285],exports.modules={26285:a=>{a.exports=JSON.parse('{"title":"スケジュール","executionLogs":"実行ログ","tabs":{"schedules":"スケジュール","logs":"ログ"},"emptyState":{"title":"スケジュールはまだありません","description":"cron スケジュールでエージェントを自動実行します。","createButton":"新規スケジュール作成","manualToggle":"または CMATE.md を直接編集"},"noSchedules":"スケジュールが設定されていません。CMATE.mdにSchedulesセクションを追加してください。","noSchedulesTitle":"スケジュールが設定されていません","noSchedulesStep1":"Files タブに切り替えてください","noSchedulesStep2":"ツールバーの CMATE ボタンをクリックして CMATE.md を作成","noSchedulesStep3":"Schedules テーブルを編集(Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"再度 CMATE をクリックしてバリデーション","noLogs":"実行ログはまだありません。","status":{"running":"実行中","completed":"完了","failed":"失敗","timeout":"タイムアウト","cancelled":"キャンセル"},"enabled":"有効","disabled":"無効","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"DB設定ではなく、現在メモリ上で登録されている cron state です。","noActiveSchedules":"現在メモリ上で登録されている schedule はありません。","nextRun":"次回実行","agentLabel":"Agent","activeState":{"active":"稼働中","inactive":"停止","executing":"実行中"},"lastRun":"最終実行","cron":"Cron式","exitCode":"終了コード","noOutput":"(出力なし)","message":"メッセージ","response":"レスポンス","unknownSchedule":"(削除済みスケジュール)","retry":"再試行","loading":"読み込み中...","notes":"メモ","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"エージェント設定","selectAgents":"ターミナルヘッダーのタブに表示するエージェントを2つ選択してください。","agentSaveSuccess":"エージェント設定を保存しました。","agentSaveError":"エージェント設定の保存に失敗しました。","agentInstances":"エージェントインスタンス","agentInstancesDescription":"ターミナルヘッダーのタブに表示するエージェントを管理します。同じツールのインスタンスを複数追加し、それぞれに別名を付けられます。","agentInstanceAliasLabel":"別名","agentInstanceAliasPlaceholder":"表示名","agentInstanceBaseTool":"ベースツール","agentInstanceAdd":"インスタンスを追加","agentInstanceDelete":"インスタンスを削除","agentInstanceMoveUp":"上へ移動","agentInstanceMoveDown":"下へ移動","agentInstanceActions":"インスタンス操作","memoMoveUp":"上へ移動","memoMoveDown":"下へ移動","agentInstanceMax":"インスタンスは最大{max}個まで追加できます。","agentInstanceMin":"インスタンスは最低{min}個必要です。","agentInstanceSaveError":"エージェントインスタンスの保存に失敗しました。","mobileVisibleInstances":"この端末に表示","mobileVisibleInstancesDescription":"この端末でタブとして表示するインスタンスを選択します。この選択は端末ごとに保存され、共有のインスタンス一覧は変更されません。","mobileVisibleInstanceMin":"この端末には最低1つのインスタンスを表示しておく必要があります。","vibeLocalModel":"Ollamaモデル","vibeLocalModelDefault":"デフォルト","vibeLocalContextWindow":"コンテキストウィンドウ","vibeLocalContextWindowDefault":"デフォルト(自動)","ollamaNotAvailable":"Ollamaが起動していません。モデルを選択するにはOllamaを起動してください。","cmateCreated":"CMATE.mdをテンプレートで作成しました。スケジュールを設定してください。","cmateValidation":{"noSchedulesSection":"CMATE.mdにSchedulesセクションがありません。","valid":"{count}件のスケジュールが正常に検証されました。","errors":"{errorCount}件の検証エラー: {details}","failed":"CMATE.mdの処理に失敗しました。"},"edit":{"newSchedule":"新規スケジュール","titleCreate":"新規スケジュール","titleEdit":"スケジュールの編集","sectionBasic":"基本情報","sectionAdvanced":"詳細設定","sectionMessage":"メッセージ","name":"名前","namePlaceholder":"daily-review","cron":"Cron式","cronPlaceholder":"0 9 * * *","cronPreset":"プリセット","cronPresetHourly":"毎時 (0 */1 * * *)","cronPresetDaily9":"毎日9時 (0 9 * * *)","cronPresetWeeklyMon9":"毎週月曜9時 (0 9 * * 1)","cronPresetCustom":"カスタム","askAiCron":"AIに相談","askAiMessage":"AIに下書きを依頼","askAiHint":"AIチャットにプロンプトを下書きします(自動送信はされません)","aiPrompts":{"cron":"スケジュール実行のタイミングを cron 式で表現したいです。自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","cronRefine":"スケジュール実行のタイミングを cron 式で表現したいです。現在の入力は {current} です。これを踏まえて、自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","messageDraft":"このスケジュールで CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。","messageDraftNamed":"スケジュール {name} で CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。"},"cliTool":"CLIツール","model":"モデル","modelPlaceholder":"gpt-4.1","permission":"権限","message":"メッセージ","messagePlaceholder":"README.mdを要約してください","charCount":"{count} / {max}","enabledLabel":"有効","save":"保存","cancel":"キャンセル","edit":"編集","delete":"削除","enable":"有効化","disable":"無効化","confirmDelete":"スケジュール「{name}」を削除しますか?","saveError":"スケジュールの保存に失敗しました。","errorNameRequired":"名前は必須です。","errorNameTooLong":"名前は{max}文字以内で入力してください。","errorNameInvalid":"名前に使用できない文字が含まれています。","errorCronInvalid":"Cron式が不正です。","errorMessageRequired":"メッセージは必須です。","errorMessageTooLong":"メッセージは{max}文字以内で入力してください。","errorModelInvalid":"モデル名が不正です。"},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"検証","envTab":"環境変数","timer":{"title":"遅延メッセージ","titleCreate":"タイマー作成","createButton":"タイマー作成","newTimer":"新規タイマー","close":"キャンセル","agent":"エージェント","message":"メッセージ","delay":"送信タイミング","register":"タイマー登録","cancel":"キャンセル","noTimers":"タイマーは登録されていません。","maxReached":"ワークツリーあたり最大{max}件です。","registerSuccess":"タイマーを登録しました。","registerError":"タイマーの登録に失敗しました。","cancelSuccess":"タイマーをキャンセルしました。","cancelError":"タイマーのキャンセルに失敗しました。","status":{"pending":"待機中","sending":"送信中","sent":"送信済み","failed":"失敗","cancelled":"キャンセル済み","no_session":"セッション未起動"},"sessionWarning":"セッションが起動していません。タイマー実行時にセッションが起動していない場合、メッセージは送信されません。","minutesShort":"{minutes}分","hoursMinutesShort":"{hours}時間{minutes}分","loadMore":"もっと見る","clearHistory":"履歴クリア","clearConfirm":"送信済み・失敗・キャンセル済みのタイマー履歴をすべて削除しますか?","cleared":"履歴を削除しました({count}件)","detailTitle":"タイマー詳細","statusLabel":"ステータス","scheduledTime":"予定送信時刻","createdTime":"作成時刻","sentTime":"送信時刻","failureReason":"失敗理由"},"memoAdd":"メモを追加","memoRemaining":"残り {count} 件","memoDefaultTitle":"メモ","memoTitlePlaceholder":"メモのタイトル","memoInsertToMessage":"メッセージに挿入","memoCopyContent":"メモの内容をコピー","memoDelete":"メモを削除","memoContentPlaceholder":"メモの内容を入力...","memoLoading":"メモを読み込み中...","memoSearchToggle":"メモを検索","memoEmpty":"メモはまだありません。","memoEmptyHint":"下のボタンから追加できます。","memoNoMatch":"検索条件に一致するメモがありません。","memoSearchLabel":"メモ検索","memoSearchPlaceholder":"検索...","memoSearchInputLabel":"メモを検索","memoSearchPrev":"前の一致(前へ)","memoSearchNext":"次の一致(次へ)","memoSearchClose":"検索を閉じる(閉じる)"}')}};
1
+ "use strict";exports.id=6285,exports.ids=[6285],exports.modules={26285:a=>{a.exports=JSON.parse('{"title":"スケジュール","executionLogs":"実行ログ","tabs":{"schedules":"スケジュール","logs":"ログ"},"emptyState":{"title":"スケジュールはまだありません","description":"cron スケジュールでエージェントを自動実行します。","createButton":"新規スケジュール作成","manualToggle":"または CMATE.md を直接編集"},"noSchedules":"スケジュールが設定されていません。CMATE.mdにSchedulesセクションを追加してください。","noSchedulesTitle":"スケジュールが設定されていません","noSchedulesStep1":"Files タブに切り替えてください","noSchedulesStep2":"ツールバーの CMATE ボタンをクリックして CMATE.md を作成","noSchedulesStep3":"Schedules テーブルを編集(Name, Cron, Message, CLI Tool, Enabled, Permission)","noSchedulesStep4":"再度 CMATE をクリックしてバリデーション","noLogs":"実行ログはまだありません。","status":{"running":"実行中","completed":"完了","failed":"失敗","timeout":"タイムアウト","cancelled":"キャンセル"},"enabled":"有効","disabled":"無効","activeSchedulesTitle":"Active Schedules","activeSchedulesDescription":"DB設定ではなく、現在メモリ上で登録されている cron state です。","noActiveSchedules":"現在メモリ上で登録されている schedule はありません。","nextRun":"次回実行","agentLabel":"Agent","activeState":{"active":"稼働中","inactive":"停止","executing":"実行中"},"lastRun":"最終実行","cron":"Cron式","exitCode":"終了コード","noOutput":"(出力なし)","message":"メッセージ","response":"レスポンス","unknownSchedule":"(削除済みスケジュール)","retry":"再試行","loading":"読み込み中...","notes":"メモ","logs":"Schedules","notesAndLogs":"CMATE","agentTab":"Agent","agentSettings":"エージェント設定","selectAgents":"ターミナルヘッダーのタブに表示するエージェントを2つ選択してください。","agentSaveSuccess":"エージェント設定を保存しました。","agentSaveError":"エージェント設定の保存に失敗しました。","agentInstances":"エージェントインスタンス","agentInstancesDescription":"ターミナルヘッダーのタブに表示するエージェントを管理します。同じツールのインスタンスを複数追加し、それぞれに別名を付けられます。","agentInstanceAliasLabel":"別名","agentInstanceAliasPlaceholder":"表示名","agentInstanceBaseTool":"ベースツール","agentInstanceAdd":"インスタンスを追加","agentInstanceDelete":"インスタンスを削除","agentInstanceMoveUp":"上へ移動","agentInstanceMoveDown":"下へ移動","agentInstanceActions":"インスタンス操作","memoMoveUp":"上へ移動","memoMoveDown":"下へ移動","agentInstanceMax":"インスタンスは最大{max}個まで追加できます。","agentInstanceMin":"インスタンスは最低{min}個必要です。","agentInstanceSaveError":"エージェントインスタンスの保存に失敗しました。","mobileVisibleInstances":"この端末に表示","mobileVisibleInstancesDescription":"この端末でタブとして表示するインスタンスを選択します。この選択は端末ごとに保存され、共有のインスタンス一覧は変更されません。","mobileVisibleInstanceMin":"この端末には最低1つのインスタンスを表示しておく必要があります。","vibeLocalModel":"Ollamaモデル","vibeLocalModelDefault":"デフォルト","vibeLocalContextWindow":"コンテキストウィンドウ","vibeLocalContextWindowDefault":"デフォルト(自動)","ollamaNotAvailable":"Ollamaが起動していません。モデルを選択するにはOllamaを起動してください。","cmateCreated":"CMATE.mdをテンプレートで作成しました。スケジュールを設定してください。","cmateValidation":{"noSchedulesSection":"CMATE.mdにSchedulesセクションがありません。","valid":"{count}件のスケジュールが正常に検証されました。","errors":"{errorCount}件の検証エラー: {details}","failed":"CMATE.mdの処理に失敗しました。"},"edit":{"newSchedule":"新規スケジュール","titleCreate":"新規スケジュール","titleEdit":"スケジュールの編集","sectionBasic":"基本情報","sectionAdvanced":"詳細設定","sectionMessage":"メッセージ","name":"名前","namePlaceholder":"daily-review","cron":"Cron式","cronPlaceholder":"0 9 * * *","cronPreset":"プリセット","cronPresetHourly":"毎時 (0 */1 * * *)","cronPresetDaily9":"毎日9時 (0 9 * * *)","cronPresetWeeklyMon9":"毎週月曜9時 (0 9 * * 1)","cronPresetCustom":"カスタム","askAiCron":"AIに相談","askAiMessage":"AIに下書きを依頼","askAiHint":"AIチャットにプロンプトを下書きします(自動送信はされません)","aiPrompts":{"cron":"スケジュール実行のタイミングを cron 式で表現したいです。自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","cronRefine":"スケジュール実行のタイミングを cron 式で表現したいです。現在の入力は {current} です。これを踏まえて、自然言語の要望(例: 「毎週月曜 9 時」)を cron 式に変換し、候補をいくつか提案してください(例: 「毎週月曜 9 時」→ `0 9 * * 1`)。","messageDraft":"このスケジュールで CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。","messageDraftNamed":"スケジュール {name} で CLI ツールに定期実行させる message(指示プロンプト)を作成したいです。まず用途を私に聞き取り、それを踏まえた message の内容を提案してください。"},"cliTool":"CLIツール","model":"モデル","modelPlaceholder":"gpt-4.1","opencodeAgent":"Agent(opencode)","opencodeAgentPlaceholder":"plan","opencodeVariant":"Variant(opencode)","opencodeVariantPlaceholder":"high","opencodeTitle":"セッションタイトル(opencode)","opencodeTitlePlaceholder":"nightly-review","opencodeContinue":"直前のセッションを継続する(--continue)","permission":"権限","message":"メッセージ","messagePlaceholder":"README.mdを要約してください","charCount":"{count} / {max}","enabledLabel":"有効","save":"保存","cancel":"キャンセル","edit":"編集","delete":"削除","enable":"有効化","disable":"無効化","confirmDelete":"スケジュール「{name}」を削除しますか?","saveError":"スケジュールの保存に失敗しました。","errorNameRequired":"名前は必須です。","errorNameTooLong":"名前は{max}文字以内で入力してください。","errorNameInvalid":"名前に使用できない文字が含まれています。","errorCronInvalid":"Cron式が不正です。","errorMessageRequired":"メッセージは必須です。","errorMessageTooLong":"メッセージは{max}文字以内で入力してください。","errorModelInvalid":"モデル名が不正です。","errorAgentInvalid":"Agent 名が不正です。","errorVariantInvalid":"Variant 名が不正です。","errorTitleInvalid":"セッションタイトルが不正です。"},"timerTab":"Timer","todoTab":"ToDo","skillsTab":"Skills","verificationTab":"検証","envTab":"環境変数","timer":{"title":"遅延メッセージ","titleCreate":"タイマー作成","createButton":"タイマー作成","newTimer":"新規タイマー","close":"キャンセル","agent":"エージェント","message":"メッセージ","delay":"送信タイミング","register":"タイマー登録","cancel":"キャンセル","noTimers":"タイマーは登録されていません。","maxReached":"ワークツリーあたり最大{max}件です。","registerSuccess":"タイマーを登録しました。","registerError":"タイマーの登録に失敗しました。","cancelSuccess":"タイマーをキャンセルしました。","cancelError":"タイマーのキャンセルに失敗しました。","status":{"pending":"待機中","sending":"送信中","sent":"送信済み","failed":"失敗","cancelled":"キャンセル済み","no_session":"セッション未起動"},"sessionWarning":"セッションが起動していません。タイマー実行時にセッションが起動していない場合、メッセージは送信されません。","minutesShort":"{minutes}分","hoursMinutesShort":"{hours}時間{minutes}分","loadMore":"もっと見る","clearHistory":"履歴クリア","clearConfirm":"送信済み・失敗・キャンセル済みのタイマー履歴をすべて削除しますか?","cleared":"履歴を削除しました({count}件)","detailTitle":"タイマー詳細","statusLabel":"ステータス","scheduledTime":"予定送信時刻","createdTime":"作成時刻","sentTime":"送信時刻","failureReason":"失敗理由"},"memoAdd":"メモを追加","memoRemaining":"残り {count} 件","memoDefaultTitle":"メモ","memoTitlePlaceholder":"メモのタイトル","memoInsertToMessage":"メッセージに挿入","memoCopyContent":"メモの内容をコピー","memoDelete":"メモを削除","memoContentPlaceholder":"メモの内容を入力...","memoLoading":"メモを読み込み中...","memoSearchToggle":"メモを検索","memoEmpty":"メモはまだありません。","memoEmptyHint":"下のボタンから追加できます。","memoNoMatch":"検索条件に一致するメモがありません。","memoSearchLabel":"メモ検索","memoSearchPlaceholder":"検索...","memoSearchInputLabel":"メモを検索","memoSearchPrev":"前の一致(前へ)","memoSearchNext":"次の一致(次へ)","memoSearchClose":"検索を閉じる(閉じる)","opencodeSettings":"opencode 起動設定","opencodeSettingsDescription":"このインスタンスが opencode を起動・送信するときのエージェント/モデル/バリアントを指定します。","opencodeAgent":"エージェント","opencodeModel":"モデル","opencodeVariant":"バリアント(推論の深さ)","opencodeDefault":"opencode のデフォルト","opencodeAgentPlaceholder":"build","opencodeModelPlaceholder":"provider/model","opencodeVariantPlaceholder":"high","opencodeNoVariants":"このモデルにバリアントはありません。","opencodeSettingsOffline":"opencode が起動していないため候補を取得できません。値は直接入力できます(モデルは provider/model 形式)。","opencodeVariantLaunchNote":"エージェントとモデルは次回の起動から反映されます。バリアントは opencode 1.18.22 の TUI に --variant が無いため起動引数では渡せず、CommandMate が送信するプロンプトに適用されます(次のメッセージから反映)。","opencodeSettingsLoadError":"opencode 起動設定の読み込みに失敗しました。","opencodeSettingsSaveError":"opencode 起動設定の保存に失敗しました。"}')}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6337,exports.ids=[6337],exports.modules={77703:(a,b,c)=>{c.d(b,{js:()=>f});var d=c(24455);let e=globalThis.__upstreamFaultPushState??(globalThis.__upstreamFaultPushState=new Map);function f({worktreeId:a,cliToolId:b,instanceId:c,faultId:f,now:g=Date.now(),cooldownMs:h=18e5}){let i=(0,d.v7)(a,b,c),j=e.get(i);if(null===f)return void 0!==j&&(null===j.lastNotifiedAt?e.delete(i):j.current=null),{notify:!1,reason:"no-fault",since:null};if(void 0!==j&&null!==j.current&&j.current.faultId===f)return{notify:!1,reason:"same-episode",since:j.current.since};let k=j?.lastNotifiedAt??null,l={faultId:f,since:g};return null!==k&&g-k<h?(e.set(i,{current:l,lastNotifiedAt:k}),{notify:!1,reason:"cooldown",since:g,cooldownRemainingMs:h-(g-k)}):(e.set(i,{current:l,lastNotifiedAt:g}),{notify:!0,reason:"new-episode",since:g})}},81099:(a,b,c)=>{c.r(b),c.d(b,{formatWorktreeWideAgentLabel:()=>m,notifySessionStartFailurePush:()=>r,notifyUpstreamFaultPush:()=>q,notifyVerificationFailurePush:()=>p});var d=c(88807),e=c(73753),f=c(72626),g=c(83530),h=c(2669),i=c(77703),j=c(61191),k=c(27519);let l=(0,f.h)("push/failure-notifier");function m(a){return`worktree: ${a??"?"}`}async function n(a){let b={worktreeId:a.worktreeId,instanceId:a.instanceId,...void 0!==a.agentLabel?{agentLabel:a.agentLabel}:{},failureReason:a.reason,signature:a.signature,...a.logContext};if(!(0,k.lU)())return void l.debug("failure-push-suppressed",{...b,reason:"push-unconfigured"});l.info("failure-push-raised",b);try{await (0,j.notifyPushSubscribers)({worktreeId:a.worktreeId,worktreeName:a.subject?.name??function(a){try{return(0,e.Ui)((0,d.getDbInstance)(),a)?.name??a}catch{return a}}(a.worktreeId),kind:"failure",agentName:a.agentLabel??a.instanceId,instanceId:a.instanceId,excerpt:a.excerpt,failure:{reason:a.reason,signature:a.signature},...a.subject?{url:a.subject.url}:{}})}catch(a){l.warn("failure-push-failed",{...b,error:a instanceof Error?a.message:String(a)})}}let o=["failed","error"];async function p(a){let b=a.instanceId??void 0,c={worktreeId:a.worktreeId,instanceId:b,runId:a.runId,status:a.status,trigger:a.trigger};if(!o.includes(a.status))return void l.debug("failure-push-suppressed",{...c,reason:"run-not-failed"});if(null!==a.taskId)return void l.info("failure-push-suppressed",{...c,taskId:a.taskId,reason:"contract-task"});let e=a.failedGateIds??[];await n({reason:"verification-failed",worktreeId:a.worktreeId,instanceId:b,agentLabel:function(a,b){if(void 0!==b)return b;try{let b=(0,g.iK)((0,d.getDbInstance)(),a);return m("fallback"===b.resolvedBy?void 0:b.instanceId)}catch{return m()}}(a.worktreeId,b),signature:`verification:${a.runId}`,excerpt:e.length>0?e.join(", "):void 0,logContext:{runId:a.runId,status:a.status,trigger:a.trigger}})}async function q(a){if(!(0,k.lU)())return;let b=a.instanceId??a.cliToolId,c=(0,i.js)({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,faultId:a.faultId,now:a.now});if("no-fault"!==c.reason){if(!c.notify){let d="cooldown"===c.reason?"upstream-cooldown":"upstream-same-episode",e={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:b,faultId:a.faultId,since:c.since,reason:d,...void 0!==c.cooldownRemainingMs?{cooldownRemainingMs:c.cooldownRemainingMs}:{}};"cooldown"===c.reason?l.info("failure-push-suppressed",e):l.debug("failure-push-suppressed",e);return}await n({reason:"upstream-fault",worktreeId:a.worktreeId,instanceId:b,signature:`upstream:${a.faultId}:${c.since}`,excerpt:a.matchedText,logContext:{cliToolId:a.cliToolId,faultId:a.faultId,since:c.since}})}}async function r(a){let b=a.instanceId??a.cliToolId,c=function(a,b){if((0,h.wQ)(a.error))return{notify:!1,reason:"session-still-starting"};if((0,h.JI)(a.error))return{notify:!0,reason:"session-start-unavailable",excerpt:a.toolName,signature:`session-start:${b}:not-installed`};if(function(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}(a.error)===h.c7){let c=a.error.detectedPattern,d="string"==typeof c?c:"";return{notify:!0,reason:"session-start-failed",excerpt:d?`${a.toolName}: ${d}`:a.toolName,signature:`session-start:${b}:${d}`}}return{notify:!0,reason:"session-start-failed",excerpt:a.toolName,signature:`session-start:${b}:start-error`}}(a,b);if(!c.notify)return void l.info("failure-push-suppressed",{worktreeId:a.worktreeId,instanceId:b,cliToolId:a.cliToolId,reason:c.reason});await n({reason:c.reason,worktreeId:a.worktreeId,instanceId:b,signature:c.signature,excerpt:c.excerpt,logContext:{cliToolId:a.cliToolId},subject:a.subject})}},83530:(a,b,c)=>{c.d(b,{FH:()=>l,fV:()=>k,iK:()=>i,y4:()=>h});var d=c(73753),e=c(28274),f=c(15194);let g="claude",h="instance_tool_conflict";function i(a,b,c={}){let{instanceId:d,requestedCliTool:g}=c;if(!d)return g?{cliToolId:g,instanceId:g,resolvedBy:"explicit"}:j(a,b,void 0);let h=(0,e.BN)(a,b,d);if(h&&(0,f.hR)(h.cliTool)){let a={cliToolId:h.cliTool,instanceId:d,resolvedBy:"roster"};return g&&g!==h.cliTool&&(a.conflict={instanceId:d,rosterCliTool:h.cliTool,requestedCliTool:g}),a}return g?{cliToolId:g,instanceId:d,resolvedBy:"explicit"}:(0,f.hR)(d)?{cliToolId:d,instanceId:d,resolvedBy:"primary"}:j(a,b,d)}function j(a,b,c){let e=(0,d.Ui)(a,b),h=e?.cliToolId;return h&&(0,f.hR)(h)?{cliToolId:h,instanceId:c??h,resolvedBy:"worktree-default"}:{cliToolId:g,instanceId:c??g,resolvedBy:"fallback"}}function k(a,b,c={}){let d=i(a,b,c);return d.conflict?{ok:!1,error:h,conflict:d.conflict}:{ok:!0,target:d}}function l(a){return`Agent instance '${a.instanceId}' is registered as ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or update the instance's roster entry.`}}};