commandmate 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (830) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +259 -238
  3. package/.next/app-path-routes-manifest.json +28 -26
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/routes-manifest.json +18 -0
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update/route.js +5 -3
  10. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  14. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  16. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  19. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  20. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js +1 -1
  22. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js +1 -1
  25. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  26. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/assistant/start/route.js +1 -1
  28. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  29. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  31. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  32. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js +1 -1
  34. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  35. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/login/route.js +1 -1
  37. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  38. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/auth/logout/route.js +1 -1
  40. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  41. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/status/route.js +1 -1
  43. package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  44. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/daily-summary/route.js +1 -1
  46. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  47. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  49. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  50. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  53. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  55. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  56. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/external-apps/route.js +1 -1
  58. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  59. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/fs/browse/route.js +2 -2
  61. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  62. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/fs/recent-paths/route.js +2 -2
  64. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  65. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  67. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  68. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  70. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hooks/claude-done/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/subscriptions/route.js +1 -1
  79. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  80. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/push/vapid/route.js +1 -1
  82. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  83. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  85. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  88. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/clone/route.js +1 -1
  97. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  100. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/restore/route.js +1 -1
  103. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/route.js +1 -1
  106. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/scan/route.js +1 -1
  109. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/sync/route.js +1 -1
  112. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  115. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/sidebar/group-order/route.js +2 -2
  118. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  119. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/skills/[id]/route.js +1 -1
  121. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  122. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/skills/installations/route.js +1 -1
  124. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  125. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/skills/operations/route.js +3 -3
  127. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  128. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/skills/reindex/route.js +1 -1
  130. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  131. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/route.js +1 -1
  133. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/slash-commands/route.js +1 -1
  136. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  137. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +2 -2
  139. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  140. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/tasks/[taskId]/route.js +2 -2
  142. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  143. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/templates/[id]/route.js +2 -2
  145. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  146. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/templates/route.js +2 -2
  148. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  149. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/todos/route.js +1 -1
  151. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  152. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  154. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/verification/runs/route.js +1 -1
  157. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  158. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  169. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  178. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  262. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +6 -6
  265. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  286. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  292. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -0
  316. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -0
  317. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -0
  318. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -0
  319. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -0
  320. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -0
  321. package/.next/server/app/api/worktrees/[id]/skills/route.js +2 -2
  322. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  328. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/tasks/route.js +4 -4
  334. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/verify/route.js +2 -2
  361. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/route.js +1 -1
  373. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/apple-icon.png/route.js +1 -1
  376. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  377. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  378. package/.next/server/app/icon.png/route.js +1 -1
  379. package/.next/server/app/icon.png/route.js.nft.json +1 -1
  380. package/.next/server/app/icon1.png/route.js +1 -1
  381. package/.next/server/app/icon1.png/route.js.nft.json +1 -1
  382. package/.next/server/app/icon2.png/route.js +1 -1
  383. package/.next/server/app/icon2.png/route.js.nft.json +1 -1
  384. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  385. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  386. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  387. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  388. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  389. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  390. package/.next/server/app/page_client-reference-manifest.js +1 -1
  391. package/.next/server/app/proxy/[...path]/route.js +1 -1
  392. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  393. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  394. package/.next/server/app/repositories/page.js +1 -1
  395. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  396. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  397. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  398. package/.next/server/app/skills/[skillId]/page.js +2 -2
  399. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  400. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  401. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  402. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  403. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  404. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  405. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  406. package/.next/server/app/worktrees/[id]/page.js +8 -8
  407. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  408. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  409. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  410. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  411. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  412. package/.next/server/app-paths-manifest.json +28 -26
  413. package/.next/server/chunks/1029.js +1 -0
  414. package/.next/server/chunks/1068.js +1 -1
  415. package/.next/server/chunks/1503.js +1 -1
  416. package/.next/server/chunks/1598.js +4 -0
  417. package/.next/server/chunks/22.js +1 -1
  418. package/.next/server/chunks/2328.js +1 -1
  419. package/.next/server/chunks/2546.js +1 -0
  420. package/.next/server/chunks/2710.js +2 -2
  421. package/.next/server/chunks/28.js +2 -2
  422. package/.next/server/chunks/3417.js +1 -0
  423. package/.next/server/chunks/3451.js +1 -1
  424. package/.next/server/chunks/3543.js +1 -1
  425. package/.next/server/chunks/365.js +1 -0
  426. package/.next/server/chunks/3736.js +1 -1
  427. package/.next/server/chunks/3753.js +33 -20
  428. package/.next/server/chunks/3945.js +1 -1
  429. package/.next/server/chunks/406.js +5 -5
  430. package/.next/server/chunks/4444.js +1 -1
  431. package/.next/server/chunks/{1185.js → 5048.js} +1 -1
  432. package/.next/server/chunks/5064.js +1 -1
  433. package/.next/server/chunks/5737.js +1 -1
  434. package/.next/server/chunks/5959.js +10 -3
  435. package/.next/server/chunks/{5381.js → 5998.js} +2 -2
  436. package/.next/server/chunks/6130.js +1 -1
  437. package/.next/server/chunks/6274.js +5 -5
  438. package/.next/server/chunks/6283.js +1 -1
  439. package/.next/server/chunks/6401.js +1 -0
  440. package/.next/server/chunks/641.js +1 -0
  441. package/.next/server/chunks/848.js +1 -0
  442. package/.next/server/chunks/8536.js +1 -0
  443. package/.next/server/chunks/8543.js +1 -0
  444. package/.next/server/chunks/8584.js +1 -1
  445. package/.next/server/chunks/8807.js +157 -143
  446. package/.next/server/chunks/8856.js +2 -2
  447. package/.next/server/chunks/9058.js +1 -0
  448. package/.next/server/chunks/9067.js +1 -0
  449. package/.next/server/chunks/9123.js +1 -1
  450. package/.next/server/chunks/9360.js +2 -0
  451. package/.next/server/chunks/9687.js +1 -1
  452. package/.next/server/middleware-manifest.json +5 -5
  453. package/.next/server/pages/500.html +1 -1
  454. package/.next/server/server-reference-manifest.json +1 -1
  455. package/.next/server/src/middleware.js +1 -1
  456. package/.next/server/src/middleware.js.map +1 -1
  457. package/.next/static/chunks/{8562-6e2ab32452f4fa5b.js → 2053-52d3c82014e1cd54.js} +1 -1
  458. package/.next/static/chunks/2751-9ef0f4b450bd4ef0.js +1 -0
  459. package/.next/static/chunks/{6488-2c412c29258637b6.js → 6488-b5e707dfdd33d633.js} +1 -1
  460. package/.next/static/chunks/744-fa8c0ae444c8338c.js +1 -0
  461. package/.next/static/chunks/app/api/app/update/route-be21650964d61b1d.js +1 -0
  462. package/.next/static/chunks/app/api/app/update-check/route-be21650964d61b1d.js +1 -0
  463. package/.next/static/chunks/app/api/assistant/conversation/route-be21650964d61b1d.js +1 -0
  464. package/.next/static/chunks/app/api/assistant/current-output/route-be21650964d61b1d.js +1 -0
  465. package/.next/static/chunks/app/api/assistant/messages/route-be21650964d61b1d.js +1 -0
  466. package/.next/static/chunks/app/api/assistant/session/route-be21650964d61b1d.js +1 -0
  467. package/.next/static/chunks/app/api/assistant/start/route-be21650964d61b1d.js +1 -0
  468. package/.next/static/chunks/app/api/assistant/terminal/route-be21650964d61b1d.js +1 -0
  469. package/.next/static/chunks/app/api/assistant/tools/route-be21650964d61b1d.js +1 -0
  470. package/.next/static/chunks/app/api/auth/login/route-be21650964d61b1d.js +1 -0
  471. package/.next/static/chunks/app/api/auth/logout/route-be21650964d61b1d.js +1 -0
  472. package/.next/static/chunks/app/api/auth/status/route-be21650964d61b1d.js +1 -0
  473. package/.next/static/chunks/app/api/daily-summary/route-be21650964d61b1d.js +1 -0
  474. package/.next/static/chunks/app/api/daily-summary/status/route-be21650964d61b1d.js +1 -0
  475. package/.next/static/chunks/app/api/external-apps/[id]/health/route-be21650964d61b1d.js +1 -0
  476. package/.next/static/chunks/app/api/external-apps/[id]/route-be21650964d61b1d.js +1 -0
  477. package/.next/static/chunks/app/api/external-apps/route-be21650964d61b1d.js +1 -0
  478. package/.next/static/chunks/app/api/fs/browse/route-be21650964d61b1d.js +1 -0
  479. package/.next/static/chunks/app/api/fs/recent-paths/route-be21650964d61b1d.js +1 -0
  480. package/.next/static/chunks/app/api/hooks/agent-event/route-be21650964d61b1d.js +1 -0
  481. package/.next/static/chunks/app/api/hooks/claude-done/route-be21650964d61b1d.js +1 -0
  482. package/.next/static/chunks/app/api/metrics/vibe/route-be21650964d61b1d.js +1 -0
  483. package/.next/static/chunks/app/api/ollama/models/route-be21650964d61b1d.js +1 -0
  484. package/.next/static/chunks/app/api/push/subscriptions/route-be21650964d61b1d.js +1 -0
  485. package/.next/static/chunks/app/api/push/vapid/route-be21650964d61b1d.js +1 -0
  486. package/.next/static/chunks/app/api/repositories/[id]/route-be21650964d61b1d.js +1 -0
  487. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-be21650964d61b1d.js +1 -0
  488. package/.next/static/chunks/app/api/repositories/[id]/todos/route-be21650964d61b1d.js +1 -0
  489. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-be21650964d61b1d.js +1 -0
  490. package/.next/static/chunks/app/api/repositories/clone/route-be21650964d61b1d.js +1 -0
  491. package/.next/static/chunks/app/api/repositories/excluded/route-be21650964d61b1d.js +1 -0
  492. package/.next/static/chunks/app/api/repositories/restore/route-be21650964d61b1d.js +1 -0
  493. package/.next/static/chunks/app/api/repositories/route-be21650964d61b1d.js +1 -0
  494. package/.next/static/chunks/app/api/repositories/scan/route-be21650964d61b1d.js +1 -0
  495. package/.next/static/chunks/app/api/repositories/sync/route-be21650964d61b1d.js +1 -0
  496. package/.next/static/chunks/app/api/repositories/validate-path/route-be21650964d61b1d.js +1 -0
  497. package/.next/static/chunks/app/api/sidebar/group-order/route-be21650964d61b1d.js +1 -0
  498. package/.next/static/chunks/app/api/skills/[id]/route-be21650964d61b1d.js +1 -0
  499. package/.next/static/chunks/app/api/skills/installations/route-be21650964d61b1d.js +1 -0
  500. package/.next/static/chunks/app/api/skills/operations/route-be21650964d61b1d.js +1 -0
  501. package/.next/static/chunks/app/api/skills/reindex/route-be21650964d61b1d.js +1 -0
  502. package/.next/static/chunks/app/api/skills/route-be21650964d61b1d.js +1 -0
  503. package/.next/static/chunks/app/api/slash-commands/route-be21650964d61b1d.js +1 -0
  504. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-be21650964d61b1d.js +1 -0
  505. package/.next/static/chunks/app/api/tasks/[taskId]/route-be21650964d61b1d.js +1 -0
  506. package/.next/static/chunks/app/api/templates/[id]/route-be21650964d61b1d.js +1 -0
  507. package/.next/static/chunks/app/api/templates/route-be21650964d61b1d.js +1 -0
  508. package/.next/static/chunks/app/api/todos/route-be21650964d61b1d.js +1 -0
  509. package/.next/static/chunks/app/api/verification/runs/[runId]/route-be21650964d61b1d.js +1 -0
  510. package/.next/static/chunks/app/api/verification/runs/route-be21650964d61b1d.js +1 -0
  511. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-be21650964d61b1d.js +1 -0
  512. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-be21650964d61b1d.js +1 -0
  513. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-be21650964d61b1d.js +1 -0
  514. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-be21650964d61b1d.js +1 -0
  515. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-be21650964d61b1d.js +1 -0
  516. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-be21650964d61b1d.js +1 -0
  517. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-be21650964d61b1d.js +1 -0
  518. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-be21650964d61b1d.js +1 -0
  519. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-be21650964d61b1d.js +1 -0
  520. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-be21650964d61b1d.js +1 -0
  521. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-be21650964d61b1d.js +1 -0
  522. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-be21650964d61b1d.js +1 -0
  523. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-be21650964d61b1d.js +1 -0
  524. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-be21650964d61b1d.js +1 -0
  525. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-be21650964d61b1d.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-be21650964d61b1d.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-be21650964d61b1d.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-be21650964d61b1d.js +1 -0
  529. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-be21650964d61b1d.js +1 -0
  530. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-be21650964d61b1d.js +1 -0
  531. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-be21650964d61b1d.js +1 -0
  532. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-be21650964d61b1d.js +1 -0
  533. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-be21650964d61b1d.js +1 -0
  534. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-be21650964d61b1d.js +1 -0
  535. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-be21650964d61b1d.js +1 -0
  536. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-be21650964d61b1d.js +1 -0
  537. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-be21650964d61b1d.js +1 -0
  538. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-be21650964d61b1d.js +1 -0
  539. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-be21650964d61b1d.js +1 -0
  540. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-be21650964d61b1d.js +1 -0
  541. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-be21650964d61b1d.js +1 -0
  542. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-be21650964d61b1d.js +1 -0
  543. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-be21650964d61b1d.js +1 -0
  544. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-be21650964d61b1d.js +1 -0
  545. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-be21650964d61b1d.js +1 -0
  546. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-be21650964d61b1d.js +1 -0
  547. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-be21650964d61b1d.js +1 -0
  548. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-be21650964d61b1d.js +1 -0
  549. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-be21650964d61b1d.js +1 -0
  550. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-be21650964d61b1d.js +1 -0
  551. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-be21650964d61b1d.js +1 -0
  552. package/.next/static/chunks/app/api/worktrees/[id]/route-be21650964d61b1d.js +1 -0
  553. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-be21650964d61b1d.js +1 -0
  554. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-be21650964d61b1d.js +1 -0
  555. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-be21650964d61b1d.js +1 -0
  556. package/.next/static/chunks/app/api/worktrees/[id]/search/route-be21650964d61b1d.js +1 -0
  557. package/.next/static/chunks/app/api/worktrees/[id]/send/route-be21650964d61b1d.js +1 -0
  558. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-be21650964d61b1d.js +1 -0
  559. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-be21650964d61b1d.js +1 -0
  560. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-be21650964d61b1d.js +1 -0
  561. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-be21650964d61b1d.js +1 -0
  562. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-be21650964d61b1d.js +1 -0
  563. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-be21650964d61b1d.js +1 -0
  564. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-be21650964d61b1d.js +1 -0
  565. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-be21650964d61b1d.js +1 -0
  566. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-be21650964d61b1d.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-be21650964d61b1d.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-be21650964d61b1d.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-be21650964d61b1d.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-be21650964d61b1d.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-be21650964d61b1d.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-be21650964d61b1d.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-be21650964d61b1d.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-be21650964d61b1d.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-be21650964d61b1d.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-be21650964d61b1d.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-be21650964d61b1d.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-be21650964d61b1d.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-be21650964d61b1d.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-be21650964d61b1d.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-be21650964d61b1d.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/route-be21650964d61b1d.js +1 -0
  583. package/.next/static/chunks/app/manifest.webmanifest/route-be21650964d61b1d.js +1 -0
  584. package/.next/static/chunks/app/proxy/[...path]/route-be21650964d61b1d.js +1 -0
  585. package/.next/static/chunks/app/repositories/page-202680fe6ec169c8.js +1 -0
  586. package/.next/static/chunks/app/skills/[skillId]/page-10d6f983e5f06ffb.js +1 -0
  587. package/.next/static/chunks/app/worktrees/[id]/layout-be21650964d61b1d.js +1 -0
  588. package/.next/static/chunks/app/worktrees/[id]/page-b73ac6531829c698.js +1 -0
  589. package/.next/trace +12 -12
  590. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/update/route.ts +347 -0
  591. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.ts +347 -0
  592. package/.next/types/routes.d.ts +5 -2
  593. package/.next/types/validator.ts +27 -0
  594. package/README.md +10 -1
  595. package/dist/cli/commands/auto-yes.d.ts.map +1 -1
  596. package/dist/cli/commands/auto-yes.js +4 -3
  597. package/dist/cli/commands/capture.d.ts +1 -0
  598. package/dist/cli/commands/capture.d.ts.map +1 -1
  599. package/dist/cli/commands/capture.js +112 -2
  600. package/dist/cli/commands/ls.d.ts.map +1 -1
  601. package/dist/cli/commands/ls.js +9 -3
  602. package/dist/cli/commands/respond.d.ts.map +1 -1
  603. package/dist/cli/commands/respond.js +34 -8
  604. package/dist/cli/commands/send.d.ts.map +1 -1
  605. package/dist/cli/commands/send.js +6 -5
  606. package/dist/cli/commands/skill-format.d.ts +7 -1
  607. package/dist/cli/commands/skill-format.d.ts.map +1 -1
  608. package/dist/cli/commands/skill-format.js +67 -0
  609. package/dist/cli/commands/skill.d.ts +2 -0
  610. package/dist/cli/commands/skill.d.ts.map +1 -1
  611. package/dist/cli/commands/skill.js +149 -0
  612. package/dist/cli/commands/sync.d.ts +14 -0
  613. package/dist/cli/commands/sync.d.ts.map +1 -0
  614. package/dist/cli/commands/sync.js +53 -0
  615. package/dist/cli/commands/update.d.ts.map +1 -1
  616. package/dist/cli/commands/update.js +66 -0
  617. package/dist/cli/commands/wait.d.ts.map +1 -1
  618. package/dist/cli/commands/wait.js +3 -2
  619. package/dist/cli/config/agent-target-options.d.ts +46 -0
  620. package/dist/cli/config/agent-target-options.d.ts.map +1 -0
  621. package/dist/cli/config/agent-target-options.js +54 -0
  622. package/dist/cli/docs/agent-operations.d.ts +2 -2
  623. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  624. package/dist/cli/docs/agent-operations.js +72 -17
  625. package/dist/cli/program.d.ts.map +1 -1
  626. package/dist/cli/program.js +3 -0
  627. package/dist/cli/types/api-responses.d.ts +174 -0
  628. package/dist/cli/types/api-responses.d.ts.map +1 -1
  629. package/dist/cli/types/index.d.ts +31 -0
  630. package/dist/cli/types/index.d.ts.map +1 -1
  631. package/dist/cli/utils/api-client.d.ts +4 -1
  632. package/dist/cli/utils/api-client.d.ts.map +1 -1
  633. package/dist/cli/utils/api-client.js +43 -5
  634. package/dist/cli/utils/npm-runner.d.ts +24 -0
  635. package/dist/cli/utils/npm-runner.d.ts.map +1 -1
  636. package/dist/cli/utils/npm-runner.js +51 -1
  637. package/dist/cli/utils/pid-manager.d.ts +12 -2
  638. package/dist/cli/utils/pid-manager.d.ts.map +1 -1
  639. package/dist/cli/utils/pid-manager.js +76 -13
  640. package/dist/cli/utils/verify-runner.d.ts +9 -0
  641. package/dist/cli/utils/verify-runner.d.ts.map +1 -1
  642. package/dist/cli/utils/verify-runner.js +28 -2
  643. package/dist/config/history-display-config.d.ts +61 -0
  644. package/dist/config/history-display-config.d.ts.map +1 -0
  645. package/dist/config/history-display-config.js +62 -0
  646. package/dist/server/server.js +107 -14
  647. package/dist/server/src/lib/auto-yes-poller.js +49 -0
  648. package/dist/server/src/lib/auto-yes-state.js +64 -0
  649. package/dist/server/src/lib/db/chat-db.js +75 -1
  650. package/dist/server/src/lib/db/db-repository.js +66 -2
  651. package/dist/server/src/lib/db/db.js +13 -3
  652. package/dist/server/src/lib/db/migrations/index.js +6 -0
  653. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  654. package/dist/server/src/lib/db/migrations/v53-worktree-aliases.js +53 -0
  655. package/dist/server/src/lib/db/migrations/v54-worktree-id-path-derived.js +204 -0
  656. package/dist/server/src/lib/db/migrations/v55-compact-churned-worktree-ids.js +207 -0
  657. package/dist/server/src/lib/db/migrations/worktree-id-rename.js +153 -0
  658. package/dist/server/src/lib/db/worktree-alias-db.js +155 -0
  659. package/dist/server/src/lib/db/worktree-db.js +53 -71
  660. package/dist/server/src/lib/detection/cli-patterns.js +86 -2
  661. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +10 -1
  662. package/dist/server/src/lib/git/worktree-id.js +145 -0
  663. package/dist/server/src/lib/git/worktree-redirect.js +155 -0
  664. package/dist/server/src/lib/git/worktrees.js +173 -27
  665. package/dist/server/src/lib/logger.js +13 -1
  666. package/dist/server/src/lib/polling/auto-yes-manager.js +3 -1
  667. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +54 -0
  668. package/dist/server/src/lib/polling/prompt-dedup.js +22 -0
  669. package/dist/server/src/lib/polling/response-checker.js +53 -13
  670. package/dist/server/src/lib/polling/response-dedup.js +22 -0
  671. package/dist/server/src/lib/polling/response-poller-core.js +107 -0
  672. package/dist/server/src/lib/polling/response-poller.js +4 -1
  673. package/dist/server/src/lib/response-extractor.js +22 -2
  674. package/dist/server/src/lib/session/claude-session.js +117 -35
  675. package/dist/server/src/lib/session/current-output-builder.js +16 -1
  676. package/dist/server/src/lib/session/session-start-error.js +125 -0
  677. package/dist/server/src/lib/session/worktree-session-reconcile.js +603 -0
  678. package/dist/server/src/lib/skills/install-apply.js +63 -23
  679. package/dist/server/src/lib/skills/operation-audit.js +5 -6
  680. package/dist/server/src/lib/skills/startup-reconcile.js +26 -5
  681. package/dist/server/src/lib/skills/updater.js +830 -0
  682. package/dist/server/src/lib/tasks/contract-parser.js +17 -1
  683. package/dist/server/src/lib/tasks/task-state-machine.js +23 -1
  684. package/dist/server/src/lib/tmux/control-mode-tmux-transport.js +7 -0
  685. package/dist/server/src/lib/tmux/read-mode.js +22 -2
  686. package/dist/server/src/lib/tmux/tmux-capture-cache.js +33 -0
  687. package/dist/server/src/lib/tmux/tmux-control-client.js +12 -0
  688. package/dist/server/src/lib/tmux/tmux-control-registry.js +55 -11
  689. package/dist/server/src/lib/tmux/tmux.js +61 -0
  690. package/dist/server/src/lib/ws-server.js +104 -1
  691. package/package.json +1 -1
  692. package/.next/server/chunks/1117.js +0 -1
  693. package/.next/server/chunks/1356.js +0 -4
  694. package/.next/server/chunks/1692.js +0 -1
  695. package/.next/server/chunks/3042.js +0 -1
  696. package/.next/server/chunks/4018.js +0 -1
  697. package/.next/server/chunks/4390.js +0 -1
  698. package/.next/server/chunks/4440.js +0 -2
  699. package/.next/server/chunks/4548.js +0 -1
  700. package/.next/server/chunks/5793.js +0 -1
  701. package/.next/server/chunks/8681.js +0 -1
  702. package/.next/static/chunks/2751-7fabd91275b14ca3.js +0 -1
  703. package/.next/static/chunks/744-d5e47fe16e7b9e06.js +0 -1
  704. package/.next/static/chunks/app/api/app/update/route-8440b6c72bed83a1.js +0 -1
  705. package/.next/static/chunks/app/api/app/update-check/route-8440b6c72bed83a1.js +0 -1
  706. package/.next/static/chunks/app/api/assistant/conversation/route-8440b6c72bed83a1.js +0 -1
  707. package/.next/static/chunks/app/api/assistant/current-output/route-8440b6c72bed83a1.js +0 -1
  708. package/.next/static/chunks/app/api/assistant/messages/route-8440b6c72bed83a1.js +0 -1
  709. package/.next/static/chunks/app/api/assistant/session/route-8440b6c72bed83a1.js +0 -1
  710. package/.next/static/chunks/app/api/assistant/start/route-8440b6c72bed83a1.js +0 -1
  711. package/.next/static/chunks/app/api/assistant/terminal/route-8440b6c72bed83a1.js +0 -1
  712. package/.next/static/chunks/app/api/assistant/tools/route-8440b6c72bed83a1.js +0 -1
  713. package/.next/static/chunks/app/api/auth/login/route-8440b6c72bed83a1.js +0 -1
  714. package/.next/static/chunks/app/api/auth/logout/route-8440b6c72bed83a1.js +0 -1
  715. package/.next/static/chunks/app/api/auth/status/route-8440b6c72bed83a1.js +0 -1
  716. package/.next/static/chunks/app/api/daily-summary/route-8440b6c72bed83a1.js +0 -1
  717. package/.next/static/chunks/app/api/daily-summary/status/route-8440b6c72bed83a1.js +0 -1
  718. package/.next/static/chunks/app/api/external-apps/[id]/health/route-8440b6c72bed83a1.js +0 -1
  719. package/.next/static/chunks/app/api/external-apps/[id]/route-8440b6c72bed83a1.js +0 -1
  720. package/.next/static/chunks/app/api/external-apps/route-8440b6c72bed83a1.js +0 -1
  721. package/.next/static/chunks/app/api/fs/browse/route-8440b6c72bed83a1.js +0 -1
  722. package/.next/static/chunks/app/api/fs/recent-paths/route-8440b6c72bed83a1.js +0 -1
  723. package/.next/static/chunks/app/api/hooks/agent-event/route-8440b6c72bed83a1.js +0 -1
  724. package/.next/static/chunks/app/api/hooks/claude-done/route-8440b6c72bed83a1.js +0 -1
  725. package/.next/static/chunks/app/api/metrics/vibe/route-8440b6c72bed83a1.js +0 -1
  726. package/.next/static/chunks/app/api/ollama/models/route-8440b6c72bed83a1.js +0 -1
  727. package/.next/static/chunks/app/api/push/subscriptions/route-8440b6c72bed83a1.js +0 -1
  728. package/.next/static/chunks/app/api/push/vapid/route-8440b6c72bed83a1.js +0 -1
  729. package/.next/static/chunks/app/api/repositories/[id]/route-8440b6c72bed83a1.js +0 -1
  730. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +0 -1
  731. package/.next/static/chunks/app/api/repositories/[id]/todos/route-8440b6c72bed83a1.js +0 -1
  732. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8440b6c72bed83a1.js +0 -1
  733. package/.next/static/chunks/app/api/repositories/clone/route-8440b6c72bed83a1.js +0 -1
  734. package/.next/static/chunks/app/api/repositories/excluded/route-8440b6c72bed83a1.js +0 -1
  735. package/.next/static/chunks/app/api/repositories/restore/route-8440b6c72bed83a1.js +0 -1
  736. package/.next/static/chunks/app/api/repositories/route-8440b6c72bed83a1.js +0 -1
  737. package/.next/static/chunks/app/api/repositories/scan/route-8440b6c72bed83a1.js +0 -1
  738. package/.next/static/chunks/app/api/repositories/sync/route-8440b6c72bed83a1.js +0 -1
  739. package/.next/static/chunks/app/api/repositories/validate-path/route-8440b6c72bed83a1.js +0 -1
  740. package/.next/static/chunks/app/api/sidebar/group-order/route-8440b6c72bed83a1.js +0 -1
  741. package/.next/static/chunks/app/api/skills/[id]/route-8440b6c72bed83a1.js +0 -1
  742. package/.next/static/chunks/app/api/skills/installations/route-8440b6c72bed83a1.js +0 -1
  743. package/.next/static/chunks/app/api/skills/operations/route-8440b6c72bed83a1.js +0 -1
  744. package/.next/static/chunks/app/api/skills/reindex/route-8440b6c72bed83a1.js +0 -1
  745. package/.next/static/chunks/app/api/skills/route-8440b6c72bed83a1.js +0 -1
  746. package/.next/static/chunks/app/api/slash-commands/route-8440b6c72bed83a1.js +0 -1
  747. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8440b6c72bed83a1.js +0 -1
  748. package/.next/static/chunks/app/api/tasks/[taskId]/route-8440b6c72bed83a1.js +0 -1
  749. package/.next/static/chunks/app/api/templates/[id]/route-8440b6c72bed83a1.js +0 -1
  750. package/.next/static/chunks/app/api/templates/route-8440b6c72bed83a1.js +0 -1
  751. package/.next/static/chunks/app/api/todos/route-8440b6c72bed83a1.js +0 -1
  752. package/.next/static/chunks/app/api/verification/runs/[runId]/route-8440b6c72bed83a1.js +0 -1
  753. package/.next/static/chunks/app/api/verification/runs/route-8440b6c72bed83a1.js +0 -1
  754. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8440b6c72bed83a1.js +0 -1
  755. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8440b6c72bed83a1.js +0 -1
  756. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8440b6c72bed83a1.js +0 -1
  757. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8440b6c72bed83a1.js +0 -1
  758. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8440b6c72bed83a1.js +0 -1
  759. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8440b6c72bed83a1.js +0 -1
  760. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8440b6c72bed83a1.js +0 -1
  761. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8440b6c72bed83a1.js +0 -1
  762. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8440b6c72bed83a1.js +0 -1
  763. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8440b6c72bed83a1.js +0 -1
  764. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8440b6c72bed83a1.js +0 -1
  765. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8440b6c72bed83a1.js +0 -1
  766. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8440b6c72bed83a1.js +0 -1
  767. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8440b6c72bed83a1.js +0 -1
  768. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8440b6c72bed83a1.js +0 -1
  769. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8440b6c72bed83a1.js +0 -1
  770. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8440b6c72bed83a1.js +0 -1
  771. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8440b6c72bed83a1.js +0 -1
  772. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8440b6c72bed83a1.js +0 -1
  773. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8440b6c72bed83a1.js +0 -1
  774. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8440b6c72bed83a1.js +0 -1
  775. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8440b6c72bed83a1.js +0 -1
  776. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8440b6c72bed83a1.js +0 -1
  777. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8440b6c72bed83a1.js +0 -1
  778. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8440b6c72bed83a1.js +0 -1
  779. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8440b6c72bed83a1.js +0 -1
  780. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8440b6c72bed83a1.js +0 -1
  781. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8440b6c72bed83a1.js +0 -1
  782. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8440b6c72bed83a1.js +0 -1
  783. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8440b6c72bed83a1.js +0 -1
  784. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8440b6c72bed83a1.js +0 -1
  785. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8440b6c72bed83a1.js +0 -1
  786. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8440b6c72bed83a1.js +0 -1
  787. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8440b6c72bed83a1.js +0 -1
  788. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8440b6c72bed83a1.js +0 -1
  789. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8440b6c72bed83a1.js +0 -1
  790. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8440b6c72bed83a1.js +0 -1
  791. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8440b6c72bed83a1.js +0 -1
  792. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8440b6c72bed83a1.js +0 -1
  793. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8440b6c72bed83a1.js +0 -1
  794. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8440b6c72bed83a1.js +0 -1
  795. package/.next/static/chunks/app/api/worktrees/[id]/route-8440b6c72bed83a1.js +0 -1
  796. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8440b6c72bed83a1.js +0 -1
  797. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8440b6c72bed83a1.js +0 -1
  798. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8440b6c72bed83a1.js +0 -1
  799. package/.next/static/chunks/app/api/worktrees/[id]/search/route-8440b6c72bed83a1.js +0 -1
  800. package/.next/static/chunks/app/api/worktrees/[id]/send/route-8440b6c72bed83a1.js +0 -1
  801. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8440b6c72bed83a1.js +0 -1
  802. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8440b6c72bed83a1.js +0 -1
  803. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8440b6c72bed83a1.js +0 -1
  804. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8440b6c72bed83a1.js +0 -1
  805. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8440b6c72bed83a1.js +0 -1
  806. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8440b6c72bed83a1.js +0 -1
  807. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8440b6c72bed83a1.js +0 -1
  808. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8440b6c72bed83a1.js +0 -1
  809. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-8440b6c72bed83a1.js +0 -1
  810. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8440b6c72bed83a1.js +0 -1
  811. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8440b6c72bed83a1.js +0 -1
  812. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8440b6c72bed83a1.js +0 -1
  813. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8440b6c72bed83a1.js +0 -1
  814. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +0 -1
  815. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8440b6c72bed83a1.js +0 -1
  816. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8440b6c72bed83a1.js +0 -1
  817. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8440b6c72bed83a1.js +0 -1
  818. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8440b6c72bed83a1.js +0 -1
  819. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8440b6c72bed83a1.js +0 -1
  820. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8440b6c72bed83a1.js +0 -1
  821. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8440b6c72bed83a1.js +0 -1
  822. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8440b6c72bed83a1.js +0 -1
  823. package/.next/static/chunks/app/api/worktrees/route-8440b6c72bed83a1.js +0 -1
  824. package/.next/static/chunks/app/manifest.webmanifest/route-8440b6c72bed83a1.js +0 -1
  825. package/.next/static/chunks/app/proxy/[...path]/route-8440b6c72bed83a1.js +0 -1
  826. package/.next/static/chunks/app/repositories/page-1ed1e5a542ecc168.js +0 -1
  827. package/.next/static/chunks/app/skills/[skillId]/page-6008b904225ebb25.js +0 -1
  828. package/.next/static/chunks/app/worktrees/[id]/page-f6e09d25cd3b56f9.js +0 -1
  829. /package/.next/static/{-E7I667pJDTBamyG8M_Z- → _AR-TSCnEog5nL9JjjCna}/_buildManifest.js +0 -0
  830. /package/.next/static/{-E7I667pJDTBamyG8M_Z- → _AR-TSCnEog5nL9JjjCna}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=6274,exports.ids=[6274],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},11501:(a,b,c)=>{c.d(b,{Ky:()=>g,RR:()=>h,ct:()=>i});var d=c(90384);let e=`${d.uz}(commit または未 commit の変更が存在すること)`,f=`${d.le}(変更ファイルが scope.allow の内側に収まっていること)`;function g(a){let b=a.verify.gates;if(!b)return null;let c=[[d.uz,a.success.requireWorkEvidence],[d.le,a.success.requireScopeClean]];return[...c.filter(([a,c])=>c||b.includes(a)).map(([a])=>a),...b.filter(a=>!c.some(([b])=>b===a))]}function h(a,b){let c=a.verify.gates;if(!c)return[];if(!b)return[`verify.gates: declared ${c.join(", ")}, but ${d.aT} is missing or unreadable in this worktree, so the gate ids cannot be resolved`];let e=new Set([d.uz,d.le,...b.gates.map(a=>a.id)]),f=c.filter(a=>!e.has(a));return 0===f.length?[]:[`verify.gates: unknown gate id(s) ${f.join(", ")}. Declared in ${d.aT}: ${[...e].join(", ")}`]}function i(a,b){let c=["## 実行契約"];c.push(a.scope.allow.length>0?`- 変更してよいのは次のパスのみ: ${a.scope.allow.join(", ")}`:"- 変更パスの制限: なし(scope.allow が未宣言)"),a.scope.deny.length>0&&c.push(`- 変更してはならないパス: ${a.scope.deny.join(", ")}`),c.push("- 作業完了後は必ず commit すること(未 commit の作業は未完了とみなされる)");let h=function(a,b){if(!b)return[];let c=new Map([[d.uz,e],[d.le,f]]),h=g(a);if(!h){let c=[e];return a.success.requireScopeClean&&c.push(f),[...c,...b.gates.map(a=>a.command)]}let i=new Map(b.gates.map(a=>[a.id,a.command]));return h.map(a=>c.get(a)??i.get(a))}(a,b);return c.push(h.length>0?`- 完了条件: 次の検証コマンドがすべて成功すること: ${h.join(" / ")}`:`- 完了条件: ${d.aT} に検証ゲートが宣言されていないため、検証コマンドは無い`),`${c.join("\n")}
1
+ "use strict";exports.id=6274,exports.ids=[6274],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},11501:(a,b,c)=>{c.d(b,{Ky:()=>j,RR:()=>k,ct:()=>l,fc:()=>i});var d=c(90384);let e=`${d.uz}(commit または未 commit の変更が存在すること)`,f=`${d.uz}(commit が存在すること。未 commit の変更は作業証跡として数えない)`,g=`${d.le}(変更ファイルが scope.allow の内側に収まっていること)`,h=`options.requireCommit (${d.aT})`;function i(a,b){let c=[];return b?.options.requireCommit&&c.push(h),a?.success.requireCommit&&c.push("success.requireCommit (task contract)"),{required:c.length>0,sources:c}}function j(a){let b=a.verify.gates;if(!b)return null;let c=[[d.uz,a.success.requireWorkEvidence],[d.le,a.success.requireScopeClean]];return[...c.filter(([a,c])=>c||b.includes(a)).map(([a])=>a),...b.filter(a=>!c.some(([b])=>b===a))]}function k(a,b){let c=a.verify.gates;if(!c)return[];if(!b)return[`verify.gates: declared ${c.join(", ")}, but ${d.aT} is missing or unreadable in this worktree, so the gate ids cannot be resolved`];let e=new Set([d.uz,d.le,...b.gates.map(a=>a.id)]),f=c.filter(a=>!e.has(a));return 0===f.length?[]:[`verify.gates: unknown gate id(s) ${f.join(", ")}. Declared in ${d.aT}: ${[...e].join(", ")}`]}function l(a,b){let c=["## 実行契約"];c.push(a.scope.allow.length>0?`- 変更してよいのは次のパスのみ: ${a.scope.allow.join(", ")}`:"- 変更パスの制限: なし(scope.allow が未宣言)"),a.scope.deny.length>0&&c.push(`- 変更してはならないパス: ${a.scope.deny.join(", ")}`),c.push(i(a,b).required?"- 作業完了後は必ず commit すること(未 commit の作業は未完了とみなされる)":"- 作業完了後は commit すること(ただし work-evidence は未 commit の変更も作業証跡として認めるため、commit の有無そのものは検査されない)");let h=function(a,b){if(!b)return[];let c=i(a,b).required?f:e,h=new Map([[d.uz,c],[d.le,g]]),k=j(a);if(!k){let d=[c];return a.success.requireScopeClean&&d.push(g),[...d,...b.gates.map(a=>a.command)]}let l=new Map(b.gates.map(a=>[a.id,a.command]));return k.map(a=>h.get(a)??l.get(a))}(a,b);return c.push(h.length>0?`- 完了条件: 次の検証コマンドがすべて成功すること: ${h.join(" / ")}`:`- 完了条件: ${d.aT} に検証ゲートが宣言されていないため、検証コマンドは無い`),`${c.join("\n")}
2
2
 
3
3
  ## タスク
4
4
  ${a.goal}`}},76274:(a,b,c)=>{c.d(b,{Wb:()=>y,AT:()=>I});var d=c(79646),e=c(29021),f=c(88807),g=c(56791),h=c(48524),i=c(2412),j=c(72626),k=c(11501),l=c(2924);let m=".commandmate/tasks/";function n(a){return a.startsWith(m)}function o(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}(?:/.*)?$`)}class p{constructor(a,b=null){this.contractPath=b,this.allow=a.allow.map(o),this.deny=a.deny.map(o)}isViolation(a){return!!this.deny.some(b=>b.test(a))||!a.startsWith(".commandmate/")&&a!==this.contractPath&&!this.allow.some(b=>b.test(a))}}function q(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 r(a){let b=a.split("\0"),c=[],d=0;for(;d<b.length;){let a=b[d];if(d+=1,a.length<4)continue;let e=[a.slice(3)],[f,g]=a;if("R"===f||"C"===f||"R"===g||"C"===g){let a=b[d];d+=1,a&&e.push(a)}c.push(e)}return c}async function s(a,b){let c=await q(["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()?`
@@ -6,9 +6,9 @@ ${c.stderr.trim()}`:"")};let d=c.stdout.trim(),e=await q(["diff","--name-only","
6
6
  ${e.stderr.trim()}`:"")};let f=await q(["status","--porcelain","-z","--untracked-files=all"],a);return 0!==f.code?{error:"'git status --porcelain' failed."+(f.stderr.trim()?`
7
7
  ${f.stderr.trim()}`:"")}:{paths:[...new Set([...e.stdout.split("\0").filter(a=>""!==a),...r(f.stdout).flat()].filter(a=>!n(a)))].sort(),mergeBase:d}}function t(a){return a.length>0?a.join(", "):"(none)"}async function u(a,b,c,d,e=null){let f=Date.now(),g=(a,b,c)=>({status:a,exitCode:c,startedAt:f,durationMs:Date.now()-f,logTail:b});if(!b)return g("skipped","scope: no contract is attached to this run, so no scope is declared to check.",null);if(!c)return g("skipped","scope: the contract sets success.requireScopeClean: false.",null);if(!d)return g("error","scope: no base ref, so there is nothing to diff against. Set options.baseRef in .commandmate/verify.yaml; origin/HEAD did not resolve a default branch.",null);let h=await s(a,d);if("error"in h)return g("error",`scope: ${h.error}`,null);let i=new p(b,e),j=h.paths.filter(a=>i.isViolation(a)),k=`scope: baseRef=${d} changed=${h.paths.length} violations=${j.length}
8
8
  allow: ${t(b.allow)}
9
- deny: ${t(b.deny)}`;if(0===j.length)return g("passed",k,0);let l=j.slice(0,100),m=j.length-l.length;return g("failed",[k,"out of scope:",...l.map(a=>` - ${a}`),...m>0?[` ... and ${m} more`]:[]].join("\n"),1)}var v=c(90384);let w=(0,j.h)("lib/verification/gate-runner"),x="git diff --name-only / status --porcelain \xd7 contract scope";class y 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 z=0,A=[],B=new Map;class C{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 D(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 E(a,b,c=!1){let d=Date.now(),e=(a,b,c)=>({status:a,exitCode:c,startedAt:d,durationMs:Date.now()-d,logTail:b});if(!b)return e("error",`work-evidence: no base ref. Set options.baseRef in ${v.aT}; origin/HEAD did not resolve a default branch.`,null);let f=await D(["merge-base",b,"HEAD"],a);if(0!==f.code||""===f.stdout.trim())return e("error",`work-evidence: 'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`,null);let g=f.stdout.trim(),h=await D(["rev-list","--count",`${g}..HEAD`,"--",":(top)",`:(exclude,top)${m}`],a);if(0!==h.code)return e("error",`work-evidence: 'git rev-list --count ${g}..HEAD' failed.`,null);let i=Number.parseInt(h.stdout.trim(),10),j=await D(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==j.code)return e("error","work-evidence: 'git status --porcelain' failed.",null);let k=r(j.stdout).filter(a=>a.some(a=>!n(a))).length,l=`work-evidence: baseRef=${b} commits=${i} uncommitted=${k}`+(c?" requireCommit=true":"")+" (contract files excluded)";return Number.isFinite(i)&&(0!==i||0!==k)?c&&0===i?e("failed",`${l}
10
- options.requireCommit is set: uncommitted changes are not work evidence, commit them.`,1):e("passed",l,0):e("failed",`${l}
11
- No commits and no uncommitted changes: nothing to verify.`,1)}async function F(a,b){if(a.options.baseRef)return a.options.baseRef;let c=await (0,i.tR)(b);return c?`origin/${c}`:null}async function G(a,b,c,f,h,i,j,k){var l,m;let{maxLogTailBytes:n,skipInPrimaryCheckout:o,requireCommit:p}=f.options,{runWorkEvidence:q,gates:r}=h,s=(b,c)=>((0,g.C81)(a,b,{status:c.status,exitCode:c.exitCode,durationMs:c.durationMs,logTail:c.logTail,executionWindow:{startedAt:c.startedAt,finishedAt:c.startedAt+c.durationMs}}),c),t=async(c,d,e)=>s((0,g.hlF)(a,b,{gateId:c,command:d}).id,await e()),w=(c,d,e)=>{let f={status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:e};return s((0,g.hlF)(a,b,{gateId:c,command:d}).id,f)},y=[];if(q){let a=await t(v.uz,"git merge-base / rev-list / status --porcelain (excluding contract files)",()=>E(c,i,p));if("passed"!==a.status){let b=`skipped: the ${v.uz} gate did not pass.`;for(let a of("off"!==h.scope&&w(v.le,x,b),r))w(a.id,a.command,b);return"failed"===a.status?"not_started":"error"}y.push(a.status)}if("off"!==h.scope){let a=k?w(v.le,x,(l=k.id,m=k.status,`scope: task ${l} declares a scope for this worktree, but it is ${m} and this run was not attached to it, so its scope was NOT judged. Name the task when starting the run (\`wait --verify\` does this automatically).`)):await t(v.le,x,()=>u(c,j?.contract.scope??null,j?.contract.success.requireScopeClean??!1,i,j?.contractPath??null)),b="explicit"===h.scope||null!==k;("skipped"!==a.status||b)&&y.push(a.status)}let z=o&&function(a,b){try{return(0,e.realpathSync)(a)===(0,e.realpathSync)(b)}catch{return!1}}(c,process.cwd());for(let a of r){if(z){y.push(w(a.id,a.command,"skipped: worktreePath is the server process working directory and options.skipInPrimaryCheckout is true.").status);continue}let b=await t(a.id,a.command,()=>(function(a,b,c,e){return new Promise(f=>{let g,h=Date.now(),i=new C(e),j=!1,k=!1,l=(0,d.spawn)(a,{shell:!0,cwd:b,env:{...process.env,CI:"true"},detached:!0,stdio:["ignore","pipe","pipe"]});l.stdout?.on("data",a=>i.append(a)),l.stderr?.on("data",a=>i.append(a));let m=a=>{if(void 0!==l.pid)try{process.kill(-l.pid,a)}catch{try{l.kill(a)}catch{}}},n=a=>{j||(j=!0,clearTimeout(o),g&&clearTimeout(g),f({...a,startedAt:h,durationMs:Date.now()-h}))},o=setTimeout(()=>{k=!0,m("SIGTERM"),g=setTimeout(()=>m("SIGKILL"),5e3),g.unref?.()},1e3*c);o.unref?.(),l.on("error",a=>{n({status:"error",exitCode:null,logTail:`${i.toString()}
9
+ deny: ${t(b.deny)}`;if(0===j.length)return g("passed",k,0);let l=j.slice(0,100),m=j.length-l.length;return g("failed",[k,"out of scope:",...l.map(a=>` - ${a}`),...m>0?[` ... and ${m} 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 v=c(90384);let w=(0,j.h)("lib/verification/gate-runner"),x="git diff --name-only / status --porcelain \xd7 contract scope";class y 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 z=0,A=[],B=new Map;class C{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 D(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 E(a,b,c){let d=Date.now(),e=(a,b,c)=>({status:a,exitCode:c,startedAt:d,durationMs:Date.now()-d,logTail:b});if(!b)return e("error",`work-evidence: no base ref. Set options.baseRef in ${v.aT}; origin/HEAD did not resolve a default branch.`,null);let f=await D(["merge-base",b,"HEAD"],a);if(0!==f.code||""===f.stdout.trim())return e("error",`work-evidence: 'git merge-base ${b} HEAD' failed; base ref is unreachable from this worktree.`,null);let g=f.stdout.trim(),h=await D(["rev-list","--count",`${g}..HEAD`,"--",":(top)",`:(exclude,top)${m}`],a);if(0!==h.code)return e("error",`work-evidence: 'git rev-list --count ${g}..HEAD' failed.`,null);let i=Number.parseInt(h.stdout.trim(),10),j=await D(["status","--porcelain","-z","--untracked-files=all"],a);if(0!==j.code)return e("error","work-evidence: 'git status --porcelain' failed.",null);let k=r(j.stdout).filter(a=>a.some(a=>!n(a))).length,l=`work-evidence: baseRef=${b} commits=${i} uncommitted=${k}`+(c.required?" requireCommit=true":"")+" (contract files excluded)";return Number.isFinite(i)&&(0!==i||0!==k)?c.required&&0===i?e("failed",`${l}
10
+ ${c.sources.join(" and ")} requires a commit: uncommitted changes are not work evidence, commit them.`,1):e("passed",l,0):e("failed",`${l}
11
+ No commits and no uncommitted changes: nothing to verify.`,1)}async function F(a,b){if(a.options.baseRef)return a.options.baseRef;let c=await (0,i.tR)(b);return c?`origin/${c}`:null}async function G(a,b,c,f,h,i,j,l){var m,n;let{maxLogTailBytes:o,skipInPrimaryCheckout:p}=f.options,{runWorkEvidence:q,gates:r}=h,s=(0,k.fc)(j?.contract??null,f),t=(b,c)=>((0,g.C81)(a,b,{status:c.status,exitCode:c.exitCode,durationMs:c.durationMs,logTail:c.logTail,executionWindow:{startedAt:c.startedAt,finishedAt:c.startedAt+c.durationMs}}),c),w=async(c,d,e)=>t((0,g.hlF)(a,b,{gateId:c,command:d}).id,await e()),y=(c,d,e)=>{let f={status:"skipped",exitCode:null,startedAt:Date.now(),durationMs:0,logTail:e};return t((0,g.hlF)(a,b,{gateId:c,command:d}).id,f)},z=[];if(q){let a=await w(v.uz,"git merge-base / rev-list / status --porcelain (excluding contract files)",()=>E(c,i,s));if("passed"!==a.status){let b=`skipped: the ${v.uz} gate did not pass.`;for(let a of("off"!==h.scope&&y(v.le,x,b),r))y(a.id,a.command,b);return"failed"===a.status?"not_started":"error"}z.push(a.status)}if("off"!==h.scope){let a=l?y(v.le,x,(m=l.id,n=l.status,`scope: task ${m} declares a scope for this worktree, but it is ${n} and this run was not attached to it, so its scope was NOT judged. Name the task when starting the run (\`wait --verify\` does this automatically).`)):await w(v.le,x,()=>u(c,j?.contract.scope??null,j?.contract.success.requireScopeClean??!1,i,j?.contractPath??null)),b="explicit"===h.scope||null!==l;("skipped"!==a.status||b)&&z.push(a.status)}let A=p&&function(a,b){try{return(0,e.realpathSync)(a)===(0,e.realpathSync)(b)}catch{return!1}}(c,process.cwd());for(let a of r){if(A){z.push(y(a.id,a.command,"skipped: worktreePath is the server process working directory and options.skipInPrimaryCheckout is true.").status);continue}let b=await w(a.id,a.command,()=>(function(a,b,c,e){return new Promise(f=>{let g,h=Date.now(),i=new C(e),j=!1,k=!1,l=(0,d.spawn)(a,{shell:!0,cwd:b,env:{...process.env,CI:"true"},detached:!0,stdio:["ignore","pipe","pipe"]});l.stdout?.on("data",a=>i.append(a)),l.stderr?.on("data",a=>i.append(a));let m=a=>{if(void 0!==l.pid)try{process.kill(-l.pid,a)}catch{try{l.kill(a)}catch{}}},n=a=>{j||(j=!0,clearTimeout(o),g&&clearTimeout(g),f({...a,startedAt:h,durationMs:Date.now()-h}))},o=setTimeout(()=>{k=!0,m("SIGTERM"),g=setTimeout(()=>m("SIGKILL"),5e3),g.unref?.()},1e3*c);o.unref?.(),l.on("error",a=>{n({status:"error",exitCode:null,logTail:`${i.toString()}
12
12
  [gate could not be spawned: ${a.message}]`.trim()})}),l.on("close",(a,b)=>{if(k)return void n({status:"timeout",exitCode:null,logTail:`${i.toString()}
13
- [gate exceeded ${c}s and was terminated (${b??"exited"})]`.trim()});n({status:0===a?"passed":"failed",exitCode:a,logTail:i.toString()||null})})})})(a.command,c,a.timeoutSec,n));y.push(b.status)}return y.some(a=>"failed"===a||"timeout"===a||"error"===a)?"failed":y.some(a=>"skipped"===a)?"error":"passed"}function H(a,b,c,d){try{(0,l.g)(a,b,c,void 0===d?void 0:{runId:d})}catch(a){w.warn("task-transition-failed",{taskId:b,event:c,error:a instanceof Error?a.message:String(a)})}}async function I(a){let b=(0,f.getDbInstance)(),c=(0,g.WZv)(b,a.worktreeId);if(c)throw new y(a.worktreeId,c.id);let d=void 0!==a.taskId?(0,g.ggW)(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.VkA)(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,k.Ky)(d.contract)??void 0:void 0),l=null,m=null;try{(l=(0,v.yR)(a.worktreePath))||(m=`${v.aT} not found in ${a.worktreePath}. Declare the repository verification gates there before running verification.`)}catch(a){m=a instanceof v.Yp?a.message:`Failed to read ${v.aT}: ${a.message}`}let n=null;if(l&&!m){let a=function(a,b){if(!b)return{runWorkEvidence:!0,scope:"implicit",gates:a.gates};let c=new Set([v.uz,v.le,...a.gates.map(a=>a.id)]),d=b.filter(a=>!c.has(a));if(d.length>0)return`Unknown gate id(s): ${d.join(", ")}. Declared gates: ${[...c].join(", ")}.`;let e=new Set(b),f={runWorkEvidence:e.has(v.uz),scope:e.has(v.le)?"explicit":"off",gates:a.gates.filter(a=>e.has(a.id))};return f.runWorkEvidence||"off"!==f.scope||0!==f.gates.length?f:"gateIds selected no gates; a run with no gates has nothing to report."}(l,j);"string"==typeof a?m=a:n=a}let o=l?await F(l,a.worktreePath):null,p=(0,g.rYZ)(b,{worktreeId:a.worktreeId,trigger:a.trigger,instanceId:a.instanceId??null,taskId:i,baseRef:o});if(!l||!n){let c=Date.now(),e=(0,g.hlF)(b,p.id,{gateId:"config",command:v.aT});return(0,g.C81)(b,e.id,{status:"error",exitCode:null,durationMs:0,logTail:m,executionWindow:{startedAt:c,finishedAt:c}}),(0,g.u$7)(b,p.id,"error"),w.warn("verification-config-unusable",{runId:p.id,worktreeId:a.worktreeId}),d&&(H(b,d.id,"verify_started",p.id),H(b,d.id,"verify_failed",p.id)),{runId:p.id}}d&&H(b,d.id,"verify_started",p.id);let q=l,r=n,s=(async()=>{await (z<2?(z+=1,Promise.resolve()):new Promise(a=>{A.push(a)}));let c="error";try{let f=await G(b,p.id,a.worktreePath,q,r,o,d,e);return c=f,(0,g.u$7)(b,p.id,f),f}catch(a){w.error("verification-run-crashed",{runId:p.id,error:a instanceof Error?a.message:String(a)});try{(0,g.u$7)(b,p.id,"error")}catch{}return"error"}finally{d&&H(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),p.id),function(){let a=A.shift();if(a)return a();z-=1}(),B.delete(p.id)}})();return B.set(p.id,s),{runId:p.id}}},90384:(a,b,c)=>{c.d(b,{Yp:()=>o,aT:()=>j,le:()=>h,uz:()=>g,yR:()=>u});var d=c(29021),e=c(33873),f=c(4689);let g="work-evidence",h="scope",i=[g,h],j=".commandmate/verify.yaml",k=/^[a-z0-9][a-z0-9-]{0,31}$/,l=["version","gates","options"],m=["id","command","timeoutSec"],n=["baseRef","skipInPrimaryCheckout","maxLogTailBytes","requireCommit"];class o extends Error{constructor(a){super(`invalid verify config:
13
+ [gate exceeded ${c}s and was terminated (${b??"exited"})]`.trim()});n({status:0===a?"passed":"failed",exitCode:a,logTail:i.toString()||null})})})})(a.command,c,a.timeoutSec,o));z.push(b.status)}return z.some(a=>"failed"===a||"timeout"===a||"error"===a)?"failed":z.some(a=>"skipped"===a)?"error":"passed"}function H(a,b,c,d){try{(0,l.g)(a,b,c,void 0===d?void 0:{runId:d})}catch(a){w.warn("task-transition-failed",{taskId:b,event:c,error:a instanceof Error?a.message:String(a)})}}async function I(a){let b=(0,f.getDbInstance)(),c=(0,g.WZv)(b,a.worktreeId);if(c)throw new y(a.worktreeId,c.id);let d=void 0!==a.taskId?(0,g.ggW)(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.VkA)(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,k.Ky)(d.contract)??void 0:void 0),l=null,m=null;try{(l=(0,v.yR)(a.worktreePath))||(m=`${v.aT} not found in ${a.worktreePath}. Declare the repository verification gates there before running verification.`)}catch(a){m=a instanceof v.Yp?a.message:`Failed to read ${v.aT}: ${a.message}`}let n=null;if(l&&!m){let a=function(a,b){if(!b)return{runWorkEvidence:!0,scope:"implicit",gates:a.gates};let c=new Set([v.uz,v.le,...a.gates.map(a=>a.id)]),d=b.filter(a=>!c.has(a));if(d.length>0)return`Unknown gate id(s): ${d.join(", ")}. Declared gates: ${[...c].join(", ")}.`;let e=new Set(b),f={runWorkEvidence:e.has(v.uz),scope:e.has(v.le)?"explicit":"off",gates:a.gates.filter(a=>e.has(a.id))};return f.runWorkEvidence||"off"!==f.scope||0!==f.gates.length?f:"gateIds selected no gates; a run with no gates has nothing to report."}(l,j);"string"==typeof a?m=a:n=a}let o=l?await F(l,a.worktreePath):null,p=(0,g.rYZ)(b,{worktreeId:a.worktreeId,trigger:a.trigger,instanceId:a.instanceId??null,taskId:i,baseRef:o});if(!l||!n){let c=Date.now(),e=(0,g.hlF)(b,p.id,{gateId:"config",command:v.aT});return(0,g.C81)(b,e.id,{status:"error",exitCode:null,durationMs:0,logTail:m,executionWindow:{startedAt:c,finishedAt:c}}),(0,g.u$7)(b,p.id,"error"),w.warn("verification-config-unusable",{runId:p.id,worktreeId:a.worktreeId}),d&&(H(b,d.id,"verify_started",p.id),H(b,d.id,"verify_failed",p.id)),{runId:p.id}}d&&H(b,d.id,"verify_started",p.id);let q=l,r=n,s=(async()=>{await (z<2?(z+=1,Promise.resolve()):new Promise(a=>{A.push(a)}));let c="error";try{let f=await G(b,p.id,a.worktreePath,q,r,o,d,e);return c=f,(0,g.u$7)(b,p.id,f),f}catch(a){w.error("verification-run-crashed",{runId:p.id,error:a instanceof Error?a.message:String(a)});try{(0,g.u$7)(b,p.id,"error")}catch{}return"error"}finally{d&&H(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),p.id),function(){let a=A.shift();if(a)return a();z-=1}(),B.delete(p.id)}})();return B.set(p.id,s),{runId:p.id}}},90384:(a,b,c)=>{c.d(b,{Yp:()=>o,aT:()=>j,le:()=>h,uz:()=>g,yR:()=>u});var d=c(29021),e=c(33873),f=c(4689);let g="work-evidence",h="scope",i=[g,h],j=".commandmate/verify.yaml",k=/^[a-z0-9][a-z0-9-]{0,31}$/,l=["version","gates","options"],m=["id","command","timeoutSec"],n=["baseRef","skipInPrimaryCheckout","maxLogTailBytes","requireCommit"];class o extends Error{constructor(a){super(`invalid verify config:
14
14
  ${a.map(a=>` - ${a}`).join("\n")}`),this.name="VerifyConfigError",this.issues=a}}function p(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function q(a){return"number"==typeof a?Number.isInteger(a)?a:null:"string"==typeof a&&/^-?\d+$/.test(a)?Number(a):null}function r(a){return"boolean"==typeof a?a:"true"===a||"false"!==a&&null}function s(a){return void 0===a?"nothing":null===a?"null":"string"==typeof a?JSON.stringify(a):Array.isArray(a)?"a list":"object"==typeof a?"a mapping":String(a)}function t(a,b,c,d){for(let e of Object.keys(a))b.includes(e)||d.push(`${c}: unknown key "${e}" (v1 is a closed set)`)}function u(a){let b,c,g=(0,e.join)(a,j);try{b=(0,d.readFileSync)(g,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new o([`${g}: ${a.message}`])}var h=b;try{c=(0,f.qg)(h)}catch(a){throw new o([`${g}: YAML parse error: ${a.message}`])}if(!p(c))throw new o([`${g}: expected a YAML mapping at the top level (got ${s(c)})`]);let u=[];t(c,l,"top level",u),"version"in c?1!==q(c.version)&&u.push(`version: must be 1 (got ${s(c.version)})`):u.push('version: required, v1 configs must declare "version: 1"');let v=function(a,b){if(null==a)return b.push("gates: required, at least one gate must be defined"),[];if(!Array.isArray(a))return b.push(`gates: must be a list (got ${s(a)})`),[];if(0===a.length)return b.push("gates: at least one gate must be defined"),[];let c=[],d=new Set;return a.forEach((a,e)=>{let f=`gates[${e}]`,g=b.length;if(!p(a))return void b.push(`${f}: must be a mapping (got ${s(a)})`);t(a,m,f,b),"string"!=typeof a.id||""===a.id?b.push(`${f}.id: required, must be a non-empty string (got ${s(a.id)})`):k.test(a.id)?i.includes(a.id)?b.push(`${f}.id: "${a.id}" is reserved for a built-in gate`):d.has(a.id)?b.push(`${f}.id: duplicate gate id "${a.id}"`):d.add(a.id):b.push(`${f}.id: "${a.id}" must match ${k.source}`),("string"!=typeof a.command||""===a.command.trim())&&b.push(`${f}.command: required, must be a non-empty string (got ${s(a.command)})`);let h=600;if(void 0!==a.timeoutSec){let c=q(a.timeoutSec);null===c?b.push(`${f}.timeoutSec: must be an integer (got ${s(a.timeoutSec)})`):c<1||c>7200?b.push(`${f}.timeoutSec: must be 1..7200 (got ${c})`):h=c}b.length===g&&c.push({id:a.id,command:a.command,timeoutSec:h})}),c}(c.gates,u),w=function(a,b){let c={baseRef:null,skipInPrimaryCheckout:!0,maxLogTailBytes:8192,requireCommit:!1};if(null==a)return c;if(!p(a))return b.push(`options: must be a mapping (got ${s(a)})`),c;if(t(a,n,"options",b),void 0!==a.baseRef&&("string"!=typeof a.baseRef||""===a.baseRef.trim()?b.push(`options.baseRef: must be a non-empty string (got ${s(a.baseRef)})`):c.baseRef=a.baseRef),void 0!==a.skipInPrimaryCheckout){let d=r(a.skipInPrimaryCheckout);null===d?b.push(`options.skipInPrimaryCheckout: must be true or false (got ${s(a.skipInPrimaryCheckout)})`):c.skipInPrimaryCheckout=d}if(void 0!==a.requireCommit){let d=r(a.requireCommit);null===d?b.push(`options.requireCommit: must be true or false (got ${s(a.requireCommit)})`):c.requireCommit=d}if(void 0!==a.maxLogTailBytes){let d=q(a.maxLogTailBytes);null===d?b.push(`options.maxLogTailBytes: must be an integer (got ${s(a.maxLogTailBytes)})`):d<0||d>1048576?b.push(`options.maxLogTailBytes: must be 0..1048576 (got ${d})`):c.maxLogTailBytes=d}return c}(c.options,u);if(u.length>0)throw new o(u);return{version:1,gates:v,options:w}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6283,exports.ids=[6283],exports.modules={26283:(a,b,c)=>{c.d(b,{kT:()=>V,aU:()=>i,l8:()=>H,hx:()=>k,XY:()=>I,F0:()=>Z,Fw:()=>$,CX:()=>n,Dd:()=>v,pn:()=>w,gm:()=>o,Jn:()=>u,aW:()=>x,Du:()=>L,Mi:()=>O,J7:()=>P,wN:()=>z,kD:()=>F,uA:()=>C,sy:()=>B,Md:()=>E,LO:()=>G,sx:()=>K,fW:()=>y,KO:()=>_,ut:()=>X,GT:()=>m,_X:()=>function a(b){switch(b){case"claude":return{promptPattern:k,separatorPattern:l,thinkingPattern:h,skipPatterns:[/^─{10,}$/,/^[>❯]\s*$/,h,/^\s*[⎿⏋]\s+Tip:/,/^\s*Tip:/,/^\s*\?\s*for shortcuts/,/to interrupt\)/,y]};case"codex":return{promptPattern:o,separatorPattern:t,thinkingPattern:j,skipPatterns:[/^─.*─+$/,/^›\s*$/,/^›\s+(Implement|Find and fix|Type)/,j,/^\s*\d+%\s+context left/,/^\s*for shortcuts$/,/╭─+╮/,/╰─+╯/,/•\s*Ran\s+/,/^\s*└/,/^\s*│/,/\(.*esc to interrupt\)/,y]};case"gemini":return{promptPattern:z,separatorPattern:/^[─━]{3,}$/m,thinkingPattern:A,skipPatterns:[z,A,/^\s*$/,/Gemini\s+\d+\.\d+/,y]};case"vibe-local":return{promptPattern:Q,separatorPattern:/^[·]{10,}$/m,thinkingPattern:R,skipPatterns:[Q,R,/^\s*$/,/vibe-local|vibe-coder/,/ctx:\s*\d+%/,/Model\s+\w/,/Engine\s+\w/,/Mode\s+/,/RAM\s+/,/CWD\s+/,/^[·]{10,}$/,/✦\s*Ready/,/ESC:\s*stop/,y]};case"opencode":return{promptPattern:B,separatorPattern:J,thinkingPattern:D,skipPatterns:[...K]};case"copilot":return{promptPattern:L,separatorPattern:N,thinkingPattern:M,skipPatterns:[...P]};case"antigravity":return{promptPattern:S,separatorPattern:U,thinkingPattern:T,skipPatterns:[...W]};default:return a("claude")}},Qh:()=>s,zZ:()=>r,aJ:()=>f,_A:()=>Y});var d=c(72626);let e=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;function f(a){return a.replace(e,"")}let g=(0,d.h)("cli-patterns"),h=RegExp(`[✻✽⏺\xb7∴✢✳✶⦿◉●○◌◎⊙⊚⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\\s+.+…|esc to interrupt`,"m"),i=/esc to interrupt/,j=/•\s*(Planning|Searching|Exploring|Running|Thinking|Working|Reading|Writing|Analyzing|Ran|Deciding)/m,k=/^[>❯](\s*$|\s+\S)/m,l=/^─{10,}$/m;function m(a){let b=a=>/^─{10,}$/.test(f(a).trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-4);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let e=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){e=c;break}return e<0||!/^[>❯]/.test(f(a[e+1]??""))?-1:Math.max(0,e-1)}let n=/Yes, I trust this folder/m,o=/^›\s*/m,p=/Skip until next version|Do you trust|Press enter to continue|^\s*›\s*\d+\.\s/m,q=/^\s*›(?!\s*\d+\.)/;function r(a){let b=a.split("\n"),c=-1,d=-1;for(let a=0;a<b.length;a++){let e=b[a];if(p.test(e)){c=a;continue}q.test(e)&&(d=a)}return d>=0&&d>c}function s(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--)if(q.test(b[a])){c=a;break}let d=b.slice(c+1).join("\n");return""===d?null:d.includes("Skip until next version")||d.includes("Update")&&d.includes("Skip")?"update":d.includes("Do you trust")?"trust":d.includes("Press enter to continue")?"press-enter":null}let t=/^─.*Worked for.*─+$/m,u=/press\s+enter\s+to\s+(?:confirm|select)/i,v=/esc\s+to\s+cancel/i,w=/(?:↑\/↓|pgup\/pgdn|home\/end)\s+to\s+(?:scroll|page|jump)|to\s+edit\s+(?:prev|next|message)/i,x=/^\s*\S.*·\s*~?\/\S*\s*$/,y=/\[Pasted text #\d+/,z=/^[>❯]\s*$|^\s*[>❯]\s+Type your message.*$/m,A=/[\u2800-\u28FF]|Thinking\.\.\./,B=/Ask anything\.\.\./,C=/tab agents\s+ctrl\+p commands/,D=/Thinking:/,E=/\u25A3\s+\w+\s+\u00b7\s+\S+(?:\s+\u00b7\s+(?:[\d]+h\s*)?(?:[\d]+m\s*)?[\d.]+s)?/,F=/esc interrupt/,G=/^\s*(Select\s+(model|provider)|Connect\s+a\s+provider)/m,H=/Enter\s+to\s+set\s+as\s+default\b/i,I=/Enter\s+to\s+(?:select\s+.*to\s+navigate|confirm\s+·\s+Esc|set\s+as\s+default)/,J=/^[\u2503\u2579\u25A3\u2580\u2500\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C]+$/,K=[J,/\u2B1D{4,}/,/^Build\s+/,C,F,B,y],L=/^[>❯]\s|^\?\s+/m,M=/[\u2800-\u28FF]|\(Esc to cancel|Reasoning\s+[■▪▮]|\.\.\.\s+Thinking|Generating|Processing/,N=/^─{10,}$/m,O=/Search\s+\w+\.\.\.|Select\s+Model|to (?:navigate|select).*Enter to (?:select|confirm)/m,P=[y,N,M,O,/^GitHub Copilot\s+v/,/[█▘▝▖▗▔▄▌▐]/,/[╭╮╰╯│]/,/\[⎇\s+\w[^\]]*\]/,/^shift\+tab\s/,/^\?\s+for\s+shortcuts/,/^ctrl\+[a-z]\s+\w/,/^[❯>]\s*(Type\s+@|$)/,/^Tip:\s+\//,/^Describe a task to get started/,/^Copilot uses AI, so always check for mistakes\.$/,/^● 💡/,/^● Environment loaded:/],Q=/ctx:\d+%\s*[>❯]/m,R=/[\u2800-\u28FF]|Thinking|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|Running|Executing/,S=/^>\s*$/m,T=/[\u2800-\u28FF]|Generating|esc to cancel/,U=/^─{3,}$/m,V=/Switch Model|↑\/↓\s*Navigate/m,W=[U,/^>\s*$/,/^\?\s+for\s+shortcuts/,T,/[▄▀█▌▐]/,y];function X(a,b){let c,d=g.withContext({cliToolId:a});switch(d.debug("detectThinking:check",{contentLength:b.length}),a){case"claude":default:c=h.test(b);break;case"codex":c=j.test(b);break;case"gemini":c=A.test(b);break;case"vibe-local":c=R.test(b);break;case"opencode":c=D.test(b);break;case"copilot":c=M.test(b);break;case"antigravity":c=T.test(b)}return d.debug("detectThinking:result",{isThinking:c}),c}function Y(a){return a.split("\n").map(a=>/^[\u2502\u2503\u256D\u256E\u256F\u2570\u2500\u2579\u2580\u2588\s]+$/.test(a)?"":a.replace(/^\s*[\u2502\u2503]\s?/,"").replace(/\s*[\u2502\u2503\u2588]$/,"")).join("\n")}let Z=["Claude Code cannot be launched inside another Claude Code session"],$=[/^Error:.*Claude Code/];function _(a){if("claude"===a||"opencode"===a||"copilot"===a||"antigravity"===a)return{requireDefaultIndicator:!1}}}};
1
+ "use strict";exports.id=6283,exports.ids=[6283],exports.modules={26283:(a,b,c)=>{c.d(b,{kT:()=>Y,aU:()=>j,l8:()=>K,hx:()=>n,XY:()=>L,F0:()=>aa,Fw:()=>ab,CX:()=>q,Dd:()=>y,pn:()=>z,gm:()=>r,Jn:()=>x,aW:()=>A,Du:()=>O,Mi:()=>R,J7:()=>S,wN:()=>C,kD:()=>I,uA:()=>F,sy:()=>E,Md:()=>H,LO:()=>J,sx:()=>N,fW:()=>B,KO:()=>ac,ut:()=>$,GT:()=>p,_X:()=>function a(b){switch(b){case"claude":return{promptPattern:n,separatorPattern:o,thinkingPattern:i,skipPatterns:[/^─{10,}$/,/^[>❯]\s*$/,i,/^\s*[⎿⏋]\s+Tip:/,/^\s*Tip:/,/^\s*\?\s*for shortcuts/,/to interrupt\)/,B]};case"codex":return{promptPattern:r,separatorPattern:w,thinkingPattern:k,skipPatterns:[/^─.*─+$/,/^›\s*$/,/^›\s+(Implement|Find and fix|Type)/,k,/^\s*\d+%\s+context left/,/^\s*for shortcuts$/,/╭─+╮/,/╰─+╯/,/•\s*Ran\s+/,/^\s*└/,/^\s*│/,/\(.*esc to interrupt\)/,B]};case"gemini":return{promptPattern:C,separatorPattern:/^[─━]{3,}$/m,thinkingPattern:D,skipPatterns:[C,D,/^\s*$/,/Gemini\s+\d+\.\d+/,B]};case"vibe-local":return{promptPattern:T,separatorPattern:/^[·]{10,}$/m,thinkingPattern:U,skipPatterns:[T,U,/^\s*$/,/vibe-local|vibe-coder/,/ctx:\s*\d+%/,/Model\s+\w/,/Engine\s+\w/,/Mode\s+/,/RAM\s+/,/CWD\s+/,/^[·]{10,}$/,/✦\s*Ready/,/ESC:\s*stop/,B]};case"opencode":return{promptPattern:E,separatorPattern:M,thinkingPattern:G,skipPatterns:[...N]};case"copilot":return{promptPattern:O,separatorPattern:Q,thinkingPattern:P,skipPatterns:[...S]};case"antigravity":return{promptPattern:V,separatorPattern:X,thinkingPattern:W,skipPatterns:[...Z]};default:return a("claude")}},Qh:()=>v,zZ:()=>u,DR:()=>m,aJ:()=>f,_A:()=>_});var d=c(72626);let e=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;function f(a){return a.replace(e,"")}var g=c(46423);let h=(0,d.h)("cli-patterns"),i=RegExp(`[✻✽⏺\xb7∴✢✳✶⦿◉●○◌◎⊙⊚⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\\s+.+…|esc to interrupt`,"m"),j=/esc to interrupt/,k=/•\s*(Planning|Searching|Exploring|Running|Thinking|Working|Reading|Writing|Analyzing|Ran|Deciding)/m,l=/esc to interrupt/;function m(a,b){let c=f(a.slice(Math.max(0,a.length-b)).join("\n"));if(l.test(c))return!0;let d=-1;for(let b=a.length-1;b>=Math.max(0,a.length-8);b--)if(r.test(f(a[b]))){d=b;break}if(d<0)return k.test(c);let e=Math.max(0,d-g.$+1),h=f(a.slice(e,d+1).join("\n"));return k.test(h)}let n=/^[>❯](\s*$|\s+\S)/m,o=/^─{10,}$/m;function p(a){let b=a=>/^─{10,}$/.test(f(a).trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-4);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let e=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){e=c;break}return e<0||!/^[>❯]/.test(f(a[e+1]??""))?-1:Math.max(0,e-1)}let q=/Yes, I trust this folder/m,r=/^›\s*/m,s=/Skip until next version|Do you trust|Press enter to continue|^\s*›\s*\d+\.\s/m,t=/^\s*›(?!\s*\d+\.)/;function u(a){let b=a.split("\n"),c=-1,d=-1;for(let a=0;a<b.length;a++){let e=b[a];if(s.test(e)){c=a;continue}t.test(e)&&(d=a)}return d>=0&&d>c}function v(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--)if(t.test(b[a])){c=a;break}let d=b.slice(c+1).join("\n");return""===d?null:d.includes("Skip until next version")||d.includes("Update")&&d.includes("Skip")?"update":d.includes("Do you trust")?"trust":d.includes("Press enter to continue")?"press-enter":null}let w=/^─.*Worked for.*─+$/m,x=/press\s+enter\s+to\s+(?:confirm|select)/i,y=/esc\s+to\s+cancel/i,z=/(?:↑\/↓|pgup\/pgdn|home\/end)\s+to\s+(?:scroll|page|jump)|to\s+edit\s+(?:prev|next|message)/i,A=/^\s*\S.*·\s*~?\/\S*\s*$/,B=/\[Pasted text #\d+/,C=/^[>❯]\s*$|^\s*[>❯]\s+Type your message.*$/m,D=/[\u2800-\u28FF]|Thinking\.\.\./,E=/Ask anything\.\.\./,F=/tab agents\s+ctrl\+p commands/,G=/Thinking:/,H=/\u25A3\s+\w+\s+\u00b7\s+\S+(?:\s+\u00b7\s+(?:[\d]+h\s*)?(?:[\d]+m\s*)?[\d.]+s)?/,I=/esc interrupt/,J=/^\s*(Select\s+(model|provider)|Connect\s+a\s+provider)/m,K=/Enter\s+to\s+set\s+as\s+default\b/i,L=/Enter\s+to\s+(?:select\s+.*to\s+navigate|confirm\s+·\s+Esc|set\s+as\s+default)/,M=/^[\u2503\u2579\u25A3\u2580\u2500\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C]+$/,N=[M,/\u2B1D{4,}/,/^Build\s+/,F,I,E,B],O=/^[>❯]\s|^\?\s+/m,P=/[\u2800-\u28FF]|\(Esc to cancel|Reasoning\s+[■▪▮]|\.\.\.\s+Thinking|Generating|Processing/,Q=/^─{10,}$/m,R=/Search\s+\w+\.\.\.|Select\s+Model|to (?:navigate|select).*Enter to (?:select|confirm)/m,S=[B,Q,P,R,/^GitHub Copilot\s+v/,/[█▘▝▖▗▔▄▌▐]/,/[╭╮╰╯│]/,/\[⎇\s+\w[^\]]*\]/,/^shift\+tab\s/,/^\?\s+for\s+shortcuts/,/^ctrl\+[a-z]\s+\w/,/^[❯>]\s*(Type\s+@|$)/,/^Tip:\s+\//,/^Describe a task to get started/,/^Copilot uses AI, so always check for mistakes\.$/,/^● 💡/,/^● Environment loaded:/],T=/ctx:\d+%\s*[>❯]/m,U=/[\u2800-\u28FF]|Thinking|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|Running|Executing/,V=/^>\s*$/m,W=/[\u2800-\u28FF]|Generating|esc to cancel/,X=/^─{3,}$/m,Y=/Switch Model|↑\/↓\s*Navigate/m,Z=[X,/^>\s*$/,/^\?\s+for\s+shortcuts/,W,/[▄▀█▌▐]/,B];function $(a,b){let c,d=h.withContext({cliToolId:a});switch(d.debug("detectThinking:check",{contentLength:b.length}),a){case"claude":default:c=i.test(b);break;case"codex":c=k.test(b);break;case"gemini":c=D.test(b);break;case"vibe-local":c=U.test(b);break;case"opencode":c=G.test(b);break;case"copilot":c=P.test(b);break;case"antigravity":c=W.test(b)}return d.debug("detectThinking:result",{isThinking:c}),c}function _(a){return a.split("\n").map(a=>/^[\u2502\u2503\u256D\u256E\u256F\u2570\u2500\u2579\u2580\u2588\s]+$/.test(a)?"":a.replace(/^\s*[\u2502\u2503]\s?/,"").replace(/\s*[\u2502\u2503\u2588]$/,"")).join("\n")}let aa=["Claude Code cannot be launched inside another Claude Code session"],ab=[/^Error:.*Claude Code/];function ac(a){if("claude"===a||"opencode"===a||"copilot"===a||"antigravity"===a)return{requireDefaultIndicator:!1}}},46423:(a,b,c)=>{c.d(b,{$:()=>d});let d=5}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6401,exports.ids=[6401],exports.modules={20419:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(75338),e=c(93045),f=c(27289);async function g({children:a,params:b}){let{id:c}=await b,g=(0,f.z)(c);return g!==c&&(0,e.permanentRedirect)(`/worktrees/${encodeURIComponent(g)}`),(0,d.jsx)(d.Fragment,{children:a})}},25799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.Uim)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},29088:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},47614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56791:(a,b,c)=>{c.d(b,{ACU:()=>d.AC,Tu1:()=>d.Tu,ug3:()=>d.ug,ePp:()=>d.eP,mgu:()=>d.mg,lmQ:()=>d.lm,afR:()=>d.af,KG7:()=>d.KG,cDg:()=>d.cD,Jj_:()=>d.Jj,YXK:()=>d.YX,G4M:()=>d.G4,hLV:()=>d.hL,qpu:()=>d.qp,hlF:()=>d.hl,ToT:()=>d.To,oHS:()=>d.oH,UTO:()=>d.UT,pyp:()=>d.py,rYZ:()=>d.rY,yyF:()=>d.yy,pEA:()=>d.pE,z2r:()=>d.z2,cPO:()=>d.cP,DFh:()=>d.DF,lAn:()=>d.lA,QpU:()=>d.Qp,thF:()=>d.th,oZb:()=>d.oZ,ZPM:()=>d.ZP,YsC:()=>d.Ys,vgV:()=>d.vg,Rm5:()=>d.Rm,C81:()=>d.C8,u$7:()=>d.u$,MHq:()=>d.MH,BN2:()=>d.BN,m0H:()=>d.m0,r3d:()=>d.r3,TkM:()=>d.Tk,fXo:()=>d.fX,nO1:()=>d.nO,SjY:()=>d.Sj,iTB:()=>d.iT,gpF:()=>d.gp,yEE:()=>d.yE,BEB:()=>d.BE,qKv:()=>d.qK,p41:()=>d.p4,r8U:()=>d.r8,of8:()=>d.of,DNF:()=>d.DN,pZp:()=>d.pZ,kAO:()=>d.kA,VLK:()=>d.VL,CFc:()=>d.CF,NVZ:()=>d.NV,ceo:()=>d.ce,WZv:()=>d.WZ,y1O:()=>d.y1,ggW:()=>d.gg,NrL:()=>d.Nr,obI:()=>d.ob,frO:()=>d.fr,J6l:()=>d.J6,Uim:()=>d.Ui,P99:()=>d.P9,eNI:()=>d.eN,vil:()=>d.vi,uJp:()=>d.uJ,yTo:()=>d.yT,VkA:()=>d.Vk,Mt$:()=>d.Mt,UE1:()=>d.UE,PLg:()=>d.PL,jpM:()=>d.jp,pGL:()=>d.pG,nQM:()=>d.nQ,ybN:()=>d.yb,GAi:()=>d.GA,Cs6:()=>d.Cs,xRr:()=>d.xR,azd:()=>d.az,nZD:()=>d.nZ,PPl:()=>d.PP,DxD:()=>d.Dx,OaR:()=>d.O,EU4:()=>d.EU,HZx:()=>d.HZ,UYU:()=>d.UY,cwY:()=>d.cw,jJB:()=>d.jJ,DCX:()=>d.DC,PPx:()=>d.gb,yBd:()=>d.yB,uy0:()=>d.uy,sal:()=>d.s,ium:()=>d.iu,hqe:()=>d.hq,z1g:()=>d.z1,blx:()=>d.bl,jAi:()=>d.jA,ZL2:()=>d.ZL});var d=c(90444);c(88807),c(72456),c(20416),c(10406),c(29021),c(33873),c(21820),c(7956),(0,c(72626).h)("db-migration-path")},57387:(a,b,c)=>{c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},64404:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},67837:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},93045:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
@@ -0,0 +1 @@
1
+ exports.id=641,exports.ids=[641],exports.modules={10641:(a,b,c)=>{"use strict";var d=c(55174);c.o(d,"NextResponse")&&c.d(b,{NextResponse:function(){return d.NextResponse}})},15622:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"URLPattern",{enumerable:!0,get:function(){return c}});let c="undefined"==typeof URLPattern?void 0:URLPattern},55174:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ImageResponse:function(){return d.ImageResponse},NextRequest:function(){return e.NextRequest},NextResponse:function(){return f.NextResponse},URLPattern:function(){return h.URLPattern},after:function(){return i.after},connection:function(){return j.connection},unstable_rootParams:function(){return k.unstable_rootParams},userAgent:function(){return g.userAgent},userAgentFromString:function(){return g.userAgentFromString}});let d=c(98197),e=c(87129),f=c(71589),g=c(86005),h=c(15622),i=c(87522),j=c(65281),k=c(97324)},65281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"connection",{enumerable:!0,get:function(){return j}});let d=c(29294),e=c(63033),f=c(26906),g=c(11938),h=c(82831),i=c(31716);function j(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(b&&"after"===b.phase&&!(0,i.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${a.route} used "connection" inside "after(...)". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but "after(...)" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E186",enumerable:!1,configurable:!0});if(a.forceStatic)return Promise.resolve(void 0);if(a.dynamicShouldError)throw Object.defineProperty(new g.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E562",enumerable:!1,configurable:!0});if(b)switch(b.type){case"cache":{let b=Object.defineProperty(Error(`Route ${a.route} used "connection" inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E752",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,j),a.invalidDynamicUsageError??=b,b}case"private-cache":{let b=Object.defineProperty(Error(`Route ${a.route} used "connection" inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E753",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,j),a.invalidDynamicUsageError??=b,b}case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used "connection" inside a function cached with "unstable_cache(...)". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E1",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(b.renderSignal,a.route,"`connection()`");case"prerender-ppr":return(0,f.postponeWithTracking)(a.route,"connection",b.dynamicTracking);case"prerender-legacy":return(0,f.throwToInterruptStaticGeneration)("connection",a,b);case"request":return(0,f.trackDynamicDataInDynamicRender)(b),Promise.resolve(void 0)}}(0,e.throwForMissingRequestStore)("connection")}},71589:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextResponse",{enumerable:!0,get:function(){return l}});let d=c(33675),e=c(78001),f=c(17679),g=c(63036),h=c(33675),i=Symbol("internal response"),j=new Set([301,302,303,307,308]);function k(a,b){var c;if(null==a||null==(c=a.request)?void 0:c.headers){if(!(a.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let c=[];for(let[d,e]of a.request.headers)b.set("x-middleware-request-"+d,e),c.push(d);b.set("x-middleware-override-headers",c.join(","))}}class l extends Response{constructor(a,b={}){super(a,b);let c=this.headers,j=new Proxy(new h.ResponseCookies(c),{get(a,e,f){switch(e){case"delete":case"set":return(...f)=>{let g=Reflect.apply(a[e],a,f),i=new Headers(c);return g instanceof h.ResponseCookies&&c.set("x-middleware-set-cookie",g.getAll().map(a=>(0,d.stringifyCookie)(a)).join(",")),k(b,i),g};default:return g.ReflectAdapter.get(a,e,f)}}});this[i]={cookies:j,url:b.url?new e.NextURL(b.url,{headers:(0,f.toNodeOutgoingHttpHeaders)(c),nextConfig:b.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[i].cookies}static json(a,b){let c=Response.json(a,b);return new l(c.body,c)}static redirect(a,b){let c="number"==typeof b?b:(null==b?void 0:b.status)??307;if(!j.has(c))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let d="object"==typeof b?b:{},e=new Headers(null==d?void 0:d.headers);return e.set("Location",(0,f.validateURL)(a)),new l(null,{...d,headers:e,status:c})}static rewrite(a,b){let c=new Headers(null==b?void 0:b.headers);return c.set("x-middleware-rewrite",(0,f.validateURL)(a)),k(b,c),new l(null,{...b,headers:c})}static next(a){let b=new Headers(null==a?void 0:a.headers);return b.set("x-middleware-next","1"),k(a,b),new l(null,{...a,headers:b})}}},86005:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{isBot:function(){return e},userAgent:function(){return g},userAgentFromString:function(){return f}});let d=function(a){return a&&a.__esModule?a:{default:a}}(c(86404));function e(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(a)}function f(a){return{...(0,d.default)(a),isBot:void 0!==a&&e(a)}}function g({headers:a}){return f(a.get("user-agent")||void 0)}},86404:(a,b,c)=>{var d;(()=>{var e={226:function(e,f){!function(g,h){"use strict";var i="function",j="undefined",k="object",l="string",m="major",n="model",o="name",p="type",q="vendor",r="version",s="architecture",t="console",u="mobile",v="tablet",w="smarttv",x="wearable",y="embedded",z="Amazon",A="Apple",B="ASUS",C="BlackBerry",D="Browser",E="Chrome",F="Firefox",G="Google",H="Huawei",I="Microsoft",J="Motorola",K="Opera",L="Samsung",M="Sharp",N="Sony",O="Xiaomi",P="Zebra",Q="Facebook",R="Chromium OS",S="Mac OS",T=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},U=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},V=function(a,b){return typeof a===l&&-1!==W(b).indexOf(W(a))},W=function(a){return a.toLowerCase()},X=function(a,b){if(typeof a===l)return a=a.replace(/^\s\s*/,""),typeof b===j?a:a.substring(0,350)},Y=function(a,b){for(var c,d,e,f,g,j,l=0;l<b.length&&!g;){var m=b[l],n=b[l+1];for(c=d=0;c<m.length&&!g&&m[c];)if(g=m[c++].exec(a))for(e=0;e<n.length;e++)j=g[++d],typeof(f=n[e])===k&&f.length>0?2===f.length?typeof f[1]==i?this[f[0]]=f[1].call(this,j):this[f[0]]=f[1]:3===f.length?typeof f[1]!==i||f[1].exec&&f[1].test?this[f[0]]=j?j.replace(f[1],f[2]):void 0:this[f[0]]=j?f[1].call(this,j,f[2]):void 0:4===f.length&&(this[f[0]]=j?f[3].call(this,j.replace(f[1],f[2])):h):this[f]=j||h;l+=2}},Z=function(a,b){for(var c in b)if(typeof b[c]===k&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(V(b[c][d],a))return"?"===c?h:c}else if(V(b[c],a))return"?"===c?h:c;return a},$={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},_={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[r,[o,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[r,[o,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[o,r],[/opios[\/ ]+([\w\.]+)/i],[r,[o,K+" Mini"]],[/\bopr\/([\w\.]+)/i],[r,[o,K]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[o,r],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[r,[o,"UC"+D]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[r,[o,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[r,[o,"WeChat"]],[/konqueror\/([\w\.]+)/i],[r,[o,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[r,[o,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[r,[o,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[o,/(.+)/,"$1 Secure "+D],r],[/\bfocus\/([\w\.]+)/i],[r,[o,F+" Focus"]],[/\bopt\/([\w\.]+)/i],[r,[o,K+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[r,[o,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[r,[o,"Dolphin"]],[/coast\/([\w\.]+)/i],[r,[o,K+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[r,[o,"MIUI "+D]],[/fxios\/([-\w\.]+)/i],[r,[o,F]],[/\bqihu|(qi?ho?o?|360)browser/i],[[o,"360 "+D]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[o,/(.+)/,"$1 "+D],r],[/(comodo_dragon)\/([\w\.]+)/i],[[o,/_/g," "],r],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[o,r],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[o],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[o,Q],r],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[o,r],[/\bgsa\/([\w\.]+) .*safari\//i],[r,[o,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[r,[o,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[r,[o,E+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[o,E+" WebView"],r],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[r,[o,"Android "+D]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[o,r],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[r,[o,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[r,o],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[o,[r,Z,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[o,r],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[o,"Netscape"],r],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[r,[o,F+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[o,r],[/(cobalt)\/([\w\.]+)/i],[o,[r,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[s,"amd64"]],[/(ia32(?=;))/i],[[s,W]],[/((?:i[346]|x)86)[;\)]/i],[[s,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[s,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[s,"armhf"]],[/windows (ce|mobile); ppc;/i],[[s,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[s,/ower/,"",W]],[/(sun4\w)[;\)]/i],[[s,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[s,W]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[n,[q,L],[p,v]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[n,[q,L],[p,u]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[n,[q,A],[p,u]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[n,[q,A],[p,v]],[/(macintosh);/i],[n,[q,A]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[n,[q,M],[p,u]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[n,[q,H],[p,v]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[n,[q,H],[p,u]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[n,/_/g," "],[q,O],[p,u]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[n,/_/g," "],[q,O],[p,v]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[n,[q,"OPPO"],[p,u]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[n,[q,"Vivo"],[p,u]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[n,[q,"Realme"],[p,u]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[n,[q,J],[p,u]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[n,[q,J],[p,v]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[n,[q,"LG"],[p,v]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[n,[q,"LG"],[p,u]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[n,[q,"Lenovo"],[p,v]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[n,/_/g," "],[q,"Nokia"],[p,u]],[/(pixel c)\b/i],[n,[q,G],[p,v]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[n,[q,G],[p,u]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[n,[q,N],[p,u]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[n,"Xperia Tablet"],[q,N],[p,v]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[n,[q,"OnePlus"],[p,u]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[n,[q,z],[p,v]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[n,/(.+)/g,"Fire Phone $1"],[q,z],[p,u]],[/(playbook);[-\w\),; ]+(rim)/i],[n,q,[p,v]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[n,[q,C],[p,u]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[n,[q,B],[p,v]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[n,[q,B],[p,u]],[/(nexus 9)/i],[n,[q,"HTC"],[p,v]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[q,[n,/_/g," "],[p,u]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[n,[q,"Acer"],[p,v]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[n,[q,"Meizu"],[p,u]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[q,n,[p,u]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[q,n,[p,v]],[/(surface duo)/i],[n,[q,I],[p,v]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[n,[q,"Fairphone"],[p,u]],[/(u304aa)/i],[n,[q,"AT&T"],[p,u]],[/\bsie-(\w*)/i],[n,[q,"Siemens"],[p,u]],[/\b(rct\w+) b/i],[n,[q,"RCA"],[p,v]],[/\b(venue[\d ]{2,7}) b/i],[n,[q,"Dell"],[p,v]],[/\b(q(?:mv|ta)\w+) b/i],[n,[q,"Verizon"],[p,v]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[n,[q,"Barnes & Noble"],[p,v]],[/\b(tm\d{3}\w+) b/i],[n,[q,"NuVision"],[p,v]],[/\b(k88) b/i],[n,[q,"ZTE"],[p,v]],[/\b(nx\d{3}j) b/i],[n,[q,"ZTE"],[p,u]],[/\b(gen\d{3}) b.+49h/i],[n,[q,"Swiss"],[p,u]],[/\b(zur\d{3}) b/i],[n,[q,"Swiss"],[p,v]],[/\b((zeki)?tb.*\b) b/i],[n,[q,"Zeki"],[p,v]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[q,"Dragon Touch"],n,[p,v]],[/\b(ns-?\w{0,9}) b/i],[n,[q,"Insignia"],[p,v]],[/\b((nxa|next)-?\w{0,9}) b/i],[n,[q,"NextBook"],[p,v]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[q,"Voice"],n,[p,u]],[/\b(lvtel\-)?(v1[12]) b/i],[[q,"LvTel"],n,[p,u]],[/\b(ph-1) /i],[n,[q,"Essential"],[p,u]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[n,[q,"Envizen"],[p,v]],[/\b(trio[-\w\. ]+) b/i],[n,[q,"MachSpeed"],[p,v]],[/\btu_(1491) b/i],[n,[q,"Rotor"],[p,v]],[/(shield[\w ]+) b/i],[n,[q,"Nvidia"],[p,v]],[/(sprint) (\w+)/i],[q,n,[p,u]],[/(kin\.[onetw]{3})/i],[[n,/\./g," "],[q,I],[p,u]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[n,[q,P],[p,v]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[n,[q,P],[p,u]],[/smart-tv.+(samsung)/i],[q,[p,w]],[/hbbtv.+maple;(\d+)/i],[[n,/^/,"SmartTV"],[q,L],[p,w]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[q,"LG"],[p,w]],[/(apple) ?tv/i],[q,[n,A+" TV"],[p,w]],[/crkey/i],[[n,E+"cast"],[q,G],[p,w]],[/droid.+aft(\w)( bui|\))/i],[n,[q,z],[p,w]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[n,[q,M],[p,w]],[/(bravia[\w ]+)( bui|\))/i],[n,[q,N],[p,w]],[/(mitv-\w{5}) bui/i],[n,[q,O],[p,w]],[/Hbbtv.*(technisat) (.*);/i],[q,n,[p,w]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[q,X],[n,X],[p,w]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[p,w]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[q,n,[p,t]],[/droid.+; (shield) bui/i],[n,[q,"Nvidia"],[p,t]],[/(playstation [345portablevi]+)/i],[n,[q,N],[p,t]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[n,[q,I],[p,t]],[/((pebble))app/i],[q,n,[p,x]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[n,[q,A],[p,x]],[/droid.+; (glass) \d/i],[n,[q,G],[p,x]],[/droid.+; (wt63?0{2,3})\)/i],[n,[q,P],[p,x]],[/(quest( 2| pro)?)/i],[n,[q,Q],[p,x]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[q,[p,y]],[/(aeobc)\b/i],[n,[q,z],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[n,[p,u]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[n,[p,v]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[p,v]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[p,u]],[/(android[-\w\. ]{0,9});.+buil/i],[n,[q,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[r,[o,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[r,[o,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[o,r],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[r,o]],os:[[/microsoft (windows) (vista|xp)/i],[o,r],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[o,[r,Z,$]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[o,"Windows"],[r,Z,$]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[r,/_/g,"."],[o,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[o,S],[r,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[r,o],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[o,r],[/\(bb(10);/i],[r,[o,C]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[r,[o,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[r,[o,F+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[r,[o,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[r,[o,"watchOS"]],[/crkey\/([\d\.]+)/i],[r,[o,E+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[o,R],r],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[o,r],[/(sunos) ?([\w\.\d]*)/i],[[o,"Solaris"],r],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[o,r]]},aa=function(a,b){if(typeof a===k&&(b=a,a=h),!(this instanceof aa))return new aa(a,b).getResult();var c=typeof g!==j&&g.navigator?g.navigator:h,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:h,f=b?T(_,b):_,t=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[o]=h,b[r]=h,Y.call(b,d,f.browser),b[m]=typeof(a=b[r])===l?a.replace(/[^\d\.]/g,"").split(".")[0]:h,t&&c&&c.brave&&typeof c.brave.isBrave==i&&(b[o]="Brave"),b},this.getCPU=function(){var a={};return a[s]=h,Y.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[q]=h,a[n]=h,a[p]=h,Y.call(a,d,f.device),t&&!a[p]&&e&&e.mobile&&(a[p]=u),t&&"Macintosh"==a[n]&&c&&typeof c.standalone!==j&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[n]="iPad",a[p]=v),a},this.getEngine=function(){var a={};return a[o]=h,a[r]=h,Y.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[o]=h,a[r]=h,Y.call(a,d,f.os),t&&!a[o]&&e&&"Unknown"!=e.platform&&(a[o]=e.platform.replace(/chrome os/i,R).replace(/macos/i,S)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===l&&a.length>350?X(a,350):a,this},this.setUA(d),this};aa.VERSION="1.0.35",aa.BROWSER=U([o,r,m]),aa.CPU=U([s]),aa.DEVICE=U([n,q,p,t,u,w,v,x,y]),aa.ENGINE=aa.OS=U([o,r]),typeof f!==j?(e.exports&&(f=e.exports=aa),f.UAParser=aa):c.amdO?void 0===(d=(function(){return aa}).call(b,c,b,a))||(a.exports=d):typeof g!==j&&(g.UAParser=aa);var ab=typeof g!==j&&(g.jQuery||g.Zepto);if(ab&&!ab.ua){var ac=new aa;ab.ua=ac.getResult(),ab.ua.get=function(){return ac.getUA()},ab.ua.set=function(a){ac.setUA(a);var b=ac.getResult();for(var c in b)ab.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(226)})()},87522:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),function(a,b){Object.keys(a).forEach(function(c){"default"===c||Object.prototype.hasOwnProperty.call(b,c)||Object.defineProperty(b,c,{enumerable:!0,get:function(){return a[c]}})})}(c(92588),b)},92588:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"after",{enumerable:!0,get:function(){return e}});let d=c(29294);function e(a){let b=d.workAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:c}=b;return c.after(a)}},97324:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRootParam:function(){return n},unstable_rootParams:function(){return m}});let d=c(49290),e=c(26906),f=c(29294),g=c(63033),h=c(82831),i=c(84226),j=c(19121),k=c(310),l=new WeakMap;async function m(){(0,k.warnOnce)("`unstable_rootParams()` is deprecated and will be removed in an upcoming major release. Import specific root params from `next/root-params` instead.");let a=f.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new d.InvariantError("Missing workStore in unstable_rootParams"),"__NEXT_ERROR_CODE",{value:"E615",enumerable:!1,configurable:!0});let b=g.workUnitAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error(`Route ${a.route} used \`unstable_rootParams()\` in Pages Router. This API is only available within App Router.`),"__NEXT_ERROR_CODE",{value:"E641",enumerable:!1,configurable:!0});switch(b.type){case"cache":case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used \`unstable_rootParams()\` inside \`"use cache"\` or \`unstable_cache\`. Support for this API inside cache scopes is planned for a future version of Next.js.`),"__NEXT_ERROR_CODE",{value:"E642",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return function(a,b,c){switch(c.type){case"prerender-client":{let a="`unstable_rootParams`";throw Object.defineProperty(new d.InvariantError(`${a} must not be used within a client component. Next.js should be preventing ${a} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0})}case"prerender":{let d=c.fallbackRouteParams;if(d){for(let e in a)if(d.has(e)){let d=l.get(a);if(d)return d;let e=(0,h.makeHangingPromise)(c.renderSignal,b.route,"`unstable_rootParams`");return l.set(a,e),e}}break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d){for(let f in a)if(d.has(f))return function(a,b,c,d){let f=l.get(a);if(f)return f;let g={...a},h=Promise.resolve(g);return l.set(a,h),Object.keys(a).forEach(f=>{i.wellKnownProperties.has(f)||(b.has(f)?Object.defineProperty(g,f,{get(){let a=(0,i.describeStringPropertyAccess)("unstable_rootParams",f);"prerender-ppr"===d.type?(0,e.postponeWithTracking)(c.route,a,d.dynamicTracking):(0,e.throwToInterruptStaticGeneration)(a,c,d)},enumerable:!0}):h[f]=a[f])}),h}(a,d,b,c)}}}return Promise.resolve(a)}(b.rootParams,a,b);case"private-cache":case"prerender-runtime":case"request":return Promise.resolve(b.rootParams);default:return b}}function n(a){let b=`\`import('next/root-params').${a}()\``,c=f.workAsyncStorage.getStore();if(!c)throw Object.defineProperty(new d.InvariantError(`Missing workStore in ${b}`),"__NEXT_ERROR_CODE",{value:"E764",enumerable:!1,configurable:!0});let e=g.workUnitAsyncStorage.getStore();if(!e)throw Object.defineProperty(Error(`Route ${c.route} used ${b} outside of a Server Component. This is not allowed.`),"__NEXT_ERROR_CODE",{value:"E774",enumerable:!1,configurable:!0});let i=j.actionAsyncStorage.getStore();if(i){if(i.isAppRoute)throw Object.defineProperty(Error(`Route ${c.route} used ${b} inside a Route Handler. Support for this API in Route Handlers is planned for a future version of Next.js.`),"__NEXT_ERROR_CODE",{value:"E765",enumerable:!1,configurable:!0});if(i.isAction&&"action"===e.phase)throw Object.defineProperty(Error(`${b} was used inside a Server Action. This is not supported. Functions from 'next/root-params' can only be called in the context of a route.`),"__NEXT_ERROR_CODE",{value:"E766",enumerable:!1,configurable:!0})}switch(e.type){case"unstable-cache":case"cache":throw Object.defineProperty(Error(`Route ${c.route} used ${b} inside \`"use cache"\` or \`unstable_cache\`. Support for this API inside cache scopes is planned for a future version of Next.js.`),"__NEXT_ERROR_CODE",{value:"E760",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":var k=a,l=c,m=e,n=b;if("prerender-client"===m.type)throw Object.defineProperty(new d.InvariantError(`${n} must not be used within a client component. Next.js should be preventing ${n} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});let p=m.rootParams;switch(m.type){case"prerender":if(m.fallbackRouteParams&&m.fallbackRouteParams.has(k))return(0,h.makeHangingPromise)(m.renderSignal,l.route,n);break;case"prerender-ppr":if(m.fallbackRouteParams&&m.fallbackRouteParams.has(k))return o(k,l,m,n)}return Promise.resolve(p[k])}return Promise.resolve(e.rootParams[a])}async function o(a,b,c,d){let f=(0,i.describeStringPropertyAccess)(d,a);switch(c.type){case"prerender-ppr":return(0,e.postponeWithTracking)(b.route,f,c.dynamicTracking);case"prerender-legacy":return(0,e.throwToInterruptStaticGeneration)(f,b,c)}}},98197:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=848,exports.ids=[848],exports.modules={9758:(a,b,c)=>{c.d(b,{Ck:()=>h});var d=c(21124),e=c(38301),f=c.n(e),g=c(62484);function h({children:a,as:b="div",className:c=""}){let e=function a(b){return null==b||"boolean"==typeof b?"":"string"==typeof b?b:"number"==typeof b?String(b):Array.isArray(b)?b.map(a).join(""):f().isValidElement(b)?a(b.props.children):""}(a);if(!e||0===e.trim().length)return(0,d.jsx)(b,{className:c||void 0,children:a});let h=`relative group ${"span"===b?"block ":""}${c}`.trim();return(0,d.jsxs)(b,{className:h,"data-testid":"code-block-with-copy",children:[a,(0,d.jsx)(g.i,{text:e,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},9815:(a,b,c)=>{c.d(b,{B:()=>B});var d=c(21124),e=c(38301),f=c(20481),g=c(73451),h=c(17252),i=c(90349),j=c(85389),k=c(3805);let l={status:"loading",options:[]};function m({selectedWorktreeId:a,onSelect:b,disabled:c=!1}){let h=(0,f.c)("skills"),[i,j]=(0,e.useState)(l),[m,o]=(0,e.useState)(0),p=(0,e.useCallback)(()=>o(a=>a+1),[]);return"loading"===i.status?(0,d.jsxs)("div",{className:"space-y-2","data-testid":"skill-target-loading",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("target.loading")}),(0,d.jsx)(g.EA,{className:"h-24 w-full rounded-lg"})]}):"error"===i.status?(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-target-error",children:[(0,d.jsx)(k.u,{tone:"danger",children:h("target.errorNotice")}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:p,"data-testid":"skill-target-retry",children:h("target.retry")})]}):0===i.options.length?(0,d.jsx)(g.Zp,{"data-testid":"skill-target-empty",children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("target.empty")})}):(0,d.jsxs)("div",{className:"space-y-3","data-testid":"skill-target-selector",children:[(0,d.jsx)("div",{role:"radiogroup","aria-label":h("target.heading"),className:"space-y-2",children:i.options.map(e=>(0,d.jsx)(n,{option:e,selected:e.id===a,disabled:c,onSelect:b},e.id))}),(0,d.jsx)(k.u,{tone:"neutral","data-testid":"skill-target-branch-notice",children:h("target.branchFreshnessNotice")})]})}function n({option:a,selected:b,disabled:c,onSelect:e}){let h=(0,f.c)("skills"),i=a.liveBranch??a.syncedBranch;return(0,d.jsxs)("button",{type:"button",role:"radio","aria-checked":b,disabled:c,onClick:()=>e(a.id),"data-testid":`skill-target-option-${a.id}`,className:`w-full rounded-lg border px-3 py-2.5 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${b?"border-accent-500 bg-accent-50 dark:bg-accent-950/40":"border-border bg-card hover:bg-muted"}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold text-foreground break-all",children:a.name}),b&&(0,d.jsx)(g.Ex,{variant:"info",children:h("target.selected")})]}),(0,d.jsxs)("dl",{className:"mt-1.5 grid grid-cols-1 gap-x-4 gap-y-1 sm:grid-cols-2",children:[(0,d.jsx)(o,{label:h("target.repository"),children:a.repositoryName}),(0,d.jsx)(o,{label:h("target.branch"),children:i??h("target.branchUnknown")}),(0,d.jsx)(o,{label:h("target.agents"),children:a.agents.length>0?a.agents.join(", "):h("target.agentsNone")}),(0,d.jsx)(o,{label:h("target.workingTree"),children:h(null===a.dirty?"target.workingTreeUnknown":a.dirty?"target.workingTreeDirty":"target.workingTreeClean")})]}),a.sessionRunning&&(0,d.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground","data-testid":`skill-target-session-${a.id}`,children:h("target.sessionRunning")})]})}function o({label:a,children:b}){return(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:a}),(0,d.jsx)("dd",{className:"text-xs text-foreground break-words",children:b})]})}var p=c(27884);function q({label:a,children:b}){return(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:a}),(0,d.jsx)("dd",{className:"mt-0.5 break-words text-sm text-foreground",children:b})]})}function r({level:a,kind:b,label:c}){let e=(0,f.c)("skills");return(0,d.jsxs)(g.Ex,{variant:p.eK[a],"data-testid":`skill-plan-risk-${b}-${a}`,children:[c,": ",e(p.pP[a])]})}function s({entry:a}){let b=(0,f.c)("skills"),c=p.KL[a.reason];return(0,d.jsxs)("li",{className:"space-y-1.5 rounded-md border border-border px-3 py-2","data-testid":`skill-plan-file-${a.path}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(g.Ex,{variant:p.tC[a.change],children:b(p.AS[a.change])}),(0,d.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:a.path}),a.generated&&(0,d.jsx)(g.Ex,{variant:"gray",children:b("plan.fileGenerated")})]}),c&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b(c)}),a.gitIgnored&&(0,d.jsx)("p",{className:"text-xs text-warning-foreground",children:b("plan.gitIgnored")}),a.binary?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("plan.diffBinary")}):a.diff?(0,d.jsxs)("details",{children:[(0,d.jsx)("summary",{className:"cursor-pointer text-xs text-accent-600 dark:text-accent-400",children:b("plan.diffToggle",{additions:a.additions,deletions:a.deletions})}),(0,d.jsx)("pre",{className:"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] leading-snug text-foreground",children:a.diff}),a.diffTruncated&&(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:b("plan.diffTruncated")})]}):null]})}function t({plan:a}){let b=(0,f.c)("skills"),{target:c,skill:e}=a,h=e.compatibility.commandmate;return(0,d.jsxs)(g.Zp,{className:"space-y-4","data-testid":"skill-install-plan",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("plan.heading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("plan.expiresAt",{timestamp:a.expiresAt})})]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.targetHeading")}),(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(q,{label:b("target.repository"),children:c.repositoryName}),(0,d.jsx)(q,{label:b("target.heading"),children:c.worktreeName}),(0,d.jsx)(q,{label:b("target.branch"),children:c.branch??b("target.branchUnknown")}),(0,d.jsx)(q,{label:b("plan.headStateLabel"),children:b(p.kF[c.headState]??"plan.headState.unknown")}),(0,d.jsx)(q,{label:b("target.workingTree"),children:c.workingTreeDirty?b("target.workingTreeDirty"):b("target.workingTreeClean")}),(0,d.jsx)(q,{label:b("plan.installRoot"),children:(0,d.jsx)("span",{className:"break-all font-mono text-xs",children:(c.installRoots&&c.installRoots.length>0?c.installRoots:[c.installRoot]).map(a=>(0,d.jsx)("span",{className:"block",children:a},a))})}),(0,d.jsx)(q,{label:b("plan.existingInstall"),children:c.existingInstall?b("plan.existingInstallVersion",{version:c.existingInstall.version}):b("plan.existingInstallNone")}),(0,d.jsx)(q,{label:b("detail.recommendedVersion"),children:(0,d.jsx)("span",{className:"font-mono text-xs",children:e.version})})]})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-risk-section",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.riskHeading")}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,d.jsx)(r,{level:e.declaredRisk,kind:"declared",label:b("plan.riskDeclared")}),(0,d.jsx)(r,{level:e.computedRisk,kind:"computed",label:b("plan.riskComputed")}),(0,d.jsx)(r,{level:e.effectiveRisk,kind:"effective",label:b("plan.riskEffective")})]}),(0,d.jsx)("p",{className:"break-words text-sm text-foreground",children:e.riskRationale}),(0,d.jsx)(k.u,{tone:"neutral",children:b("plan.riskNotice")})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-permissions",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("permissions.heading")}),e.declaredPermissions.length>0?(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.declaredPermissions.map(a=>(0,d.jsx)(g.Ex,{variant:"warning",children:p.z2[a]?b(p.z2[a]):a},a))}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.permissionsNone")}),(0,d.jsx)(k.u,{tone:"warning",children:b("permissions.declarationOnlyNotice")})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-requirements",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("requirements.heading")}),0===e.requirements.commands.length&&0===e.requirements.networkHosts.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.requirementsNone")}):(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[e.requirements.commands.length>0&&(0,d.jsx)(q,{label:b("plan.requirementsCommands"),children:e.requirements.commands.map(a=>`${a.name} ${a.versionRange??b("plan.commandAnyVersion")}`).join(", ")}),e.requirements.networkHosts.length>0&&(0,d.jsx)(q,{label:b("plan.requirementsHosts"),children:e.requirements.networkHosts.join(", ")})]})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-scripts",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.scriptsHeading")}),0===e.executablePaths.length&&0===e.scriptPaths.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.scriptsNone")}):(0,d.jsx)("ul",{className:"space-y-1",children:[...new Set([...e.scriptPaths,...e.executablePaths])].map(a=>(0,d.jsx)("li",{className:"break-all font-mono text-xs text-foreground",children:a},a))})]}),"compatible"!==h.status&&(0,d.jsx)(k.u,{tone:"warning","data-testid":"skill-plan-compatibility-notice",children:b((0,p.e5)(h.messageKey),{range:h.requiredRange,currentVersion:h.currentVersion??""})}),a.warnings.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-warnings",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.warningsHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.warnings.map(a=>(0,d.jsx)("li",{className:"text-xs text-warning-foreground",children:p.RO[a]?b(p.RO[a]):a},a))})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-files",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.filesHeading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-plan-stats",children:b("plan.stats",{added:a.stats.added,modified:a.stats.modified,unchanged:a.stats.unchanged,conflicted:a.stats.conflicted,unmanaged:a.stats.unmanaged})}),0===a.files.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.filesEmpty")}):(0,d.jsx)("ul",{className:"space-y-2",children:a.files.map(a=>(0,d.jsx)(s,{entry:a},a.path))})]}),a.blockers.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-install-blockers",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:b("plan.blockersHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),a.code.startsWith("skills.")?b((0,p.e5)(a.code),{range:h.requiredRange,currentVersion:h.currentVersion??""}):p.KL[a.code]?b(p.KL[a.code]):a.code]},`${a.code}:${a.path??""}`))}),(0,d.jsx)(k.u,{tone:"danger",children:b("plan.blockedNotice")})]})]})}function u({entry:a}){let b=(0,f.c)("skills"),c=p.Mj[a.disposition],e=p.hJ[a.reason];return(0,d.jsxs)("li",{className:"flex flex-wrap items-center gap-2","data-testid":`skill-uninstall-file-${a.path}`,children:[(0,d.jsx)(g.Ex,{variant:"remove"===a.disposition?"info":"warning",children:c?b(c):a.disposition}),(0,d.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:a.path}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:b(e)})]})}function v({plan:a}){let b=(0,f.c)("skills"),{target:c,skill:e}=a;return(0,d.jsxs)(g.Zp,{className:"space-y-4","data-testid":"skill-uninstall-plan",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("uninstall.heading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("uninstall.expiresAt",{timestamp:a.expiresAt})})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(q,{label:b("target.repository"),children:c.repositoryName}),(0,d.jsx)(q,{label:b("target.heading"),children:c.worktreeName}),(0,d.jsx)(q,{label:b("target.branch"),children:c.branch??b("target.branchUnknown")}),(0,d.jsx)(q,{label:b("uninstall.installedVersion"),children:(0,d.jsx)("span",{className:"font-mono text-xs",children:e.version||b("uninstall.versionUnknown")})}),(0,d.jsx)(q,{label:b("plan.installRoot"),children:(0,d.jsx)("span",{className:"break-all font-mono text-xs",children:c.installRoot})}),(0,d.jsx)(q,{label:b("target.workingTree"),children:c.workingTreeDirty?b("target.workingTreeDirty"):b("target.workingTreeClean")})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-uninstall-stats",children:b("uninstall.stats",{removable:a.stats.removable,modified:a.stats.modified,missing:a.stats.missing,unknown:a.stats.unknown,irregular:a.stats.irregular})}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("uninstall.removalsHeading")}),0===a.removals.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("uninstall.removalsEmpty")}):(0,d.jsx)("ul",{className:"space-y-1.5",children:a.removals.map(a=>(0,d.jsx)(u,{entry:a},a.path))})]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("uninstall.retainedHeading")}),0===a.retained.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("uninstall.retainedEmpty")}):(0,d.jsx)("ul",{className:"space-y-1.5",children:a.retained.map(a=>(0,d.jsx)(u,{entry:a},a.path))})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[a.skill.agents.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5","data-testid":"skill-uninstall-agents",children:a.skill.agents.map(a=>(0,d.jsx)(g.Ex,{variant:"gray",children:(0,h.f_)(a.agent)},a.agent))}),(0,d.jsx)(k.u,{tone:"neutral",children:b((0,p.e5)(a.nextActionKey))})]}),a.blockers.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-uninstall-blockers",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:b("uninstall.blockersHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),b((0,p.e5)(a.messageKey))]},`${a.code}:${a.path??""}`))})]})]})}var w=c(30156);let x={worktreeId:null,busy:null,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null};function y(a){return{...a,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null}}function z({failure:a}){let b=(0,f.c)("skills");return(0,d.jsxs)("div",{className:"space-y-2","data-testid":"skill-operation-error",children:[(0,d.jsxs)(k.u,{tone:"danger",children:[(0,d.jsx)("p",{className:"font-medium",children:b("operation.errorHeading")}),(0,d.jsx)("p",{className:"mt-1",children:b((0,p.FW)(a.code))}),(0,d.jsx)("p",{className:"mt-1 break-words",children:b("state.errorCode",{code:a.code})})]}),a.nextActionKey&&(0,d.jsx)(k.u,{tone:"warning",children:b((0,p.e5)(a.nextActionKey))}),a.blockers&&a.blockers.length>0&&(0,d.jsx)("ul",{className:"space-y-1","data-testid":"skill-operation-error-blockers",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),b((0,p.e5)(a.messageKey))]},`${a.code}:${a.path??""}`))})]})}function A({agents:a,skillId:b,version:c}){let e=(0,f.c)("skills");return 0===a.length?null:(0,d.jsxs)("div",{className:"space-y-1","data-testid":"skill-operation-reload",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e("operation.reloadHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.map(a=>(0,d.jsx)("li",{className:"text-xs text-muted-foreground",children:e((0,p.e5)(a.messageKey),{agent:(0,h.f_)(a.agent),skillId:b,version:c})},a.agent))})]})}function B({skillId:a,version:b,blockedReason:c,worktreeId:h,agents:l=[]}){let n=(0,f.c)("skills"),[o,q]=(0,e.useState)(()=>h?{...x,worktreeId:h}:x),r=(0,e.useCallback)(a=>{q(b=>b.worktreeId===a?b:y({...b,worktreeId:a,busy:null}))},[]),s=(0,e.useCallback)(async()=>{let c=o.worktreeId;if(!c)return;q(a=>({...y(a),busy:"install-plan"}));let d=await (0,w.Q6)(c,a,{version:b??void 0});q(a=>({...a,busy:null,installPlan:d.ok?d.data.plan:null,failure:d.ok?null:d.failure}))},[a,o.worktreeId,b]),u=(0,e.useCallback)(async()=>{var b;let c=o.worktreeId,d=o.installPlan;if(!c||!d||d.requiresRiskAcknowledgement&&!o.riskAcknowledged)return;q(a=>({...a,busy:"install-apply",failure:null}));let e=await (0,w.Xi)(c,a,{planToken:d.token,version:d.skill.version,acknowledgeRisk:!!d.requiresRiskAcknowledgement||void 0,idempotencyKey:(b=d.token,`skill-install-${b}`)});e.ok&&(0,i.k)(c),q(a=>({...a,busy:null,installPlan:e.ok?null:a.installPlan,installResult:e.ok?e.data:null,failure:e.ok?null:e.failure}))},[a,o.installPlan,o.riskAcknowledged,o.worktreeId]),B=(0,e.useCallback)(async()=>{let b=o.worktreeId;if(!b)return;q(a=>({...y(a),busy:"uninstall-plan"}));let c=await (0,w.hN)(b,a);q(a=>({...a,busy:null,uninstallPlan:c.ok?c.data.plan:null,failure:c.ok?null:c.failure}))},[a,o.worktreeId]),C=(0,e.useCallback)(async()=>{var b;let c=o.worktreeId,d=o.uninstallPlan;if(!c||!d)return;q(a=>({...a,busy:"uninstall-apply",failure:null}));let e=await (0,w.E)(c,a,{planToken:d.token,idempotencyKey:(b=d.token,`skill-uninstall-${b}`)});q(a=>({...a,busy:null,uninstallPlan:e.ok?null:a.uninstallPlan,uninstallResult:e.ok?e.data:null,failure:e.ok?null:e.failure}))},[a,o.uninstallPlan,o.worktreeId]),D=(0,e.useCallback)(()=>{q(a=>y(a))},[]),E=null!==o.busy,F=o.installPlan,G=o.uninstallPlan,H=c??n(o.worktreeId?"plan.ready":"plan.chooseTarget"),I=null!==F&&F.requiresRiskAcknowledgement&&!o.riskAcknowledged;return(0,d.jsxs)("div",{className:"space-y-3","data-testid":"skill-install-panel",children:[!h&&(0,d.jsx)(m,{selectedWorktreeId:o.worktreeId,onSelect:r,disabled:E}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:"primary",disabled:E||null!==c||!o.worktreeId,onClick:s,"data-testid":"skill-install-action","aria-describedby":"skill-install-reason",children:n("install-plan"===o.busy?"plan.building":"plan.build")}),(0,d.jsx)(g.$n,{variant:"secondary",disabled:E||!o.worktreeId,onClick:B,"data-testid":"skill-uninstall-action",children:n("uninstall-plan"===o.busy?"uninstall.building":"uninstall.build")})]}),(0,d.jsx)("p",{id:"skill-install-reason",className:"text-sm text-muted-foreground","data-testid":"skill-install-reason",children:H}),l.length>0&&(0,d.jsxs)("div",{className:"space-y-1","data-testid":"skill-install-reload-preview",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:n("operation.reloadHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:l.map(a=>(0,d.jsx)(j.m,{agent:a,variant:"reload"},a.agent))})]}),o.failure&&(0,d.jsx)(z,{failure:o.failure}),F&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(t,{plan:F}),F.requiresRiskAcknowledgement&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-install-risk-acknowledgement",children:[(0,d.jsx)(k.u,{tone:"danger",children:n((0,p.e5)(F.riskAcknowledgementMessageKey??"skills.plan.highRiskAcknowledgement"))}),(0,d.jsxs)("label",{className:"flex items-start gap-2 text-sm text-foreground",children:[(0,d.jsx)(g.Sc,{checked:o.riskAcknowledged,onCheckedChange:a=>q(b=>({...b,riskAcknowledged:!0===a})),disabled:E,"data-testid":"skill-install-risk-checkbox",className:"mt-0.5"}),(0,d.jsx)("span",{children:n("plan.acknowledgeLabel")})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:F.requiresRiskAcknowledgement?"danger":"primary",disabled:E||!F.installable||I,onClick:u,"data-testid":"skill-install-confirm",children:n("install-apply"===o.busy?"plan.confirming":"plan.confirm")}),(0,d.jsx)(g.$n,{variant:"ghost",disabled:E,onClick:D,"data-testid":"skill-install-discard",children:n("plan.discard")})]})]}),G&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(v,{plan:G}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:"danger",disabled:E||!G.removable,onClick:C,"data-testid":"skill-uninstall-confirm",children:n("uninstall-apply"===o.busy?"uninstall.confirming":"uninstall.confirm")}),(0,d.jsx)(g.$n,{variant:"ghost",disabled:E,onClick:D,"data-testid":"skill-uninstall-discard",children:n("plan.discard")})]})]}),o.installResult&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-install-result",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:n("operation.installedHeading")}),(0,d.jsx)(k.u,{tone:"info",children:n((0,p.e5)(o.installResult.operation.nextActionKey))}),o.installResult.operation.replayed&&(0,d.jsx)(k.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:n("operation.replayNotice")}),o.installResult.install&&"files"in o.installResult.install&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:n("operation.filesWritten",{count:o.installResult.install.files.length})}),"reload"in o.installResult&&(0,d.jsx)(A,{agents:o.installResult.reload.agents,skillId:o.installResult.reload.skillId,version:o.installResult.reload.version}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:D,"data-testid":"skill-operation-reset",children:n("operation.startOver")})]}),o.uninstallResult&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-uninstall-result",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:n("operation.uninstalledHeading")}),(0,d.jsx)(k.u,{tone:"info",children:n((0,p.e5)(o.uninstallResult.operation.nextActionKey))}),o.uninstallResult.operation.replayed&&(0,d.jsx)(k.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:n("operation.replayNotice")}),o.uninstallResult.uninstall&&"removedFiles"in o.uninstallResult.uninstall&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:n("operation.filesRemoved",{count:o.uninstallResult.uninstall.removedFiles.length})}),"reload"in o.uninstallResult&&(0,d.jsx)(A,{agents:o.uninstallResult.reload.agents,skillId:o.uninstallResult.reload.skillId,version:o.uninstallResult.reload.version}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:D,"data-testid":"skill-operation-reset",children:n("operation.startOver")})]})]})}},12894:(a,b,c)=>{c.d(b,{o:()=>d});function d(a){return a?a.split("/").map(encodeURIComponent).join("/"):""}},28593:(a,b,c)=>{c.d(b,{Xz:()=>j,qW:()=>k,uE:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(93983),g=c(73451),h=c(17252),i=c(27884);function j({status:a,className:b}){let c=(0,e.c)("skills");return(0,d.jsx)(g.Ex,{variant:i.H$[a],className:b,"data-testid":`skill-compatibility-${a}`,children:c(i.OV[a])})}function k({risk:a,className:b}){let c=(0,e.c)("skills");return(0,d.jsxs)(g.Ex,{variant:i.eK[a],className:b,"data-testid":`skill-declared-risk-${a}`,children:["high"===a&&(0,d.jsx)(f.A,{size:12,"aria-hidden":"true",className:"mr-1 shrink-0"}),c("risk.declaredLabel",{level:c(i.pP[a])})]})}function l({agent:a}){let b=(0,e.c)("skills");return(0,d.jsxs)(g.Ex,{variant:i.Et[a.support],"data-testid":`skill-agent-${a.agent}-${a.support}`,children:[(0,h.f_)(a.agent),": ",b((0,i.e5)(a.labelKey))]})}},62484:(a,b,c)=>{c.d(b,{i:()=>j});var d=c(21124),e=c(38301),f=c(63156),g=c(58970);function h(){return(0,d.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function i(){return(0,d.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function j({text:a,className:b="",label:c="Copy"}){let[j,k]=(0,e.useState)(!1),l=(0,e.useRef)(null),m=(0,e.useCallback)(async()=>{try{await (0,f.l)(a),k(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>k(!1),g.s7)}catch{}},[a]);return(0,d.jsxs)("button",{type:"button",onClick:m,className:`inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ${b}`,"aria-label":j?"Copied":c,title:j?"Copied!":c,children:[j?(0,d.jsx)(i,{}):(0,d.jsx)(h,{}),(0,d.jsx)("span",{children:j?"Copied":c})]})}},63156:(a,b,c)=>{c.d(b,{l:()=>e});let d=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function e(a){if(!a||0===a.trim().length)return;let b=a.replace(d,"");if(navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(b);return}catch{}let c=document.createElement("textarea");c.value=b,c.style.position="fixed",c.style.left="-9999px",c.style.top="-9999px",c.style.opacity="0",document.body.appendChild(c),c.focus(),c.select();try{document.execCommand("copy")}finally{document.body.removeChild(c)}}},80855:(a,b,c)=>{c.d(b,{G8:()=>x});var d=c(21124),e=c(38301),f=c.n(e),g=c(20481),h=c(79206),i=c(18954),j=c(26295),k=c(29701),l=c(28752),m=c(37950);c(31230);var n=c(13973),o=c(17793);let p=(0,n.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)(o.y,{size:"sm"}),(0,d.jsx)("span",{children:a("mermaid.loading")})]})}});function q({className:a,children:b}){if(a&&a.split(" ").includes("language-mermaid")){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)(p,{code:a})}return(0,d.jsx)("code",{className:a,children:b})}var r=c(9758),s=c(46831);function t(a,b){if(!b)return null;let c=a.substring(0,a.lastIndexOf("/")+1);try{let a=new URL(c,"file:///"),d=new URL(b,a),e=decodeURIComponent(d.pathname);if(e.startsWith("/")){let a=e.substring(1);if(a.length>0)return a}}catch{}return null}let u={...s.j,attributes:{...s.j.attributes,a:[...(s.j.attributes?.a??[]).filter(a=>"href"!==a),["href",/^(?:#|mailto:|tel:|https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/]],img:[...(s.j.attributes?.img??[]).filter(a=>"src"!==a),["src",/^(?:https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/],"alt","width","height"]}};var v=c(12894);function w({apiUrl:a,alt:b,width:c,height:f}){let h=(0,g.c)("worktree"),[i,j]=(0,e.useState)(null);return i?(0,d.jsx)("img",{src:i,alt:b,width:c,height:f,style:{maxWidth:c||"100%"}}):(0,d.jsx)("span",{style:{color:"#999"},children:h("markdownPreview.loadingImage")})}let x=(0,e.memo)(function({content:a,onOpenFile:b,currentFilePath:c,worktreeId:g}){let n=(0,e.useRef)(b);n.current=b;let o=(0,e.useRef)(c);o.current=c;let p=(0,e.useRef)(g);p.current=g;let s=(0,e.useCallback)((a,b)=>{let c=!b||0===b.length||b.length>2048||/[\x00-\x1f\x7f]/.test(b)?null:b;if(c)switch(c.startsWith("#")?"anchor":c.startsWith("http://")||c.startsWith("https://")||c.startsWith("mailto:")||c.startsWith("tel:")?"external":"relative"){case"anchor":break;case"external":a.preventDefault(),window.open(c,"_blank","noopener,noreferrer");break;case"relative":{a.preventDefault();let b=o.current,d=n.current;if(b&&d){let a=t(b,c);a&&d(a)}}}},[]),x=(0,e.useMemo)(()=>({code:q,pre:({children:a})=>!function(a){let b=f().Children.toArray(a)[0];if(!f().isValidElement(b))return!1;let c=b.props.className;return"string"==typeof c&&c.split(" ").includes("language-mermaid")}(a)?(0,d.jsx)(r.Ck,{children:(0,d.jsx)("pre",{className:"overflow-x-auto",children:a})}):(0,d.jsx)("pre",{children:a}),img:({src:a,alt:b,width:c,height:e,...f})=>{let g=c??f.node?.properties?.width,h=e??f.node?.properties?.height;if("string"==typeof a&&!a.startsWith("http://")&&!a.startsWith("https://")&&!a.startsWith("data:")){let c=o.current,e=p.current;if(c&&e){let f=t(c,a);if(f){let a=`/api/worktrees/${e}/files/${(0,v.o)(f)}`;return(0,d.jsx)(w,{apiUrl:a,alt:b??"",width:g,height:h})}}}return(0,d.jsx)("img",{src:a,alt:b??"",width:g,height:h,style:{maxWidth:g||"100%"}})},a:({href:a,children:b,...c})=>a?(0,d.jsx)("a",{...c,href:a,onClick:b=>s(b,a),children:b}):(0,d.jsx)("a",{...c,children:b})}),[s]),y=(0,e.useMemo)(()=>[i.A],[]),z=(0,e.useMemo)(()=>[j.A,[k.A,u],l.A,m.A],[]);return(0,d.jsx)(h.oz,{remarkPlugins:y,rehypePlugins:z,components:x,children:a})})},81136:(a,b,c)=>{c.d(b,{Co:()=>d,Ms:()=>f,td:()=>e});let d=".agents/skills",e=".claude/skills",f="skills.permissions.declarationOnlyNotice"},85389:(a,b,c)=>{c.d(b,{m:()=>j});var d=c(21124);c(38301);var e=c(20481),f=c(17252),g=c(3805),h=c(27884);function i({axis:a,agentName:b}){let c=(0,e.c)("skills");return(0,d.jsxs)("li",{className:"text-xs text-muted-foreground","data-testid":`skill-agent-axis-${a.axis}`,children:[(0,d.jsx)("span",{className:"font-medium text-foreground",children:c((0,h.e5)(a.axisKey))}),": ",(0,d.jsx)("span",{"data-testid":`skill-agent-axis-${a.axis}-${a.outcome}`,children:c((0,h.e5)(a.outcomeKey))})," — ",c((0,h.e5)(a.evidenceKindKey)),a.limitationKey&&(0,d.jsx)("span",{className:"mt-0.5 block","data-testid":`skill-agent-axis-${a.axis}-limitation`,children:c((0,h.e5)(a.limitationKey),{agent:b})})]})}function j({agent:a,variant:b="full"}){let c=(0,e.c)("skills"),j=(0,f.f_)(a.agent),k=a.measured;return"reload"===b?(0,d.jsx)("li",{className:"text-xs text-muted-foreground","data-testid":`skill-agent-reload-${a.agent}`,children:c((0,h.e5)(a.reloadKey),{agent:j})}):(0,d.jsxs)("div",{className:"space-y-1","data-testid":`skill-agent-evidence-${a.agent}`,children:[(0,d.jsx)("p",{className:"text-xs font-medium text-foreground",children:j}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground break-words",children:c("compatibility.declaredLabel",{support:c((0,h.e5)(a.declaredLabelKey))})}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground break-words",children:[c("compatibility.evidence"),": ",a.evidence]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground break-words","data-testid":`skill-agent-verification-${a.agent}`,children:c((0,h.e5)(a.verificationKey))}),k?(0,d.jsxs)("div",{className:"space-y-0.5 border-l-2 border-border pl-2",children:[(0,d.jsx)("p",{className:"text-xs font-medium text-foreground",children:c("compatibility.measuredHeading")}),(0,d.jsxs)("ul",{className:"space-y-0.5",children:[(0,d.jsx)(i,{axis:k.discovery,agentName:j}),(0,d.jsx)(i,{axis:k.invocation,agentName:j})]}),k.testedVersion&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:c("compatibility.testedVersion",{agent:j,version:k.testedVersion})}),k.testedDate&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:c("compatibility.testedDate",{date:k.testedDate})}),k.discoveryRoots.length>0&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground break-all",children:c("compatibility.discoveryRoots",{roots:k.discoveryRoots.join(", ")})}),k.evidenceSource&&(0,d.jsxs)("p",{className:"text-xs text-muted-foreground break-all",children:[c("compatibility.evidenceSource"),": ",k.evidenceSource]}),k.stale&&(0,d.jsx)(g.u,{tone:"warning","data-testid":`skill-agent-evidence-stale-${a.agent}`,children:c("compatibility.evidenceStale",{days:k.ageDays??0})})]}):a.skipReasonKey&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground break-words","data-testid":`skill-agent-skip-reason-${a.agent}`,children:c((0,h.e5)(a.skipReasonKey))}),(0,d.jsxs)("p",{className:"text-xs text-muted-foreground break-words",children:[(0,d.jsx)("span",{className:"font-medium text-foreground",children:c("compatibility.reloadHeading",{agent:j})}),": ",c((0,h.e5)(a.reloadKey),{agent:j})]})]})}},90349:(a,b,c)=>{c.d(b,{I:()=>d,k:()=>e});let d="skill:installed";function e(a){}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=8536,exports.ids=[8536],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.Uim)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},56791:(a,b,c)=>{c.d(b,{ACU:()=>d.AC,Tu1:()=>d.Tu,ug3:()=>d.ug,ePp:()=>d.eP,mgu:()=>d.mg,lmQ:()=>d.lm,afR:()=>d.af,KG7:()=>d.KG,cDg:()=>d.cD,Jj_:()=>d.Jj,YXK:()=>d.YX,G4M:()=>d.G4,hLV:()=>d.hL,qpu:()=>d.qp,hlF:()=>d.hl,ToT:()=>d.To,oHS:()=>d.oH,UTO:()=>d.UT,pyp:()=>d.py,rYZ:()=>d.rY,yyF:()=>d.yy,pEA:()=>d.pE,z2r:()=>d.z2,cPO:()=>d.cP,DFh:()=>d.DF,lAn:()=>d.lA,QpU:()=>d.Qp,thF:()=>d.th,oZb:()=>d.oZ,ZPM:()=>d.ZP,YsC:()=>d.Ys,vgV:()=>d.vg,Rm5:()=>d.Rm,C81:()=>d.C8,u$7:()=>d.u$,MHq:()=>d.MH,BN2:()=>d.BN,m0H:()=>d.m0,r3d:()=>d.r3,TkM:()=>d.Tk,fXo:()=>d.fX,nO1:()=>d.nO,SjY:()=>d.Sj,iTB:()=>d.iT,gpF:()=>d.gp,yEE:()=>d.yE,BEB:()=>d.BE,qKv:()=>d.qK,p41:()=>d.p4,r8U:()=>d.r8,of8:()=>d.of,DNF:()=>d.DN,pZp:()=>d.pZ,kAO:()=>d.kA,VLK:()=>d.VL,CFc:()=>d.CF,NVZ:()=>d.NV,ceo:()=>d.ce,WZv:()=>d.WZ,y1O:()=>d.y1,ggW:()=>d.gg,NrL:()=>d.Nr,obI:()=>d.ob,frO:()=>d.fr,J6l:()=>d.J6,Uim:()=>d.Ui,P99:()=>d.P9,eNI:()=>d.eN,vil:()=>d.vi,uJp:()=>d.uJ,yTo:()=>d.yT,VkA:()=>d.Vk,Mt$:()=>d.Mt,UE1:()=>d.UE,PLg:()=>d.PL,jpM:()=>d.jp,pGL:()=>d.pG,nQM:()=>d.nQ,ybN:()=>d.yb,GAi:()=>d.GA,Cs6:()=>d.Cs,xRr:()=>d.xR,azd:()=>d.az,nZD:()=>d.nZ,PPl:()=>d.PP,DxD:()=>d.Dx,OaR:()=>d.O,EU4:()=>d.EU,HZx:()=>d.HZ,UYU:()=>d.UY,cwY:()=>d.cw,jJB:()=>d.jJ,DCX:()=>d.DC,PPx:()=>d.gb,yBd:()=>d.yB,uy0:()=>d.uy,sal:()=>d.s,ium:()=>d.iu,hqe:()=>d.hq,z1g:()=>d.z1,blx:()=>d.bl,jAi:()=>d.jA,ZL2:()=>d.ZL});var d=c(90444);c(88807),c(72456),c(20416),c(10406),c(29021),c(33873),c(21820),c(7956),(0,c(72626).h)("db-migration-path")},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},95736:(a,b,c)=>{a.exports=c(44870)},97399:(a,b,c)=>{c.d(b,{I6:()=>i,Sr:()=>g,eA:()=>k});var d=c(10641),e=c(66007),f=c(65417);function g(a,b){if(!Array.isArray(a)||0===a.length)return d.NextResponse.json({error:"files must be a non-empty array"},{status:400});if(a.length>f.Mo)return d.NextResponse.json({error:`files exceeds the maximum of ${f.Mo}`},{status:400});for(let c of a){if("string"!=typeof c||0===c.length)return d.NextResponse.json({error:"files must contain only non-empty strings"},{status:400});if(!(0,e.B9)(c,b))return d.NextResponse.json({error:"Invalid file path"},{status:400})}return a}let h=/[\x00-\x20\x7F~^:?*[\\]/;function i(a){return"string"!=typeof a||0===a.length||a.length>255||a.startsWith("-")||a.startsWith("/")||a.endsWith("/")||a.includes("//")||a.includes("..")||a.startsWith(".")||a.endsWith(".")||a.endsWith(".lock")||a.includes("@{")||h.test(a)?d.NextResponse.json({error:"Invalid branch name",reason:"invalid_branch_name"},{status:400}):a}let j=/^\d+$/;function k(a){let b,c=()=>d.NextResponse.json({error:"Invalid stash index",reason:"invalid_stash_index"},{status:400});if("number"==typeof a){if(!Number.isInteger(a))return c();b=a}else{if("string"!=typeof a||!j.test(a))return c();b=parseInt(a,10)}return b<0||b>f.Kq?c():b}}};