commandmate 0.46.1 → 0.47.2

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 (999) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +587 -580
  3. package/.next/app-path-routes-manifest.json +31 -30
  4. package/.next/build-manifest.json +8 -8
  5. package/.next/diagnostics/framework.json +1 -1
  6. package/.next/next-minimal-server.js.nft.json +1 -1
  7. package/.next/next-server.js.nft.json +1 -1
  8. package/.next/prerender-manifest.json +12 -12
  9. package/.next/react-loadable-manifest.json +1 -1
  10. package/.next/required-server-files.json +1 -1
  11. package/.next/routes-manifest.json +8 -0
  12. package/.next/server/app/_not-found/page.js +2 -2
  13. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/agents/update/route.js +2 -2
  16. package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
  17. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/agents/versions/route.js +1 -1
  19. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -1
  20. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/app/release-notes/route.js +1 -1
  22. package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -1
  23. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/app/update/route.js +6 -4
  25. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  26. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/app/update-check/route.js +1 -1
  28. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  29. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/auth/login/route.js +1 -1
  31. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  32. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/auth/logout/route.js +1 -1
  34. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  35. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/status/route.js +1 -1
  37. package/.next/server/app/api/auth/status/route.js.nft.json +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.js.nft.json +1 -1
  41. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/daily-summary/route.js +1 -1
  43. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  44. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  46. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  47. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  49. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  50. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/external-apps/route.js +1 -1
  55. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  56. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/fs/browse/route.js +1 -1
  58. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  59. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  61. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  62. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  64. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  65. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  67. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  68. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  70. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/metrics/vibe/route.js +2 -2
  73. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  74. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/ollama/models/route.js +1 -1
  76. package/.next/server/app/api/ollama/models/route.js.nft.json +1 -1
  77. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/push/escalation/route.js +1 -7
  79. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  80. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  82. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  83. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/push/vapid/route.js +1 -7
  85. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  86. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  88. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  89. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/relays/route.js +1 -1
  91. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  92. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/remote/pair/route.js +2 -2
  94. package/.next/server/app/api/remote/pair/route.js.nft.json +1 -1
  95. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  97. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/clone/route.js +1 -1
  103. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  106. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/restore/route.js +1 -1
  109. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/route.js +1 -1
  112. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/scan/route.js +1 -1
  115. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/repositories/sync/route.js +1 -1
  118. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  119. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  122. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  124. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  125. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/settings/default-surface-mode/route.js +1 -1
  127. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -1
  128. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  130. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  131. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/[id]/route.js +1 -1
  133. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/installations/route.js +1 -1
  136. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/operations/route.js +2 -2
  139. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  140. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/skills/reindex/route.js +1 -1
  142. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  143. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/skills/route.js +1 -1
  145. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  146. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/slash-commands/route.js +1 -1
  148. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  149. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  154. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/templates/[id]/route.js +1 -1
  157. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  158. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/templates/route.js +1 -1
  160. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  161. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  163. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  164. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/verification/runs/route.js +1 -1
  166. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  167. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +7 -7
  184. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/env/route.js +2 -2
  193. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +3 -3
  199. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  292. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -0
  316. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -0
  317. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route_client-reference-manifest.js +1 -0
  318. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  328. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  334. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +5 -5
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  373. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  376. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  391. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  392. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  393. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  394. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  395. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  396. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  397. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  398. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  399. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -2
  400. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -1
  401. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  402. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  406. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  407. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  408. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  409. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  410. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  411. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  412. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  413. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  414. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  415. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  416. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  417. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -1
  418. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -1
  419. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  420. package/.next/server/app/api/worktrees/route.js +1 -1
  421. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  422. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  423. package/.next/server/app/apple-icon.png/route.js +1 -1
  424. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  425. package/.next/server/app/apple-icon.png.meta +1 -1
  426. package/.next/server/app/icon.png/route.js +1 -1
  427. package/.next/server/app/icon.png/route.js.nft.json +1 -1
  428. package/.next/server/app/icon.png.meta +1 -1
  429. package/.next/server/app/icon1.png/route.js +1 -1
  430. package/.next/server/app/icon1.png/route.js.nft.json +1 -1
  431. package/.next/server/app/icon1.png.meta +1 -1
  432. package/.next/server/app/icon2.png/route.js +1 -1
  433. package/.next/server/app/icon2.png/route.js.nft.json +1 -1
  434. package/.next/server/app/icon2.png.meta +1 -1
  435. package/.next/server/app/login/page.js +2 -2
  436. package/.next/server/app/login/page.js.nft.json +1 -1
  437. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  438. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  439. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  440. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  441. package/.next/server/app/manifest.webmanifest.meta +1 -1
  442. package/.next/server/app/more/page.js +2 -2
  443. package/.next/server/app/more/page.js.nft.json +1 -1
  444. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  445. package/.next/server/app/offline/page.js +2 -2
  446. package/.next/server/app/offline/page.js.nft.json +1 -1
  447. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  448. package/.next/server/app/page.js +2 -2
  449. package/.next/server/app/page.js.nft.json +1 -1
  450. package/.next/server/app/page_client-reference-manifest.js +1 -1
  451. package/.next/server/app/proxy/[...path]/route.js +1 -1
  452. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  453. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  454. package/.next/server/app/repositories/page.js +2 -2
  455. package/.next/server/app/repositories/page.js.nft.json +1 -1
  456. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  457. package/.next/server/app/review/page.js +2 -2
  458. package/.next/server/app/review/page.js.nft.json +1 -1
  459. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  460. package/.next/server/app/sessions/page.js +2 -2
  461. package/.next/server/app/sessions/page.js.nft.json +1 -1
  462. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  463. package/.next/server/app/skills/[skillId]/page.js +2 -2
  464. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  465. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  466. package/.next/server/app/skills/installed/page.js +2 -2
  467. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  468. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  469. package/.next/server/app/skills/page.js +2 -2
  470. package/.next/server/app/skills/page.js.nft.json +1 -1
  471. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  472. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  473. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  474. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  475. package/.next/server/app/worktrees/[id]/page.js +12 -12
  476. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  477. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  478. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  479. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  480. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  481. package/.next/server/app-paths-manifest.json +31 -30
  482. package/.next/server/chunks/{5048.js → 1185.js} +1 -1
  483. package/.next/server/chunks/1210.js +1 -1
  484. package/.next/server/chunks/1559.js +1 -1
  485. package/.next/server/chunks/1601.js +7 -0
  486. package/.next/server/chunks/1656.js +19 -0
  487. package/.next/server/chunks/1945.js +14 -0
  488. package/.next/server/chunks/2119.js +1 -1
  489. package/.next/server/chunks/2404.js +1 -1
  490. package/.next/server/chunks/2422.js +1 -0
  491. package/.next/server/chunks/2445.js +1 -1
  492. package/.next/server/chunks/2460.js +1 -1
  493. package/.next/server/chunks/2534.js +1 -1
  494. package/.next/server/chunks/255.js +1 -0
  495. package/.next/server/chunks/3241.js +1 -1
  496. package/.next/server/chunks/3505.js +7 -0
  497. package/.next/server/chunks/3897.js +22 -0
  498. package/.next/server/chunks/4072.js +5 -5
  499. package/.next/server/chunks/{3077.js → 4194.js} +12 -12
  500. package/.next/server/chunks/4207.js +1 -1
  501. package/.next/server/chunks/4248.js +1 -1
  502. package/.next/server/chunks/463.js +1 -0
  503. package/.next/server/chunks/5209.js +1 -1
  504. package/.next/server/chunks/5595.js +1 -1
  505. package/.next/server/chunks/5611.js +1 -1
  506. package/.next/server/chunks/5845.js +1 -1
  507. package/.next/server/chunks/610.js +1 -0
  508. package/.next/server/chunks/6119.js +1 -0
  509. package/.next/server/chunks/6130.js +1 -1
  510. package/.next/server/chunks/6345.js +1 -1
  511. package/.next/server/chunks/6401.js +1 -1
  512. package/.next/server/chunks/{2283.js → 6486.js} +7 -7
  513. package/.next/server/chunks/6722.js +1 -1
  514. package/.next/server/chunks/6781.js +1 -1
  515. package/.next/server/chunks/6784.js +1 -0
  516. package/.next/server/chunks/6793.js +2 -2
  517. package/.next/server/chunks/7905.js +1 -1
  518. package/.next/server/chunks/8581.js +10 -10
  519. package/.next/server/chunks/8728.js +2 -2
  520. package/.next/server/chunks/8791.js +1 -1
  521. package/.next/server/chunks/8918.js +4 -4
  522. package/.next/server/chunks/9130.js +1 -1
  523. package/.next/server/chunks/936.js +1 -0
  524. package/.next/server/chunks/9390.js +1 -1
  525. package/.next/server/chunks/9540.js +1 -0
  526. package/.next/server/chunks/9627.js +2 -2
  527. package/.next/server/chunks/9731.js +3 -3
  528. package/.next/server/middleware-build-manifest.js +1 -1
  529. package/.next/server/middleware-manifest.json +5 -5
  530. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  531. package/.next/server/pages/500.html +1 -1
  532. package/.next/server/pages/_document.js.nft.json +1 -1
  533. package/.next/server/pages/_error.js +3 -3
  534. package/.next/server/pages/_error.js.nft.json +1 -1
  535. package/.next/server/server-reference-manifest.json +1 -1
  536. package/.next/server/src/middleware.js.map +1 -1
  537. package/.next/static/chunks/{1111.5ab4f0ffb0d944e5.js → 1111.1b653d4a9816a0a7.js} +8 -8
  538. package/.next/static/chunks/{1255-7e5873f06b25e129.js → 1255-a85690d352f4f8fd.js} +1 -1
  539. package/.next/static/chunks/{2407-9703c569370b8a9d.js → 2407-a6533805a86d05bd.js} +1 -1
  540. package/.next/static/chunks/5371-a549a0d2c2044d41.js +1 -0
  541. package/.next/static/chunks/{5794-4eee51ff1e878aa6.js → 5794-80ac3f06f098ea29.js} +1 -1
  542. package/.next/static/chunks/602-1c1488959215e140.js +1 -0
  543. package/.next/static/chunks/9079-24f9fa549ed298f1.js +1 -0
  544. package/.next/static/chunks/9465-b59bb255b376c813.js +1 -0
  545. package/.next/static/chunks/app/api/agents/update/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  546. package/.next/static/chunks/app/api/agents/versions/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  547. package/.next/static/chunks/app/api/app/release-notes/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  548. package/.next/static/chunks/app/api/app/update/route-c81284a9d8b35304.js +1 -0
  549. package/.next/static/chunks/app/api/app/update-check/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  550. package/.next/static/chunks/app/api/auth/login/route-c81284a9d8b35304.js +1 -0
  551. package/.next/static/chunks/app/api/auth/logout/route-c81284a9d8b35304.js +1 -0
  552. package/.next/static/chunks/app/api/auth/status/route-c81284a9d8b35304.js +1 -0
  553. package/.next/static/chunks/app/api/capabilities/route-c81284a9d8b35304.js +1 -0
  554. package/.next/static/chunks/app/api/daily-summary/route-c81284a9d8b35304.js +1 -0
  555. package/.next/static/chunks/app/api/daily-summary/status/route-c81284a9d8b35304.js +1 -0
  556. package/.next/static/chunks/app/api/external-apps/[id]/health/route-c81284a9d8b35304.js +1 -0
  557. package/.next/static/chunks/app/api/external-apps/[id]/route-c81284a9d8b35304.js +1 -0
  558. package/.next/static/chunks/app/api/external-apps/route-c81284a9d8b35304.js +1 -0
  559. package/.next/static/chunks/app/api/fs/browse/route-c81284a9d8b35304.js +1 -0
  560. package/.next/static/chunks/app/api/fs/recent-paths/route-c81284a9d8b35304.js +1 -0
  561. package/.next/static/chunks/app/api/hooks/agent-event/route-c81284a9d8b35304.js +1 -0
  562. package/.next/static/chunks/app/api/hooks/claude-done/route-c81284a9d8b35304.js +1 -0
  563. package/.next/static/chunks/app/api/hooks/permission-request/route-c81284a9d8b35304.js +1 -0
  564. package/.next/static/chunks/app/api/metrics/vibe/route-c81284a9d8b35304.js +1 -0
  565. package/.next/static/chunks/app/api/ollama/models/route-c81284a9d8b35304.js +1 -0
  566. package/.next/static/chunks/app/api/push/escalation/route-c81284a9d8b35304.js +1 -0
  567. package/.next/static/chunks/app/api/push/subscriptions/route-c81284a9d8b35304.js +1 -0
  568. package/.next/static/chunks/app/api/push/vapid/route-c81284a9d8b35304.js +1 -0
  569. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c81284a9d8b35304.js +1 -0
  570. package/.next/static/chunks/app/api/relays/route-c81284a9d8b35304.js +1 -0
  571. package/.next/static/chunks/app/api/remote/pair/route-c81284a9d8b35304.js +1 -0
  572. package/.next/static/chunks/app/api/repositories/[id]/route-c81284a9d8b35304.js +1 -0
  573. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c81284a9d8b35304.js +1 -0
  574. package/.next/static/chunks/app/api/repositories/clone/route-c81284a9d8b35304.js +1 -0
  575. package/.next/static/chunks/app/api/repositories/excluded/route-c81284a9d8b35304.js +1 -0
  576. package/.next/static/chunks/app/api/repositories/restore/route-c81284a9d8b35304.js +1 -0
  577. package/.next/static/chunks/app/api/repositories/route-c81284a9d8b35304.js +1 -0
  578. package/.next/static/chunks/app/api/repositories/scan/route-c81284a9d8b35304.js +1 -0
  579. package/.next/static/chunks/app/api/repositories/sync/route-c81284a9d8b35304.js +1 -0
  580. package/.next/static/chunks/app/api/repositories/validate-path/route-c81284a9d8b35304.js +1 -0
  581. package/.next/static/chunks/app/api/settings/default-agents/route-c81284a9d8b35304.js +1 -0
  582. package/.next/static/chunks/app/api/settings/default-surface-mode/route-c81284a9d8b35304.js +1 -0
  583. package/.next/static/chunks/app/api/sidebar/group-order/route-c81284a9d8b35304.js +1 -0
  584. package/.next/static/chunks/app/api/skills/[id]/route-c81284a9d8b35304.js +1 -0
  585. package/.next/static/chunks/app/api/skills/installations/route-c81284a9d8b35304.js +1 -0
  586. package/.next/static/chunks/app/api/skills/operations/route-c81284a9d8b35304.js +1 -0
  587. package/.next/static/chunks/app/api/skills/reindex/route-c81284a9d8b35304.js +1 -0
  588. package/.next/static/chunks/app/api/skills/route-c81284a9d8b35304.js +1 -0
  589. package/.next/static/chunks/app/api/slash-commands/route-c81284a9d8b35304.js +1 -0
  590. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c81284a9d8b35304.js +1 -0
  591. package/.next/static/chunks/app/api/tasks/[taskId]/route-c81284a9d8b35304.js +1 -0
  592. package/.next/static/chunks/app/api/templates/[id]/route-c81284a9d8b35304.js +1 -0
  593. package/.next/static/chunks/app/api/templates/route-c81284a9d8b35304.js +1 -0
  594. package/.next/static/chunks/app/api/verification/runs/[runId]/route-c81284a9d8b35304.js +1 -0
  595. package/.next/static/chunks/app/api/verification/runs/route-c81284a9d8b35304.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c81284a9d8b35304.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c81284a9d8b35304.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c81284a9d8b35304.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c81284a9d8b35304.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c81284a9d8b35304.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c81284a9d8b35304.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c81284a9d8b35304.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-c81284a9d8b35304.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/env/route-c81284a9d8b35304.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c81284a9d8b35304.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c81284a9d8b35304.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c81284a9d8b35304.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c81284a9d8b35304.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c81284a9d8b35304.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c81284a9d8b35304.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c81284a9d8b35304.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c81284a9d8b35304.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c81284a9d8b35304.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c81284a9d8b35304.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c81284a9d8b35304.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c81284a9d8b35304.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c81284a9d8b35304.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c81284a9d8b35304.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c81284a9d8b35304.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c81284a9d8b35304.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c81284a9d8b35304.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c81284a9d8b35304.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c81284a9d8b35304.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c81284a9d8b35304.js +1 -0
  625. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c81284a9d8b35304.js +1 -0
  626. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c81284a9d8b35304.js +1 -0
  627. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c81284a9d8b35304.js +1 -0
  628. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c81284a9d8b35304.js +1 -0
  629. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c81284a9d8b35304.js +1 -0
  630. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c81284a9d8b35304.js +1 -0
  631. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c81284a9d8b35304.js +1 -0
  632. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c81284a9d8b35304.js +1 -0
  633. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c81284a9d8b35304.js +1 -0
  634. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c81284a9d8b35304.js +1 -0
  635. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c81284a9d8b35304.js +1 -0
  636. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c81284a9d8b35304.js +1 -0
  637. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c81284a9d8b35304.js +1 -0
  638. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c81284a9d8b35304.js +1 -0
  639. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c81284a9d8b35304.js +1 -0
  640. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c81284a9d8b35304.js +1 -0
  641. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c81284a9d8b35304.js +1 -0
  642. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c81284a9d8b35304.js +1 -0
  643. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c81284a9d8b35304.js +1 -0
  644. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c81284a9d8b35304.js +1 -0
  645. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-c81284a9d8b35304.js +1 -0
  646. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c81284a9d8b35304.js +1 -0
  647. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c81284a9d8b35304.js +1 -0
  648. package/.next/static/chunks/app/api/worktrees/[id]/route-c81284a9d8b35304.js +1 -0
  649. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c81284a9d8b35304.js +1 -0
  650. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c81284a9d8b35304.js +1 -0
  651. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c81284a9d8b35304.js +1 -0
  652. package/.next/static/chunks/app/api/worktrees/[id]/search/route-c81284a9d8b35304.js +1 -0
  653. package/.next/static/chunks/app/api/worktrees/[id]/send/route-c81284a9d8b35304.js +1 -0
  654. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c81284a9d8b35304.js +1 -0
  655. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c81284a9d8b35304.js +1 -0
  656. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c81284a9d8b35304.js +1 -0
  657. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c81284a9d8b35304.js +1 -0
  658. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c81284a9d8b35304.js +1 -0
  659. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c81284a9d8b35304.js +1 -0
  660. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c81284a9d8b35304.js +1 -0
  661. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c81284a9d8b35304.js +1 -0
  662. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c81284a9d8b35304.js +1 -0
  663. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c81284a9d8b35304.js +1 -0
  664. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c81284a9d8b35304.js +1 -0
  665. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c81284a9d8b35304.js +1 -0
  666. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c81284a9d8b35304.js +1 -0
  667. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c81284a9d8b35304.js +1 -0
  668. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c81284a9d8b35304.js +1 -0
  669. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c81284a9d8b35304.js +1 -0
  670. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c81284a9d8b35304.js +1 -0
  671. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c81284a9d8b35304.js +1 -0
  672. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c81284a9d8b35304.js +1 -0
  673. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c81284a9d8b35304.js +1 -0
  674. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c81284a9d8b35304.js +1 -0
  675. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c81284a9d8b35304.js +1 -0
  676. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c81284a9d8b35304.js +1 -0
  677. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c81284a9d8b35304.js +1 -0
  678. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c81284a9d8b35304.js +1 -0
  679. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c81284a9d8b35304.js +1 -0
  680. package/.next/static/chunks/app/api/worktrees/route-c81284a9d8b35304.js +1 -0
  681. package/.next/static/chunks/app/layout-538d8d2746ad1588.js +1 -0
  682. package/.next/static/chunks/app/manifest.webmanifest/route-c81284a9d8b35304.js +1 -0
  683. package/.next/static/chunks/app/proxy/[...path]/route-c81284a9d8b35304.js +1 -0
  684. package/.next/static/chunks/app/sessions/page-e02f1adb1d1c1ccc.js +1 -0
  685. package/.next/static/chunks/app/worktrees/[id]/layout-c81284a9d8b35304.js +1 -0
  686. package/.next/static/chunks/app/worktrees/[id]/page-46aced20b2b1c010.js +1 -0
  687. package/.next/static/chunks/main-37ca13e38030fe8b.js +1 -0
  688. package/.next/static/chunks/{webpack-468b7b33030234b3.js → webpack-838df0273b03af19.js} +1 -1
  689. package/.next/trace +13 -13
  690. package/.next/types/app/api/worktrees/[id]/prompt-response/strict/route.ts +347 -0
  691. package/.next/types/routes.d.ts +2 -1
  692. package/.next/types/validator.ts +9 -0
  693. package/dist/cli/commands/auto-yes.d.ts +19 -0
  694. package/dist/cli/commands/auto-yes.d.ts.map +1 -1
  695. package/dist/cli/commands/auto-yes.js +45 -0
  696. package/dist/cli/commands/instances.d.ts.map +1 -1
  697. package/dist/cli/commands/instances.js +23 -18
  698. package/dist/cli/commands/ls.d.ts +15 -1
  699. package/dist/cli/commands/ls.d.ts.map +1 -1
  700. package/dist/cli/commands/ls.js +39 -3
  701. package/dist/cli/commands/prompt.d.ts +42 -0
  702. package/dist/cli/commands/prompt.d.ts.map +1 -0
  703. package/dist/cli/commands/prompt.js +223 -0
  704. package/dist/cli/commands/relays.d.ts.map +1 -1
  705. package/dist/cli/commands/relays.js +13 -1
  706. package/dist/cli/commands/respond-strict.d.ts +31 -0
  707. package/dist/cli/commands/respond-strict.d.ts.map +1 -0
  708. package/dist/cli/commands/respond-strict.js +214 -0
  709. package/dist/cli/commands/respond.d.ts.map +1 -1
  710. package/dist/cli/commands/respond.js +38 -0
  711. package/dist/cli/commands/send.d.ts.map +1 -1
  712. package/dist/cli/commands/send.js +41 -5
  713. package/dist/cli/commands/start.d.ts.map +1 -1
  714. package/dist/cli/commands/start.js +2 -1
  715. package/dist/cli/commands/status.d.ts.map +1 -1
  716. package/dist/cli/commands/status.js +18 -0
  717. package/dist/cli/commands/wait.d.ts +21 -1
  718. package/dist/cli/commands/wait.d.ts.map +1 -1
  719. package/dist/cli/commands/wait.js +114 -12
  720. package/dist/cli/docs/agent-operations.d.ts +1 -1
  721. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  722. package/dist/cli/docs/agent-operations.js +63 -1
  723. package/dist/cli/program.d.ts.map +1 -1
  724. package/dist/cli/program.js +6 -2
  725. package/dist/cli/types/api-responses.d.ts +69 -2
  726. package/dist/cli/types/api-responses.d.ts.map +1 -1
  727. package/dist/cli/types/index.d.ts +30 -0
  728. package/dist/cli/types/index.d.ts.map +1 -1
  729. package/dist/cli/types/index.js +12 -1
  730. package/dist/cli/utils/api-client.d.ts +13 -1
  731. package/dist/cli/utils/api-client.d.ts.map +1 -1
  732. package/dist/cli/utils/api-client.js +10 -2
  733. package/dist/cli/utils/daemon-factory.d.ts.map +1 -1
  734. package/dist/cli/utils/daemon-factory.js +3 -1
  735. package/dist/cli/utils/daemon.d.ts +38 -1
  736. package/dist/cli/utils/daemon.d.ts.map +1 -1
  737. package/dist/cli/utils/daemon.js +161 -8
  738. package/dist/cli/utils/paths.d.ts +12 -0
  739. package/dist/cli/utils/paths.d.ts.map +1 -1
  740. package/dist/cli/utils/paths.js +17 -0
  741. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +54 -1
  742. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -1
  743. package/dist/lib/polling/auto-yes-suppression-reason.js +21 -1
  744. package/dist/lib/prompt-observation/kinds.d.ts +101 -0
  745. package/dist/lib/prompt-observation/kinds.d.ts.map +1 -0
  746. package/dist/lib/prompt-observation/kinds.js +123 -0
  747. package/dist/lib/prompt-observation/types.d.ts +271 -0
  748. package/dist/lib/prompt-observation/types.d.ts.map +1 -0
  749. package/dist/lib/prompt-observation/types.js +14 -0
  750. package/dist/lib/session/send-attempt-types.d.ts +66 -0
  751. package/dist/lib/session/send-attempt-types.d.ts.map +1 -0
  752. package/dist/lib/session/send-attempt-types.js +17 -0
  753. package/dist/server/locales/en/worktree.json +4 -0
  754. package/dist/server/locales/ja/worktree.json +4 -0
  755. package/dist/server/server.js +20 -1
  756. package/dist/server/src/config/auto-yes-config.js +11 -0
  757. package/dist/server/src/lib/auto-yes-lifecycle.js +28 -2
  758. package/dist/server/src/lib/auto-yes-poller.js +401 -369
  759. package/dist/server/src/lib/auto-yes-shutdown-record.js +257 -0
  760. package/dist/server/src/lib/auto-yes-state.js +197 -4
  761. package/dist/server/src/lib/cli-tools/antigravity-startup-trust.js +135 -0
  762. package/dist/server/src/lib/cli-tools/antigravity.js +162 -29
  763. package/dist/server/src/lib/cli-tools/command-code.js +10 -2
  764. package/dist/server/src/lib/cli-tools/copilot.js +21 -10
  765. package/dist/server/src/lib/cli-tools/gemini.js +60 -13
  766. package/dist/server/src/lib/cli-tools/launch-dialog.js +203 -0
  767. package/dist/server/src/lib/cli-tools/launch-window.js +96 -0
  768. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +88 -6
  769. package/dist/server/src/lib/detection/prompt-detector.js +1 -1
  770. package/dist/server/src/lib/detection/selection-shape.js +35 -1
  771. package/dist/server/src/lib/detection/tools/antigravity/detect.js +38 -9
  772. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +89 -2
  773. package/dist/server/src/lib/detection/tools/antigravity/patterns.js +41 -1
  774. package/dist/server/src/lib/detection/tools/claude/detect.js +60 -0
  775. package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +63 -13
  776. package/dist/server/src/lib/detection/tools/copilot/patterns.js +7 -1
  777. package/dist/server/src/lib/hooks/permission-adjudication.js +26 -0
  778. package/dist/server/src/lib/hooks/permission-decision-service.js +42 -4
  779. package/dist/server/src/lib/hooks/permission-request-payload.js +20 -0
  780. package/dist/server/src/lib/hooks/sources/antigravity/source.js +21 -0
  781. package/dist/server/src/lib/hooks/sources/claude/source.js +3 -0
  782. package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
  783. package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
  784. package/dist/server/src/lib/hooks/sources/copilot/source.js +2 -0
  785. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  786. package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
  787. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +6 -0
  788. package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
  789. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +11 -2
  790. package/dist/server/src/lib/hooks/sources/opencode-v2/ingest.js +6 -0
  791. package/dist/server/src/lib/hooks/sources/opencode-v2/source.js +2 -0
  792. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +5 -3
  793. package/dist/server/src/lib/hooks/sources/pending-decisions.js +14 -2
  794. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +29 -3
  795. package/dist/server/src/lib/polling/antigravity-receipt-episodes.js +301 -0
  796. package/dist/server/src/lib/polling/auto-yes-confirm-page.js +56 -0
  797. package/dist/server/src/lib/polling/auto-yes-confirmation-ledger-types.js +114 -0
  798. package/dist/server/src/lib/polling/auto-yes-confirmation-ledger.js +1060 -0
  799. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +8 -1
  800. package/dist/server/src/lib/polling/auto-yes-ledger-records.js +143 -0
  801. package/dist/server/src/lib/polling/auto-yes-policy.js +96 -13
  802. package/dist/server/src/lib/polling/auto-yes-poller-capture.js +50 -0
  803. package/dist/server/src/lib/polling/auto-yes-poller-enter-fallback.js +37 -0
  804. package/dist/server/src/lib/polling/auto-yes-poller-generation.js +151 -0
  805. package/dist/server/src/lib/polling/auto-yes-poller-receipt-log.js +287 -0
  806. package/dist/server/src/lib/polling/auto-yes-poller-state.js +75 -6
  807. package/dist/server/src/lib/polling/auto-yes-poller-steps.js +109 -0
  808. package/dist/server/src/lib/polling/auto-yes-poller-stop-reason.js +50 -0
  809. package/dist/server/src/lib/polling/auto-yes-prompt-suppression.js +231 -5
  810. package/dist/server/src/lib/polling/auto-yes-resolver.js +21 -1
  811. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +21 -1
  812. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +10 -0
  813. package/dist/server/src/lib/polling/response-checker-blank-response.js +30 -0
  814. package/dist/server/src/lib/polling/response-checker-dialog-gate.js +2 -2
  815. package/dist/server/src/lib/polling/response-checker.js +14 -10
  816. package/dist/server/src/lib/polling/response-poller-core.js +136 -104
  817. package/dist/server/src/lib/prompt-observation/appearance.js +165 -0
  818. package/dist/server/src/lib/prompt-observation/kinds.js +123 -0
  819. package/dist/server/src/lib/prompt-observation/types.js +14 -0
  820. package/dist/server/src/lib/push/prompt-push-gate.js +195 -3
  821. package/dist/server/src/lib/push/waiting-push-notifier.js +74 -7
  822. package/dist/server/src/lib/relay/relay-delivery-claims.js +46 -0
  823. package/dist/server/src/lib/relay/relay-delivery.js +76 -30
  824. package/dist/server/src/lib/schedule-manager.js +28 -0
  825. package/dist/server/src/lib/session/cli-session.js +38 -3
  826. package/dist/server/src/lib/session/send-attempt-state.js +155 -0
  827. package/dist/server/src/lib/session/send-attempt-types.js +17 -0
  828. package/dist/server/src/lib/session/send-user-message.js +46 -0
  829. package/dist/server/src/lib/session/worktree-session-reconcile.js +2 -1
  830. package/dist/server/src/lib/tmux/session-created-signal.js +76 -0
  831. package/dist/server/src/lib/tmux/tmux-capture-cache.js +58 -6
  832. package/dist/server/src/lib/tmux/tmux.js +4 -0
  833. package/dist/server/src/lib/verification/scope-gate-format.js +100 -0
  834. package/dist/server/src/lib/verification/scope-gate-glob.js +185 -0
  835. package/dist/server/src/lib/verification/scope-gate.js +19 -271
  836. package/dist/server/src/lib/ws-server.js +48 -6
  837. package/docs/en/user-guide/cli-setup-guide.md +12 -1
  838. package/docs/en/user-guide/webapp-guide.md +2 -0
  839. package/package.json +2 -2
  840. package/release-notes/0.47.0.json +118 -0
  841. package/release-notes/0.47.1.json +20 -0
  842. package/release-notes/0.47.2.json +20 -0
  843. package/scripts/hooks/cmate-agent-event.sh +22 -0
  844. package/.next/server/chunks/1331.js +0 -22
  845. package/.next/server/chunks/1789.js +0 -1
  846. package/.next/server/chunks/1944.js +0 -1
  847. package/.next/server/chunks/2328.js +0 -1
  848. package/.next/server/chunks/2908.js +0 -1
  849. package/.next/server/chunks/2984.js +0 -25
  850. package/.next/server/chunks/3718.js +0 -1
  851. package/.next/server/chunks/4837.js +0 -14
  852. package/.next/server/chunks/5292.js +0 -7
  853. package/.next/server/chunks/611.js +0 -1
  854. package/.next/server/chunks/850.js +0 -1
  855. package/.next/server/chunks/9051.js +0 -1
  856. package/.next/static/chunks/3201-c01f1feed69020e6.js +0 -1
  857. package/.next/static/chunks/5371-0dc947683e46e78c.js +0 -1
  858. package/.next/static/chunks/602-25e45a2422d2a3ea.js +0 -1
  859. package/.next/static/chunks/9465-e5a351baa941f31b.js +0 -1
  860. package/.next/static/chunks/app/api/app/update/route-0468c3c4baa46028.js +0 -1
  861. package/.next/static/chunks/app/api/auth/login/route-0468c3c4baa46028.js +0 -1
  862. package/.next/static/chunks/app/api/auth/logout/route-0468c3c4baa46028.js +0 -1
  863. package/.next/static/chunks/app/api/auth/status/route-0468c3c4baa46028.js +0 -1
  864. package/.next/static/chunks/app/api/capabilities/route-0468c3c4baa46028.js +0 -1
  865. package/.next/static/chunks/app/api/daily-summary/route-0468c3c4baa46028.js +0 -1
  866. package/.next/static/chunks/app/api/daily-summary/status/route-0468c3c4baa46028.js +0 -1
  867. package/.next/static/chunks/app/api/external-apps/[id]/health/route-0468c3c4baa46028.js +0 -1
  868. package/.next/static/chunks/app/api/external-apps/[id]/route-0468c3c4baa46028.js +0 -1
  869. package/.next/static/chunks/app/api/external-apps/route-0468c3c4baa46028.js +0 -1
  870. package/.next/static/chunks/app/api/fs/browse/route-0468c3c4baa46028.js +0 -1
  871. package/.next/static/chunks/app/api/fs/recent-paths/route-0468c3c4baa46028.js +0 -1
  872. package/.next/static/chunks/app/api/hooks/agent-event/route-0468c3c4baa46028.js +0 -1
  873. package/.next/static/chunks/app/api/hooks/claude-done/route-0468c3c4baa46028.js +0 -1
  874. package/.next/static/chunks/app/api/hooks/permission-request/route-0468c3c4baa46028.js +0 -1
  875. package/.next/static/chunks/app/api/metrics/vibe/route-0468c3c4baa46028.js +0 -1
  876. package/.next/static/chunks/app/api/ollama/models/route-0468c3c4baa46028.js +0 -1
  877. package/.next/static/chunks/app/api/push/escalation/route-0468c3c4baa46028.js +0 -1
  878. package/.next/static/chunks/app/api/push/subscriptions/route-0468c3c4baa46028.js +0 -1
  879. package/.next/static/chunks/app/api/push/vapid/route-0468c3c4baa46028.js +0 -1
  880. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-0468c3c4baa46028.js +0 -1
  881. package/.next/static/chunks/app/api/relays/route-0468c3c4baa46028.js +0 -1
  882. package/.next/static/chunks/app/api/remote/pair/route-0468c3c4baa46028.js +0 -1
  883. package/.next/static/chunks/app/api/repositories/[id]/route-0468c3c4baa46028.js +0 -1
  884. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-0468c3c4baa46028.js +0 -1
  885. package/.next/static/chunks/app/api/repositories/clone/route-0468c3c4baa46028.js +0 -1
  886. package/.next/static/chunks/app/api/repositories/excluded/route-0468c3c4baa46028.js +0 -1
  887. package/.next/static/chunks/app/api/repositories/restore/route-0468c3c4baa46028.js +0 -1
  888. package/.next/static/chunks/app/api/repositories/route-0468c3c4baa46028.js +0 -1
  889. package/.next/static/chunks/app/api/repositories/scan/route-0468c3c4baa46028.js +0 -1
  890. package/.next/static/chunks/app/api/repositories/sync/route-0468c3c4baa46028.js +0 -1
  891. package/.next/static/chunks/app/api/repositories/validate-path/route-0468c3c4baa46028.js +0 -1
  892. package/.next/static/chunks/app/api/settings/default-agents/route-0468c3c4baa46028.js +0 -1
  893. package/.next/static/chunks/app/api/settings/default-surface-mode/route-0468c3c4baa46028.js +0 -1
  894. package/.next/static/chunks/app/api/sidebar/group-order/route-0468c3c4baa46028.js +0 -1
  895. package/.next/static/chunks/app/api/skills/[id]/route-0468c3c4baa46028.js +0 -1
  896. package/.next/static/chunks/app/api/skills/installations/route-0468c3c4baa46028.js +0 -1
  897. package/.next/static/chunks/app/api/skills/operations/route-0468c3c4baa46028.js +0 -1
  898. package/.next/static/chunks/app/api/skills/reindex/route-0468c3c4baa46028.js +0 -1
  899. package/.next/static/chunks/app/api/skills/route-0468c3c4baa46028.js +0 -1
  900. package/.next/static/chunks/app/api/slash-commands/route-0468c3c4baa46028.js +0 -1
  901. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-0468c3c4baa46028.js +0 -1
  902. package/.next/static/chunks/app/api/tasks/[taskId]/route-0468c3c4baa46028.js +0 -1
  903. package/.next/static/chunks/app/api/templates/[id]/route-0468c3c4baa46028.js +0 -1
  904. package/.next/static/chunks/app/api/templates/route-0468c3c4baa46028.js +0 -1
  905. package/.next/static/chunks/app/api/verification/runs/[runId]/route-0468c3c4baa46028.js +0 -1
  906. package/.next/static/chunks/app/api/verification/runs/route-0468c3c4baa46028.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-0468c3c4baa46028.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-0468c3c4baa46028.js +0 -1
  909. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-0468c3c4baa46028.js +0 -1
  910. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-0468c3c4baa46028.js +0 -1
  911. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-0468c3c4baa46028.js +0 -1
  912. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-0468c3c4baa46028.js +0 -1
  913. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-0468c3c4baa46028.js +0 -1
  914. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-0468c3c4baa46028.js +0 -1
  915. package/.next/static/chunks/app/api/worktrees/[id]/env/route-0468c3c4baa46028.js +0 -1
  916. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-0468c3c4baa46028.js +0 -1
  917. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-0468c3c4baa46028.js +0 -1
  918. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-0468c3c4baa46028.js +0 -1
  919. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-0468c3c4baa46028.js +0 -1
  920. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-0468c3c4baa46028.js +0 -1
  921. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-0468c3c4baa46028.js +0 -1
  922. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-0468c3c4baa46028.js +0 -1
  923. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-0468c3c4baa46028.js +0 -1
  924. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-0468c3c4baa46028.js +0 -1
  925. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-0468c3c4baa46028.js +0 -1
  926. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-0468c3c4baa46028.js +0 -1
  927. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-0468c3c4baa46028.js +0 -1
  928. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-0468c3c4baa46028.js +0 -1
  929. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-0468c3c4baa46028.js +0 -1
  930. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-0468c3c4baa46028.js +0 -1
  931. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-0468c3c4baa46028.js +0 -1
  932. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-0468c3c4baa46028.js +0 -1
  933. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-0468c3c4baa46028.js +0 -1
  934. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-0468c3c4baa46028.js +0 -1
  935. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-0468c3c4baa46028.js +0 -1
  936. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-0468c3c4baa46028.js +0 -1
  937. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-0468c3c4baa46028.js +0 -1
  938. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-0468c3c4baa46028.js +0 -1
  939. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-0468c3c4baa46028.js +0 -1
  940. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-0468c3c4baa46028.js +0 -1
  941. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-0468c3c4baa46028.js +0 -1
  942. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-0468c3c4baa46028.js +0 -1
  943. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-0468c3c4baa46028.js +0 -1
  944. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-0468c3c4baa46028.js +0 -1
  945. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-0468c3c4baa46028.js +0 -1
  946. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-0468c3c4baa46028.js +0 -1
  947. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-0468c3c4baa46028.js +0 -1
  948. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-0468c3c4baa46028.js +0 -1
  949. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-0468c3c4baa46028.js +0 -1
  950. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-0468c3c4baa46028.js +0 -1
  951. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-0468c3c4baa46028.js +0 -1
  952. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-0468c3c4baa46028.js +0 -1
  953. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-0468c3c4baa46028.js +0 -1
  954. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-0468c3c4baa46028.js +0 -1
  955. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-0468c3c4baa46028.js +0 -1
  956. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-0468c3c4baa46028.js +0 -1
  957. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-0468c3c4baa46028.js +0 -1
  958. package/.next/static/chunks/app/api/worktrees/[id]/route-0468c3c4baa46028.js +0 -1
  959. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-0468c3c4baa46028.js +0 -1
  960. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-0468c3c4baa46028.js +0 -1
  961. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-0468c3c4baa46028.js +0 -1
  962. package/.next/static/chunks/app/api/worktrees/[id]/search/route-0468c3c4baa46028.js +0 -1
  963. package/.next/static/chunks/app/api/worktrees/[id]/send/route-0468c3c4baa46028.js +0 -1
  964. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-0468c3c4baa46028.js +0 -1
  965. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-0468c3c4baa46028.js +0 -1
  966. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-0468c3c4baa46028.js +0 -1
  967. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-0468c3c4baa46028.js +0 -1
  968. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-0468c3c4baa46028.js +0 -1
  969. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-0468c3c4baa46028.js +0 -1
  970. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-0468c3c4baa46028.js +0 -1
  971. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-0468c3c4baa46028.js +0 -1
  972. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-0468c3c4baa46028.js +0 -1
  973. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-0468c3c4baa46028.js +0 -1
  974. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-0468c3c4baa46028.js +0 -1
  975. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-0468c3c4baa46028.js +0 -1
  976. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-0468c3c4baa46028.js +0 -1
  977. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-0468c3c4baa46028.js +0 -1
  978. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-0468c3c4baa46028.js +0 -1
  979. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-0468c3c4baa46028.js +0 -1
  980. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-0468c3c4baa46028.js +0 -1
  981. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-0468c3c4baa46028.js +0 -1
  982. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-0468c3c4baa46028.js +0 -1
  983. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-0468c3c4baa46028.js +0 -1
  984. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-0468c3c4baa46028.js +0 -1
  985. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-0468c3c4baa46028.js +0 -1
  986. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-0468c3c4baa46028.js +0 -1
  987. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-0468c3c4baa46028.js +0 -1
  988. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-0468c3c4baa46028.js +0 -1
  989. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-0468c3c4baa46028.js +0 -1
  990. package/.next/static/chunks/app/api/worktrees/route-0468c3c4baa46028.js +0 -1
  991. package/.next/static/chunks/app/layout-3e357690446cd2da.js +0 -1
  992. package/.next/static/chunks/app/manifest.webmanifest/route-0468c3c4baa46028.js +0 -1
  993. package/.next/static/chunks/app/proxy/[...path]/route-0468c3c4baa46028.js +0 -1
  994. package/.next/static/chunks/app/sessions/page-9859ed61e93e6890.js +0 -1
  995. package/.next/static/chunks/app/worktrees/[id]/layout-0468c3c4baa46028.js +0 -1
  996. package/.next/static/chunks/app/worktrees/[id]/page-effbf0796881dd5a.js +0 -1
  997. package/.next/static/chunks/main-ac91ed6e71380841.js +0 -1
  998. /package/.next/static/{QxDf7lm-JJkWoj-TyWiSB → etorRtpxbQqqOzdUeXdw2}/_buildManifest.js +0 -0
  999. /package/.next/static/{QxDf7lm-JJkWoj-TyWiSB → etorRtpxbQqqOzdUeXdw2}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- exports.id=6401,exports.ids=[6401],exports.modules={3421:(a,b,c)=>{"use strict";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()}}},26838:(a,b,c)=>{"use strict";c.d(b,{E2:()=>q,MQ:()=>m,Mj:()=>o,Sw:()=>n,lX:()=>r});var d=c(29021),e=c(33873),f=c(54325),g=c(90164),h=c(36925);let i=/^v?\d+\.\d+\.\d+$/,j=/^[a-zA-Z0-9.\-\s_v]+$/,k=[".next","required-server-files.json"],l=(0,h.v)("__versionCheckCache",()=>({result:null,fetchedAt:0,rateLimitResetAt:null}));function m(a,b){if(!i.test(a)||!i.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,h,j]=c(b);return g!==d?g>d:h!==e?h>e:j>f}function n(){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.46.1"}function o(){return n()}let p=null;function q(a){let b=p??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...k),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.46.1"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function r(){try{var a,b,c;if(null!==l.result&&Date.now()-l.fetchedAt<36e5||l.rateLimitResetAt&&(!(Date.now()>=l.rateLimitResetAt)||(l.rateLimitResetAt=null,0)))return l.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${o()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?l.rateLimitResetAt=1e3*parseInt(b,10):l.rateLimitResetAt=Date.now()+36e5}(d),l.result;if(!d.ok)return l.result;let e=await d.json(),f=o(),h=e.tag_name.replace(/^v/,""),i={hasUpdate:m(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,j.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return l.result=i,l.fetchedAt=Date.now(),i}catch{return l.result}}},36925:(a,b,c)=>{"use strict";function d(a,b){return globalThis[a]??=b()}c.d(b,{v:()=>d})},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},53515:(a,b,c)=>{"use strict";c.d(b,{n8:()=>n,KC:()=>m});var d=c(79646);function e(a){return"string"==typeof a?a.trim():""}c(29021),c(33873);var f=c(26838);let g=/^\d+\.\d+\.\d+$/,h=/^v?\d+\.\d+\.\d+$/,i=globalThis,j=i.__npmPublishCheckCache??(i.__npmPublishCheckCache={targetVersion:null,npmVersion:null,checkedAt:0,inFlight:null});async function k(){let a=await new Promise(a=>{(0,d.execFile)("npm",["view","commandmate","version"],{encoding:"utf-8",timeout:1e4},(b,c,d)=>{if(b)return"ENOENT"===b.code?void a({success:!1,error:"npm command not found. Install Node.js/npm and try again."}):void a({success:!1,error:e(d)||b.message});let f=e(c);if(!f)return void a({success:!1,error:"npm view returned no version"});a({success:!0,version:f})})});return a.success&&a.version&&g.test(a.version)?a.version:null}async function l(a,b,c){var d,e,g,h;if(j.targetVersion===a){if(null!==j.npmVersion&&(d=j.npmVersion,!(0,f.MQ)(d,a))||c()-j.checkedAt<3e5)return j.npmVersion}j.inFlight||(j.inFlight=(async()=>{try{return await b()}catch{return null}})());let i=j.inFlight,k=await i;return j.inFlight===i&&(j.inFlight=null,e=a,g=k,h=c(),j.targetVersion=e,j.npmVersion=g,j.checkedAt=h),k}async function m(a,b={}){var c;if(!a.hasUpdate)return{hasUpdate:!1,pendingVersion:null};let d=await l(a.latestVersion,b.fetchNpmLatest??k,b.now??Date.now);return null!==d&&(c=a.latestVersion,(0,f.MQ)(d,c))?{hasUpdate:!1,pendingVersion:a.latestVersion}:{hasUpdate:!0,pendingVersion:null}}async function n(a,b={}){let c;if(!h.test(a))return null;try{c=await (b.fetchNpmLatest??k)()}catch{return null}return null===c?null:(0,f.MQ)(a,c)}},54325:(a,b,c)=>{"use strict";c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},78335:()=>{},90164:(a,b,c)=>{"use strict";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`},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
1
+ exports.id=6401,exports.ids=[6401],exports.modules={3421:(a,b,c)=>{"use strict";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()}}},26838:(a,b,c)=>{"use strict";c.d(b,{E2:()=>q,MQ:()=>m,Mj:()=>o,Sw:()=>n,lX:()=>r});var d=c(29021),e=c(33873),f=c(54325),g=c(90164),h=c(36925);let i=/^v?\d+\.\d+\.\d+$/,j=/^[a-zA-Z0-9.\-\s_v]+$/,k=[".next","required-server-files.json"],l=(0,h.v)("__versionCheckCache",()=>({result:null,fetchedAt:0,rateLimitResetAt:null}));function m(a,b){if(!i.test(a)||!i.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,h,j]=c(b);return g!==d?g>d:h!==e?h>e:j>f}function n(){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.47.2"}function o(){return n()}let p=null;function q(a){let b=p??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...k),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.47.2"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function r(){try{var a,b,c;if(null!==l.result&&Date.now()-l.fetchedAt<36e5||l.rateLimitResetAt&&(!(Date.now()>=l.rateLimitResetAt)||(l.rateLimitResetAt=null,0)))return l.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${o()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?l.rateLimitResetAt=1e3*parseInt(b,10):l.rateLimitResetAt=Date.now()+36e5}(d),l.result;if(!d.ok)return l.result;let e=await d.json(),f=o(),h=e.tag_name.replace(/^v/,""),i={hasUpdate:m(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,j.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return l.result=i,l.fetchedAt=Date.now(),i}catch{return l.result}}},36925:(a,b,c)=>{"use strict";function d(a,b){return globalThis[a]??=b()}c.d(b,{v:()=>d})},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},53515:(a,b,c)=>{"use strict";c.d(b,{n8:()=>n,KC:()=>m});var d=c(79646);function e(a){return"string"==typeof a?a.trim():""}c(29021),c(33873);var f=c(26838);let g=/^\d+\.\d+\.\d+$/,h=/^v?\d+\.\d+\.\d+$/,i=globalThis,j=i.__npmPublishCheckCache??(i.__npmPublishCheckCache={targetVersion:null,npmVersion:null,checkedAt:0,inFlight:null});async function k(){let a=await new Promise(a=>{(0,d.execFile)("npm",["view","commandmate","version"],{encoding:"utf-8",timeout:1e4},(b,c,d)=>{if(b)return"ENOENT"===b.code?void a({success:!1,error:"npm command not found. Install Node.js/npm and try again."}):void a({success:!1,error:e(d)||b.message});let f=e(c);if(!f)return void a({success:!1,error:"npm view returned no version"});a({success:!0,version:f})})});return a.success&&a.version&&g.test(a.version)?a.version:null}async function l(a,b,c){var d,e,g,h;if(j.targetVersion===a){if(null!==j.npmVersion&&(d=j.npmVersion,!(0,f.MQ)(d,a))||c()-j.checkedAt<3e5)return j.npmVersion}j.inFlight||(j.inFlight=(async()=>{try{return await b()}catch{return null}})());let i=j.inFlight,k=await i;return j.inFlight===i&&(j.inFlight=null,e=a,g=k,h=c(),j.targetVersion=e,j.npmVersion=g,j.checkedAt=h),k}async function m(a,b={}){var c;if(!a.hasUpdate)return{hasUpdate:!1,pendingVersion:null};let d=await l(a.latestVersion,b.fetchNpmLatest??k,b.now??Date.now);return null!==d&&(c=a.latestVersion,(0,f.MQ)(d,c))?{hasUpdate:!1,pendingVersion:a.latestVersion}:{hasUpdate:!0,pendingVersion:null}}async function n(a,b={}){let c;if(!h.test(a))return null;try{c=await (b.fetchNpmLatest??k)()}catch{return null}return null===c?null:(0,f.MQ)(a,c)}},54325:(a,b,c)=>{"use strict";c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},78335:()=>{},90164:(a,b,c)=>{"use strict";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`},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
@@ -1,9 +1,9 @@
1
- "use strict";exports.id=2283,exports.ids=[2283],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}},52283:(a,b,c)=>{c.d(b,{Wb:()=>ad,on:()=>al,AT:()=>ax});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="skipped: the verification run was cancelled.";var s=c(55511),t=c(33873),u=c.n(t),v=c(96210),w=c(52710);function x(a){try{if(!(0,e.lstatSync)(a).isFile())return null;return(0,e.readFileSync)(a)}catch{return null}}function y(a){let b,c=new Set,d=u().join(a,v.pg);try{b=(0,e.readdirSync)(d)}catch{return c}for(let d of b){var f;if(!v.X0.test(d)||!(d.length<=v.cj))continue;let b=`${v.pg}/${d}`,e=x(u().join(a,b,w.zi));if(null===e)continue;let g=(0,w.q$)(e);if(null===g||g.skill_id!==d)continue;let h=new Set(v.y2.map(a=>`${a}/${d}`)),i=(0,w.Pw)(g);if(i[0]===b)for(let b of i){if("string"!=typeof b||!h.has(b))continue;let d=x(u().join(a,b,w.zi));for(let h of(null!==d&&d.equals(e)&&c.add(`${b}/${w.zi}`),g.files)){if(!h||"string"!=typeof h.path||"string"!=typeof h.sha256||!(!(""===(f=h.path)||f.startsWith("/")||f.includes("\\"))&&f.split("/").every(a=>""!==a&&"."!==a&&".."!==a))||h.path===w.zi)continue;let d=x(u().join(a,b,h.path));null!==d&&(0,s.createHash)("sha256").update(d).digest("hex")===h.sha256.toLowerCase()&&c.add(`${b}/${h.path}`)}}}return c}let z=[".commandcode/settings.local.json"],A=[".commandcode/taste/"];function B(a){return!!z.includes(a)||A.some(b=>a.startsWith(b)&&!a.slice(b.length).split("/").includes(".."))}function C(a){return"??"===a.status&&a.paths.every(B)}let D=".commandmate/",E=`(exempt: ${D})`,F=".commandmate/tasks/",G=["docs/module-reference.md"];function H(a){return a.startsWith(F)}function I(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 J{constructor(a,b=null){this.contractPath=b,this.allow=a.allow.map(I),this.deny=a.deny.map(I)}classify(a){let b=this.deny.find(b=>b.regexp.test(a));if(b)return{admitted:!1,pattern:b.pattern};if(a.startsWith(D))return{admitted:!0,pattern:E};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 K(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 L(a){return a.split("\0").filter(a=>""!==a)}function M(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({status:a.slice(0,2),paths:e})}return c}function N(a,b){return"??"===a.status&&a.paths.every(a=>b.has(a))}async function O(a,b){let c=await K(["log","-z","--format=%H%x1f%P%x1f%(trailers:key=Orchestrator-Fold,valueonly,unfold,separator=%x1e)",`${b}..HEAD`],a);if(0!==c.code)return{error:`'git log ${b}..HEAD' failed.`+(c.stderr.trim()?`
2
- ${c.stderr.trim()}`:"")};let d=function(a){let b=[];for(let c of a.split("\0")){let a=c.indexOf("\x1f"),d=c.indexOf("\x1f",a+1);if(a<=0||d<0)continue;let e=c.slice(d+1);b.push({sha:c.slice(0,a),parents:c.slice(a+1,d).split(" ").filter(Boolean),foldTrailers:""===e?[]:e.split("\x1e")})}return b}(c.stdout);if(!d.some(a=>a.foldTrailers.length>0))return{changes:[]};let e=[];for(let b of d){if(1!==b.parents.length)continue;let c=await K(["diff-tree","--no-commit-id","--name-only","-z","--no-renames","-r",b.sha],a);if(0!==c.code)return{error:`'git diff-tree ${b.sha}' failed.`+(c.stderr.trim()?`
3
- ${c.stderr.trim()}`:"")};let d=L(c.stdout);e.push({sha:b.sha,files:d,fold:function(a,b){var c;return 1===a.parents.length&&a.foldTrailers.includes("module-reference")&&(c=b).length>0&&c.every(a=>G.includes(a))}(b,d)})}return{changes:e}}async function P(a,b){let c=await O(a,b);return"error"in c?c:{paths:function(a){let b=new Set,c=new Set;for(let d of a){let a=d.fold?b:c;d.files.forEach(b=>a.add(b))}return new Set([...b].filter(a=>!c.has(a)))}(c.changes)}}async function Q(a,b){let c=await K(["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()?`
4
- ${c.stderr.trim()}`:"")};let d=c.stdout.trim(),e=await K(["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()?`
5
- ${e.stderr.trim()}`:"")};let f=await P(a,d);if("error"in f)return f;let g=new Set,h=L(e.stdout).filter(a=>!f.paths.has(a)||(g.add(a),!1)),i=await K(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==i.code)return{error:"'git status --porcelain' failed."+(i.stderr.trim()?`
6
- ${i.stderr.trim()}`:"")};let j=y(a),k=new Set,l=new Set([...h,...M(i.stdout).filter(a=>!N(a,j)&&(!C(a)||(a.paths.forEach(a=>k.add(a)),!1))).flatMap(a=>a.paths)].filter(a=>!H(a)));return{paths:[...l].sort(),mergeBase:d,agentStateExcluded:[...k].sort(),orchestratorExcluded:[...g].filter(a=>!l.has(a)).sort()}}function R(a){return a.length>0?a.join(", "):"(none)"}function S(a,b,c){return null===c?` ${a} ${b}`:` ${a} ${b} \u2190 ${c}`}async function T(a,b,c,d,e=null){var f;let g=Date.now(),h=(a,b,c)=>({status:a,exitCode:c,startedAt:g,durationMs:Date.now()-g,logTail:b});if(!b)return h("skipped","scope: no contract is attached to this run, so no scope is declared to check.",null);if(!c)return h("skipped","scope: the contract sets success.requireScopeClean: false.",null);if(!d)return h("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 i=await Q(a,d);if("error"in i)return h("error",`scope: ${i.error}`,null);let j=new J(b,e),k=[],l=[],m=new Map;for(let a of i.paths){let b=j.classify(a);if(b.admitted){k.push({path:a,pattern:b.pattern});continue}l.push(a),null!==b.pattern&&m.set(a,b.pattern)}let n=[`scope: baseRef=${d} changed=${i.paths.length} violations=${l.length}`,`allow: ${R(b.allow)}`,`deny: ${R(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=>S("+",a.path,a.pattern)),...c>0?[` ... (+${c} more)`]:[]]}(k),...function(a){if(0===a.length)return[];let b=a.slice(0,100),c=a.length-b.length;return["excluded (agent-managed state files, not counted as change):",...b.map(a=>` ~ ${a}`),...c>0?[` ... (+${c} more)`]:[]]}(i.agentStateExcluded),...0===(f=i.orchestratorExcluded).length?[]:["excluded (changed only by orchestrator commits, not counted as change):",...f.map(a=>` ~ ${a}`)]].join("\n");if(0===l.length)return h("passed",n,0);let o=l.slice(0,100),p=l.length-o.length;return h("failed",[n,"out of scope:",...o.map(a=>S("-",a,m.get(a)??null)),...p>0?[` ... and ${p} 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 U=c(90384),V=c(62171),W=c(85322);let X=(0,j.h)("lib/verification/gate-runner"),Y="git diff --name-only / status --porcelain \xd7 contract scope",Z="lsof -iTCP -sTCP:LISTEN / tmux list-sessions / $HOME / ~/.commandmate \xd7 task-start snapshot",$="[mutex]",_="[flaky]";function aa(a,b){return`--- ${_} run ${a}/2: ${b.status} exit=${ac(b.exitCode)} duration=${ab(b.durationMs)} ---`}function ab(a){return`${(a/1e3).toFixed(1)}s`}function ac(a){return null===a?"n/a":String(a)}class ad 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 ae=0,af=[],ag=new Map,ah=`${r} This gate was terminated before it reached a verdict.`,ai=`${r} The run stopped before this gate started.`;class aj{get cancelled(){return this.latched}register(a){return this.latched?(a(),()=>{}):(this.killers.add(a),()=>{this.killers.delete(a)})}cancel(){for(let a of(this.latched=!0,[...this.killers]))a()}constructor(){this.latched=!1,this.killers=new Set}}let ak=new Map;async function al(a){let b,c=ak.get(a),d=ag.get(a);if(!c||!d)return{kind:"not-running"};c.cancel();let e=await Promise.race([d,new Promise(a=>{b=setTimeout(()=>a(null),8e3),b.unref?.()})]);return b&&clearTimeout(b),null===e?{kind:"requested"}:{kind:"cancelled",status:e}}class am{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 an(a,b,c,e,f,g){return new Promise(h=>{let i,j,k=Date.now(),l=new am(e),m=!1,n=!1,o=!1,p=(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"]});p.stdout?.on("data",a=>l.append(a)),p.stderr?.on("data",a=>l.append(a));let q=a=>{if(void 0!==p.pid)try{process.kill(-p.pid,a)}catch{try{p.kill(a)}catch{}}},r=g?.register(()=>{o=!0,q("SIGTERM"),j=setTimeout(()=>q("SIGKILL"),5e3),j.unref?.()}),s=a=>{m||(m=!0,clearTimeout(t),i&&clearTimeout(i),j&&clearTimeout(j),r?.(),h({...a,startedAt:k,durationMs:Date.now()-k}))},t=setTimeout(()=>{n=!0,q("SIGTERM"),i=setTimeout(()=>q("SIGKILL"),5e3),i.unref?.()},1e3*c);t.unref?.(),p.on("error",a=>{s({status:"error",exitCode:null,logTail:`${l.toString()}
1
+ "use strict";exports.id=6486,exports.ids=[6486],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}},36486:(a,b,c)=>{c.d(b,{Wb:()=>ad,on:()=>al,AT:()=>ax});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="skipped: the verification run was cancelled.";var s=c(55511),t=c(33873),u=c.n(t),v=c(96210),w=c(52710);function x(a){try{if(!(0,e.lstatSync)(a).isFile())return null;return(0,e.readFileSync)(a)}catch{return null}}function y(a){let b,c=new Set,d=u().join(a,v.pg);try{b=(0,e.readdirSync)(d)}catch{return c}for(let d of b){var f;if(!v.X0.test(d)||!(d.length<=v.cj))continue;let b=`${v.pg}/${d}`,e=x(u().join(a,b,w.zi));if(null===e)continue;let g=(0,w.q$)(e);if(null===g||g.skill_id!==d)continue;let h=new Set(v.y2.map(a=>`${a}/${d}`)),i=(0,w.Pw)(g);if(i[0]===b)for(let b of i){if("string"!=typeof b||!h.has(b))continue;let d=x(u().join(a,b,w.zi));for(let h of(null!==d&&d.equals(e)&&c.add(`${b}/${w.zi}`),g.files)){if(!h||"string"!=typeof h.path||"string"!=typeof h.sha256||!(!(""===(f=h.path)||f.startsWith("/")||f.includes("\\"))&&f.split("/").every(a=>""!==a&&"."!==a&&".."!==a))||h.path===w.zi)continue;let d=x(u().join(a,b,h.path));null!==d&&(0,s.createHash)("sha256").update(d).digest("hex")===h.sha256.toLowerCase()&&c.add(`${b}/${h.path}`)}}}return c}let z=[".commandcode/settings.local.json"],A=[".commandcode/taste/"];function B(a){return!!z.includes(a)||A.some(b=>a.startsWith(b)&&!a.slice(b.length).split("/").includes(".."))}function C(a){return"??"===a.status&&a.paths.every(B)}function D(a){return a.length>0?a.join(", "):"(none)"}function E(a,b,c){return null===c?` ${a} ${b}`:` ${a} ${b} \u2190 ${c}`}let F=".commandmate/",G=`(exempt: ${F})`;function H(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 I{constructor(a,b=null){this.contractPath=b,this.allow=a.allow.map(H),this.deny=a.deny.map(H)}classify(a){let b=this.deny.find(b=>b.regexp.test(a));if(b)return{admitted:!1,pattern:b.pattern};if(a.startsWith(F))return{admitted:!0,pattern:G};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}}let J=".commandmate/tasks/",K=["docs/module-reference.md"];function L(a){return a.startsWith(J)}function M(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 N(a){return a.split("\0").filter(a=>""!==a)}function O(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({status:a.slice(0,2),paths:e})}return c}function P(a,b){return"??"===a.status&&a.paths.every(a=>b.has(a))}async function Q(a,b){let c=await M(["log","-z","--format=%H%x1f%P%x1f%(trailers:key=Orchestrator-Fold,valueonly,unfold,separator=%x1e)",`${b}..HEAD`],a);if(0!==c.code)return{error:`'git log ${b}..HEAD' failed.`+(c.stderr.trim()?`
2
+ ${c.stderr.trim()}`:"")};let d=function(a){let b=[];for(let c of a.split("\0")){let a=c.indexOf("\x1f"),d=c.indexOf("\x1f",a+1);if(a<=0||d<0)continue;let e=c.slice(d+1);b.push({sha:c.slice(0,a),parents:c.slice(a+1,d).split(" ").filter(Boolean),foldTrailers:""===e?[]:e.split("\x1e")})}return b}(c.stdout);if(!d.some(a=>a.foldTrailers.length>0))return{changes:[]};let e=[];for(let b of d){if(1!==b.parents.length)continue;let c=await M(["diff-tree","--no-commit-id","--name-only","-z","--no-renames","-r",b.sha],a);if(0!==c.code)return{error:`'git diff-tree ${b.sha}' failed.`+(c.stderr.trim()?`
3
+ ${c.stderr.trim()}`:"")};let d=N(c.stdout);e.push({sha:b.sha,files:d,fold:function(a,b){var c;return 1===a.parents.length&&a.foldTrailers.includes("module-reference")&&(c=b).length>0&&c.every(a=>K.includes(a))}(b,d)})}return{changes:e}}async function R(a,b){let c=await Q(a,b);return"error"in c?c:{paths:function(a){let b=new Set,c=new Set;for(let d of a){let a=d.fold?b:c;d.files.forEach(b=>a.add(b))}return new Set([...b].filter(a=>!c.has(a)))}(c.changes)}}async function S(a,b){let c=await M(["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()?`
4
+ ${c.stderr.trim()}`:"")};let d=c.stdout.trim(),e=await M(["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()?`
5
+ ${e.stderr.trim()}`:"")};let f=await R(a,d);if("error"in f)return f;let g=new Set,h=N(e.stdout).filter(a=>!f.paths.has(a)||(g.add(a),!1)),i=await M(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==i.code)return{error:"'git status --porcelain' failed."+(i.stderr.trim()?`
6
+ ${i.stderr.trim()}`:"")};let j=y(a),k=new Set,l=new Set([...h,...O(i.stdout).filter(a=>!P(a,j)&&(!C(a)||(a.paths.forEach(a=>k.add(a)),!1))).flatMap(a=>a.paths)].filter(a=>!L(a)));return{paths:[...l].sort(),mergeBase:d,agentStateExcluded:[...k].sort(),orchestratorExcluded:[...g].filter(a=>!l.has(a)).sort()}}async function T(a,b,c,d,e=null){var f;let g=Date.now(),h=(a,b,c)=>({status:a,exitCode:c,startedAt:g,durationMs:Date.now()-g,logTail:b});if(!b)return h("skipped","scope: no contract is attached to this run, so no scope is declared to check.",null);if(!c)return h("skipped","scope: the contract sets success.requireScopeClean: false.",null);if(!d)return h("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 i=await S(a,d);if("error"in i)return h("error",`scope: ${i.error}`,null);let j=new I(b,e),k=[],l=[],m=new Map;for(let a of i.paths){let b=j.classify(a);if(b.admitted){k.push({path:a,pattern:b.pattern});continue}l.push(a),null!==b.pattern&&m.set(a,b.pattern)}let n=[`scope: baseRef=${d} changed=${i.paths.length} violations=${l.length}`,`allow: ${D(b.allow)}`,`deny: ${D(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=>E("+",a.path,a.pattern)),...c>0?[` ... (+${c} more)`]:[]]}(k),...function(a){if(0===a.length)return[];let b=a.slice(0,100),c=a.length-b.length;return["excluded (agent-managed state files, not counted as change):",...b.map(a=>` ~ ${a}`),...c>0?[` ... (+${c} more)`]:[]]}(i.agentStateExcluded),...0===(f=i.orchestratorExcluded).length?[]:["excluded (changed only by orchestrator commits, not counted as change):",...f.map(a=>` ~ ${a}`)]].join("\n");if(0===l.length)return h("passed",n,0);let o=l.slice(0,100),p=l.length-o.length;return h("failed",[n,"out of scope:",...o.map(a=>E("-",a,m.get(a)??null)),...p>0?[` ... and ${p} 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 U=c(90384),V=c(62171),W=c(85322);let X=(0,j.h)("lib/verification/gate-runner"),Y="git diff --name-only / status --porcelain \xd7 contract scope",Z="lsof -iTCP -sTCP:LISTEN / tmux list-sessions / $HOME / ~/.commandmate \xd7 task-start snapshot",$="[mutex]",_="[flaky]";function aa(a,b){return`--- ${_} run ${a}/2: ${b.status} exit=${ac(b.exitCode)} duration=${ab(b.durationMs)} ---`}function ab(a){return`${(a/1e3).toFixed(1)}s`}function ac(a){return null===a?"n/a":String(a)}class ad 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 ae=0,af=[],ag=new Map,ah=`${r} This gate was terminated before it reached a verdict.`,ai=`${r} The run stopped before this gate started.`;class aj{get cancelled(){return this.latched}register(a){return this.latched?(a(),()=>{}):(this.killers.add(a),()=>{this.killers.delete(a)})}cancel(){for(let a of(this.latched=!0,[...this.killers]))a()}constructor(){this.latched=!1,this.killers=new Set}}let ak=new Map;async function al(a){let b,c=ak.get(a),d=ag.get(a);if(!c||!d)return{kind:"not-running"};c.cancel();let e=await Promise.race([d,new Promise(a=>{b=setTimeout(()=>a(null),8e3),b.unref?.()})]);return b&&clearTimeout(b),null===e?{kind:"requested"}:{kind:"cancelled",status:e}}class am{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 an(a,b,c,e,f,g){return new Promise(h=>{let i,j,k=Date.now(),l=new am(e),m=!1,n=!1,o=!1,p=(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"]});p.stdout?.on("data",a=>l.append(a)),p.stderr?.on("data",a=>l.append(a));let q=a=>{if(void 0!==p.pid)try{process.kill(-p.pid,a)}catch{try{p.kill(a)}catch{}}},r=g?.register(()=>{o=!0,q("SIGTERM"),j=setTimeout(()=>q("SIGKILL"),5e3),j.unref?.()}),s=a=>{m||(m=!0,clearTimeout(t),i&&clearTimeout(i),j&&clearTimeout(j),r?.(),h({...a,startedAt:k,durationMs:Date.now()-k}))},t=setTimeout(()=>{n=!0,q("SIGTERM"),i=setTimeout(()=>q("SIGKILL"),5e3),i.unref?.()},1e3*c);t.unref?.(),p.on("error",a=>{s({status:"error",exitCode:null,logTail:`${l.toString()}
7
7
  [gate could not be spawned: ${a.message}]`.trim()})}),p.on("close",(a,b)=>n?void s({status:"timeout",exitCode:null,logTail:`${l.toString()}
8
8
  [gate exceeded ${c}s and was terminated (${b??"exited"})]`.trim()}):o?void s({status:"skipped",exitCode:null,logTail:`${l.toString()}
9
9
  ${ah} (${b??"exited"})`.trim()}):void s({status:0===a?"passed":"failed",exitCode:a,logTail:l.toString()||null}))})}async function ao(a,b,c,d,e){let f=a.mutex;if(!f)return an(a.command,b,a.timeoutSec,c,d,e);let g=await (0,p.xL)(f,{timeoutMs:1e3*a.timeoutSec,shouldAbandon:()=>e.cancelled});if(!g.acquired)return{status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:g.abandoned?ai: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=${ab(c.waitedMs)}
@@ -11,7 +11,7 @@ ${$} name=${b} lock=${d=b,(0,p.M)(d,(0,p.H)())}${e}
11
11
  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,f,g)};try{var h,i,j;if(e.cancelled){let a=Date.now();return{status:"skipped",exitCode:null,startedAt:a,durationMs:0,logTail:ai}}let k=await an(a.command,b,a.timeoutSec,c,d,e);return{...k,logTail:(h=g.waitedMs,i=g.handle.path,j=k.logTail,aq(`${$} name=${f} waited=${ab(h)} lock=${i}`,j))}}finally{g.handle.release()}}async function ap(a,b,c,d,e){let f=await ao(a,b,c,d,e);if(1!==a.retryOnFail||"failed"!==f.status)return f;let g=await ao(a,b,c,d,e);return"passed"!==g.status&&"failed"!==g.status?{...f,logTail:aq(`${_} retry reached no verdict (${g.status}); the first run's result stands. Retry log:
12
12
  `+(g.logTail??"(no output)"),f.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=`${_} runs=2 outcome=${d} exit=${ac(b.exitCode)},${ac(c.exitCode)} duration=${ab(b.durationMs)},${ab(c.durationMs)} verdict=${e?"pass":"fail"}`,h=[aa(1,b),b.logTail??"",aa(2,c),c.logTail??""].join("\n");return{status:e?"passed":"failed",exitCode:f.exitCode,startedAt:b.startedAt,durationMs:b.durationMs+c.durationMs,logTail:`${g}
13
13
  ${h}`}}(a,f,g)}function aq(a,b){return b?`${a}
14
- ${b}`:a}function ar(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 as(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 ${U.aT}; origin/HEAD did not resolve a default branch.`,null);let g=await ar(["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 ar(["rev-list",`${h}..HEAD`,"--",":(top)",`:(exclude,top)${F}`],a);if(0!==i.code)return f("error",`work-evidence: 'git rev-list ${h}..HEAD' failed.`,null);let j=await O(a,h);if("error"in j)return f("error",`work-evidence: ${j.error}`,null);let k=new Set(j.changes.filter(a=>a.fold).map(a=>a.sha)),l=i.stdout.split("\n").filter(a=>""!==a.trim()),m=l.filter(a=>k.has(a)).length,n=l.length-m,o=await ar(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==o.code)return f("error","work-evidence: 'git status --porcelain' failed.",null);let p=y(a),q=0,r=new Set,s=M(o.stdout).filter(a=>!!a.paths.some(a=>!H(a))&&(N(a,p)?(q+=1,!1):!C(a)||(a.paths.forEach(a=>r.add(a)),!1))).length,t=`work-evidence: baseRef=${b} commits=${n} uncommitted=${s}`+(c.required?" requireCommit=true":"")+" (contract files excluded)"+(m>0?` (${m} orchestrator fold commit(s) excluded)`:"")+(q>0?` (${q} CommandMate-installed Skill file(s) excluded)`:"")+(r.size>0?` (agent-managed state file(s) excluded: ${[...r].sort().join(", ")})`:"");if(!Number.isFinite(n)||0===n&&0===s){let a=Number.isFinite(n)?d.fileCount():null;return null===a||0===a?f("failed",`${t}
14
+ ${b}`:a}function ar(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 as(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 ${U.aT}; origin/HEAD did not resolve a default branch.`,null);let g=await ar(["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 ar(["rev-list",`${h}..HEAD`,"--",":(top)",`:(exclude,top)${J}`],a);if(0!==i.code)return f("error",`work-evidence: 'git rev-list ${h}..HEAD' failed.`,null);let j=await Q(a,h);if("error"in j)return f("error",`work-evidence: ${j.error}`,null);let k=new Set(j.changes.filter(a=>a.fold).map(a=>a.sha)),l=i.stdout.split("\n").filter(a=>""!==a.trim()),m=l.filter(a=>k.has(a)).length,n=l.length-m,o=await ar(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==o.code)return f("error","work-evidence: 'git status --porcelain' failed.",null);let p=y(a),q=0,r=new Set,s=O(o.stdout).filter(a=>!!a.paths.some(a=>!L(a))&&(P(a,p)?(q+=1,!1):!C(a)||(a.paths.forEach(a=>r.add(a)),!1))).length,t=`work-evidence: baseRef=${b} commits=${n} uncommitted=${s}`+(c.required?" requireCommit=true":"")+" (contract files excluded)"+(m>0?` (${m} orchestrator fold commit(s) excluded)`:"")+(q>0?` (${q} CommandMate-installed Skill file(s) excluded)`:"")+(r.size>0?` (agent-managed state file(s) excluded: ${[...r].sort().join(", ")})`:"");if(!Number.isFinite(n)||0===n&&0===s){let a=Number.isFinite(n)?d.fileCount():null;return null===a||0===a?f("failed",`${t}
15
15
  No commits and no uncommitted changes: nothing to verify.`,1):f("passed",`${t}
16
16
  ${d.label}: ${a} file(s) changed. git found nothing; the agent did.`,0)}return c.required&&0===n?f("failed",`${t}
17
17
  ${c.sources.join(" and ")} requires a commit: uncommitted changes are not work evidence, commit them.`,1):f("passed",t,0)}async function at(a,b){if(a.options.baseRef)return a.options.baseRef;let c=await (0,i.tR)(b);return c?`origin/${c}`:null}async function au(a,b,c,d,f,h,i,j,k,m,o,p){var r,s;let{maxLogTailBytes:t,skipInPrimaryCheckout:u}=h.options,{runWorkEvidence:v,gates:w}=i,x={label:"opencode session diff",fileCount:()=>void 0!==f&&(f===W.k||(0,g.getAgentInstances)(a,c).some(a=>a.id===f&&a.cliTool===W.k))?(0,V.pw)(c,f):null},y=(0,l.fc)(k?.contract??null,h),z=null,A=()=>z??={CM_WORKTREE_ID:c,CM_WORKTREE_INDEX:String((0,q.Cr)(c))},B=(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),C=async(c,d,e,f)=>B((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,await f()),D=(c,d,e,f)=>{let h={status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:f};return B((0,g.createGateResult)(a,b,{gateId:c,command:d,source:e}).id,h)},E=[],F=(a,b)=>{for(let c of(b.scope&&D(U.le,Y,"builtin",a),b.envClean&&D(U.Q5,Z,"builtin",a),b.gates))D(c.id,c.command,c.source,a)},G=a=>(F(ai,a),"cancelled");if(v){let a=await C(U.uz,"git merge-base / rev-list / status --porcelain (excluding contract files)","builtin",()=>as(d,j,y,x));if("passed"!==a.status)return F("skipped: the work-evidence gate did not pass.",{scope:"off"!==i.scope,envClean:i.runEnvClean,gates:w}),"failed"===a.status?"not_started":"error";if(E.push(a.status),p.cancelled)return G({scope:"off"!==i.scope,envClean:i.runEnvClean,gates:w})}if("off"!==i.scope){let a=m?D(U.le,Y,"builtin",(r=m.id,s=m.status,`scope: task ${r} declares a scope for this worktree, but it is ${s} and this run was not attached to it, so its scope was NOT judged. \`wait --verify\` attaches only to an in-flight task; to re-verify a finished task, run \`commandmate verify <worktree> --task ${r}\`.`)):await C(U.le,Y,"builtin",()=>T(d,k?.contract.scope??null,k?.contract.success.requireScopeClean??!1,j,k?.contractPath??null)),b="explicit"===i.scope||null!==m;if(("skipped"!==a.status||b)&&E.push(a.status),p.cancelled)return G({scope:!1,envClean:i.runEnvClean,gates:w})}if(i.runEnvClean){let a=await C(U.Q5,Z,"builtin",()=>(0,n.uT)({worktreeId:o.worktreeId,worktreePath:d,taskId:o.taskId,baseline:o.baseline,sources:o.decision.sources,ignoreHomeEntries:h.options.envCleanIgnoreHomeEntries}));if(E.push(a.status),p.cancelled)return G({scope:!1,envClean:!1,gates:w})}let H=u&&function(a,b){try{return(0,e.realpathSync)(a)===(0,e.realpathSync)(b)}catch{return!1}}(d,process.cwd());for(let[a,b]of w.entries()){if(p.cancelled)return G({scope:!1,envClean:!1,gates:w.slice(a)});if(H){E.push(D(b.id,b.command,b.source,"skipped: worktreePath is the server process working directory and options.skipInPrimaryCheckout is true.").status);continue}let c=await C(b.id,b.command,b.source,()=>ap(b,d,t,A(),p));E.push(c.status)}return p.cancelled?"cancelled":E.some(a=>"failed"===a||"timeout"===a||"error"===a)?"failed":E.some(a=>"skipped"===a)?"error":"passed"}function av(a,b,c,d){try{(0,m.g)(a,b,c,void 0===d?void 0:{runId:d})}catch(a){X.warn("task-transition-failed",{taskId:b,event:c,error:a instanceof Error?a.message:String(a)})}}function aw(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 ax(a){let b=(0,f.getDbInstance)(),c=(0,g.getRunningVerificationRun)(b,a.worktreeId);if(c)throw new ad(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,U.yR)(a.worktreePath))||(m=`${U.aT} not found in ${a.worktreePath}. Declare the repository verification gates there before running verification.`)}catch(a){m=a instanceof U.Yp?a.message:`Failed to read ${U.aT}: ${a.message}`}let p=(0,n.Uq)(d?.contract??null,k),q={workEvidence:d?.contract.success.requireWorkEvidence??!1,scope:(d?.contract.success.requireScopeClean??!1)||null!==e,envClean:p.required},r=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 ${U.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.envClean,gates:a};let d=new Set([U.uz,U.le,U.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(U.uz)||c.workEvidence,scope:f.has(U.le)||c.scope?"explicit":"off",runEnvClean:f.has(U.Q5)||c.envClean,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,q);"string"==typeof b?m=b:r=b}}let s=k?await at(k,a.worktreePath):null,t=(0,g.createVerificationRun)(b,{worktreeId:a.worktreeId,trigger:a.trigger,instanceId:a.instanceId??null,taskId:i,baseRef:s});if(!k||!r){let c=Date.now(),e=(0,g.createGateResult)(b,t.id,{gateId:"config",command:U.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,t.id,"error"),X.warn("verification-config-unusable",{runId:t.id,worktreeId:a.worktreeId}),aw(b,a,t.id,i,"error"),d&&(av(b,d.id,"verify_started",t.id),av(b,d.id,"verify_failed",t.id)),{runId:t.id}}d&&av(b,d.id,"verify_started",t.id);let u=new aj;ak.set(t.id,u);let v=k,w=r,x={worktreeId:a.worktreeId,taskId:i,baseline:w.runEnvClean&&i?(0,o.g9)(i):null,decision:p},y=(async()=>{await (ae<2?(ae+=1,Promise.resolve()):new Promise(a=>{af.push(a)}));let c="error";try{if(u.cancelled)return c="cancelled",(0,g.finishVerificationRun)(b,t.id,"cancelled"),"cancelled";let f=await au(b,t.id,a.worktreeId,a.worktreePath,a.instanceId,v,w,s,d,e,x,u);return c=f,(0,g.finishVerificationRun)(b,t.id,f),f}catch(a){X.error("verification-run-crashed",{runId:t.id,error:a instanceof Error?a.message:String(a)});try{(0,g.finishVerificationRun)(b,t.id,"error")}catch{}return"error"}finally{d&&av(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),t.id),aw(b,a,t.id,i,c),function(){let a=af.shift();if(a)return a();ae-=1}(),ag.delete(t.id),ak.delete(t.id)}})();return ag.set(t.id,y),{runId:t.id}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6722,exports.ids=[6722],exports.modules={33661:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(38301),e=c(42805);let f=(0,d.createContext)(e.Wo)},42805:(a,b,c)=>{c.d(b,{Gw:()=>L,Wo:()=>x.Wo,Rb:()=>h,tz:()=>g,i4:()=>f,i5:()=>e,Zq:()=>d,Ad:()=>x.Ad,Gg:()=>X,aX:()=>V,fq:()=>W,HI:()=>U,eu:()=>M,p0:()=>B,po:()=>C});let d="data-search-skip",e="data-mermaid-source",f="data-mermaid-raw-start",g="data-mermaid-raw-end",h="commandmate:mermaid-block-settled";var i=c(69999),j=c(63051),k=c(88033);let l=/^( {0,3})(`{3,}|~{3,})(.*)$/,m=/^ {0,3}(?:[-*+]|\d{1,9}[.)]) {1,4}(?=`{3,}|~{3,})/;function n(a,b,c,d){let e=0;for(;e<d&&b+e<c&&" "===a[b+e];)e+=1;return e}let o=/^ {0,3}>[ \t]?/;function p(a,b,c){let d=0,e=b.start;for(;d<c;){let c=o.exec(a.slice(e,b.end));if(!c)break;e+=c[0].length,d+=1}return{depth:d,contentStart:e}}let q=null;function r(a){let b=a.filter(a=>a.end>a.start).sort((a,b)=>a.start-b.start),c=[];for(let a of b){let b=c[c.length-1];b&&a.start<=b.end?b.end=Math.max(b.end,a.end):c.push({...a})}return c}function s(a,b){let c=a.map(a=>({...a}));for(let a of b)c=c.flatMap(b=>{if(a.end<=b.start||a.start>=b.end)return[b];let c=[];return a.start>b.start&&c.push({start:b.start,end:a.start}),a.end<b.end&&c.push({start:a.end,end:b.end}),c});return c}function t(a,b,c){return a.map(a=>({start:Math.max(a.start,b),end:Math.min(a.end,c)})).filter(a=>a.end>a.start)}function u(a,b,c){return b.flatMap(b=>(function(a,b){let c=[];if(!b)return c;let d=0;for(;;){let e=a.indexOf(b,d);if(-1===e)return c;c.push(e),d=e+1}})(a.slice(b.start,b.end),c).filter(a=>b.start+a+c.length<=b.end).map(a=>b.start+a))}let v=(a,b)=>a.some(a=>b>=a.start&&b<a.end),w="data-search-section";var x=c(46332);let y="data-search-raw",z=a=>"number"==typeof a?.offset?a.offset:null;function A(a,b,c,d){if(void 0===d){let d=c(a),e=c(b);return null!==d&&null!==e&&e>=d?[{start:d,end:e}]:null}let e=[],f=a;for(let g=d.indexOf("\n",a);;g=d.indexOf("\n",g+1)){let a=-1===g||g>=b,d=c(f),h=c(a?b:g);if(null===d!=(null===h))return null;if(null!==d&&null!==h){let b=h+ +!a;if(b<d)return null;let c=e[e.length-1];c&&c.end===d?c.end=b:e.push({start:d,end:b})}if(a)return e.length>0?e:null;f=g+1}}function B(a){let b=a?.toRaw===void 0?x.Wo:a.toRaw;return(c,d)=>{let e=a?.source??("string"==typeof d?.value?d.value:void 0);b&&function a(b,c,d){if("root"===b.type||"element"===b.type){if("element"===b.type){let a=z(b.position?.start),e=z(b.position?.end),f=null===a||null===e?null:A(a,e,c,d);if(f){let a=[f.map(a=>`${a.start},${a.end}`).join(",")];for(let e of b.children)"text"===e.type&&a.push(...function(a,b,c){let d=a.value.length,e=z(a.position?.start),f=z(a.position?.end),g=null===e||null===f?null:A(e,f,b,c);if(!g)return[`,,${d}`];if(1===g.length||void 0===c||null===e||null===f)return[`${g[0].start},${g[0].end},${d}`];let h=[];for(let a=c.indexOf("\n",e);-1!==a&&a<f;a=c.indexOf("\n",a+1))h.push(a);let i=a.value.split("\n");if(i.length!==h.length+1){let[a,...b]=g;return[[`${a.start},${a.end},${d}`,...b.map(a=>`${a.start},${a.end}`)].join(",")]}return i.map((a,d)=>{let g=d===i.length-1,j=a.length+ +!g,k=A(0===d?e:h[d-1]+1,g?f:h[d],b,c);return k?`${k[0].start},${k[0].end+ +!g},${j}`:`,,${j}`})}(e,c,d));b.properties={...b.properties,dataSearchRaw:a.join(";")}}}for(let e of b.children)a(e,c,d)}}(c,b,e)}}function C(a){let b=a[y];return"string"==typeof b?{[y]:b}:{}}function D(a){if(a.length%2!=0)return null;let b=[];for(let c=0;c<a.length;c+=2){let d=Number.parseInt(a[c],10),e=Number.parseInt(a[c+1],10);if(!Number.isInteger(d)||!Number.isInteger(e)||e<d)return null;b.push({start:d,end:e})}return b}let E=/&(?:#([0-9]{1,7})|#[xX]([0-9a-fA-F]{1,6})|([A-Za-z][A-Za-z0-9]{0,31}));/y,F=a=>/\s/.test(a),G=new Map;function H(a,b){var c;E.lastIndex=b;let d=E.exec(a);if(!d)return null;let e=b+d[0].length,f=void 0!==d[3]?function(a){let b=G.get(a);if(void 0!==b)return b;let c=null;if("undefined"!=typeof DOMParser){let b=new DOMParser().parseFromString(`<b>${a}</b>`,"text/html").body.textContent??"";c=b!==a&&""!==b?b:null}return G.set(a,c),c}(d[0]):(c=Number.parseInt(d[1]??d[2],void 0!==d[1]?10:16))<9||11===c||c>13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(65535&c)==65535||(65535&c)==65534||c>1114111?"�":String.fromCodePoint(c);return null===f?null:{end:e,drawn:f}}function I(a,b,c,d=c[0]?.start??0){if(1===c.length&&b.slice(d,d+a.length)===a)return Array.from({length:a.length},(a,b)=>d+b);let e=c[c.length-1]?.end??d,f=a=>c.findIndex(b=>a>=b.start&&a<b.end),g=(a,d,e,f=0)=>{for(let g=f;g<c.length;g++){if(c[g].end<=d)continue;if(c[g].start>=e)break;let f=b.indexOf(a,Math.max(d,c[g].start));if(-1!==f&&f<Math.min(c[g].end,e))return{idx:f,span:g}}return null},h=Array(a.length).fill(-1),i=d,j=0,k=[],l=d,m=(c,d,e)=>{for(let g=b.indexOf("&",c);-1!==g&&g<d;g=b.indexOf("&",g+1)){if(-1===f(g))continue;let c=H(b,g);if(c&&/^\s+$/.test(c.drawn)&&!(e+c.drawn.length>k.length)&&k.slice(e,e+c.drawn.length).map(b=>a[b]).join("")===c.drawn)return{idx:g,end:c.end,units:c.drawn.length}}return null},n=b=>{let c=l;for(let d=0;d<k.length;d++){let e=k[d],f=g(a[e],c,b),i=m(c,f?f.idx:b,d);if(i){for(let a=0;a<i.units;a++)h[k[d+a]]=i.idx;d+=i.units-1,c=i.end}else f&&(h[e]=f.idx,c=f.idx+1)}k=[]};for(let c=0;c<a.length;c++){let d,e=a[c];if(F(e)){0===k.length&&(l=i),k.push(c);continue}let m=i,o=null;for(;m<b.length&&-1!==f(m);){if(F(b[m])){m+=1;continue}let d="&"===b[m]?H(b,m):null;if(!d||a.startsWith(b.slice(m,d.end),c))break;if(/^\s+$/.test(d.drawn)){m=d.end;continue}a.startsWith(d.drawn,c)&&(o={start:m,end:d.end,length:d.drawn.length});break}let p=1;if(o)j=f(d=o.start),i=o.end,p=o.length;else{let a=g(e,Math.max(i,m),1/0,j);if(!a)return null;d=a.idx,j=a.span,i=d+1}n(d);for(let a=0;a<p;a++)h[c+a]=d;c+=p-1}return n(e),h}let J=/^[ \t>]*(`{3,}|~{3,})/,K={highlightName:"terminal-search",currentHighlightName:"terminal-search-current",fallbackOverlayId:"terminal-search-fallback-overlay",fallbackOverlayBgColor:"rgba(255, 165, 0, 0.6)"},L={highlightName:"history-search",currentHighlightName:"history-search-current",fallbackOverlayId:"history-search-fallback-overlay",fallbackOverlayBgColor:"rgba(59, 130, 246, 0.6)"};function M(a){return{highlightName:`history-search-${a}`,currentHighlightName:`history-search-current-${a}`,fallbackOverlayId:`history-search-fallback-overlay-${a}`,fallbackOverlayBgColor:L.fallbackOverlayBgColor}}function N(){return"undefined"!=typeof CSS&&null!==CSS&&"highlights"in CSS}let O=new Map;function P(a){O.delete(a.highlightName),N()&&(CSS.highlights.delete(a.highlightName),CSS.highlights.delete(a.currentHighlightName)),document.getElementById(a.fallbackOverlayId)?.remove()}function Q(a,b,c,h,o){if(0===b.length){let b=O.get(h.highlightName);return(b?.delete(a),b&&S(b),b&&0!==b.size)?(R(h,b),void T(a,h)):void P(h)}let x=function(a){let b,c=[],e=0,f=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,{acceptNode:a=>a.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:a.hasAttribute(d)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_SKIP});for(;b=f.nextNode();){let a=b,d=a.nodeValue?.length??0;c.push({node:a,start:e,end:e+d}),e+=d}return c}(a),z=((o?.sourceText!==void 0?function(a,b,c,d,h){let o=()=>(function(a,b,c,d){if(!a.querySelector(`[${y}]`))return null;let e=new Map;for(let c of b){let b=c.node.parentElement?.closest(`[${y}]`);if(!b||!a.contains(b))continue;let d=e.get(b);d?d.push(c):e.set(b,[c])}let f=new Int32Array(c.length).fill(-1),g=new Int32Array(c.length).fill(-1);for(let[a,b]of e){let d=function(a){let[b,...c]=a.split(";"),d=D(b.split(","));if(!d||0===d.length)return null;let e=[];for(let a of c){let[b,c,d,...f]=a.split(","),g=Number.parseInt(d,10);if(!Number.isInteger(g)||g<0)return null;if(""===b||""===c){e.push({start:null,end:null,length:g,spans:[]});continue}let h=D([b,c,...f]);if(!h)return null;e.push({start:h[0].start,end:h[h.length-1].end,length:g,spans:h})}return{start:d[0].start,end:d[d.length-1].end,spans:d,segments:e}}(a.getAttribute(y)??"");if(!d)continue;let e=b.map(a=>a.node.nodeValue??"").join("");if(d.segments.reduce((a,b)=>a+b.length,0)!==e.length)continue;let h=[];for(let a of b)for(let b=a.start;b<a.end;b++)h.push(b);let i=d.start;if(J.exec(c.slice(d.start,d.end))){let a=c.indexOf("\n",d.start);i=-1===a?d.end:a+1}let j=0;for(let a of d.segments){let b=e.slice(j,j+a.length),k=null;null!==a.start&&null!==a.end?(k=I(b,c,a.spans))&&(i=Math.max(i,a.end)):""!==b.trim()&&(k=I(b,c,d.spans,i))&&k.length>0&&(i=k.reduce((a,b)=>Math.max(a,b+1),i)),k?.forEach((a,d)=>{if(a<0||a>=f.length||-1!==f[a]||(f[a]=h[j+d],g[a]=h[j+d]+1,"&"!==c[a]))return;let e=d;for(;k[e+1]===a;)e+=1;if(k[e+1]===a+1)return;let i=H(c,a);i&&i.drawn.length===e-d+1&&b.startsWith(i.drawn,d)&&-1===g[i.end-1]&&(g[i.end-1]=h[j+e]+1)}),j+=a.length}}return d.map(a=>{if(a.end<=a.start||a.end>f.length)return null;let b=f[a.start],c=g[a.end-1];return -1!==b&&-1!==c&&c>b?{start:b,end:c}:null})})(a,b,c,d),x=function(a,b,c,d,h){let o=Array.from(a.querySelectorAll(`[${e}]`));if(0===o.length)return null;let x=null,y=b.map(a=>a.node.nodeValue??"").join(""),z=new Set(h.map(a=>a.key)),A=b=>{let c=(b.nodeType===Node.TEXT_NODE?b.parentElement:b)?.closest(`[${w}]`),d=c&&a.contains(c)?c.getAttribute(w):null;return null!==d&&z.has(d)?d:""},B=new Map(h.map(a=>[a.key,r(a.ranges)])),C=r(h.flatMap(a=>a.ranges)),D=["",...z].map(a=>{let d=""===a?s([{start:0,end:c.length}],C):B.get(a),e=r(b.filter(b=>A(b.node)===a).map(({start:a,end:b})=>({start:a,end:b}))),h=[];for(let c of o){if(A(c)!==a)continue;let d=b.filter(a=>c.contains(a.node));if(0===d.length)continue;let e=d[0].start,f=d[d.length-1].end;h.push({domStart:e,domEnd:f,text:y.slice(e,f),element:c})}let u=function(a,b,c){if(0===c.length)return null;let d=[];for(let e of c){let c=Number.parseInt(e.element.getAttribute(f)??"",10),h=Number.parseInt(e.element.getAttribute(g)??"",10);if(!Number.isInteger(c)||!Number.isInteger(h)||!v(b,c))return null;let i=function(a,b,c,d){if(!(b>=0&&c<=a.length&&b<c))return null;let e=a.slice(b,c);if(!/^(?:`{3,}|~{3,})/.test(e))return null;let f=e.split("\n"),g=d.length>0?d.split("\n"):[],h=f.length-1;if(g.length>0&&h!==g.length&&h!==g.length+1)return null;let i=[],j=b+f[0].length+1,k=0;for(let a=0;a<g.length;a++){let b=f[a+1],c=g[a];if(!b.endsWith(c))return null;i.push({rawStart:j+b.length-c.length,length:c.length,bodyOffset:k}),k+=c.length+1,j+=b.length+1}let l=(a.slice(a.lastIndexOf("\n",b-1)+1,b).match(/>/g)??[]).length;return{fenceStart:b,bodyStart:i.length>0?b+f[0].length+1:b+f[0].length,bodyEnd:i.length>0?i[i.length-1].rawStart+i[i.length-1].length:b+f[0].length,fenceEnd:c,body:d,quoteDepth:l,lines:i}}(a,c,h,e.text),j=d[d.length-1];if(!i||j&&i.fenceStart<j.fenceEnd)return null;d.push(i)}return d}(c,d,h),w=u??(x??=function(a){let b=[],c=function(a){q??=(0,j.l)().use(i.A).use(k.eT);let b=new Set;for(let c of function a(b,c=[]){if("code"===b.type)"mermaid"===b.lang&&c.push(b);else if("children"in b)for(let d of b.children)a(d,c);return c}(q.parse(a))){let a=c.position?.start.offset;void 0!==a&&b.add(a)}return b}(a),d=[],e=0;for(;e<=a.length;){let b=a.indexOf("\n",e),c=-1===b?a.length:b;if(d.push({start:e,end:c}),-1===b)break;e=b+1}for(let e=0;e<d.length;e++){let{depth:f,contentStart:g}=p(a,d[e],1/0),h=m.exec(a.slice(g,d[e].end)),i=h?h[0].length:0,j=l.exec(a.slice(g+i,d[e].end));if(!j)continue;let k=g+i+j[1].length;if(!c.has(k))continue;let o=j[1].length,q=j[2],r=j[3].trim();if("`"===q[0]&&r.includes("`"))continue;let s=RegExp(`^ {0,3}${"`"===q[0]?"`":"~"}{${q.length},}[ \\t]*$`),t=[],u=e;for(let b=e+1;b<d.length;b++){let c=p(a,d[b],f);if(c.depth<f)break;let e=c.contentStart,g=d[b].end;if(i>0){let b=n(a,e,g,i);if(0!==a.slice(e,g).trim().length&&b<i)break;e+=b}if(u=b,s.test(a.slice(e,g)))break;e+=n(a,e,g,o),t.push({rawStart:e,length:g-e,bodyOffset:0})}if("mermaid"===r.split(/[ \t]/)[0]){let c=0;for(let a of t)a.bodyOffset=c,c+=a.length+1;let g=t.length>0?d[e+1].start:d[e].end,h=t.length>0?t[t.length-1].rawStart+t[t.length-1].length:g;b.push({fenceStart:d[e].start,bodyStart:g,bodyEnd:h,fenceEnd:d[u].end,body:t.map(b=>a.slice(b.rawStart,b.rawStart+b.length)).join("\n"),quoteDepth:f,lines:t})}e=u}return b}(c)).filter(a=>v(d,a.fenceStart)),z=[];if(u)u.forEach((a,b)=>z.push({fence:a,source:h[b]}));else if(w.length===h.length&&w.every((a,b)=>a.body===h[b].text))w.forEach((a,b)=>z.push({fence:a,source:h[b]}));else{let a=0;for(let b of h)for(let c=a;c<w.length;c++)if(w[c].body===b.text){z.push({fence:w[c],source:b}),a=c+1;break}}let D=r(w.map(a=>({start:a.fenceStart,end:a.fenceEnd}))),E=r(h.map(a=>({start:a.domStart,end:a.domEnd}))),F=[],G=0,H=0;for(let a of[...z.map(a=>({rawStart:a.fence.fenceStart,rawEnd:a.fence.fenceEnd,domStart:a.source.domStart,domEnd:a.source.domEnd})),{rawStart:1/0,rawEnd:0,domStart:1/0,domEnd:0}])F.push({raw:s(t(d,G,a.rawStart),D),dom:s(t(e,H,a.domStart),E),rawFrom:G,rawTo:a.rawStart}),G=a.rawEnd,H=a.domEnd;return{raw:d,fences:w,pairs:z,gaps:F}}),E=c.toLowerCase(),F=y.toLowerCase();return d.map(a=>{let b=a.end-a.start,c=D.find(b=>v(b.raw,a.start));if(!c)return null;let d=c.fences.find(b=>a.start>=b.fenceStart&&a.start<b.fenceEnd);if(d){let e=c.pairs.find(a=>a.fence===d);if(!e)return null;let f=d.lines.find(b=>a.start>=b.rawStart&&a.start<b.rawStart+b.length);if(!f)return null;let g=e.source.domStart+f.bodyOffset+(a.start-f.rawStart);return{start:g,end:Math.min(g+b,e.source.domEnd)}}let e=c.gaps.find(b=>a.start>=b.rawFrom&&a.start<b.rawTo);if(!e)return null;let f=E.slice(a.start,a.end),g=u(E,e.raw,f).indexOf(a.start),h=u(F,e.dom,f);return -1===g||g>=h.length?null:{start:h[g],end:h[g]+b}})}(a,b,c,d,h);if(!x)return o();let z=o();if(!z)return x;let A=Array.from(a.querySelectorAll(`[${e}]`)).flatMap(a=>{let c=b.filter(b=>a.contains(b.node));return c.length>0?[{start:c[0].start,end:c[c.length-1].end}]:[]}),B=a=>A.some(b=>a.start<b.end&&a.end>b.start);return x.map((a,b)=>{if(a&&B(a))return a;let c=z[b];return c&&!B(c)?c:null})}(a,x,o.sourceText,b,o.sections??[]):null)??b).map(a=>a?function(a,b,c){let d=document.createRange(),e=!1;for(let{node:f,start:g,end:h}of a)if(!e&&b<h&&b>=g&&(d.setStart(f,b-g),e=!0),e&&c<=h)return d.setEnd(f,c-g),d;return e?d:null}(x,a.start,a.end):null);z.forEach(b=>{b&&function(a,b){let c=a.startContainer,d=c.nodeType===Node.TEXT_NODE?c.parentElement:c,f=d?.closest("details");f instanceof HTMLDetailsElement&&!f.open&&b.contains(f)&&f.querySelector(`[${e}]`)&&(f.open=!0)}(b,a)});let A=z[c]??null,B=[];z.forEach((a,b)=>{b!==c&&a&&B.push(a)});let C=O.get(h.highlightName);if(C||(C=new Map,O.set(h.highlightName,C)),C.set(a,B),R(h,C,a),c>=0?function(a,b,c){let d=document.getElementById(c.fallbackOverlayId);if(d&&d.parentElement!==a&&(d.remove(),d=null),!b||"function"!=typeof b.getBoundingClientRect)return d?.remove();let e=b.getBoundingClientRect(),f=a.getBoundingClientRect();d?d.style.backgroundColor=c.fallbackOverlayBgColor:((d=document.createElement("div")).id=c.fallbackOverlayId,d.style.position="absolute",d.style.backgroundColor=c.fallbackOverlayBgColor,d.style.borderRadius="2px",d.style.pointerEvents="none",d.style.zIndex="5",a instanceof HTMLElement&&(a.style.position="relative"),a.appendChild(d)),d.style.top=`${e.top-f.top+a.scrollTop}px`,d.style.left=`${e.left-f.left+a.scrollLeft}px`,d.style.width=`${e.width}px`,d.style.height=`${e.height}px`}(a,A,h):T(a,h),A){let a=A.startContainer,b=a.nodeType===Node.TEXT_NODE?a.parentElement:a;b&&"function"==typeof b.scrollIntoView&&b.scrollIntoView({block:"center",behavior:"smooth"})}}function R(a,b,c){if(S(b,c),!N())return;let d=Array.from(b.values()).flat();CSS.highlights.set(a.highlightName,new Highlight(...d)),CSS.highlights.delete(a.currentHighlightName)}function S(a,b){for(let c of Array.from(a.keys()))c===b||c.isConnected||a.delete(c)}function T(a,b){let c=document.getElementById(b.fallbackOverlayId);c&&a.contains(c)&&c.remove()}function U(){P(K)}function V(a,b,c){Q(a,b,c,K)}function W(a=L){P(a)}function X(a,b,c,d=L,e){Q(a,b,c,d,e)}},45538:(a,b,c)=>{c.d(b,{D:()=>g,c:()=>f});var d=c(38301),e=c.n(d);function f(a){return!!a&&a.split(" ").includes("language-mermaid")}function g(a){let b=e().Children.toArray(a)[0];if(!e().isValidElement(b))return!1;let c=b.props.className;return f("string"==typeof c?c:void 0)}},46332:(a,b,c)=>{c.d(b,{Ad:()=>f,Wo:()=>d,v5:()=>g});let d=a=>a,e=/^[ \t>]*$/;function f(a,b,c){if(a===b)return d;let f=[],g=0;for(let a of b.split("\n"))(!c||c.some(a=>g>=a.start&&g<a.end))&&f.push({start:g,text:a}),g+=a.length+1;let h=[],i=[],j=0,k=0;for(let b of a.split("\n")){let a=-1;for(let c=j;c<f.length;c++){let d=f[c].text;if(d.endsWith(b)&&e.test(d.slice(0,d.length-b.length))){a=c;break}}if(-1===a)return null;h.push(k),i.push(f[a].start+f[a].text.length-b.length),k+=b.length+1,j=a+1}return b=>{if(b<0||b>a.length)return null;let c=0,d=h.length-1;for(;c<d;){let a=c+d+1>>1;h[a]<=b?c=a:d=a-1}return i[c]+(b-h[c])}}function g(a,b){if(b.map(a=>a.text).join("\n")!==a)return null;if(0===b.length)return()=>null;let c=[],d=0;for(let a of b)c.push(d),d+=a.text.length+1;return d=>{if(d<0||d>a.length)return null;let e=0,f=c.length-1;for(;e<f;){let a=e+f+1>>1;c[a]<=d?e=a:f=a-1}let g=b[e].rawStart;return null===g?null:g+(d-c[e])}}},56722:(a,b,c)=>{c.d(b,{AY:()=>p});var d=c(21124),e=c(38301),f=c(13973),g=c(20481),h=c(17793),i=c(42805),j=c(45538),k=c(33661);let l=(0,f.default)(async()=>{},{loadableGenerated:{modules:["components/worktree/MermaidCodeBlock.tsx -> ./MermaidDiagram"]},ssr:!1,loading:function(){let a=(0,g.c)("worktree");return(0,d.jsxs)("div",{className:"mermaid-loading flex items-center gap-2 text-muted-foreground p-4",children:[(0,d.jsx)(h.y,{size:"sm"}),(0,d.jsx)("span",{children:a("mermaid.loading")})]})}}),m={[i.Zq]:"true"},n={[i.i5]:"true"};function o({code:a,node:b}){let c=(0,g.c)("worktree"),[f,h]=(0,e.useState)(!1),j=(0,e.useRef)(null),o=(0,e.useCallback)(a=>{h("error"===a),j.current?.dispatchEvent(new CustomEvent(i.Rb,{bubbles:!0}))},[]),p=a.endsWith("\n")?a.slice(0,-1):a,q=(0,e.useContext)(k.E),r=function(a){let b=a?.position,c=b?.start?.offset,d=b?.end?.offset;return"number"==typeof c&&"number"==typeof d?{start:c,end:d}:null}(b),s=r&&q?q(r.start):null,t=r&&q?q(r.end):null,u=null!==s&&null!==t&&t>s?{[i.i4]:String(s),[i.tz]:String(t)}:{};return(0,d.jsxs)("div",{ref:j,"data-testid":"mermaid-block-frame",className:"mermaid-block",children:[(0,d.jsx)("div",{...m,className:"mermaid-figure",children:(0,d.jsx)(l,{code:a,onRenderStateChange:o})}),(0,d.jsxs)("details",{"data-testid":"mermaid-source",className:"mermaid-source",open:f||void 0,children:[(0,d.jsx)("summary",{...m,children:c("mermaid.source")}),(0,d.jsx)("pre",{children:(0,d.jsx)("code",{...n,...u,children:p})})]})]})}function p({className:a,children:b,node:c}){if((0,j.c)(a)){let a=null==b?"":"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"").join(""):String(b);return(0,d.jsx)(o,{code:a,node:c})}return(0,d.jsx)("code",{className:a,children:b})}},88033:(a,b,c)=>{c.d(b,{eT:()=>j});var d=c(18954);let e=["**","__"],f=/^https?:\/\/./i;function g(a){return"object"==typeof a&&null!==a&&"string"==typeof a.type}function h(a,b){let c=a.position;if(!c)return null;let d=c.start?.offset,e=c.end?.offset;return"number"!=typeof d||"number"!=typeof e||!Number.isInteger(d)||!Number.isInteger(e)||d<0||e<d||e>b.length?null:{start:d,end:e}}function i(a,b){return{line:a.line,column:a.column+b,offset:(a.offset??0)+b}}let j=Object.freeze([d.A,function(){return function(a,b){let c=function(a){if("string"==typeof a)return a;if("object"==typeof a&&null!==a){let b=a.value;if("string"==typeof b)return b}return null}(b);null!==c&&g(a)&&function a(b,c){let d=Array.isArray(b.children)?b:null;if(d)for(let b of(!function(a,b){let c=a.children;for(let a=0;a<c.length;a+=1){let d=c[a];if(!g(d)||!function(a,b){if("link"!==a.type||null!==a.title&&void 0!==a.title)return!1;let c=a.url;if("string"!=typeof c||!f.test(c))return!1;let d=h(a,b);if(!d||b.slice(d.start,d.end)!==c)return!1;let e=a.children;if(!Array.isArray(e)||1!==e.length)return!1;let i=e[0];if(!g(i)||"text"!==i.type||i.value!==c)return!1;let j=h(i,b);return null!==j&&j.start===d.start&&j.end===d.end}(d,b))continue;let j=function(a){let b=function(a){for(let b=0;b<a.length;b+=1)if("()、。「」【】".includes(a[b]))return b;return -1}(a);if(b<=0)return null;let c=a.slice(0,b),d=e.find(a=>c.endsWith(a)),g=d?b-d.length:b;if(g<=0)return null;let h=a.slice(0,g);return f.test(h)?{keptUrl:h,tailText:a.slice(g),tailOffset:g,delimiter:d??null}:null}(d.url);if(!j)continue;let k=h(d,b),l=d.position?.start,m=d.position?.end;if(!k||!l||!m)continue;let n=null!==j.delimiter&&function(a,b,c,d){if(!a||"text"!==a.type||"string"!=typeof a.value||!a.value.endsWith(b))return!1;let e=h(a,d);if(!e||e.end!==c)return!1;let f=d.slice(e.start,e.end);if(!f.endsWith(b))return!1;let g=f.length-b.length-1;return g<0||"\\"!==f[g]}(c[a-1],j.delimiter,k.start,b),o=n?j.tailText.slice(j.delimiter?.length??0):j.tailText,p=n?j.tailOffset+(j.delimiter?.length??0):j.tailOffset,q=i(l,j.keptUrl.length);d.url=j.keptUrl;let r=d.children?.[0];r&&(r.value=j.keptUrl,r.position={start:{...l},end:{...q}}),d.position={start:{...l},end:q};let s={type:"text",value:o,position:{start:i(l,p),end:{...m}}};if(n&&j.delimiter){let b=c[a-1],e=i(l,-j.delimiter.length),f={type:"strong",children:[d],position:{start:e,end:i(l,p)}},g=b.value.slice(0,-j.delimiter.length);0===g.length?(c.splice(a-1,1),a-=1):(b.value=g,b.position&&(b.position={...b.position,end:e})),c[a]=f}c.splice(a+1,0,s),a+=1}}(d,c),d.children))g(b)&&a(b,c)}(a,c)}}])}};
1
+ "use strict";exports.id=6722,exports.ids=[6722],exports.modules={33661:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(38301),e=c(93571);let f=(0,d.createContext)(e.Wo)},45538:(a,b,c)=>{c.d(b,{D:()=>g,c:()=>f});var d=c(38301),e=c.n(d);function f(a){return!!a&&a.split(" ").includes("language-mermaid")}function g(a){let b=e().Children.toArray(a)[0];if(!e().isValidElement(b))return!1;let c=b.props.className;return f("string"==typeof c?c:void 0)}},46332:(a,b,c)=>{c.d(b,{Ad:()=>f,Wo:()=>d,v5:()=>g});let d=a=>a,e=/^[ \t>]*$/;function f(a,b,c){if(a===b)return d;let f=[],g=0;for(let a of b.split("\n"))(!c||c.some(a=>g>=a.start&&g<a.end))&&f.push({start:g,text:a}),g+=a.length+1;let h=[],i=[],j=0,k=0;for(let b of a.split("\n")){let a=-1;for(let c=j;c<f.length;c++){let d=f[c].text;if(d.endsWith(b)&&e.test(d.slice(0,d.length-b.length))){a=c;break}}if(-1===a)return null;h.push(k),i.push(f[a].start+f[a].text.length-b.length),k+=b.length+1,j=a+1}return b=>{if(b<0||b>a.length)return null;let c=0,d=h.length-1;for(;c<d;){let a=c+d+1>>1;h[a]<=b?c=a:d=a-1}return i[c]+(b-h[c])}}function g(a,b){if(b.map(a=>a.text).join("\n")!==a)return null;if(0===b.length)return()=>null;let c=[],d=0;for(let a of b)c.push(d),d+=a.text.length+1;return d=>{if(d<0||d>a.length)return null;let e=0,f=c.length-1;for(;e<f;){let a=e+f+1>>1;c[a]<=d?e=a:f=a-1}let g=b[e].rawStart;return null===g?null:g+(d-c[e])}}},56722:(a,b,c)=>{c.d(b,{AY:()=>p});var d=c(21124),e=c(38301),f=c(13973),g=c(20481),h=c(17793),i=c(93571),j=c(45538),k=c(33661);let l=(0,f.default)(async()=>{},{loadableGenerated:{modules:["components/worktree/MermaidCodeBlock.tsx -> ./MermaidDiagram"]},ssr:!1,loading:function(){let a=(0,g.c)("worktree");return(0,d.jsxs)("div",{className:"mermaid-loading flex items-center gap-2 text-muted-foreground p-4",children:[(0,d.jsx)(h.y,{size:"sm"}),(0,d.jsx)("span",{children:a("mermaid.loading")})]})}}),m={[i.Zq]:"true"},n={[i.i5]:"true"};function o({code:a,node:b}){let c=(0,g.c)("worktree"),[f,h]=(0,e.useState)(!1),j=(0,e.useRef)(null),o=(0,e.useCallback)(a=>{h("error"===a),j.current?.dispatchEvent(new CustomEvent(i.Rb,{bubbles:!0}))},[]),p=a.endsWith("\n")?a.slice(0,-1):a,q=(0,e.useContext)(k.E),r=function(a){let b=a?.position,c=b?.start?.offset,d=b?.end?.offset;return"number"==typeof c&&"number"==typeof d?{start:c,end:d}:null}(b),s=r&&q?q(r.start):null,t=r&&q?q(r.end):null,u=null!==s&&null!==t&&t>s?{[i.i4]:String(s),[i.tz]:String(t)}:{};return(0,d.jsxs)("div",{ref:j,"data-testid":"mermaid-block-frame",className:"mermaid-block",children:[(0,d.jsx)("div",{...m,className:"mermaid-figure",children:(0,d.jsx)(l,{code:a,onRenderStateChange:o})}),(0,d.jsxs)("details",{"data-testid":"mermaid-source",className:"mermaid-source",open:f||void 0,children:[(0,d.jsx)("summary",{...m,children:c("mermaid.source")}),(0,d.jsx)("pre",{children:(0,d.jsx)("code",{...n,...u,children:p})})]})]})}function p({className:a,children:b,node:c}){if((0,j.c)(a)){let a=null==b?"":"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"").join(""):String(b);return(0,d.jsx)(o,{code:a,node:c})}return(0,d.jsx)("code",{className:a,children:b})}},88033:(a,b,c)=>{c.d(b,{eT:()=>j});var d=c(18954);let e=["**","__"],f=/^https?:\/\/./i;function g(a){return"object"==typeof a&&null!==a&&"string"==typeof a.type}function h(a,b){let c=a.position;if(!c)return null;let d=c.start?.offset,e=c.end?.offset;return"number"!=typeof d||"number"!=typeof e||!Number.isInteger(d)||!Number.isInteger(e)||d<0||e<d||e>b.length?null:{start:d,end:e}}function i(a,b){return{line:a.line,column:a.column+b,offset:(a.offset??0)+b}}let j=Object.freeze([d.A,function(){return function(a,b){let c=function(a){if("string"==typeof a)return a;if("object"==typeof a&&null!==a){let b=a.value;if("string"==typeof b)return b}return null}(b);null!==c&&g(a)&&function a(b,c){let d=Array.isArray(b.children)?b:null;if(d)for(let b of(!function(a,b){let c=a.children;for(let a=0;a<c.length;a+=1){let d=c[a];if(!g(d)||!function(a,b){if("link"!==a.type||null!==a.title&&void 0!==a.title)return!1;let c=a.url;if("string"!=typeof c||!f.test(c))return!1;let d=h(a,b);if(!d||b.slice(d.start,d.end)!==c)return!1;let e=a.children;if(!Array.isArray(e)||1!==e.length)return!1;let i=e[0];if(!g(i)||"text"!==i.type||i.value!==c)return!1;let j=h(i,b);return null!==j&&j.start===d.start&&j.end===d.end}(d,b))continue;let j=function(a){let b=function(a){for(let b=0;b<a.length;b+=1)if("()、。「」【】".includes(a[b]))return b;return -1}(a);if(b<=0)return null;let c=a.slice(0,b),d=e.find(a=>c.endsWith(a)),g=d?b-d.length:b;if(g<=0)return null;let h=a.slice(0,g);return f.test(h)?{keptUrl:h,tailText:a.slice(g),tailOffset:g,delimiter:d??null}:null}(d.url);if(!j)continue;let k=h(d,b),l=d.position?.start,m=d.position?.end;if(!k||!l||!m)continue;let n=null!==j.delimiter&&function(a,b,c,d){if(!a||"text"!==a.type||"string"!=typeof a.value||!a.value.endsWith(b))return!1;let e=h(a,d);if(!e||e.end!==c)return!1;let f=d.slice(e.start,e.end);if(!f.endsWith(b))return!1;let g=f.length-b.length-1;return g<0||"\\"!==f[g]}(c[a-1],j.delimiter,k.start,b),o=n?j.tailText.slice(j.delimiter?.length??0):j.tailText,p=n?j.tailOffset+(j.delimiter?.length??0):j.tailOffset,q=i(l,j.keptUrl.length);d.url=j.keptUrl;let r=d.children?.[0];r&&(r.value=j.keptUrl,r.position={start:{...l},end:{...q}}),d.position={start:{...l},end:q};let s={type:"text",value:o,position:{start:i(l,p),end:{...m}}};if(n&&j.delimiter){let b=c[a-1],e=i(l,-j.delimiter.length),f={type:"strong",children:[d],position:{start:e,end:i(l,p)}},g=b.value.slice(0,-j.delimiter.length);0===g.length?(c.splice(a-1,1),a-=1):(b.value=g,b.position&&(b.position={...b.position,end:e})),c[a]=f}c.splice(a+1,0,s),a+=1}}(d,c),d.children))g(b)&&a(b,c)}(a,c)}}])},93571:(a,b,c)=>{c.d(b,{Gw:()=>L,Wo:()=>x.Wo,Rb:()=>h,tz:()=>g,i4:()=>f,i5:()=>e,Zq:()=>d,Ad:()=>x.Ad,Gg:()=>X,aX:()=>V,fq:()=>W,HI:()=>U,eu:()=>M,p0:()=>I,po:()=>J});let d="data-search-skip",e="data-mermaid-source",f="data-mermaid-raw-start",g="data-mermaid-raw-end",h="commandmate:mermaid-block-settled";var i=c(69999),j=c(63051),k=c(88033);let l=/^( {0,3})(`{3,}|~{3,})(.*)$/,m=/^ {0,3}(?:[-*+]|\d{1,9}[.)]) {1,4}(?=`{3,}|~{3,})/;function n(a,b,c,d){let e=0;for(;e<d&&b+e<c&&" "===a[b+e];)e+=1;return e}let o=/^ {0,3}>[ \t]?/;function p(a,b,c){let d=0,e=b.start;for(;d<c;){let c=o.exec(a.slice(e,b.end));if(!c)break;e+=c[0].length,d+=1}return{depth:d,contentStart:e}}let q=null;function r(a){let b=a.filter(a=>a.end>a.start).sort((a,b)=>a.start-b.start),c=[];for(let a of b){let b=c[c.length-1];b&&a.start<=b.end?b.end=Math.max(b.end,a.end):c.push({...a})}return c}function s(a,b){let c=a.map(a=>({...a}));for(let a of b)c=c.flatMap(b=>{if(a.end<=b.start||a.start>=b.end)return[b];let c=[];return a.start>b.start&&c.push({start:b.start,end:a.start}),a.end<b.end&&c.push({start:a.end,end:b.end}),c});return c}function t(a,b,c){return a.map(a=>({start:Math.max(a.start,b),end:Math.min(a.end,c)})).filter(a=>a.end>a.start)}function u(a,b,c){return b.flatMap(b=>(function(a,b){let c=[];if(!b)return c;let d=0;for(;;){let e=a.indexOf(b,d);if(-1===e)return c;c.push(e),d=e+1}})(a.slice(b.start,b.end),c).filter(a=>b.start+a+c.length<=b.end).map(a=>b.start+a))}let v=(a,b)=>a.some(a=>b>=a.start&&b<a.end),w="data-search-section";var x=c(46332);let y=/&(?:#([0-9]{1,7})|#[xX]([0-9a-fA-F]{1,6})|([A-Za-z][A-Za-z0-9]{0,31}));/y,z=a=>/\s/.test(a),A=new Map;function B(a,b){var c;y.lastIndex=b;let d=y.exec(a);if(!d)return null;let e=b+d[0].length,f=void 0!==d[3]?function(a){let b=A.get(a);if(void 0!==b)return b;let c=null;if("undefined"!=typeof DOMParser){let b=new DOMParser().parseFromString(`<b>${a}</b>`,"text/html").body.textContent??"";c=b!==a&&""!==b?b:null}return A.set(a,c),c}(d[0]):(c=Number.parseInt(d[1]??d[2],void 0!==d[1]?10:16))<9||11===c||c>13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(65535&c)==65535||(65535&c)==65534||c>1114111?"�":String.fromCodePoint(c);return null===f?null:{end:e,drawn:f}}let C="data-search-raw";function D(a){if(a.length%2!=0)return null;let b=[];for(let c=0;c<a.length;c+=2){let d=Number.parseInt(a[c],10),e=Number.parseInt(a[c+1],10);if(!Number.isInteger(d)||!Number.isInteger(e)||e<d)return null;b.push({start:d,end:e})}return b}function E(a,b,c,d=c[0]?.start??0){if(1===c.length&&b.slice(d,d+a.length)===a)return Array.from({length:a.length},(a,b)=>d+b);let e=c[c.length-1]?.end??d,f=a=>c.findIndex(b=>a>=b.start&&a<b.end),g=(a,d,e,f=0)=>{for(let g=f;g<c.length;g++){if(c[g].end<=d)continue;if(c[g].start>=e)break;let f=b.indexOf(a,Math.max(d,c[g].start));if(-1!==f&&f<Math.min(c[g].end,e))return{idx:f,span:g}}return null},h=Array(a.length).fill(-1),i=d,j=0,k=[],l=d,m=(c,d,e)=>{for(let g=b.indexOf("&",c);-1!==g&&g<d;g=b.indexOf("&",g+1)){if(-1===f(g))continue;let c=B(b,g);if(c&&/^\s+$/.test(c.drawn)&&!(e+c.drawn.length>k.length)&&k.slice(e,e+c.drawn.length).map(b=>a[b]).join("")===c.drawn)return{idx:g,end:c.end,units:c.drawn.length}}return null},n=b=>{let c=l;for(let d=0;d<k.length;d++){let e=k[d],f=g(a[e],c,b),i=m(c,f?f.idx:b,d);if(i){for(let a=0;a<i.units;a++)h[k[d+a]]=i.idx;d+=i.units-1,c=i.end}else f&&(h[e]=f.idx,c=f.idx+1)}k=[]};for(let c=0;c<a.length;c++){let d,e=a[c];if(z(e)){0===k.length&&(l=i),k.push(c);continue}let m=i,o=null;for(;m<b.length&&-1!==f(m);){if(z(b[m])){m+=1;continue}let d="&"===b[m]?B(b,m):null;if(!d||a.startsWith(b.slice(m,d.end),c))break;if(/^\s+$/.test(d.drawn)){m=d.end;continue}a.startsWith(d.drawn,c)&&(o={start:m,end:d.end,length:d.drawn.length});break}let p=1;if(o)j=f(d=o.start),i=o.end,p=o.length;else{let a=g(e,Math.max(i,m),1/0,j);if(!a)return null;d=a.idx,j=a.span,i=d+1}n(d);for(let a=0;a<p;a++)h[c+a]=d;c+=p-1}return n(e),h}let F=/^[ \t>]*(`{3,}|~{3,})/,G=a=>"number"==typeof a?.offset?a.offset:null;function H(a,b,c,d){if(void 0===d){let d=c(a),e=c(b);return null!==d&&null!==e&&e>=d?[{start:d,end:e}]:null}let e=[],f=a;for(let g=d.indexOf("\n",a);;g=d.indexOf("\n",g+1)){let a=-1===g||g>=b,d=c(f),h=c(a?b:g);if(null===d!=(null===h))return null;if(null!==d&&null!==h){let b=h+ +!a;if(b<d)return null;let c=e[e.length-1];c&&c.end===d?c.end=b:e.push({start:d,end:b})}if(a)return e.length>0?e:null;f=g+1}}function I(a){let b=a?.toRaw===void 0?x.Wo:a.toRaw;return(c,d)=>{let e=a?.source??("string"==typeof d?.value?d.value:void 0);b&&function a(b,c,d){if("root"===b.type||"element"===b.type){if("element"===b.type){let a=G(b.position?.start),e=G(b.position?.end),f=null===a||null===e?null:H(a,e,c,d);if(f){let a=[f.map(a=>`${a.start},${a.end}`).join(",")];for(let e of b.children)"text"===e.type&&a.push(...function(a,b,c){let d=a.value.length,e=G(a.position?.start),f=G(a.position?.end),g=null===e||null===f?null:H(e,f,b,c);if(!g)return[`,,${d}`];if(1===g.length||void 0===c||null===e||null===f)return[`${g[0].start},${g[0].end},${d}`];let h=[];for(let a=c.indexOf("\n",e);-1!==a&&a<f;a=c.indexOf("\n",a+1))h.push(a);let i=a.value.split("\n");if(i.length!==h.length+1){let[a,...b]=g;return[[`${a.start},${a.end},${d}`,...b.map(a=>`${a.start},${a.end}`)].join(",")]}return i.map((a,d)=>{let g=d===i.length-1,j=a.length+ +!g,k=H(0===d?e:h[d-1]+1,g?f:h[d],b,c);return k?`${k[0].start},${k[0].end+ +!g},${j}`:`,,${j}`})}(e,c,d));b.properties={...b.properties,dataSearchRaw:a.join(";")}}}for(let e of b.children)a(e,c,d)}}(c,b,e)}}function J(a){let b=a[C];return"string"==typeof b?{[C]:b}:{}}let K={highlightName:"terminal-search",currentHighlightName:"terminal-search-current",fallbackOverlayId:"terminal-search-fallback-overlay",fallbackOverlayBgColor:"rgba(255, 165, 0, 0.6)"},L={highlightName:"history-search",currentHighlightName:"history-search-current",fallbackOverlayId:"history-search-fallback-overlay",fallbackOverlayBgColor:"rgba(59, 130, 246, 0.6)"};function M(a){return{highlightName:`history-search-${a}`,currentHighlightName:`history-search-current-${a}`,fallbackOverlayId:`history-search-fallback-overlay-${a}`,fallbackOverlayBgColor:L.fallbackOverlayBgColor}}function N(){return"undefined"!=typeof CSS&&null!==CSS&&"highlights"in CSS}let O=new Map;function P(a){O.delete(a.highlightName),N()&&(CSS.highlights.delete(a.highlightName),CSS.highlights.delete(a.currentHighlightName)),document.getElementById(a.fallbackOverlayId)?.remove()}function Q(a,b,c,h,o){if(0===b.length){let b=O.get(h.highlightName);return(b?.delete(a),b&&S(b),b&&0!==b.size)?(R(h,b),void T(a,h)):void P(h)}let x=function(a){let b,c=[],e=0,f=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,{acceptNode:a=>a.nodeType===Node.TEXT_NODE?NodeFilter.FILTER_ACCEPT:a.hasAttribute(d)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_SKIP});for(;b=f.nextNode();){let a=b,d=a.nodeValue?.length??0;c.push({node:a,start:e,end:e+d}),e+=d}return c}(a),y=((o?.sourceText!==void 0?function(a,b,c,d,h){let o=()=>(function(a,b,c,d){if(!a.querySelector(`[${C}]`))return null;let e=new Map;for(let c of b){let b=c.node.parentElement?.closest(`[${C}]`);if(!b||!a.contains(b))continue;let d=e.get(b);d?d.push(c):e.set(b,[c])}let f=new Int32Array(c.length).fill(-1),g=new Int32Array(c.length).fill(-1);for(let[a,b]of e){let d=function(a){let[b,...c]=a.split(";"),d=D(b.split(","));if(!d||0===d.length)return null;let e=[];for(let a of c){let[b,c,d,...f]=a.split(","),g=Number.parseInt(d,10);if(!Number.isInteger(g)||g<0)return null;if(""===b||""===c){e.push({start:null,end:null,length:g,spans:[]});continue}let h=D([b,c,...f]);if(!h)return null;e.push({start:h[0].start,end:h[h.length-1].end,length:g,spans:h})}return{start:d[0].start,end:d[d.length-1].end,spans:d,segments:e}}(a.getAttribute(C)??"");if(!d)continue;let e=b.map(a=>a.node.nodeValue??"").join("");if(d.segments.reduce((a,b)=>a+b.length,0)!==e.length)continue;let h=[];for(let a of b)for(let b=a.start;b<a.end;b++)h.push(b);let i=d.start;if(F.exec(c.slice(d.start,d.end))){let a=c.indexOf("\n",d.start);i=-1===a?d.end:a+1}let j=0;for(let a of d.segments){let b=e.slice(j,j+a.length),k=null;null!==a.start&&null!==a.end?(k=E(b,c,a.spans))&&(i=Math.max(i,a.end)):""!==b.trim()&&(k=E(b,c,d.spans,i))&&k.length>0&&(i=k.reduce((a,b)=>Math.max(a,b+1),i)),k?.forEach((a,d)=>{if(a<0||a>=f.length||-1!==f[a]||(f[a]=h[j+d],g[a]=h[j+d]+1,"&"!==c[a]))return;let e=d;for(;k[e+1]===a;)e+=1;if(k[e+1]===a+1)return;let i=B(c,a);i&&i.drawn.length===e-d+1&&b.startsWith(i.drawn,d)&&-1===g[i.end-1]&&(g[i.end-1]=h[j+e]+1)}),j+=a.length}}return d.map(a=>{if(a.end<=a.start||a.end>f.length)return null;let b=f[a.start],c=g[a.end-1];return -1!==b&&-1!==c&&c>b?{start:b,end:c}:null})})(a,b,c,d),x=function(a,b,c,d,h){let o=Array.from(a.querySelectorAll(`[${e}]`));if(0===o.length)return null;let x=null,y=b.map(a=>a.node.nodeValue??"").join(""),z=new Set(h.map(a=>a.key)),A=b=>{let c=(b.nodeType===Node.TEXT_NODE?b.parentElement:b)?.closest(`[${w}]`),d=c&&a.contains(c)?c.getAttribute(w):null;return null!==d&&z.has(d)?d:""},B=new Map(h.map(a=>[a.key,r(a.ranges)])),C=r(h.flatMap(a=>a.ranges)),D=["",...z].map(a=>{let d=""===a?s([{start:0,end:c.length}],C):B.get(a),e=r(b.filter(b=>A(b.node)===a).map(({start:a,end:b})=>({start:a,end:b}))),h=[];for(let c of o){if(A(c)!==a)continue;let d=b.filter(a=>c.contains(a.node));if(0===d.length)continue;let e=d[0].start,f=d[d.length-1].end;h.push({domStart:e,domEnd:f,text:y.slice(e,f),element:c})}let u=function(a,b,c){if(0===c.length)return null;let d=[];for(let e of c){let c=Number.parseInt(e.element.getAttribute(f)??"",10),h=Number.parseInt(e.element.getAttribute(g)??"",10);if(!Number.isInteger(c)||!Number.isInteger(h)||!v(b,c))return null;let i=function(a,b,c,d){if(!(b>=0&&c<=a.length&&b<c))return null;let e=a.slice(b,c);if(!/^(?:`{3,}|~{3,})/.test(e))return null;let f=e.split("\n"),g=d.length>0?d.split("\n"):[],h=f.length-1;if(g.length>0&&h!==g.length&&h!==g.length+1)return null;let i=[],j=b+f[0].length+1,k=0;for(let a=0;a<g.length;a++){let b=f[a+1],c=g[a];if(!b.endsWith(c))return null;i.push({rawStart:j+b.length-c.length,length:c.length,bodyOffset:k}),k+=c.length+1,j+=b.length+1}let l=(a.slice(a.lastIndexOf("\n",b-1)+1,b).match(/>/g)??[]).length;return{fenceStart:b,bodyStart:i.length>0?b+f[0].length+1:b+f[0].length,bodyEnd:i.length>0?i[i.length-1].rawStart+i[i.length-1].length:b+f[0].length,fenceEnd:c,body:d,quoteDepth:l,lines:i}}(a,c,h,e.text),j=d[d.length-1];if(!i||j&&i.fenceStart<j.fenceEnd)return null;d.push(i)}return d}(c,d,h),w=u??(x??=function(a){let b=[],c=function(a){q??=(0,j.l)().use(i.A).use(k.eT);let b=new Set;for(let c of function a(b,c=[]){if("code"===b.type)"mermaid"===b.lang&&c.push(b);else if("children"in b)for(let d of b.children)a(d,c);return c}(q.parse(a))){let a=c.position?.start.offset;void 0!==a&&b.add(a)}return b}(a),d=[],e=0;for(;e<=a.length;){let b=a.indexOf("\n",e),c=-1===b?a.length:b;if(d.push({start:e,end:c}),-1===b)break;e=b+1}for(let e=0;e<d.length;e++){let{depth:f,contentStart:g}=p(a,d[e],1/0),h=m.exec(a.slice(g,d[e].end)),i=h?h[0].length:0,j=l.exec(a.slice(g+i,d[e].end));if(!j)continue;let k=g+i+j[1].length;if(!c.has(k))continue;let o=j[1].length,q=j[2],r=j[3].trim();if("`"===q[0]&&r.includes("`"))continue;let s=RegExp(`^ {0,3}${"`"===q[0]?"`":"~"}{${q.length},}[ \\t]*$`),t=[],u=e;for(let b=e+1;b<d.length;b++){let c=p(a,d[b],f);if(c.depth<f)break;let e=c.contentStart,g=d[b].end;if(i>0){let b=n(a,e,g,i);if(0!==a.slice(e,g).trim().length&&b<i)break;e+=b}if(u=b,s.test(a.slice(e,g)))break;e+=n(a,e,g,o),t.push({rawStart:e,length:g-e,bodyOffset:0})}if("mermaid"===r.split(/[ \t]/)[0]){let c=0;for(let a of t)a.bodyOffset=c,c+=a.length+1;let g=t.length>0?d[e+1].start:d[e].end,h=t.length>0?t[t.length-1].rawStart+t[t.length-1].length:g;b.push({fenceStart:d[e].start,bodyStart:g,bodyEnd:h,fenceEnd:d[u].end,body:t.map(b=>a.slice(b.rawStart,b.rawStart+b.length)).join("\n"),quoteDepth:f,lines:t})}e=u}return b}(c)).filter(a=>v(d,a.fenceStart)),z=[];if(u)u.forEach((a,b)=>z.push({fence:a,source:h[b]}));else if(w.length===h.length&&w.every((a,b)=>a.body===h[b].text))w.forEach((a,b)=>z.push({fence:a,source:h[b]}));else{let a=0;for(let b of h)for(let c=a;c<w.length;c++)if(w[c].body===b.text){z.push({fence:w[c],source:b}),a=c+1;break}}let D=r(w.map(a=>({start:a.fenceStart,end:a.fenceEnd}))),E=r(h.map(a=>({start:a.domStart,end:a.domEnd}))),F=[],G=0,H=0;for(let a of[...z.map(a=>({rawStart:a.fence.fenceStart,rawEnd:a.fence.fenceEnd,domStart:a.source.domStart,domEnd:a.source.domEnd})),{rawStart:1/0,rawEnd:0,domStart:1/0,domEnd:0}])F.push({raw:s(t(d,G,a.rawStart),D),dom:s(t(e,H,a.domStart),E),rawFrom:G,rawTo:a.rawStart}),G=a.rawEnd,H=a.domEnd;return{raw:d,fences:w,pairs:z,gaps:F}}),E=c.toLowerCase(),F=y.toLowerCase();return d.map(a=>{let b=a.end-a.start,c=D.find(b=>v(b.raw,a.start));if(!c)return null;let d=c.fences.find(b=>a.start>=b.fenceStart&&a.start<b.fenceEnd);if(d){let e=c.pairs.find(a=>a.fence===d);if(!e)return null;let f=d.lines.find(b=>a.start>=b.rawStart&&a.start<b.rawStart+b.length);if(!f)return null;let g=e.source.domStart+f.bodyOffset+(a.start-f.rawStart);return{start:g,end:Math.min(g+b,e.source.domEnd)}}let e=c.gaps.find(b=>a.start>=b.rawFrom&&a.start<b.rawTo);if(!e)return null;let f=E.slice(a.start,a.end),g=u(E,e.raw,f).indexOf(a.start),h=u(F,e.dom,f);return -1===g||g>=h.length?null:{start:h[g],end:h[g]+b}})}(a,b,c,d,h);if(!x)return o();let y=o();if(!y)return x;let z=Array.from(a.querySelectorAll(`[${e}]`)).flatMap(a=>{let c=b.filter(b=>a.contains(b.node));return c.length>0?[{start:c[0].start,end:c[c.length-1].end}]:[]}),A=a=>z.some(b=>a.start<b.end&&a.end>b.start);return x.map((a,b)=>{if(a&&A(a))return a;let c=y[b];return c&&!A(c)?c:null})}(a,x,o.sourceText,b,o.sections??[]):null)??b).map(a=>a?function(a,b,c){let d=document.createRange(),e=!1;for(let{node:f,start:g,end:h}of a)if(!e&&b<h&&b>=g&&(d.setStart(f,b-g),e=!0),e&&c<=h)return d.setEnd(f,c-g),d;return e?d:null}(x,a.start,a.end):null);y.forEach(b=>{b&&function(a,b){let c=a.startContainer,d=c.nodeType===Node.TEXT_NODE?c.parentElement:c,f=d?.closest("details");f instanceof HTMLDetailsElement&&!f.open&&b.contains(f)&&f.querySelector(`[${e}]`)&&(f.open=!0)}(b,a)});let z=y[c]??null,A=[];y.forEach((a,b)=>{b!==c&&a&&A.push(a)});let G=O.get(h.highlightName);if(G||(G=new Map,O.set(h.highlightName,G)),G.set(a,A),R(h,G,a),c>=0?function(a,b,c){let d=document.getElementById(c.fallbackOverlayId);if(d&&d.parentElement!==a&&(d.remove(),d=null),!b||"function"!=typeof b.getBoundingClientRect)return d?.remove();let e=b.getBoundingClientRect(),f=a.getBoundingClientRect();d?d.style.backgroundColor=c.fallbackOverlayBgColor:((d=document.createElement("div")).id=c.fallbackOverlayId,d.style.position="absolute",d.style.backgroundColor=c.fallbackOverlayBgColor,d.style.borderRadius="2px",d.style.pointerEvents="none",d.style.zIndex="5",a instanceof HTMLElement&&(a.style.position="relative"),a.appendChild(d)),d.style.top=`${e.top-f.top+a.scrollTop}px`,d.style.left=`${e.left-f.left+a.scrollLeft}px`,d.style.width=`${e.width}px`,d.style.height=`${e.height}px`}(a,z,h):T(a,h),z){let a=z.startContainer,b=a.nodeType===Node.TEXT_NODE?a.parentElement:a;b&&"function"==typeof b.scrollIntoView&&b.scrollIntoView({block:"center",behavior:"smooth"})}}function R(a,b,c){if(S(b,c),!N())return;let d=Array.from(b.values()).flat();CSS.highlights.set(a.highlightName,new Highlight(...d)),CSS.highlights.delete(a.currentHighlightName)}function S(a,b){for(let c of Array.from(a.keys()))c===b||c.isConnected||a.delete(c)}function T(a,b){let c=document.getElementById(b.fallbackOverlayId);c&&a.contains(c)&&c.remove()}function U(){P(K)}function V(a,b,c){Q(a,b,c,K)}function W(a=L){P(a)}function X(a,b,c,d=L,e){Q(a,b,c,d,e)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6781,exports.ids=[6781],exports.modules={16781:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_TYPES:()=>n.b0,MAX_CWD_LENGTH:()=>p,applyAgentStopEvent:()=>u,isAgentEventType:()=>n.o0,resolveWorktreeByCwd:()=>s,validateHookCwd:()=>q});var d=c(29021),e=c(33873),f=c(56791),g=c(48524),h=c(66007),i=c(52767),j=c(52283),k=c(33294),l=c(31517),m=c(72626),n=c(62887);let o=(0,m.h)("lib/hooks/agent-event-service"),p=4096;function q(a){if("string"!=typeof a||""===a.trim())return{ok:!1,reason:"empty"};if(a.length>p)return{ok:!1,reason:"too_long"};let b=a;try{b=decodeURIComponent(a)}catch{b=a}return a.includes("\0")||b.includes("\0")?{ok:!1,reason:"nul_byte"}:(0,e.isAbsolute)(a)?r(a)||r(b)?{ok:!1,reason:"traversal"}:{ok:!0,cwd:a}:{ok:!1,reason:"not_absolute"}}function r(a){return a.split("\\"===e.sep?/[\\/]/:"/").some(a=>".."===a)}function s(a,b){let c=t(b);if(null===c)return null;let d=null,e=-1;for(let b of(0,f.getWorktrees)(a)){let a=t(b.path);null!==a&&(0,h.Uc)(c,a)&&a.length>e&&(d=b,e=a.length)}return d}function t(a){try{return(0,d.realpathSync)(a)}catch{return null}}async function u(a,b,c,d){let e;(0,k.recordAgentStopEvent)(b.id,c,d);let{status:f}=await (0,l.DL)(b,c,d),h="captured"===f;try{e=(0,g.MH)(a,b.id,c,d)}catch(a){return o.warn("agent-stop-task-lookup-failed",{worktreeId:b.id,error:a instanceof Error?a.message:String(a)}),{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}if(!e)return{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let m=!1;try{let b=(0,i.g)(a,e.id,"agent_idle",{source:"hook"});m=null!==b&&null!==b.toStatus}catch(a){o.warn("agent-stop-event-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}if(!e.contract.success.autoVerifyOnStop)return{taskId:e.id,taskEventApplied:m,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let n=null;try{let{runId:a}=await (0,j.AT)({worktreeId:b.id,worktreePath:b.path,instanceId:d,taskId:e.id,trigger:"task"});n=a}catch(a){a instanceof j.Wb||o.error("agent-stop-auto-verify-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}return{taskId:e.id,taskEventApplied:m,verificationRunId:n,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(9731),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},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}}}};
1
+ "use strict";exports.id=6781,exports.ids=[6781],exports.modules={16781:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_TYPES:()=>n.b0,MAX_CWD_LENGTH:()=>p,applyAgentStopEvent:()=>u,isAgentEventType:()=>n.o0,resolveWorktreeByCwd:()=>s,validateHookCwd:()=>q});var d=c(29021),e=c(33873),f=c(56791),g=c(48524),h=c(66007),i=c(52767),j=c(36486),k=c(33294),l=c(31517),m=c(72626),n=c(62887);let o=(0,m.h)("lib/hooks/agent-event-service"),p=4096;function q(a){if("string"!=typeof a||""===a.trim())return{ok:!1,reason:"empty"};if(a.length>p)return{ok:!1,reason:"too_long"};let b=a;try{b=decodeURIComponent(a)}catch{b=a}return a.includes("\0")||b.includes("\0")?{ok:!1,reason:"nul_byte"}:(0,e.isAbsolute)(a)?r(a)||r(b)?{ok:!1,reason:"traversal"}:{ok:!0,cwd:a}:{ok:!1,reason:"not_absolute"}}function r(a){return a.split("\\"===e.sep?/[\\/]/:"/").some(a=>".."===a)}function s(a,b){let c=t(b);if(null===c)return null;let d=null,e=-1;for(let b of(0,f.getWorktrees)(a)){let a=t(b.path);null!==a&&(0,h.Uc)(c,a)&&a.length>e&&(d=b,e=a.length)}return d}function t(a){try{return(0,d.realpathSync)(a)}catch{return null}}async function u(a,b,c,d){let e;(0,k.recordAgentStopEvent)(b.id,c,d);let{status:f}=await (0,l.DL)(b,c,d),h="captured"===f;try{e=(0,g.MH)(a,b.id,c,d)}catch(a){return o.warn("agent-stop-task-lookup-failed",{worktreeId:b.id,error:a instanceof Error?a.message:String(a)}),{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}if(!e)return{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let m=!1;try{let b=(0,i.g)(a,e.id,"agent_idle",{source:"hook"});m=null!==b&&null!==b.toStatus}catch(a){o.warn("agent-stop-event-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}if(!e.contract.success.autoVerifyOnStop)return{taskId:e.id,taskEventApplied:m,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let n=null;try{let{runId:a}=await (0,j.AT)({worktreeId:b.id,worktreePath:b.path,instanceId:d,taskId:e.id,trigger:"task"});n=a}catch(a){a instanceof j.Wb||o.error("agent-stop-auto-verify-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}return{taskId:e.id,taskEventApplied:m,verificationRunId:n,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(255),c.e(9731),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},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}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6784,exports.ids=[6784],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}},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()}}},26833:(a,b,c)=>{c.d(b,{Iz:()=>g,X0:()=>h,om:()=>i});var d=c(65417),e=c(46065),f=c(63271);async function g(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["add","--",...b],a,d.Ev)})}async function h(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["restore","--staged","--",...b],a,d.Ev)})}async function i(a,b,c){await (0,e.dX)(a,async()=>{let g=["commit","-m",b];c&&g.push("--amend"),g.push("--");try{await (0,e.rS)(g,a,d.Ev)}catch(b){let a=b instanceof Error?b.message:"";if(/nothing to commit|no changes added to commit|nothing added to commit/i.test(a))throw new f.mZ("Nothing to commit");throw b}})}},39988:(a,b,c)=>{c.d(b,{SN:()=>n,jr:()=>i,lY:()=>m,nX:()=>l});var d=c(65417),e=c(46065),f=c(2412),g=c(63271);function h(a){let b=new Map;if(!a)return b;let c=null;for(let d of a.split("\n")){let a=d.trimEnd();if(a.startsWith("worktree "))c=a.slice(9).trim();else if(a.startsWith("branch ")&&c){let d=a.slice(7).trim(),e=d.startsWith("refs/heads/")?d.slice(11):d;e&&b.set(e,c)}else""===a&&(c=null)}return b}async function i(a,b="local"){let c="local"===b||"all"===b,d="remote"===b||"all"===b,[f,g,j,k,l]=await Promise.all([c?(0,e.Bc)(["branch","--list"],a):Promise.resolve(""),d?(0,e.Bc)(["branch","-r"],a):Promise.resolve(""),(0,e.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a),(0,e.Bc)(["worktree","list","--porcelain"],a),(0,e.Bc)(["for-each-ref","--format=%(refname:short)%09%(upstream:short)%09%(upstream:track)","refs/heads"],a)]),m=j?j.trim():null,n=h(k??""),o=function(a){let b=new Map;if(!a)return b;for(let c of a.split("\n")){if(!c.trim())continue;let[a,d="",e=""]=c.split(" ");if(!a)continue;let f=d.trim()||null,g=null;if(f){let a=e.match(/ahead (\d+)/),b=e.match(/behind (\d+)/);a||b?g={ahead:a?parseInt(a[1],10):0,behind:b?parseInt(b[1],10):0}:/gone/.test(e)||(g={ahead:0,behind:0})}b.set(a,{upstream:f,aheadBehind:g})}return b}(l??""),p=[];if(c)for(let{name:a,isCurrent:b}of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trimEnd();if(!a.trim())continue;let d=a.startsWith("* "),e=a.replace(/^[*+]?\s+/,"").trim();!e||e.startsWith("(")||b.push({name:e,isCurrent:d})}return b}(f??"")){let c=o.get(a);p.push({name:a,isCurrent:b,isRemote:!1,isDefault:null!==m&&m===`origin/${a}`,upstream:c?.upstream??null,aheadBehind:c?.aheadBehind??null,checkedOutWorktreePath:n.get(a)??null})}if(d)for(let a of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trim();a&&(a.includes("->")||b.push(a))}return b}(g??""))p.push({name:a,isCurrent:!1,isRemote:!0,isDefault:null!==m&&m===a,upstream:null,aheadBehind:null,checkedOutWorktreePath:null});return p}async function j(a,b){let c=await (0,e.Bc)(["worktree","list","--porcelain"],a);if(null===c)return null;let d=h(c).get(b);return d&&d!==a?d:null}function k(a){if(a instanceof g.y0||a instanceof g.wo||a instanceof g.rI)throw a;let b=a instanceof Error?a.message:String(a),c=a?.stderr??"",d=`${c} ${b}`;if(/did not match|not a valid ref|not found|unknown revision|invalid reference|couldn't find remote ref/i.test(d))throw new g.ur("Branch not found");throw a}async function l(a,b){let{branch:c,createIfMissing:f=!1,from:h,force:i=!1}=b,l=await j(a,c);if(l)throw new g.oK("Branch is checked out in another worktree",l);if(!i){let b=await (0,e.Bc)(["status","--porcelain"],a);if(null===b)throw new g.y0("Could not verify working tree state");if(b.length>0)throw new g.d_("Working tree has uncommitted changes")}await (0,e.dX)(a,async()=>{let b;f?(b=["switch","-c",c],h&&b.push(h),b.push("--")):b=c.startsWith("origin/")?["switch","-c",c.slice(7),"--track",c,"--"]:i?["checkout","-f",c,"--"]:["switch",c,"--"];try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function m(a,b){let{name:c,from:f}=b;await (0,e.dX)(a,async()=>{let b=["branch",c];f&&b.push(f),b.push("--");try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function n(a,b){let{name:c,force:h=!1}=b,i=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null!==i&&i.trim()===c)throw new g.MC("Cannot delete the current branch");let j=await (0,f.tR)(a);if(null!==j&&j===c)throw new g.qb("Cannot delete the default branch");await (0,e.dX)(a,async()=>{try{await (0,e.rS)(["branch",h?"-D":"-d",c,"--"],a,d.Ev)}catch(d){let a=d instanceof Error?d.message:String(d),b=d?.stderr??"",c=`${b} ${a}`;if(/not fully merged/i.test(c))throw new g.A6("Branch is not fully merged");k(d)}})}},59082:(a,b,c)=>{c.d(b,{C4:()=>l,FW:()=>j,Iz:()=>k,Z3:()=>m});var d=c(65417),e=c(72626),f=c(46065),g=c(2412),h=c(63271);let i=(0,e.h)("git-remote");async function j(a,b){let{remote:c="origin",prune:e}=b,g=["fetch"];e&&g.push("--prune"),g.push(c,"--"),await (0,f.sl)(g,a,d.dw)}async function k(a,b,c){await (0,f.rS)(["remote","add",b,c],a,5e3)}async function l(a,b){let{remote:c="origin",branch:e,rebase:g,ffOnly:h}=b;return(0,f.dX)(a,async()=>{let b=["pull"];return g&&b.push("--rebase"),h&&b.push("--ff-only"),b.push(c),e&&b.push(e),b.push("--"),(0,f.mY)(b,a,d.A$,!0)})}async function m(a,b){let{remote:c="origin",branch:e,force:j,forceWithLease:k,setUpstream:l}=b;if(j||k){let b=await (0,g.tR)(a);if(null!==b&&b===e)throw new h.rm;i.warn("git:danger:force-push",{operation:"push",worktreePath:a,branch:e,forceWithLease:!0===k,timestamp:new Date().toISOString()})}await (0,f.dX)(a,async()=>{let b=["push"];k?b.push("--force-with-lease"):j&&b.push("--force"),l&&b.push("-u"),b.push(c,`${e}:refs/heads/${e}`,"--"),await (0,f.sl)(b,a,d.fL)})}},79051:(a,b,c)=>{c.d(b,{nX:()=>G.nX,z0:()=>z,lY:()=>G.lY,SN:()=>G.SN,Pt:()=>B,ID:()=>n,Wz:()=>D,NM:()=>w,ac:()=>x,$G:()=>m,$Z:()=>o,t$:()=>s,mk:()=>J,Lz:()=>E,om:()=>F.om,FW:()=>S.FW,C4:()=>S.C4,Z3:()=>S.Z3,S7:()=>Q,lw:()=>R,x7:()=>d.x7,jr:()=>G.jr,pc:()=>F.Iz,Ey:()=>M,X_:()=>N,VM:()=>L,oC:()=>K,X0:()=>F.X0});var d=c(63271),e=c(46065),f=c(2412),g=c(33873),h=c.n(g),i=c(79748),j=c(65417),k=c(72626);let l=(0,k.h)("git-status");async function m(a,b){let c,[d,f,g]=await Promise.all([(0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a),(0,e.Bc)(["rev-parse","--short","HEAD"],a),(0,e.Bc)(["status","--porcelain"],a)]);c=null===d?"(unknown)":"HEAD"===d?"(detached HEAD)":d;let h=null===g;return{currentBranch:c,initialBranch:b,isBranchMismatch:null!==b&&"(unknown)"!==c&&"(detached HEAD)"!==c&&c!==b,commitHash:f??"(unknown)",isDirty:!h&&g.length>0,...h?{statusUnknown:!0}:{}}}async function n(a){let b=await (0,e.TT)(["rev-list","--left-right","--count","@{upstream}...HEAD"],a);if(!b.ok){var c;let a=b.timedOut?"error":(c=b.stderr,/no upstream/i.test(c)?"no_upstream":/HEAD does not point to a branch|not point to a branch/i.test(c)?"detached":/unknown revision|ambiguous argument|bad revision/i.test(c)?"upstream_gone":"error");return l.debug("git:ahead-behind-unavailable",{reason:a}),{aheadBehind:null,reason:a}}let d=b.stdout.split(" ");if(2!==d.length)return{aheadBehind:null,reason:"error"};let f=parseInt(d[0],10),g=parseInt(d[1],10);return Number.isInteger(f)&&Number.isInteger(g)?{aheadBehind:{ahead:g,behind:f},reason:null}:{aheadBehind:null,reason:"error"}}async function o(a){let b=await (0,e.Bc)(["rev-parse","--git-path","FETCH_HEAD","--git-common-dir"],a);if(null===b)return null;let c=b.split("\n").map(a=>a.trim()).filter(a=>a.length>0);if(0===c.length)return null;let d=new Set([h().resolve(a,c[0])]);c[1]&&d.add(h().resolve(a,c[1],"FETCH_HEAD"));let f=null;for(let a of d)try{let{mtimeMs:b}=await (0,i.stat)(a);(null===f||b>f)&&(f=b)}catch{}return null===f?null:Math.round(f)}function p(a){switch(a){case"A":return"added";case"D":return"deleted";case"R":case"C":return"renamed";default:return"modified"}}let q=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function r(a){let b=a.indexOf(" -> ");return -1!==b?a.slice(b+4):a}async function s(a){return function(a){let b=[],c=[],d=[];if(!a)return{staged:b,unstaged:c,untracked:d};for(let e of a.split("\n")){if(e.length<4)continue;let a=e[0],f=e[1],g=e.slice(3);if(!g)continue;if("?"===a&&"?"===f){d.push({path:r(g),status:"untracked"});continue}let h=r(g);if("U"===a||"U"===f||q.has(`${a}${f}`)){c.push({path:h,status:"unmerged"});continue}" "!==a&&"?"!==a&&b.push({path:h,status:p(a)})," "!==f&&"?"!==f&&c.push({path:h,status:p(f)})}return{staged:b,unstaged:c,untracked:d}}(await (0,e.rS)(["status","--porcelain"],a,j.Ev))}var t=c(29021),u=c.n(t);let v=(0,k.h)("git-log");async function w(a,b=50,c=0){let d=(await (0,e.rS)(["log",`--max-count=${b}`,`--skip=${c}`,"--format=%H%n%h%n%s%n%an%n%aI","--"],a,e.t1)).trim();if(!d)return[];let f=d.split("\n"),g=[];for(let a=0;a+4<f.length;a+=5)g.push({hash:f[a],shortHash:f[a+1],message:f[a+2],author:f[a+3],date:f[a+4]});return g}async function x(a,b){try{let c=(await (0,e.rS)(["log","-1","--format=%H%n%h%n%s%n%an%n%aI",b,"--"],a,e.t1)).trim().split("\n");if(c.length<5)return null;let d={hash:c[0],shortHash:c[1],message:c[2],author:c[3],date:c[4]},f=await (0,e.rS)(["diff-tree","--no-commit-id","-r","--name-status",b,"--"],a,e.t1),g=function(a){let b=[];for(let c of a.trim().split("\n")){if(!c.trim())continue;let a=c.split(" ");if(a.length<2)continue;let d=a[0].trim(),e=a[a.length-1].trim();d.startsWith("R")?b.push({path:e,status:"renamed"}):"A"===d?b.push({path:e,status:"added"}):"D"===d?b.push({path:e,status:"deleted"}):b.push({path:e,status:"modified"})}return b}(f);return{commit:d,files:g}}catch(b){if(b instanceof d.y0||b instanceof d.wo)throw b;let a=b instanceof Error?b.message:"";if(a.includes("unknown revision")||a.includes("bad object"))return null;throw b}}async function y(a,b,c){if(!u().existsSync(a))return[];try{let{stdout:d}=await (0,e.mf)("git",["log","--all",`--since=${b}`,`--until=${c}`,`--format=%h\x1f%s\x1f%an`,"--"],{cwd:a,timeout:5e3}),f=d.trim();if(!f)return[];let g=[];for(let a of f.split("\n")){let b=a.split("\x1f");3===b.length&&g.push({shortHash:b[0],message:b[1],author:b[2]})}return g}catch(b){return v.error("git:commit-log-failed",{repoPath:a,error:b instanceof Error?b.message:"Unknown error"}),[]}}async function z(a,b,c){let d=await Promise.allSettled(a.map(async a=>({id:a.id,name:a.name,commits:await y(a.path,b,c)}))),e=new Map;for(let a of d)"fulfilled"===a.status&&a.value.commits.length>0&&e.set(a.value.id,{name:a.value.name,commits:a.value.commits});return e}let A=/(?:(?:closes|fixes|resolves)\s+)?#(\d+)/gi;function B(a){let b=new Set;for(let c of a){let a;for(A.lastIndex=0;null!==(a=A.exec(c));)b.add(parseInt(a[1],10))}return Array.from(b).sort((a,b)=>a-b)}let C=(0,k.h)("git-diff");async function D(a,b,c){try{return(await (0,e.rS)(["show",b,"--",c],a,e.t1)).trim()||null}catch(a){if(a instanceof d.y0||a instanceof d.wo)throw a;return null}}async function E(a,b,c){let f=function(a,b){switch(b){case"staged":return["diff","--cached","--",a];case"untracked":return["diff","--no-index","--","/dev/null",a];default:return["diff","--",a]}}(b,c);try{let{stdout:b}=await (0,e.mf)("git",f,{cwd:a,timeout:e.t1});return b.trim()||null}catch(a){if(a.killed||"ERR_CHILD_PROCESS_EXEC_TIMEOUT"===a.code||"ETIMEDOUT"===a.code)throw new d.y0(`Git command timed out after ${e.t1}ms`);if((a.stderr||a.message||"").includes("not a git repository"))throw new d.wo("Not a git repository");if("string"==typeof a.stdout)return a.stdout.trim()||null;throw C.error("git:working-diff-failed",{args:f.join(" "),error:a.message}),Error("Failed to execute git command")}}var F=c(26833),G=c(39988);let H=(0,k.h)("git-stash"),I=/^stash@\{(\d+)\}$/;async function J(a){let b=await (0,e.Bc)(["stash","list","--format=%gd%x09%s%x09%cI%x09%H"],a);if(null===b)return[];let c=[];if(!b||!b.trim())return c;for(let a of b.split("\n")){if(!a.trim())continue;let[b="",d="",e="",f=""]=a.split(" "),g=b.match(I);g&&c.push({index:parseInt(g[1],10),message:d,branch:function(a){let b=a.match(/^WIP on ([^:]+):/);if(b)return b[1].trim()||null;let c=a.match(/^On ([^:]+):/);return c&&c[1].trim()||null}(d),date:e,sha:f})}return c}async function K(a,b){let{message:c,includeUntracked:f}=b;await (0,e.dX)(a,async()=>{let b=["stash","push"];f&&b.push("--include-untracked"),c&&b.push("-m",c),b.push("--");try{await (0,e.rS)(b,a,j.Ev)}catch(c){let a=c instanceof Error?c.message:"",b=c?.stderr??"";if(/No local changes to save|No stash entries|No local changes/i.test(`${b} ${a}`))throw new d.s$("No local changes to stash");throw c}})}async function L(a,b){return(0,e.dX)(a,async()=>{let c=await (0,e.mY)(["stash","pop","--",`stash@{${b}}`],a);return c.conflict?{...c,stashRetained:!0}:c})}async function M(a,b){return(0,e.dX)(a,async()=>(0,e.mY)(["stash","apply","--",`stash@{${b}}`],a))}async function N(a,b){H.warn("git:danger:stash-drop",{operation:"stash-drop",worktreePath:a,index:b,timestamp:new Date().toISOString()}),await (0,e.dX)(a,async()=>{await (0,e.rS)(["stash","drop","--",`stash@{${b}}`],a,j.Ev)})}let O=(0,k.h)("git-reset");async function P(a){let b=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null===b)throw new d.y0("Could not verify current branch");let c=b.trim(),g=await (0,f.Qb)(a);return"string"==typeof g?g===c:null!==g&&("main"===c||"master"===c)}async function Q(a,b){let{target:c,mode:f}=b;if("hard"===f){if(await P(a))throw O.warn("git:danger:hard-reset-blocked",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()}),new d.BN("Cannot hard-reset the default branch");O.warn("git:danger:hard-reset",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()})}await (0,e.dX)(a,async()=>{await (0,e.rS)(["reset",`--${f}`,c,"--"],a,j.Ev)})}async function R(a,b){let{commitHash:c,noCommit:d}=b;return O.warn("git:danger:revert",{operation:"revert",worktreePath:a,commitHash:c,noCommit:!0===d,timestamp:new Date().toISOString()}),(0,e.dX)(a,async()=>{let b=["revert"];return d&&b.push("--no-commit"),b.push(c,"--"),(0,e.mY)(b,a)})}var S=c(59082)},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -3,11 +3,11 @@
3
3
  `).run(b,c,d,f,a)}async function y(a){let b;if(a.isExecuting)return void v.warn("execution:skip-concurrent",{name:a.entry.name});a.isExecuting=!0;try{b=function(a,b,c){let d=w(),e=Date.now(),f=(0,r.randomUUID)();return d.prepare(`
4
4
  INSERT INTO execution_logs (id, schedule_id, worktree_id, message, status, started_at, created_at)
5
5
  VALUES (?, ?, ?, ?, 'running', ?, ?)
6
- `).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let d=w().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!d)return void x(b,"failed","Worktree not found",null);let e=function(a,b){let c=(0,i.HA)(a);return c||("vibe-local"===a.cliToolId&&b.vibe_local_model?{model:b.vibe_local_model}:void 0)}(a.entry,d),f=await (0,q.V$)(a.entry.message,d.path,a.entry.cliToolId,a.entry.permission,e);x(b,f.status,f.output,f.exitCode);var c=a.scheduleId;let g=w(),h=Date.now();g.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(h,h,c),v.info("execution:completed",{name:a.entry.name,status:f.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&x(b,"failed",c,null),v.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}var z=c(36925);let A=(0,m.h)("schedule-manager");function B(a){try{if("function"==typeof a.isStopped)return!a.isStopped();if("function"==typeof a.isRunning)return a.isRunning()}catch{return!1}return!0}function C(a,b){b.schedule(()=>{y(a).catch(b=>{A.error("execution:unhandled",{name:a.entry.name,error:b instanceof Error?b.message:String(b)})})})}function D(){return(0,z.v)("__scheduleManagerStates",()=>({timerId:null,schedules:new Map,initialized:!1,isSyncing:!1,cmateFileCache:new Map}))}async function E(){let a=D();if(!a.isSyncing){a.isSyncing=!0;try{let b=function(){try{return u().prepare("SELECT id, path FROM worktrees").all()}catch(a){return t.error("worktree:fetch-failed",{error:a instanceof Error?a.message:String(a)}),[]}}(),c=new Set;for(let e of b)try{let b=function(a){let b=g().join(a,l.fp);try{return(0,s.statSync)(b).mtimeMs}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;return t.warn("file:stat-failed",{filePath:b}),null}}(e.path),f=a.cmateFileCache.get(e.path);if(null===b){void 0!==f&&a.cmateFileCache.delete(e.path);continue}let m=[],o=!1;for(let[b,c]of a.schedules)c.worktreeId===e.id&&(m.push(b),B(c.cronJob)||(o=!0));if(void 0!==f&&f===b){if(!o){for(let a of m)c.add(a);continue}A.warn("schedule:inactive-state-detected",{worktreeId:e.id})}a.cmateFileCache.set(e.path,b);let q=await p(e.path);if(!q)continue;let v=q.get("Schedules");if(!v)continue;let w=function(a){let b=[];for(let d of a){var c;let a;if(b.length>=l.QD){n.warn("maximum-schedule-entries");break}if(d.length<3){n.warn("parse:insufficient-columns",{columnCount:d.length});continue}let[e,f,g,m,o,p]=d,q=(0,l.j0)(e);if(!l.Vh.test(q)){n.warn("parse:invalid-name",{name:q});continue}if(!(0,l.ri)(f)){n.warn("parse:invalid-cron",{name:q,cron:f});continue}let r=(0,l.j0)(g);if(!r){n.warn("parse:empty-message",{name:q});continue}let s=void 0===o||""===o||"true"===o.toLowerCase(),{result:t,errors:u}=(0,i.zK)(m||"");if(u.length>0){n.warn("parse:invalid-cli-tool-column",{name:q,errors:u});continue}let v=t.cliToolId;if(!(0,h.hR)(v)){n.warn("parse:invalid-cli-tool",{name:q,cliToolId:v});continue}if(!(0,j.Cb)(v)){n.warn("parse:unsupported-cli-tool",{name:q,cliToolId:v});continue}let w=j.Hf[v]??"",x=p?.trim()||w;switch(v){case"claude":a=j.kd;break;case"codex":a=j.o1;break;case"copilot":a=j.oN;break;case"antigravity":a=j.eb;break;case"command-code":a=j.dq;break;case"opencode-v2":a=j.u7;break;default:a=[],x&&(n.warn("parse:permission-ignored",{name:q,cliToolId:v,permission:x}),x="")}a.length>0&&x&&!a.includes(x)&&(n.warn("parse:invalid-permission",{name:q,cliToolId:v,permission:x,defaultPermission:w}),x=w),s&&(c=x,"command-code"===v&&j.Tp.includes(c.trim()))&&n.warn("parse:command-code-direct-write-tools-denied",{code:"command-code-direct-write-tools-denied",name:q,cliToolId:v,permission:x,deniedTools:[...k]}),b.push({name:q,cronExpression:f.trim(),message:r,cliToolId:v,enabled:s,permission:x,model:t.model,agent:t.agent,variant:t.variant,continueSession:t.continueSession,title:t.title})}return b}(v),x=function(a,b){if(0===b.length)return[];let c=u(),d=Date.now(),e=c.prepare("SELECT id, name FROM scheduled_executions WHERE worktree_id = ?").all(a),f=new Map;for(let a of e)f.set(a.name,a.id);let g=[],h=c.prepare(`
6
+ `).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let d=w().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!d)return void x(b,"failed","Worktree not found",null);let e=function(a,b){let c=(0,i.HA)(a);return c||("vibe-local"===a.cliToolId&&b.vibe_local_model?{model:b.vibe_local_model}:void 0)}(a.entry,d),f=await (0,q.V$)(a.entry.message,d.path,a.entry.cliToolId,a.entry.permission,e);x(b,f.status,f.output,f.exitCode);var c=a.scheduleId;let g=w(),h=Date.now();g.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(h,h,c),v.info("execution:completed",{name:a.entry.name,status:f.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&x(b,"failed",c,null),v.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}var z=c(36925);let A=(0,m.h)("schedule-manager");function B(a){try{if("function"==typeof a.isStopped)return!a.isStopped();if("function"==typeof a.isRunning)return a.isRunning()}catch{return!1}return!0}function C(a,b){b.schedule(()=>{y(a).catch(b=>{A.error("execution:unhandled",{name:a.entry.name,error:b instanceof Error?b.message:String(b)})})})}function D(){return(0,z.v)("__scheduleManagerStates",()=>({timerId:null,schedules:new Map,initialized:!1,isSyncing:!1,cmateFileCache:new Map,generation:0,worktreeStopCounts:new Map}))}async function E(){let a=D();if(!a.isSyncing){a.isSyncing=!0;try{let b=a.generation??0,c=new Map(a.worktreeStopCounts),e=function(){try{return u().prepare("SELECT id, path FROM worktrees").all()}catch(a){return t.error("worktree:fetch-failed",{error:a instanceof Error?a.message:String(a)}),[]}}(),f=new Set;for(let m of e)try{let e=function(a){let b=g().join(a,l.fp);try{return(0,s.statSync)(b).mtimeMs}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;return t.warn("file:stat-failed",{filePath:b}),null}}(m.path),o=a.cmateFileCache.get(m.path);if(null===e){void 0!==o&&a.cmateFileCache.delete(m.path);continue}let q=[],v=!1;for(let[b,c]of a.schedules)c.worktreeId===m.id&&(q.push(b),B(c.cronJob)||(v=!0));if(void 0!==o&&o===e){if(!v){for(let a of q)f.add(a);continue}A.warn("schedule:inactive-state-detected",{worktreeId:m.id})}a.cmateFileCache.set(m.path,e);let w=await p(m.path);if(!w)continue;let x=w.get("Schedules");if(!x)continue;let y=function(a){let b=[];for(let d of a){var c;let a;if(b.length>=l.QD){n.warn("maximum-schedule-entries");break}if(d.length<3){n.warn("parse:insufficient-columns",{columnCount:d.length});continue}let[e,f,g,m,o,p]=d,q=(0,l.j0)(e);if(!l.Vh.test(q)){n.warn("parse:invalid-name",{name:q});continue}if(!(0,l.ri)(f)){n.warn("parse:invalid-cron",{name:q,cron:f});continue}let r=(0,l.j0)(g);if(!r){n.warn("parse:empty-message",{name:q});continue}let s=void 0===o||""===o||"true"===o.toLowerCase(),{result:t,errors:u}=(0,i.zK)(m||"");if(u.length>0){n.warn("parse:invalid-cli-tool-column",{name:q,errors:u});continue}let v=t.cliToolId;if(!(0,h.hR)(v)){n.warn("parse:invalid-cli-tool",{name:q,cliToolId:v});continue}if(!(0,j.Cb)(v)){n.warn("parse:unsupported-cli-tool",{name:q,cliToolId:v});continue}let w=j.Hf[v]??"",x=p?.trim()||w;switch(v){case"claude":a=j.kd;break;case"codex":a=j.o1;break;case"copilot":a=j.oN;break;case"antigravity":a=j.eb;break;case"command-code":a=j.dq;break;case"opencode-v2":a=j.u7;break;default:a=[],x&&(n.warn("parse:permission-ignored",{name:q,cliToolId:v,permission:x}),x="")}a.length>0&&x&&!a.includes(x)&&(n.warn("parse:invalid-permission",{name:q,cliToolId:v,permission:x,defaultPermission:w}),x=w),s&&(c=x,"command-code"===v&&j.Tp.includes(c.trim()))&&n.warn("parse:command-code-direct-write-tools-denied",{code:"command-code-direct-write-tools-denied",name:q,cliToolId:v,permission:x,deniedTools:[...k]}),b.push({name:q,cronExpression:f.trim(),message:r,cliToolId:v,enabled:s,permission:x,model:t.model,agent:t.agent,variant:t.variant,continueSession:t.continueSession,title:t.title})}return b}(x),z=function(a,b){if(0===b.length)return[];let c=u(),d=Date.now(),e=c.prepare("SELECT id, name FROM scheduled_executions WHERE worktree_id = ?").all(a),f=new Map;for(let a of e)f.set(a.name,a.id);let g=[],h=c.prepare(`
7
7
  UPDATE scheduled_executions
8
8
  SET message = ?, cron_expression = ?, cli_tool_id = ?, enabled = ?, updated_at = ?
9
9
  WHERE id = ?
10
10
  `),i=c.prepare(`
11
11
  INSERT INTO scheduled_executions (id, worktree_id, name, message, cron_expression, cli_tool_id, enabled, created_at, updated_at)
12
12
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
13
- `);return c.transaction(()=>{for(let c of b){let b=f.get(c.name);if(b)h.run(c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,b),g.push(b);else{let b=(0,r.randomUUID)();i.run(b,a,c.name,c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,d),g.push(b)}}})(),g}(e.id,w);for(let b=0;b<w.length;b++){let f=w[b],g=x[b];if(c.add(g),!f.enabled||!f.cronExpression){let b=a.schedules.get(g);b&&(b.cronJob.stop(),a.schedules.delete(g),A.info("schedule:disabled",{name:f.name}));continue}let h=a.schedules.get(g);if(h){if(!B(h.cronJob)){try{h.cronJob.stop()}catch{}try{let a=new d.l4(f.cronExpression,{paused:!1,protect:!0});C(h,a),h.cronJob=a,h.entry=f,A.warn("schedule:recreated-inactive",{name:f.name,cron:f.cronExpression})}catch(b){a.cmateFileCache.delete(e.path),A.error("schedule:update-failed",{scheduleId:g,worktreeId:e.id,previousCron:h.entry.cronExpression,cron:f.cronExpression,phase:"recover",error:b instanceof Error?b.message:String(b)})}continue}if(h.entry.cronExpression!==f.cronExpression){!function(a,b){let c=a.entry.cronExpression,e=(d,e)=>(A.error("schedule:update-failed",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression,phase:d,error:e instanceof Error?e.message:String(e)}),!1),f=null;try{f=new d.l4(b.cronExpression,{paused:!0,protect:!0}),C(a,f)}catch(a){if(f)try{f.stop()}catch{}return e("prepare",a)}try{a.cronJob.stop(),f.resume()}catch(a){try{f.stop()}catch{}return e("swap",a)}return a.cronJob=f,a.entry=b,A.info("schedule:updated",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression}),!0}(h,f)&&a.cmateFileCache.delete(e.path);continue}h.entry=f;continue}if(a.schedules.size>=100){A.warn("schedule:max-concurrent-reached",{limit:100,name:f.name});continue}try{let b=function(a,b,c){let e=new d.l4(c.cronExpression,{paused:!1,protect:!0}),f={scheduleId:b,worktreeId:a,cronJob:e,isExecuting:!1,entry:c};return C(f,e),f}(e.id,g,f);a.schedules.set(g,b),A.info("schedule:created",{name:f.name,cron:f.cronExpression})}catch(a){A.warn("schedule:invalid-cron",{name:f.name,error:a instanceof Error?a.message:String(a)})}}}catch(a){A.error("schedule:sync-failed",{worktreeId:e.id,error:a instanceof Error?a.message:String(a)})}for(let[b,d]of a.schedules)c.has(b)||(d.cronJob.stop(),a.schedules.delete(b),A.info("schedule:removed-stale",{name:d.entry.name}));let e=b.map(a=>a.id);!function(a,b){if(0!==b.length)try{let c=u(),d=Date.now(),e=b.map(()=>"?").join(","),f=c.prepare(`SELECT id FROM scheduled_executions WHERE worktree_id IN (${e}) AND enabled = 1`).all(...b),g=0,h=c.prepare("UPDATE scheduled_executions SET enabled = 0, updated_at = ? WHERE id = ?");for(let b of f)!a.has(b.id)&&(h.run(d,b.id),g++);g>0&&t.info("schedule:disabled-stale",{count:g})}catch(a){t.error("schedule:disable-stale-failed",{error:a instanceof Error?a.message:String(a)})}}(c,e)}finally{a.isSyncing=!1}}}async function F(){await E()}function G(a){let b=D();for(let[c,d]of b.schedules)if(d.worktreeId===a){try{d.cronJob.stop()}catch{}b.schedules.delete(c)}try{let d=(function(){let{getDbInstance:a}=c(88807);return a()})().prepare("SELECT path FROM worktrees WHERE id = ?").get(a);d?.path&&b.cmateFileCache.delete(d.path)}catch{A.warn("cache:cleanup-failed",{worktreeId:a})}A.info("stop:worktree",{worktreeId:a})}function H(a){let b=D(),c=[];for(let[d,e]of b.schedules){if(e.worktreeId!==a)continue;let b=null;try{let a="function"==typeof e.cronJob.nextRun?e.cronJob.nextRun():null;a instanceof Date&&(b=a.getTime())}catch{b=null}c.push({scheduleId:d,worktreeId:a,name:e.entry.name,cronExpression:e.entry.cronExpression,cliToolId:e.entry.cliToolId,enabled:e.entry.enabled,isExecuting:e.isExecuting,isCronActive:B(e.cronJob),nextRunAt:b,model:e.entry.model})}return c.sort((a,b)=>a.name.localeCompare(b.name)),c}}};
13
+ `);return c.transaction(()=>{for(let c of b){let b=f.get(c.name);if(b)h.run(c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,b),g.push(b);else{let b=(0,r.randomUUID)();i.run(b,a,c.name,c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,d),g.push(b)}}})(),g}(m.id,y);if((a.generation??0)!==b){a.cmateFileCache.delete(m.path),A.info("sync:aborted-by-stop-all",{worktreeId:m.id});return}if((a.worktreeStopCounts?.get(m.id)??0)!==(c.get(m.id)??0)){a.cmateFileCache.delete(m.path),A.info("sync:skipped-stopped-worktree",{worktreeId:m.id});continue}for(let b=0;b<y.length;b++){let c=y[b],e=z[b];if(f.add(e),!c.enabled||!c.cronExpression){let b=a.schedules.get(e);b&&(b.cronJob.stop(),a.schedules.delete(e),A.info("schedule:disabled",{name:c.name}));continue}let g=a.schedules.get(e);if(g){if(!B(g.cronJob)){try{g.cronJob.stop()}catch{}try{let a=new d.l4(c.cronExpression,{paused:!1,protect:!0});C(g,a),g.cronJob=a,g.entry=c,A.warn("schedule:recreated-inactive",{name:c.name,cron:c.cronExpression})}catch(b){a.cmateFileCache.delete(m.path),A.error("schedule:update-failed",{scheduleId:e,worktreeId:m.id,previousCron:g.entry.cronExpression,cron:c.cronExpression,phase:"recover",error:b instanceof Error?b.message:String(b)})}continue}if(g.entry.cronExpression!==c.cronExpression){!function(a,b){let c=a.entry.cronExpression,e=(d,e)=>(A.error("schedule:update-failed",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression,phase:d,error:e instanceof Error?e.message:String(e)}),!1),f=null;try{f=new d.l4(b.cronExpression,{paused:!0,protect:!0}),C(a,f)}catch(a){if(f)try{f.stop()}catch{}return e("prepare",a)}try{a.cronJob.stop(),f.resume()}catch(a){try{f.stop()}catch{}return e("swap",a)}return a.cronJob=f,a.entry=b,A.info("schedule:updated",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression}),!0}(g,c)&&a.cmateFileCache.delete(m.path);continue}g.entry=c;continue}if(a.schedules.size>=100){A.warn("schedule:max-concurrent-reached",{limit:100,name:c.name});continue}try{let b=function(a,b,c){let e=new d.l4(c.cronExpression,{paused:!1,protect:!0}),f={scheduleId:b,worktreeId:a,cronJob:e,isExecuting:!1,entry:c};return C(f,e),f}(m.id,e,c);a.schedules.set(e,b),A.info("schedule:created",{name:c.name,cron:c.cronExpression})}catch(a){A.warn("schedule:invalid-cron",{name:c.name,error:a instanceof Error?a.message:String(a)})}}}catch(a){A.error("schedule:sync-failed",{worktreeId:m.id,error:a instanceof Error?a.message:String(a)})}for(let[b,c]of a.schedules)f.has(b)||(c.cronJob.stop(),a.schedules.delete(b),A.info("schedule:removed-stale",{name:c.entry.name}));let m=e.map(a=>a.id);!function(a,b){if(0!==b.length)try{let c=u(),d=Date.now(),e=b.map(()=>"?").join(","),f=c.prepare(`SELECT id FROM scheduled_executions WHERE worktree_id IN (${e}) AND enabled = 1`).all(...b),g=0,h=c.prepare("UPDATE scheduled_executions SET enabled = 0, updated_at = ? WHERE id = ?");for(let b of f)!a.has(b.id)&&(h.run(d,b.id),g++);g>0&&t.info("schedule:disabled-stale",{count:g})}catch(a){t.error("schedule:disable-stale-failed",{error:a instanceof Error?a.message:String(a)})}}(f,m)}finally{a.isSyncing=!1}}}async function F(){await E()}function G(a){let b=D(),d=b.worktreeStopCounts??=new Map;for(let[c,e]of(d.set(a,(d.get(a)??0)+1),b.schedules))if(e.worktreeId===a){try{e.cronJob.stop()}catch{}b.schedules.delete(c)}try{let d=(function(){let{getDbInstance:a}=c(88807);return a()})().prepare("SELECT path FROM worktrees WHERE id = ?").get(a);d?.path&&b.cmateFileCache.delete(d.path)}catch{A.warn("cache:cleanup-failed",{worktreeId:a})}A.info("stop:worktree",{worktreeId:a})}function H(a){let b=D(),c=[];for(let[d,e]of b.schedules){if(e.worktreeId!==a)continue;let b=null;try{let a="function"==typeof e.cronJob.nextRun?e.cronJob.nextRun():null;a instanceof Date&&(b=a.getTime())}catch{b=null}c.push({scheduleId:d,worktreeId:a,name:e.entry.name,cronExpression:e.entry.cronExpression,cliToolId:e.entry.cliToolId,enabled:e.entry.enabled,isExecuting:e.isExecuting,isCronActive:B(e.cronJob),nextRunAt:b,model:e.entry.model})}return c.sort((a,b)=>a.name.localeCompare(b.name)),c}}};
@@ -1 +1 @@
1
- "use strict";exports.id=7905,exports.ids=[7905],exports.modules={1305:(a,b,c)=>{c.d(b,{Fq:()=>n,wK:()=>o});var d=c(22354),e=c(33294),f=c(88807),g=c(52660),h=c(54325),i=c(72626);let j=(0,i.h)("lib/session/session-generation-archive");var k=c(35583),l=c(27675);let m=(0,i.h)("lib/session/agent-session-lifecycle");function n(a,b=Date.now()){(0,k._U)(a.worktreeId,a.cliToolId,a.instanceId,b);let i=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted;(0,e.beginAgentEventGeneration)(a.worktreeId,a.cliToolId,a.instanceId,b),(0,l.eZ)(a.worktreeId,a.cliToolId,a.instanceId);let o=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted,p=(0,d.VM)(a.cliToolId);m.info("agent-session-generation-begun",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,transport:p.transport,decisionsEvicted:o-i});try{!function(a,b=process.env.VITEST?null:(0,f.getDbInstance)()){var d,e,i;let k=a.instanceId??a.cliToolId;if(!b)return;let l=(0,g.deleteMessagesByInstance)(b,a.worktreeId,k);0===l||((0,g.recomputeLastUserMessage)(b,a.worktreeId),j.info("session-generation-archived",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:k,archived:l}),d=a.worktreeId,e=a.cliToolId,i=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015)).then(({broadcastMessage:a})=>{a(h.dz,{worktreeId:d,cliToolId:e,instanceId:i,reason:"session_generation"})}).catch(a=>{j.warn("session-generation-invalidate-broadcast-failed",{worktreeId:d,instanceId:i,error:a instanceof Error?a.message:String(a)})}))}(a)}catch(b){m.warn("session-generation-archive-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function o(a){return(0,d.K9)((0,d.VM)(a.target.cliToolId).prepareLaunch(a))}},11472:(a,b,c)=>{c.d(b,{Bl:()=>e,GE:()=>j,Hg:()=>k,ow:()=>i,vg:()=>g,w9:()=>f});var d=c(51297);let e=["$","%","#"],f=40,g=[/^[\w.-]+@[\w.-]+[\s:].*[$%#]$/,/^\[[\w.-]+@[\w.-]+[^\]]*\][$#]$/];function h(a){return a.split("\n").filter(a=>""!==a.trim())}function i(a,b){let c=h(a.trim()).slice(-10).join("\n");for(let a of b.fatalPatterns)if(c.includes(a))return a;for(let a of b.fatalRegexPatterns)if(a.test(c))return a.source;return null}function j(a,b){let c=h(a.trim()),d=c[c.length-1]?.trim()??"";return!/\d+%$/.test(d)&&b.shellPromptPatterns.some(a=>a.test(d))?{line:d,via:"pattern"}:d.length>=b.maxShellPromptLength?null:b.shellPromptEndings.some(a=>!(!d.endsWith(a)||"%"===a&&/\d+%$/.test(d)))?{line:d,via:"ending"}:null}function k(a,b){let c=(0,d.aJ)(a).trim();if(""===c)return b.unreadableIsExited?{alive:!1,reason:"empty output"}:{alive:!0};let e=h(c),f=null===b.aliveTailLines?c:e.slice(-b.aliveTailLines).join("\n");if(b.alivePatterns.some(a=>a.test(f)))return{alive:!0};let g=i(c,b);if(null!==g)return{alive:!1,reason:`error pattern: ${g}`};let k=j(c,b);return null!==k?"pattern"===k.via?{alive:!1,reason:`shell prompt detected: ${k.line}`}:{alive:!1,reason:`shell prompt ending detected: ${k.line}`}:{alive:!0}}},20610:(a,b,c)=>{c.d(b,{CV:()=>i,D1:()=>p,Em:()=>q,Is:()=>g,KI:()=>j,Lw:()=>o,PY:()=>m,Rk:()=>l,Uc:()=>d,Zf:()=>h,kZ:()=>r,os:()=>k,pL:()=>e,x9:()=>f,yO:()=>n});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=300,l=3e3,m=200,n=3e3,o=3e3,p=15e3,q=100,r=1e3},35583:(a,b,c)=>{c.d(b,{O5:()=>o,Bk:()=>q,Hb:()=>l,_U:()=>n,a3:()=>r,PS:()=>m,Gz:()=>s});var d=c(16698),e=c(24455),f=c(37717);c(15194);let g={claude:6e4};var h=c(36925);let i=(0,h.v)("__sessionStartingRecords",()=>new Map),j=(0,h.v)("__sessionStartingTokenSeq",()=>({last:0})),k=(0,h.v)("__sessionStartingTokenScope",()=>new d.AsyncLocalStorage);function l(){return j.last+=1,j.last}function m(a,b){return k.run(a,b)}function n(a,b,c,d=Date.now()){let f=k.getStore()??l(),g=(0,e.v7)(a,b,c),h=i.get(g);return void 0!==h&&h.token>f?null:(i.set(g,{cliToolId:b,token:f,since:d,promptSeenAt:null,released:!1}),f)}function o(a,b,c,d){try{let f=(0,e.v7)(a,b,c);if(void 0!==d&&i.get(f)?.token!==d)return;i.delete(f)}catch{}}function p(a,b,c){return void 0===b||b.released?null:c-b.since>(g[b.cliToolId]??3e4)+5e3?(i.delete(a),null):b.since}function q(a,b,c,d=Date.now()){let f=(0,e.v7)(a,b,c);return p(f,i.get(f),d)}function r(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),h=i.get(g),j=p(g,h,f);return null===j||void 0===h?null:d?(h.promptSeenAt??=f,f-h.promptSeenAt>=5e3)?(h.released=!0,null):j:(h.promptSeenAt=null,j)}function s(a){return{...a,status:"running",reason:f.g.STARTING,hasActivePrompt:!1,promptDetection:{...a.promptDetection,isPrompt:!1,promptData:void 0},evidence:"positive"}}},37717:(a,b,c)=>{c.d(b,{g:()=>d});let d={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",OPENCODE_MODAL_OVERLAY:"opencode_modal_overlay",OPENCODE_PERMISSION_PROMPT:"opencode_permission_prompt",CLAUDE_SELECTION_LIST:"claude_selection_list",COMMAND_CODE_SELECTION_LIST:"command_code_selection_list",COMMAND_CODE_DISMISSABLE_PANEL:"command_code_dismissable_panel",COMMAND_CODE_PLAN_REVIEW:"command_code_plan_review",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",STARTING:"starting",EXITED:"exited",UNKNOWN_FRAME:"unknown_frame",DEFAULT:"default"}},40236:(a,b,c)=>{c.d(b,{FW:()=>F});var d=c(79646),e=c(79892),f=c(93997),g=c(56717),h=c(61789),i=c(20610),j=c(72626),k=c(87673),l=c(94154);let m=(0,j.h)("cli-tools/submit-verified-sender"),n=/\[Pasted text[\s#]/,o=0,p=/^\/[A-Za-z]/,q=/^\s*(?:ctx:\d+%\s*)?[>❯›]/;function r(a,b,c){if("opencode-box"===a){let a=(0,h.mu)(b);if(null===a)return{kind:"absent"};if(a.some(a=>h.vU.test(a)))return{kind:"empty"};let c=a.map(h.pV).find(a=>a.length>0);return void 0===c?{kind:"empty"}:{kind:"text",text:c,rows:a}}if("input-line-marker"!==a)return{kind:"absent"};let d=function(a){for(let b=a.length-1;b>=0;b--)if(q.test(a[b]))return a[b];return null}(c);if(null===d)return{kind:"absent"};let e=d.replace(q,"").trim();return 0===e.length?{kind:"empty"}:{kind:"text",text:e,rows:[d]}}function s(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}function t(a){return a.split("\n").map(a=>a.trim()).find(a=>a.length>0)??""}function u(a,b){let c=t(b);return 0!==c.length&&c.startsWith(a)}let v=[{pattern:/\[Pasted text(?: #\d+)?(?: \+(\d+) lines?| (\d+) chars?)?\]/g,read:a=>void 0!==a[1]?{lines:Number(a[1])}:void 0!==a[2]?{chars:Number(a[2])}:{}},{pattern:/\[Pasted Content (\d+) chars?\]/g,read:a=>({chars:Number(a[1])})},{pattern:/\[([^\]\n]*?)… \+(\d+)L\]/g,read:a=>({head:a[1],lineTotal:Number(a[2])})}];function w(a){let b=[],c=a;for(let{pattern:d,read:e}of v)for(let f of a.matchAll(d))b.push(e(f)),c=c.replace(f[0],"");return{tokens:b,rest:c.trim()}}function x(a,b){return new Promise((c,e)=>{let f=d.execFile("tmux",a,{timeout:5e3},a=>{if(a)return void e(a);c()});void 0!==b&&f.stdin?.end(b)})}async function y(a,b){let c=`cm-send-${process.pid}-${++o}`;try{await x(["load-buffer","-b",c,"-"],b),await x(["paste-buffer","-p","-r","-d","-b",c,"-t",(0,e.lA)(a)])}catch(b){await x(["delete-buffer","-b",c]).catch(()=>void 0);let a=b instanceof Error?b.message:String(b);throw Error(`Failed to paste message into tmux session: ${a}`)}}function z(a,b){let c=s((0,h.aJ)(a).split("\n")),d=r(b.reader,c,c.slice(-12));return"absent"===d.kind?"no composer on screen":"empty"===d.kind?"an empty composer":JSON.stringify(d.text.length>80?`${d.text.slice(0,80)}…`:d.text)}async function A(a,b,c){try{c.clearBeforeSend?await (0,k.sr)(a,b):await (0,e.Ce)(a)}catch(c){m.error("paste-withdraw-failed",{sessionName:a,cliToolId:b,error:c instanceof Error?c.message:String(c)})}}async function B(a){let{sessionName:b,message:c,cliToolId:d,composer:i,attempts:j}=a,k="unseen",l="";for(let a=0;a<Math.max(1,j)&&(await new Promise(a=>setTimeout(a,100)),"landed"!==(k=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=r(d.reader,e,e.slice(-12));if("text"!==f.kind)return"unseen";let{tokens:i,rest:j}=w(f.text);return 0===i.length?u(f.text,c)?"landed":c.includes(f.text)?"mismatch":"unseen":i.length>1||""!==j?"mismatch":function(a,b){let c,d,e=(b.match(/\n/g)??[]).length;if(void 0!==a.head){let c=a.head.replace(/\s+/g," ").trim();if(!b.replace(/\s+/g," ").startsWith(c))return"mismatch"}if(void 0!==a.chars)c=a.chars,d=[[...b].length,b.length];else if(void 0!==a.lineTotal)c=a.lineTotal,d=[e+1];else{if(void 0===a.lines)return 0===e?"landed":"pasting";c=a.lines,d=[e,e+1]}return d.includes(c)?"landed":c<Math.min(...d)?"pasting":"mismatch"}(i[0],c)}(l=await (0,e.Xg)(b,{startLine:-i.verifyCaptureLines}),d,c,i))&&"mismatch"!==k);a++);if("landed"===k)return;if("unseen"===k&&!i.clearBeforeSend)return void m.warn("paste-landed-unverified",{sessionName:b,cliToolId:d,bytes:Buffer.byteLength(c,"utf8")});let n=Buffer.byteLength(c,"utf8"),o=c.split("\n").length,p=z(l,i);await A(b,d,i),(0,f.gm)(b),m.error("paste-not-landed",{sessionName:b,cliToolId:d,state:k,bytes:n,lines:o,shown:p});let q="mismatch"===k?`the composer does not hold the message as sent (it shows ${p})`:"pasting"===k?`the paste had not finished arriving after ${100*j}ms (the composer shows ${p})`:`the message never appeared in the composer (${p})`;throw Error(`Message body did not arrive intact for session ${b}: ${q}; the message is ${n} bytes / ${o} lines. Enter was not pressed, so nothing was submitted (Issue #2464).`)}function C(a){return a.replace(/\s+/g,"")}async function D(a){let{sessionName:b,message:c,cliToolId:d,composer:g,attempts:h}=a,i=C(function(a){let b=a.split("\n"),c=b.findIndex(a=>""!==a.trim());if(c<0)return"";let d=b.findIndex((a,b)=>b>c&&""===a.trim());return b.slice(0,d<0?b.length:d).join("\n")}(c));if(""===i)return;let j="";for(let a=0;a<Math.max(1,h);a++){await new Promise(a=>setTimeout(a,50)),j=await (0,e.Xg)(b,{startLine:-g.verifyCaptureLines});let a=(0,l.ji)(j,d);if("content"===a.state&&C(a.text)===i)return}let k=Buffer.byteLength(c,"utf8"),n=z(j,g);throw await A(b,d,g),(0,f.gm)(b),m.error("typed-body-not-landed",{sessionName:b,cliToolId:d,bytes:k,attempts:h,shown:n}),Error(`Message body did not appear in the composer for session ${b} within ${50*h}ms (it shows ${n}); the message is ${k} bytes. Enter was not pressed, so nothing was submitted (Issue #3366).`)}async function E(a,b,c=(0,g.gc)(b)){if(!c.clearBeforeSend)return;let d=await (0,k.sr)(a,b);if("content"===d.state)throw m.error("pre-send-composer-clear-failed",{sessionName:a,cliToolId:b,passes:d.passes,remainingLength:d.remainingText.length,remainingText:d.remainingText}),Error(`Composer for session ${a} still holds unsent text after ${d.passes} clear passes; refusing to type the message, which would be concatenated with it (Issue #1880).`);d.passes>0&&m.warn("pre-send-composer-cleared",{sessionName:a,cliToolId:b,passes:d.passes,state:d.state,discardedLength:d.discardedText.length,discardedText:d.discardedText})}async function F(a){let{sessionName:b,message:c,cliToolId:d,composer:j=(0,g.gc)(d),textInputWaitMs:k=i.pL,interEnterWaitMs:o=i.pL,verifyAttempts:q=4,verifyDelayMs:v=i.x9,pasteLandedAttempts:x=20,awaitTypedBody:z=!1,typedBodyAttempts:A=100}=a,C=a.submitEnterCount??j.submitEnterCount;if(await E(b,d,j),Buffer.byteLength(c,"utf8")>512){let a=Date.now();await y(b,c),await B({sessionName:b,message:c,cliToolId:d,composer:j,attempts:x});let e=k-(Date.now()-a);e>0&&await new Promise(a=>setTimeout(a,e))}else{let a=Date.now();await (0,e.V1)(b,c,!1,{literal:!0}),z&&l.wn.has(d)&&await D({sessionName:b,message:c,cliToolId:d,composer:j,attempts:A});let f=k-(Date.now()-a);f>0&&await new Promise(a=>setTimeout(a,f))}for(let a=0;a<Math.max(1,C);a++)await (0,e.KB)(b,["Enter"]),a<C-1&&await new Promise(a=>setTimeout(a,o));let F=Math.max(1,q);for(let a=0;a<F;a++){await new Promise(a=>setTimeout(a,v));let i=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=e.slice(-12),i=f.join("\n");if((0,h.ut)(b,i))return"submitted";let j=function(a,b,c,d,e){if("codex"===b&&"input-line-marker"===c){let c=(0,l.ji)(a,b);if("content"===c.state&&c.text.includes("\n"))return{kind:"text",text:t(c.text),rows:c.text.split("\n")}}return r(c,d,e)}(a,b,d.reader,e,f);return"text"!==j.kind?"submitted":j.rows.some(a=>n.test(a)||w(a).tokens.length>0)||u(j.text,c)?"pending":p.test(j.text)?"replaced":"submitted"}(await (0,e.Xg)(b,{startLine:-j.verifyCaptureLines}),d,c,j);if("submitted"===i)return void(0,f.gm)(b);if("replaced"===i){try{await (0,e.Ce)(b)}catch(a){m.error("submit-clear-input-failed",{sessionName:b,cliToolId:d,error:a instanceof Error?a.message:String(a)})}throw(0,f.gm)(b),m.error("submit-replaced-by-tui-completion",{sessionName:b,cliToolId:d,attempt:a}),Error(`Message was replaced by a TUI autocompletion for session ${b}; the input no longer matches the sent text. Cleared the input line without submitting to avoid executing a different command.`)}m.warn("submit-not-confirmed:resending-enter",{sessionName:b,cliToolId:d,attempt:a}),await (0,e.KB)(b,["Enter"])}throw(0,f.gm)(b),m.error("submit-verification-failed",{sessionName:b,cliToolId:d,attempts:F}),Error(`Message submit could not be confirmed for session ${b} after ${F} attempts (typed but unsent)`)}},46749:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a){return`clear 2>/dev/null; printf '\\033[3J'; ${a}`}},50945:(a,b,c)=>{c.d(b,{Q:()=>g,S:()=>h});var d=c(79892),e=c(11472),f=c(91536);async function g(a,b){let c;try{c=await (0,d.Xg)(a,{startLine:-b.probeCaptureLines})}catch{c=void 0}return"string"!=typeof c?b.unreadableIsExited?{alive:!1,reason:"capture error"}:{alive:!0}:(0,e.Hg)(c,b)}async function h(a,b){return g(a,(0,f.H7)(b))}},56717:(a,b,c)=>{c.d(b,{gc:()=>g});var d=c(16983);let e={reader:"input-line-marker",verifyCaptureLines:12,clearBeforeSend:!0,submitEnterCount:1},f={claude:e,codex:e,gemini:{...e,clearBeforeSend:!1},copilot:{...e,clearBeforeSend:!1},antigravity:{...e,clearBeforeSend:!1},"command-code":{...e,clearBeforeSend:!1},"vibe-local":{...e,clearBeforeSend:!1,submitEnterCount:2},opencode:{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1},"opencode-v2":{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1}};function g(a){return f[a]??e}},57905:(a,b,c)=>{c.d(b,{c0:()=>X,zw:()=>T,Yq:()=>U,pU:()=>W,R7:()=>V,VU:()=>Y});var d=c(79892),e=c(61789),f=c(11472),g=c(91536),h=c(50945),i=c(40236),j=c(93997),k=c(77093),l=c(20610),m=c(79646),n=c(28354),o=c(72626);let p=(0,o.h)("session-key-sender"),q=(0,n.promisify)(m.exec);async function r(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function s(a){await q("tmux set-environment -g -u CLAUDECODE 2>/dev/null || true"),await (0,d.V1)(a,"unset CLAUDECODE",!0),await new Promise(a=>setTimeout(a,l.Em))}async function t(a,b){let c=Date.now();for(;Date.now()-c<b;){let b=await r(a);if(e.hx.test(b))return;await new Promise(a=>setTimeout(a,200))}throw Error(`Prompt detection timeout (${b}ms)`)}async function u(a,b,c,f){if(!await (0,d.N)(a))throw Error(`Claude session ${a} does not exist. Start the session first.`);let g=await r(a);e.hx.test(g)||await t(a,f),await new Promise(a=>setTimeout(a,c)),await (0,i.FW)({sessionName:a,message:b,cliToolId:"claude"}),(0,j.gm)(a),p.info("sent-message-to-session",{sessionName:a})}async function v(a){try{await (0,d.N)(a)&&(await (0,d.V1)(a,"",!1),await (0,d.ds)(a,"C-d"),(0,j.gm)(a),await new Promise(a=>setTimeout(a,l.Zf)));let b=await (0,d.fY)(a);return b&&p.info("stopped-session",{sessionName:a}),b}catch(a){return p.error("session:stop-failed",{error:(0,k.u1)(a)}),!1}}var w=c(79748),x=c(31347),y=c(40964),z=c(22354),A=c(43252),B=c(80252),C=c(1305),D=c(33294),E=c(2669),F=c(46749);let G=(0,o.h)("claude-session"),H=(0,n.promisify)(m.exec);async function I(a,b,c){if(null!==c.pollsSinceAnswer&&c.pollsSinceAnswer++,null!==c.pollsSinceMove&&c.pollsSinceMove++,null===b)return;c.seen||(c.seen=!0,c.shellTellsExit=await K(a));let f=(0,e.lQ)(b);if(null!==f){if(1===f.length){if(!(null===c.pollsSinceAnswer||c.pollsSinceAnswer>=10&&c.answers<3))return;try{await (0,d.V1)(a,"",!0),c.pollsSinceAnswer=0,c.answers++,G.info("trust-dialog-detected",{keys:"Enter",attempt:c.answers})}catch{}return}if(null===c.pollsSinceMove||!(c.pollsSinceMove<3)){if(c.moves>=20)throw new E.mR("Claude Code",a,'trust dialog: cursor did not reach "Yes, I trust this folder"');try{await (0,d.KB)(a,[f[0]]),c.pollsSinceMove=0,c.moves++,G.info("trust-dialog-cursor-move",{key:f[0],attempt:c.moves})}catch{}}}}async function J(a){let b=await L(a);return null!==b&&(0,e.U1)(b)}async function K(a){let b=await L(a);return null!==b&&!(0,e.U1)(b)}async function L(a){try{let b=await (0,d.Hg)(a);return"string"==typeof b?b:null}catch{return null}}let M=(0,g.H7)("claude"),N=null;async function O(){if(N)return N;let a=process.env.CLAUDE_PATH;if(a&&(/^[/a-zA-Z0-9._-]+$/.test(a)?!a.includes("..")||(G.info("claudepath-contains-path"),!1):(G.info("claudepath-contains-invalid-characters-i"),!1)))try{return await (0,w.access)(a,w.constants.X_OK),N=a}catch{G.info("claude-path-env-not-executable")}try{let{stdout:a}=await H("which claude",{timeout:5e3});return N=a.trim()}catch{for(let a of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await H(`test -x "${a}"`,{timeout:1e3}),N=a}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}async function P(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function Q(a){let b=await (0,h.Q)(a,M);return b.alive?{healthy:!0}:{healthy:!1,reason:b.reason}}async function R(a){return!!(await Q(a)).healthy||(G.warn("claude-session-unhealthy"),await (0,d.fY)(a),!1)}function S(a,b){return(0,y.mf)("claude",a,b)}async function T(){try{return await H("which claude",{timeout:5e3}),!0}catch{return!1}}async function U(a,b){let c=S(a,b);return!!await (0,d.N)(c)&&(!!(await Q(c)).healthy||(G.warn("claude-session-unhealthy"),!1))}async function V(a){let{worktreeId:b,worktreePath:c,instanceId:g,model:h}=a;if(void 0!==h){let a=(0,B.LB)(h);if(!a.valid)throw Error(`Invalid Claude model name: ${a.reason}`)}if(!await T())throw new E.lU("Claude Code","Claude CLI is not installed or not in PATH");let i=S(b,g);if(await (0,d.N)(i)&&(await (0,x.St)(i,c),await R(i))){await (0,d.zT)(i),G.info("claude-session-exists");return}(0,C.Fq)({worktreeId:b,cliToolId:z.vm,instanceId:g});try{let a=await O(),k=(0,C.wK)({target:{worktreeId:b,cliToolId:z.vm,instanceId:g},executablePath:a,worktreePath:c}),l=void 0===h?k:`${k} --model ${(0,A.ZL)(h)}`;await (0,d.jw)({sessionName:i,workingDirectory:c}),await s(i),await (0,d.V1)(i,(0,F.Y)(l),!0);let m=Date.now(),n=!1,o={pollsSinceAnswer:null,pollsSinceMove:null,answers:0,moves:0,seen:!1,shellTellsExit:!1};for(;Date.now()-m<6e4;){var j;await new Promise(a=>setTimeout(a,300));let a=null;try{a=await P(i)}catch{}if(null===a)continue;let b=(0,e.lX)(a);if(await I(i,b?a:null,o),!b&&e.hx.test(a)){await new Promise(a=>setTimeout(a,500)),G.info("claude-initialized"),n=!0;break}if(!b&&o.shellTellsExit&&await J(i))throw new E.mR("Claude Code",i,"trust dialog: Claude Code exited to the shell");let c=(j=a,(0,f.ow)(j,M));if(null!==c)throw new E.mR("Claude Code",i,c)}if(!n)throw new E.Sr("Claude Code",i,6e4);G.info("started-claude-session")}catch(a){if(N=null,G.error("session:start-failed",{error:a instanceof Error?a.message:String(a)}),(0,E.su)(a))throw a;throw Error("Failed to start Claude session")}}async function W(a,b,c){let d=S(a,c);await u(d,b,500,1e4)}async function X(a,b=1e3,c){let e=S(a,c);if(!await (0,d.N)(e))throw Error(`Claude session ${e} does not exist`);try{return await (0,d.Xg)(e,{startLine:-b})}catch(a){throw Error(`Failed to capture Claude output: ${a instanceof Error?a.message:String(a)}`)}}async function Y(a,b){let c=S(a,b),d=await v(c);return(0,D.discardAgentEventState)(a,"claude",b),d}},77093:(a,b,c)=>{c.d(b,{u1:()=>d});function d(a){return a instanceof Error?a.message:String(a)}},87673:(a,b,c)=>{c.d(b,{sr:()=>i});var d=c(79892),e=c(93997),f=c(94154);let g=(0,c(72626).h)("composer-clear"),h=a=>new Promise(b=>setTimeout(b,a));async function i(a,b,c={}){let j=c.capture??(a=>(0,d.Xg)(a,200)),k=c.sendClear??d.ou,l=c.delay??h,m=c.maxPasses??12,n=0,o=(0,f.ji)(await j(a),b),p="content"===o.state?o.text:"";for(;"content"===o.state&&n<m;)await k(a),n++,await l(120),o=(0,f.ji)(await j(a),b);n>0&&(0,e.gm)(a);let q="empty"===o.state||"ghost"===o.state;return q||g.warn("composer-clear:not-cleared",{sessionName:a,cliToolId:b,passes:n,state:o.state}),{cleared:q,passes:n,state:o.state,remainingText:o.text,discardedText:p}}},91536:(a,b,c)=>{c.d(b,{H7:()=>i});var d=c(61789),e=c(11472);let f={probeCaptureLines:50,shellPromptEndings:e.Bl,maxShellPromptLength:e.w9,fatalPatterns:[],fatalRegexPatterns:[]},g={aliveTailLines:12,shellPromptPatterns:e.vg,unreadableIsExited:!1},h={claude:{...f,alivePatterns:[d.hx],aliveTailLines:null,shellPromptPatterns:e.vg,unreadableIsExited:!0,fatalPatterns:d.F0,fatalRegexPatterns:d.Fw},codex:{...f,...g,alivePatterns:[d.gm,d.sB,d.Mt]},copilot:{...f,...g,alivePatterns:[d.Du,d.Ub,d.tJ,d.rb]},opencode:{...f,...g,alivePatterns:[d.vU,d.uA,d.Cc,d.LO,d.a2]},gemini:{...f,...g,alivePatterns:[d.wN,d.s0]},antigravity:{...f,...g,alivePatterns:[d.lE,d.kT,d.VF]},"command-code":{...f,...g,alivePatterns:[d.WK,d.jk,d.k0]},"opencode-v2":{...f,...g,alivePatterns:[d.wK,d.c7,d.xL]},"vibe-local":{...f,...g,alivePatterns:[d.Dj,d.b2]}};function i(a){return h[a]??h.claude}}};
1
+ "use strict";exports.id=7905,exports.ids=[7905],exports.modules={1305:(a,b,c)=>{c.d(b,{Fq:()=>n,wK:()=>o});var d=c(22354),e=c(33294),f=c(88807),g=c(52660),h=c(54325),i=c(72626);let j=(0,i.h)("lib/session/session-generation-archive");var k=c(35583),l=c(27675);let m=(0,i.h)("lib/session/agent-session-lifecycle");function n(a,b=Date.now()){(0,k._U)(a.worktreeId,a.cliToolId,a.instanceId,b);let i=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted;(0,e.beginAgentEventGeneration)(a.worktreeId,a.cliToolId,a.instanceId,b),(0,l.eZ)(a.worktreeId,a.cliToolId,a.instanceId);let o=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted,p=(0,d.VM)(a.cliToolId);m.info("agent-session-generation-begun",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,transport:p.transport,decisionsEvicted:o-i});try{!function(a,b=process.env.VITEST?null:(0,f.getDbInstance)()){var d,e,i;let k=a.instanceId??a.cliToolId;if(!b)return;let l=(0,g.deleteMessagesByInstance)(b,a.worktreeId,k);0===l||((0,g.recomputeLastUserMessage)(b,a.worktreeId),j.info("session-generation-archived",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:k,archived:l}),d=a.worktreeId,e=a.cliToolId,i=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015)).then(({broadcastMessage:a})=>{a(h.dz,{worktreeId:d,cliToolId:e,instanceId:i,reason:"session_generation"})}).catch(a=>{j.warn("session-generation-invalidate-broadcast-failed",{worktreeId:d,instanceId:i,error:a instanceof Error?a.message:String(a)})}))}(a)}catch(b){m.warn("session-generation-archive-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function o(a){return(0,d.K9)((0,d.VM)(a.target.cliToolId).prepareLaunch(a))}},11472:(a,b,c)=>{c.d(b,{Bl:()=>e,GE:()=>j,Hg:()=>k,ow:()=>i,vg:()=>g,w9:()=>f});var d=c(51297);let e=["$","%","#"],f=40,g=[/^[\w.-]+@[\w.-]+[\s:].*[$%#]$/,/^\[[\w.-]+@[\w.-]+[^\]]*\][$#]$/];function h(a){return a.split("\n").filter(a=>""!==a.trim())}function i(a,b){let c=h(a.trim()).slice(-10).join("\n");for(let a of b.fatalPatterns)if(c.includes(a))return a;for(let a of b.fatalRegexPatterns)if(a.test(c))return a.source;return null}function j(a,b){let c=h(a.trim()),d=c[c.length-1]?.trim()??"";return!/\d+%$/.test(d)&&b.shellPromptPatterns.some(a=>a.test(d))?{line:d,via:"pattern"}:d.length>=b.maxShellPromptLength?null:b.shellPromptEndings.some(a=>!(!d.endsWith(a)||"%"===a&&/\d+%$/.test(d)))?{line:d,via:"ending"}:null}function k(a,b){let c=(0,d.aJ)(a).trim();if(""===c)return b.unreadableIsExited?{alive:!1,reason:"empty output"}:{alive:!0};let e=h(c),f=null===b.aliveTailLines?c:e.slice(-b.aliveTailLines).join("\n");if(b.alivePatterns.some(a=>a.test(f)))return{alive:!0};let g=i(c,b);if(null!==g)return{alive:!1,reason:`error pattern: ${g}`};let k=j(c,b);return null!==k?"pattern"===k.via?{alive:!1,reason:`shell prompt detected: ${k.line}`}:{alive:!1,reason:`shell prompt ending detected: ${k.line}`}:{alive:!0}}},20610:(a,b,c)=>{c.d(b,{CV:()=>i,D1:()=>p,Em:()=>q,Is:()=>g,KI:()=>j,Lw:()=>o,PY:()=>m,Rk:()=>l,Uc:()=>d,Zf:()=>h,kZ:()=>r,os:()=>k,pL:()=>e,x9:()=>f,yO:()=>n});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=300,l=3e3,m=200,n=3e3,o=3e3,p=15e3,q=100,r=1e3},35583:(a,b,c)=>{c.d(b,{O5:()=>o,Bk:()=>q,Hb:()=>l,_U:()=>n,a3:()=>r,PS:()=>m,Gz:()=>s});var d=c(16698),e=c(24455),f=c(37717);c(15194);let g={claude:6e4};var h=c(36925);let i=(0,h.v)("__sessionStartingRecords",()=>new Map),j=(0,h.v)("__sessionStartingTokenSeq",()=>({last:0})),k=(0,h.v)("__sessionStartingTokenScope",()=>new d.AsyncLocalStorage);function l(){return j.last+=1,j.last}function m(a,b){return k.run(a,b)}function n(a,b,c,d=Date.now()){let f=k.getStore()??l(),g=(0,e.v7)(a,b,c),h=i.get(g);return void 0!==h&&h.token>f?null:(i.set(g,{cliToolId:b,token:f,since:d,promptSeenAt:null,released:!1}),f)}function o(a,b,c,d){try{let f=(0,e.v7)(a,b,c);if(void 0!==d&&i.get(f)?.token!==d)return;i.delete(f)}catch{}}function p(a,b,c){return void 0===b||b.released?null:c-b.since>(g[b.cliToolId]??3e4)+5e3?(i.delete(a),null):b.since}function q(a,b,c,d=Date.now()){let f=(0,e.v7)(a,b,c);return p(f,i.get(f),d)}function r(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),h=i.get(g),j=p(g,h,f);return null===j||void 0===h?null:d?(h.promptSeenAt??=f,f-h.promptSeenAt>=5e3)?(h.released=!0,null):j:(h.promptSeenAt=null,j)}function s(a){return{...a,status:"running",reason:f.g.STARTING,hasActivePrompt:!1,promptDetection:{...a.promptDetection,isPrompt:!1,promptData:void 0},evidence:"positive"}}},37717:(a,b,c)=>{c.d(b,{g:()=>d});let d={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",OPENCODE_MODAL_OVERLAY:"opencode_modal_overlay",OPENCODE_PERMISSION_PROMPT:"opencode_permission_prompt",CLAUDE_SELECTION_LIST:"claude_selection_list",COMMAND_CODE_SELECTION_LIST:"command_code_selection_list",COMMAND_CODE_DISMISSABLE_PANEL:"command_code_dismissable_panel",COMMAND_CODE_PLAN_REVIEW:"command_code_plan_review",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",STARTING:"starting",EXITED:"exited",UNKNOWN_FRAME:"unknown_frame",DEFAULT:"default"}},40236:(a,b,c)=>{c.d(b,{FW:()=>F});var d=c(79646),e=c(79892),f=c(93997),g=c(56717),h=c(42422),i=c(20610),j=c(72626),k=c(87673),l=c(94154);let m=(0,j.h)("cli-tools/submit-verified-sender"),n=/\[Pasted text[\s#]/,o=0,p=/^\/[A-Za-z]/,q=/^\s*(?:ctx:\d+%\s*)?[>❯›]/;function r(a,b,c){if("opencode-box"===a){let a=(0,h.mu)(b);if(null===a)return{kind:"absent"};if(a.some(a=>h.vU.test(a)))return{kind:"empty"};let c=a.map(h.pV).find(a=>a.length>0);return void 0===c?{kind:"empty"}:{kind:"text",text:c,rows:a}}if("input-line-marker"!==a)return{kind:"absent"};let d=function(a){for(let b=a.length-1;b>=0;b--)if(q.test(a[b]))return a[b];return null}(c);if(null===d)return{kind:"absent"};let e=d.replace(q,"").trim();return 0===e.length?{kind:"empty"}:{kind:"text",text:e,rows:[d]}}function s(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}function t(a){return a.split("\n").map(a=>a.trim()).find(a=>a.length>0)??""}function u(a,b){let c=t(b);return 0!==c.length&&c.startsWith(a)}let v=[{pattern:/\[Pasted text(?: #\d+)?(?: \+(\d+) lines?| (\d+) chars?)?\]/g,read:a=>void 0!==a[1]?{lines:Number(a[1])}:void 0!==a[2]?{chars:Number(a[2])}:{}},{pattern:/\[Pasted Content (\d+) chars?\]/g,read:a=>({chars:Number(a[1])})},{pattern:/\[([^\]\n]*?)… \+(\d+)L\]/g,read:a=>({head:a[1],lineTotal:Number(a[2])})}];function w(a){let b=[],c=a;for(let{pattern:d,read:e}of v)for(let f of a.matchAll(d))b.push(e(f)),c=c.replace(f[0],"");return{tokens:b,rest:c.trim()}}function x(a,b){return new Promise((c,e)=>{let f=d.execFile("tmux",a,{timeout:5e3},a=>{if(a)return void e(a);c()});void 0!==b&&f.stdin?.end(b)})}async function y(a,b){let c=`cm-send-${process.pid}-${++o}`;try{await x(["load-buffer","-b",c,"-"],b),await x(["paste-buffer","-p","-r","-d","-b",c,"-t",(0,e.lA)(a)])}catch(b){await x(["delete-buffer","-b",c]).catch(()=>void 0);let a=b instanceof Error?b.message:String(b);throw Error(`Failed to paste message into tmux session: ${a}`)}}function z(a,b){let c=s((0,h.aJ)(a).split("\n")),d=r(b.reader,c,c.slice(-12));return"absent"===d.kind?"no composer on screen":"empty"===d.kind?"an empty composer":JSON.stringify(d.text.length>80?`${d.text.slice(0,80)}…`:d.text)}async function A(a,b,c){try{c.clearBeforeSend?await (0,k.sr)(a,b):await (0,e.Ce)(a)}catch(c){m.error("paste-withdraw-failed",{sessionName:a,cliToolId:b,error:c instanceof Error?c.message:String(c)})}}async function B(a){let{sessionName:b,message:c,cliToolId:d,composer:i,attempts:j}=a,k="unseen",l="";for(let a=0;a<Math.max(1,j)&&(await new Promise(a=>setTimeout(a,100)),"landed"!==(k=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=r(d.reader,e,e.slice(-12));if("text"!==f.kind)return"unseen";let{tokens:i,rest:j}=w(f.text);return 0===i.length?u(f.text,c)?"landed":c.includes(f.text)?"mismatch":"unseen":i.length>1||""!==j?"mismatch":function(a,b){let c,d,e=(b.match(/\n/g)??[]).length;if(void 0!==a.head){let c=a.head.replace(/\s+/g," ").trim();if(!b.replace(/\s+/g," ").startsWith(c))return"mismatch"}if(void 0!==a.chars)c=a.chars,d=[[...b].length,b.length];else if(void 0!==a.lineTotal)c=a.lineTotal,d=[e+1];else{if(void 0===a.lines)return 0===e?"landed":"pasting";c=a.lines,d=[e,e+1]}return d.includes(c)?"landed":c<Math.min(...d)?"pasting":"mismatch"}(i[0],c)}(l=await (0,e.Xg)(b,{startLine:-i.verifyCaptureLines}),d,c,i))&&"mismatch"!==k);a++);if("landed"===k)return;if("unseen"===k&&!i.clearBeforeSend)return void m.warn("paste-landed-unverified",{sessionName:b,cliToolId:d,bytes:Buffer.byteLength(c,"utf8")});let n=Buffer.byteLength(c,"utf8"),o=c.split("\n").length,p=z(l,i);await A(b,d,i),(0,f.gm)(b),m.error("paste-not-landed",{sessionName:b,cliToolId:d,state:k,bytes:n,lines:o,shown:p});let q="mismatch"===k?`the composer does not hold the message as sent (it shows ${p})`:"pasting"===k?`the paste had not finished arriving after ${100*j}ms (the composer shows ${p})`:`the message never appeared in the composer (${p})`;throw Error(`Message body did not arrive intact for session ${b}: ${q}; the message is ${n} bytes / ${o} lines. Enter was not pressed, so nothing was submitted (Issue #2464).`)}function C(a){return a.replace(/\s+/g,"")}async function D(a){let{sessionName:b,message:c,cliToolId:d,composer:g,attempts:h}=a,i=C(function(a){let b=a.split("\n"),c=b.findIndex(a=>""!==a.trim());if(c<0)return"";let d=b.findIndex((a,b)=>b>c&&""===a.trim());return b.slice(0,d<0?b.length:d).join("\n")}(c));if(""===i)return;let j="";for(let a=0;a<Math.max(1,h);a++){await new Promise(a=>setTimeout(a,50)),j=await (0,e.Xg)(b,{startLine:-g.verifyCaptureLines});let a=(0,l.ji)(j,d);if("content"===a.state&&C(a.text)===i)return}let k=Buffer.byteLength(c,"utf8"),n=z(j,g);throw await A(b,d,g),(0,f.gm)(b),m.error("typed-body-not-landed",{sessionName:b,cliToolId:d,bytes:k,attempts:h,shown:n}),Error(`Message body did not appear in the composer for session ${b} within ${50*h}ms (it shows ${n}); the message is ${k} bytes. Enter was not pressed, so nothing was submitted (Issue #3366).`)}async function E(a,b,c=(0,g.gc)(b)){if(!c.clearBeforeSend)return;let d=await (0,k.sr)(a,b);if("content"===d.state)throw m.error("pre-send-composer-clear-failed",{sessionName:a,cliToolId:b,passes:d.passes,remainingLength:d.remainingText.length,remainingText:d.remainingText}),Error(`Composer for session ${a} still holds unsent text after ${d.passes} clear passes; refusing to type the message, which would be concatenated with it (Issue #1880).`);d.passes>0&&m.warn("pre-send-composer-cleared",{sessionName:a,cliToolId:b,passes:d.passes,state:d.state,discardedLength:d.discardedText.length,discardedText:d.discardedText})}async function F(a){let{sessionName:b,message:c,cliToolId:d,composer:j=(0,g.gc)(d),textInputWaitMs:k=i.pL,interEnterWaitMs:o=i.pL,verifyAttempts:q=4,verifyDelayMs:v=i.x9,pasteLandedAttempts:x=20,awaitTypedBody:z=!1,typedBodyAttempts:A=100}=a,C=a.submitEnterCount??j.submitEnterCount;if(await E(b,d,j),Buffer.byteLength(c,"utf8")>512){let a=Date.now();await y(b,c),await B({sessionName:b,message:c,cliToolId:d,composer:j,attempts:x});let e=k-(Date.now()-a);e>0&&await new Promise(a=>setTimeout(a,e))}else{let a=Date.now();await (0,e.V1)(b,c,!1,{literal:!0}),z&&l.wn.has(d)&&await D({sessionName:b,message:c,cliToolId:d,composer:j,attempts:A});let f=k-(Date.now()-a);f>0&&await new Promise(a=>setTimeout(a,f))}for(let a=0;a<Math.max(1,C);a++)await (0,e.KB)(b,["Enter"]),a<C-1&&await new Promise(a=>setTimeout(a,o));let F=Math.max(1,q);for(let a=0;a<F;a++){await new Promise(a=>setTimeout(a,v));let i=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=e.slice(-12),i=f.join("\n");if((0,h.ut)(b,i))return"submitted";let j=function(a,b,c,d,e){if("codex"===b&&"input-line-marker"===c){let c=(0,l.ji)(a,b);if("content"===c.state&&c.text.includes("\n"))return{kind:"text",text:t(c.text),rows:c.text.split("\n")}}return r(c,d,e)}(a,b,d.reader,e,f);return"text"!==j.kind?"submitted":j.rows.some(a=>n.test(a)||w(a).tokens.length>0)||u(j.text,c)?"pending":p.test(j.text)?"replaced":"submitted"}(await (0,e.Xg)(b,{startLine:-j.verifyCaptureLines}),d,c,j);if("submitted"===i)return void(0,f.gm)(b);if("replaced"===i){try{await (0,e.Ce)(b)}catch(a){m.error("submit-clear-input-failed",{sessionName:b,cliToolId:d,error:a instanceof Error?a.message:String(a)})}throw(0,f.gm)(b),m.error("submit-replaced-by-tui-completion",{sessionName:b,cliToolId:d,attempt:a}),Error(`Message was replaced by a TUI autocompletion for session ${b}; the input no longer matches the sent text. Cleared the input line without submitting to avoid executing a different command.`)}m.warn("submit-not-confirmed:resending-enter",{sessionName:b,cliToolId:d,attempt:a}),await (0,e.KB)(b,["Enter"])}throw(0,f.gm)(b),m.error("submit-verification-failed",{sessionName:b,cliToolId:d,attempts:F}),Error(`Message submit could not be confirmed for session ${b} after ${F} attempts (typed but unsent)`)}},46749:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a){return`clear 2>/dev/null; printf '\\033[3J'; ${a}`}},50945:(a,b,c)=>{c.d(b,{Q:()=>g,S:()=>h});var d=c(79892),e=c(11472),f=c(91536);async function g(a,b){let c;try{c=await (0,d.Xg)(a,{startLine:-b.probeCaptureLines})}catch{c=void 0}return"string"!=typeof c?b.unreadableIsExited?{alive:!1,reason:"capture error"}:{alive:!0}:(0,e.Hg)(c,b)}async function h(a,b){return g(a,(0,f.H7)(b))}},56717:(a,b,c)=>{c.d(b,{gc:()=>g});var d=c(16983);let e={reader:"input-line-marker",verifyCaptureLines:12,clearBeforeSend:!0,submitEnterCount:1},f={claude:e,codex:e,gemini:{...e,clearBeforeSend:!1},copilot:{...e,clearBeforeSend:!1},antigravity:{...e,clearBeforeSend:!1},"command-code":{...e,clearBeforeSend:!1},"vibe-local":{...e,clearBeforeSend:!1,submitEnterCount:2},opencode:{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1},"opencode-v2":{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1}};function g(a){return f[a]??e}},57905:(a,b,c)=>{c.d(b,{c0:()=>X,zw:()=>T,Yq:()=>U,pU:()=>W,R7:()=>V,VU:()=>Y});var d=c(79892),e=c(42422),f=c(11472),g=c(91536),h=c(50945),i=c(40236),j=c(93997),k=c(77093),l=c(20610),m=c(79646),n=c(28354),o=c(72626);let p=(0,o.h)("session-key-sender"),q=(0,n.promisify)(m.exec);async function r(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function s(a){await q("tmux set-environment -g -u CLAUDECODE 2>/dev/null || true"),await (0,d.V1)(a,"unset CLAUDECODE",!0),await new Promise(a=>setTimeout(a,l.Em))}async function t(a,b){let c=Date.now();for(;Date.now()-c<b;){let b=await r(a);if(e.hx.test(b))return;await new Promise(a=>setTimeout(a,200))}throw Error(`Prompt detection timeout (${b}ms)`)}async function u(a,b,c,f){if(!await (0,d.N)(a))throw Error(`Claude session ${a} does not exist. Start the session first.`);let g=await r(a);e.hx.test(g)||await t(a,f),await new Promise(a=>setTimeout(a,c)),await (0,i.FW)({sessionName:a,message:b,cliToolId:"claude"}),(0,j.gm)(a),p.info("sent-message-to-session",{sessionName:a})}async function v(a){try{await (0,d.N)(a)&&(await (0,d.V1)(a,"",!1),await (0,d.ds)(a,"C-d"),(0,j.gm)(a),await new Promise(a=>setTimeout(a,l.Zf)));let b=await (0,d.fY)(a);return b&&p.info("stopped-session",{sessionName:a}),b}catch(a){return p.error("session:stop-failed",{error:(0,k.u1)(a)}),!1}}var w=c(79748),x=c(31347),y=c(40964),z=c(22354),A=c(43252),B=c(80252),C=c(1305),D=c(33294),E=c(2669),F=c(46749);let G=(0,o.h)("claude-session"),H=(0,n.promisify)(m.exec);async function I(a,b,c){if(null!==c.pollsSinceAnswer&&c.pollsSinceAnswer++,null!==c.pollsSinceMove&&c.pollsSinceMove++,null===b)return;c.seen||(c.seen=!0,c.shellTellsExit=await K(a));let f=(0,e.lQ)(b);if(null!==f){if(1===f.length){if(!(null===c.pollsSinceAnswer||c.pollsSinceAnswer>=10&&c.answers<3))return;try{await (0,d.V1)(a,"",!0),c.pollsSinceAnswer=0,c.answers++,G.info("trust-dialog-detected",{keys:"Enter",attempt:c.answers})}catch{}return}if(null===c.pollsSinceMove||!(c.pollsSinceMove<3)){if(c.moves>=20)throw new E.mR("Claude Code",a,'trust dialog: cursor did not reach "Yes, I trust this folder"');try{await (0,d.KB)(a,[f[0]]),c.pollsSinceMove=0,c.moves++,G.info("trust-dialog-cursor-move",{key:f[0],attempt:c.moves})}catch{}}}}async function J(a){let b=await L(a);return null!==b&&(0,e.U1)(b)}async function K(a){let b=await L(a);return null!==b&&!(0,e.U1)(b)}async function L(a){try{let b=await (0,d.Hg)(a);return"string"==typeof b?b:null}catch{return null}}let M=(0,g.H7)("claude"),N=null;async function O(){if(N)return N;let a=process.env.CLAUDE_PATH;if(a&&(/^[/a-zA-Z0-9._-]+$/.test(a)?!a.includes("..")||(G.info("claudepath-contains-path"),!1):(G.info("claudepath-contains-invalid-characters-i"),!1)))try{return await (0,w.access)(a,w.constants.X_OK),N=a}catch{G.info("claude-path-env-not-executable")}try{let{stdout:a}=await H("which claude",{timeout:5e3});return N=a.trim()}catch{for(let a of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await H(`test -x "${a}"`,{timeout:1e3}),N=a}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}async function P(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function Q(a){let b=await (0,h.Q)(a,M);return b.alive?{healthy:!0}:{healthy:!1,reason:b.reason}}async function R(a){return!!(await Q(a)).healthy||(G.warn("claude-session-unhealthy"),await (0,d.fY)(a),!1)}function S(a,b){return(0,y.mf)("claude",a,b)}async function T(){try{return await H("which claude",{timeout:5e3}),!0}catch{return!1}}async function U(a,b){let c=S(a,b);return!!await (0,d.N)(c)&&(!!(await Q(c)).healthy||(G.warn("claude-session-unhealthy"),!1))}async function V(a){let{worktreeId:b,worktreePath:c,instanceId:g,model:h}=a;if(void 0!==h){let a=(0,B.LB)(h);if(!a.valid)throw Error(`Invalid Claude model name: ${a.reason}`)}if(!await T())throw new E.lU("Claude Code","Claude CLI is not installed or not in PATH");let i=S(b,g);if(await (0,d.N)(i)&&(await (0,x.St)(i,c),await R(i))){await (0,d.zT)(i),G.info("claude-session-exists");return}(0,C.Fq)({worktreeId:b,cliToolId:z.vm,instanceId:g});try{let a=await O(),k=(0,C.wK)({target:{worktreeId:b,cliToolId:z.vm,instanceId:g},executablePath:a,worktreePath:c}),l=void 0===h?k:`${k} --model ${(0,A.ZL)(h)}`;await (0,d.jw)({sessionName:i,workingDirectory:c}),await s(i),await (0,d.V1)(i,(0,F.Y)(l),!0);let m=Date.now(),n=!1,o={pollsSinceAnswer:null,pollsSinceMove:null,answers:0,moves:0,seen:!1,shellTellsExit:!1};for(;Date.now()-m<6e4;){var j;await new Promise(a=>setTimeout(a,300));let a=null;try{a=await P(i)}catch{}if(null===a)continue;let b=(0,e.lX)(a);if(await I(i,b?a:null,o),!b&&e.hx.test(a)){await new Promise(a=>setTimeout(a,500)),G.info("claude-initialized"),n=!0;break}if(!b&&o.shellTellsExit&&await J(i))throw new E.mR("Claude Code",i,"trust dialog: Claude Code exited to the shell");let c=(j=a,(0,f.ow)(j,M));if(null!==c)throw new E.mR("Claude Code",i,c)}if(!n)throw new E.Sr("Claude Code",i,6e4);G.info("started-claude-session")}catch(a){if(N=null,G.error("session:start-failed",{error:a instanceof Error?a.message:String(a)}),(0,E.su)(a))throw a;throw Error("Failed to start Claude session")}}async function W(a,b,c){let d=S(a,c);await u(d,b,500,1e4)}async function X(a,b=1e3,c){let e=S(a,c);if(!await (0,d.N)(e))throw Error(`Claude session ${e} does not exist`);try{return await (0,d.Xg)(e,{startLine:-b})}catch(a){throw Error(`Failed to capture Claude output: ${a instanceof Error?a.message:String(a)}`)}}async function Y(a,b){let c=S(a,b),d=await v(c);return(0,D.discardAgentEventState)(a,"claude",b),d}},77093:(a,b,c)=>{c.d(b,{u1:()=>d});function d(a){return a instanceof Error?a.message:String(a)}},87673:(a,b,c)=>{c.d(b,{sr:()=>i});var d=c(79892),e=c(93997),f=c(94154);let g=(0,c(72626).h)("composer-clear"),h=a=>new Promise(b=>setTimeout(b,a));async function i(a,b,c={}){let j=c.capture??(a=>(0,d.Xg)(a,200)),k=c.sendClear??d.ou,l=c.delay??h,m=c.maxPasses??12,n=0,o=(0,f.ji)(await j(a),b),p="content"===o.state?o.text:"";for(;"content"===o.state&&n<m;)await k(a),n++,await l(120),o=(0,f.ji)(await j(a),b);n>0&&(0,e.gm)(a);let q="empty"===o.state||"ghost"===o.state;return q||g.warn("composer-clear:not-cleared",{sessionName:a,cliToolId:b,passes:n,state:o.state}),{cleared:q,passes:n,state:o.state,remainingText:o.text,discardedText:p}}},91536:(a,b,c)=>{c.d(b,{H7:()=>i});var d=c(42422),e=c(11472);let f={probeCaptureLines:50,shellPromptEndings:e.Bl,maxShellPromptLength:e.w9,fatalPatterns:[],fatalRegexPatterns:[]},g={aliveTailLines:12,shellPromptPatterns:e.vg,unreadableIsExited:!1},h={claude:{...f,alivePatterns:[d.hx],aliveTailLines:null,shellPromptPatterns:e.vg,unreadableIsExited:!0,fatalPatterns:d.F0,fatalRegexPatterns:d.Fw},codex:{...f,...g,alivePatterns:[d.gm,d.sB,d.Mt]},copilot:{...f,...g,alivePatterns:[d.Du,d.Ub,d.tJ,d.rb]},opencode:{...f,...g,alivePatterns:[d.vU,d.uA,d.Cc,d.LO,d.a2]},gemini:{...f,...g,alivePatterns:[d.wN,d.s0]},antigravity:{...f,...g,alivePatterns:[d.lE,d.kT,d.VF]},"command-code":{...f,...g,alivePatterns:[d.WK,d.jk,d.k0]},"opencode-v2":{...f,...g,alivePatterns:[d.wK,d.c7,d.xL]},"vibe-local":{...f,...g,alivePatterns:[d.Dj,d.b2]}};function i(a){return h[a]??h.claude}}};