commandmate 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (918) hide show
  1. package/.env.example +28 -0
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +286 -256
  4. package/.next/app-path-routes-manifest.json +36 -32
  5. package/.next/build-manifest.json +2 -2
  6. package/.next/prerender-manifest.json +12 -12
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +32 -0
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route.js +1 -1
  11. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  12. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update-check/route.js +1 -1
  14. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  16. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  19. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  20. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js +1 -1
  22. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js +1 -1
  25. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  26. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/assistant/start/route.js +32 -1
  28. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  29. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/assistant/terminal/route.js +34 -3
  31. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  32. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js +1 -1
  34. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  35. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route.js +1 -1
  42. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  43. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  45. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  46. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  48. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  49. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  52. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/external-apps/route.js +1 -1
  54. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  55. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/fs/browse/route.js +1 -1
  57. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  58. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  60. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  61. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  63. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  64. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  66. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  69. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  70. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/metrics/vibe/route.js +1 -1
  72. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  73. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/push/escalation/route.js +1 -1
  76. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  77. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/push/subscriptions/route.js +7 -1
  79. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  80. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/push/vapid/route.js +1 -1
  82. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  83. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  85. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  88. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/clone/route.js +1 -1
  97. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  100. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/restore/route.js +1 -1
  103. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/route.js +1 -1
  106. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/scan/route.js +1 -1
  109. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/sync/route.js +1 -1
  112. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  115. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  118. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  119. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/skills/installations/route.js +1 -1
  123. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  124. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/skills/operations/route.js +1 -1
  126. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  127. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/skills/reindex/route.js +1 -1
  129. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  130. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  132. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  134. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  136. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  137. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  139. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  140. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/templates/[id]/route.js +2 -2
  142. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  143. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/templates/route.js +2 -2
  145. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  146. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/todos/route.js +1 -1
  148. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  149. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  151. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/verification/runs/route.js +1 -1
  154. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  155. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  158. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  169. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/current-output/route.js +2 -2
  172. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  181. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -0
  256. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -0
  257. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -0
  258. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  268. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +4 -4
  271. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -0
  283. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -0
  284. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -0
  285. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -0
  286. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -0
  287. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -0
  288. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -0
  289. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -0
  290. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -0
  291. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +5 -1
  304. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/schedules/route.js +6 -2
  310. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/send/route.js +7 -3
  316. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  328. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -3
  361. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/route.js +1 -1
  391. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  392. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  393. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  394. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  395. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  396. package/.next/server/app/more/page.js +1 -1
  397. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  398. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  399. package/.next/server/app/page_client-reference-manifest.js +1 -1
  400. package/.next/server/app/proxy/[...path]/route.js +1 -1
  401. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  402. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  403. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  404. package/.next/server/app/review/page.js +1 -1
  405. package/.next/server/app/review/page.js.nft.json +1 -1
  406. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  407. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  408. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  409. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  410. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  411. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  412. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  413. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  414. package/.next/server/app/worktrees/[id]/page.js +15 -10
  415. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  416. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  417. package/.next/server/app/worktrees/[id]/terminal/page.js +2 -2
  418. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  419. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app-paths-manifest.json +36 -32
  421. package/.next/server/chunks/1058.js +1 -0
  422. package/.next/server/chunks/1068.js +1 -3
  423. package/.next/server/chunks/1191.js +13 -0
  424. package/.next/server/chunks/1296.js +1 -1
  425. package/.next/server/chunks/1601.js +2 -2
  426. package/.next/server/chunks/1714.js +7 -0
  427. package/.next/server/chunks/1886.js +5 -0
  428. package/.next/server/chunks/1944.js +1 -0
  429. package/.next/server/chunks/2119.js +1 -1
  430. package/.next/server/chunks/221.js +19 -0
  431. package/.next/server/chunks/222.js +1 -0
  432. package/.next/server/chunks/2328.js +1 -1
  433. package/.next/server/chunks/2366.js +1 -0
  434. package/.next/server/chunks/2404.js +2 -2
  435. package/.next/server/chunks/243.js +1 -0
  436. package/.next/server/chunks/2445.js +1 -1
  437. package/.next/server/chunks/2759.js +1 -1
  438. package/.next/server/chunks/3346.js +1 -1
  439. package/.next/server/chunks/3480.js +17 -1
  440. package/.next/server/chunks/3558.js +1 -0
  441. package/.next/server/chunks/4299.js +1 -0
  442. package/.next/server/chunks/4393.js +1 -1
  443. package/.next/server/chunks/5017.js +1 -1
  444. package/.next/server/chunks/5089.js +1 -1
  445. package/.next/server/chunks/5354.js +1 -1
  446. package/.next/server/chunks/5571.js +1 -1
  447. package/.next/server/chunks/6130.js +1 -1
  448. package/.next/server/chunks/6274.js +11 -10
  449. package/.next/server/chunks/6285.js +1 -1
  450. package/.next/server/chunks/6337.js +1 -0
  451. package/.next/server/chunks/6401.js +1 -1
  452. package/.next/server/chunks/663.js +78 -0
  453. package/.next/server/chunks/7472.js +1 -1
  454. package/.next/server/chunks/7824.js +1 -0
  455. package/.next/server/chunks/7905.js +1 -0
  456. package/.next/server/chunks/880.js +1 -1
  457. package/.next/server/chunks/8807.js +84 -18
  458. package/.next/server/chunks/9130.js +5 -0
  459. package/.next/server/chunks/9328.js +1 -1
  460. package/.next/server/chunks/9358.js +1 -1
  461. package/.next/server/chunks/9508.js +1 -1
  462. package/.next/server/chunks/9584.js +1 -0
  463. package/.next/server/chunks/9627.js +274 -0
  464. package/.next/server/chunks/9798.js +2 -0
  465. package/.next/server/chunks/9938.js +1 -1
  466. package/.next/server/middleware-manifest.json +5 -5
  467. package/.next/server/pages/500.html +1 -1
  468. package/.next/server/server-reference-manifest.json +1 -1
  469. package/.next/static/chunks/1188-8567ee5ecfef02ee.js +1 -0
  470. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +1 -0
  471. package/.next/static/chunks/3968-8d8ca15657748bfb.js +1 -0
  472. package/.next/static/chunks/6381-d921ab728eda1191.js +1 -0
  473. package/.next/static/chunks/app/api/app/update/route-9247d6b9d647f750.js +1 -0
  474. package/.next/static/chunks/app/api/app/update-check/route-9247d6b9d647f750.js +1 -0
  475. package/.next/static/chunks/app/api/assistant/conversation/route-9247d6b9d647f750.js +1 -0
  476. package/.next/static/chunks/app/api/assistant/current-output/route-9247d6b9d647f750.js +1 -0
  477. package/.next/static/chunks/app/api/assistant/messages/route-9247d6b9d647f750.js +1 -0
  478. package/.next/static/chunks/app/api/assistant/session/route-9247d6b9d647f750.js +1 -0
  479. package/.next/static/chunks/app/api/assistant/start/route-9247d6b9d647f750.js +1 -0
  480. package/.next/static/chunks/app/api/assistant/terminal/route-9247d6b9d647f750.js +1 -0
  481. package/.next/static/chunks/app/api/assistant/tools/route-9247d6b9d647f750.js +1 -0
  482. package/.next/static/chunks/app/api/auth/login/route-9247d6b9d647f750.js +1 -0
  483. package/.next/static/chunks/app/api/auth/logout/route-9247d6b9d647f750.js +1 -0
  484. package/.next/static/chunks/app/api/auth/status/route-9247d6b9d647f750.js +1 -0
  485. package/.next/static/chunks/app/api/capabilities/route-9247d6b9d647f750.js +1 -0
  486. package/.next/static/chunks/app/api/daily-summary/route-9247d6b9d647f750.js +1 -0
  487. package/.next/static/chunks/app/api/daily-summary/status/route-9247d6b9d647f750.js +1 -0
  488. package/.next/static/chunks/app/api/external-apps/[id]/health/route-9247d6b9d647f750.js +1 -0
  489. package/.next/static/chunks/app/api/external-apps/[id]/route-9247d6b9d647f750.js +1 -0
  490. package/.next/static/chunks/app/api/external-apps/route-9247d6b9d647f750.js +1 -0
  491. package/.next/static/chunks/app/api/fs/browse/route-9247d6b9d647f750.js +1 -0
  492. package/.next/static/chunks/app/api/fs/recent-paths/route-9247d6b9d647f750.js +1 -0
  493. package/.next/static/chunks/app/api/hooks/agent-event/route-9247d6b9d647f750.js +1 -0
  494. package/.next/static/chunks/app/api/hooks/claude-done/route-9247d6b9d647f750.js +1 -0
  495. package/.next/static/chunks/app/api/hooks/permission-request/route-9247d6b9d647f750.js +1 -0
  496. package/.next/static/chunks/app/api/metrics/vibe/route-9247d6b9d647f750.js +1 -0
  497. package/.next/static/chunks/app/api/ollama/models/route-9247d6b9d647f750.js +1 -0
  498. package/.next/static/chunks/app/api/push/escalation/route-9247d6b9d647f750.js +1 -0
  499. package/.next/static/chunks/app/api/push/subscriptions/route-9247d6b9d647f750.js +1 -0
  500. package/.next/static/chunks/app/api/push/vapid/route-9247d6b9d647f750.js +1 -0
  501. package/.next/static/chunks/app/api/repositories/[id]/route-9247d6b9d647f750.js +1 -0
  502. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
  503. package/.next/static/chunks/app/api/repositories/[id]/todos/route-9247d6b9d647f750.js +1 -0
  504. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-9247d6b9d647f750.js +1 -0
  505. package/.next/static/chunks/app/api/repositories/clone/route-9247d6b9d647f750.js +1 -0
  506. package/.next/static/chunks/app/api/repositories/excluded/route-9247d6b9d647f750.js +1 -0
  507. package/.next/static/chunks/app/api/repositories/restore/route-9247d6b9d647f750.js +1 -0
  508. package/.next/static/chunks/app/api/repositories/route-9247d6b9d647f750.js +1 -0
  509. package/.next/static/chunks/app/api/repositories/scan/route-9247d6b9d647f750.js +1 -0
  510. package/.next/static/chunks/app/api/repositories/sync/route-9247d6b9d647f750.js +1 -0
  511. package/.next/static/chunks/app/api/repositories/validate-path/route-9247d6b9d647f750.js +1 -0
  512. package/.next/static/chunks/app/api/sidebar/group-order/route-9247d6b9d647f750.js +1 -0
  513. package/.next/static/chunks/app/api/skills/[id]/route-9247d6b9d647f750.js +1 -0
  514. package/.next/static/chunks/app/api/skills/installations/route-9247d6b9d647f750.js +1 -0
  515. package/.next/static/chunks/app/api/skills/operations/route-9247d6b9d647f750.js +1 -0
  516. package/.next/static/chunks/app/api/skills/reindex/route-9247d6b9d647f750.js +1 -0
  517. package/.next/static/chunks/app/api/skills/route-9247d6b9d647f750.js +1 -0
  518. package/.next/static/chunks/app/api/slash-commands/route-9247d6b9d647f750.js +1 -0
  519. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-9247d6b9d647f750.js +1 -0
  520. package/.next/static/chunks/app/api/tasks/[taskId]/route-9247d6b9d647f750.js +1 -0
  521. package/.next/static/chunks/app/api/templates/[id]/route-9247d6b9d647f750.js +1 -0
  522. package/.next/static/chunks/app/api/templates/route-9247d6b9d647f750.js +1 -0
  523. package/.next/static/chunks/app/api/todos/route-9247d6b9d647f750.js +1 -0
  524. package/.next/static/chunks/app/api/verification/runs/[runId]/route-9247d6b9d647f750.js +1 -0
  525. package/.next/static/chunks/app/api/verification/runs/route-9247d6b9d647f750.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-9247d6b9d647f750.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-9247d6b9d647f750.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-9247d6b9d647f750.js +1 -0
  529. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-9247d6b9d647f750.js +1 -0
  530. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-9247d6b9d647f750.js +1 -0
  531. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-9247d6b9d647f750.js +1 -0
  532. package/.next/static/chunks/app/api/worktrees/[id]/env/route-9247d6b9d647f750.js +1 -0
  533. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-9247d6b9d647f750.js +1 -0
  534. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-9247d6b9d647f750.js +1 -0
  535. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-9247d6b9d647f750.js +1 -0
  536. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-9247d6b9d647f750.js +1 -0
  537. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-9247d6b9d647f750.js +1 -0
  538. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-9247d6b9d647f750.js +1 -0
  539. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-9247d6b9d647f750.js +1 -0
  540. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-9247d6b9d647f750.js +1 -0
  541. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-9247d6b9d647f750.js +1 -0
  542. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-9247d6b9d647f750.js +1 -0
  543. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-9247d6b9d647f750.js +1 -0
  544. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-9247d6b9d647f750.js +1 -0
  545. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-9247d6b9d647f750.js +1 -0
  546. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-9247d6b9d647f750.js +1 -0
  547. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-9247d6b9d647f750.js +1 -0
  548. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-9247d6b9d647f750.js +1 -0
  549. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-9247d6b9d647f750.js +1 -0
  550. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-9247d6b9d647f750.js +1 -0
  551. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-9247d6b9d647f750.js +1 -0
  552. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-9247d6b9d647f750.js +1 -0
  553. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-9247d6b9d647f750.js +1 -0
  554. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-9247d6b9d647f750.js +1 -0
  555. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-9247d6b9d647f750.js +1 -0
  556. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-9247d6b9d647f750.js +1 -0
  557. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-9247d6b9d647f750.js +1 -0
  558. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-9247d6b9d647f750.js +1 -0
  559. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-9247d6b9d647f750.js +1 -0
  560. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-9247d6b9d647f750.js +1 -0
  561. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-9247d6b9d647f750.js +1 -0
  562. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-9247d6b9d647f750.js +1 -0
  563. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-9247d6b9d647f750.js +1 -0
  564. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-9247d6b9d647f750.js +1 -0
  565. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-9247d6b9d647f750.js +1 -0
  566. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-9247d6b9d647f750.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-9247d6b9d647f750.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-9247d6b9d647f750.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-9247d6b9d647f750.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-9247d6b9d647f750.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-9247d6b9d647f750.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-9247d6b9d647f750.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-9247d6b9d647f750.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/route-9247d6b9d647f750.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-9247d6b9d647f750.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-9247d6b9d647f750.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-9247d6b9d647f750.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/search/route-9247d6b9d647f750.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/send/route-9247d6b9d647f750.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-9247d6b9d647f750.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-9247d6b9d647f750.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-9247d6b9d647f750.js +1 -0
  583. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-9247d6b9d647f750.js +1 -0
  584. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-9247d6b9d647f750.js +1 -0
  585. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-9247d6b9d647f750.js +1 -0
  586. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-9247d6b9d647f750.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-9247d6b9d647f750.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-9247d6b9d647f750.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-9247d6b9d647f750.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-9247d6b9d647f750.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-9247d6b9d647f750.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-9247d6b9d647f750.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-9247d6b9d647f750.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-9247d6b9d647f750.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-9247d6b9d647f750.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-9247d6b9d647f750.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-9247d6b9d647f750.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-9247d6b9d647f750.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-9247d6b9d647f750.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-9247d6b9d647f750.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-9247d6b9d647f750.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-9247d6b9d647f750.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/route-9247d6b9d647f750.js +1 -0
  605. package/.next/static/chunks/app/manifest.webmanifest/route-9247d6b9d647f750.js +1 -0
  606. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +1 -0
  607. package/.next/static/chunks/app/proxy/[...path]/route-9247d6b9d647f750.js +1 -0
  608. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +1 -0
  609. package/.next/static/chunks/app/worktrees/[id]/layout-9247d6b9d647f750.js +1 -0
  610. package/.next/static/chunks/app/worktrees/[id]/page-27b7cb2e77099eec.js +1 -0
  611. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +1 -0
  612. package/.next/static/css/98722bc4152cedcc.css +1 -0
  613. package/.next/trace +13 -13
  614. package/.next/types/app/api/worktrees/[id]/instances/opencode/route.ts +347 -0
  615. package/.next/types/app/api/worktrees/[id]/opencode/diff/route.ts +347 -0
  616. package/.next/types/app/api/worktrees/[id]/opencode/session/route.ts +347 -0
  617. package/.next/types/app/api/worktrees/[id]/opencode/share/route.ts +347 -0
  618. package/.next/types/routes.d.ts +5 -1
  619. package/.next/types/validator.ts +36 -0
  620. package/README.md +9 -1
  621. package/dist/cli/commands/init.d.ts.map +1 -1
  622. package/dist/cli/commands/init.js +66 -0
  623. package/dist/cli/commands/instances.d.ts.map +1 -1
  624. package/dist/cli/commands/instances.js +46 -1
  625. package/dist/cli/commands/interrupt.d.ts +25 -0
  626. package/dist/cli/commands/interrupt.d.ts.map +1 -0
  627. package/dist/cli/commands/interrupt.js +146 -0
  628. package/dist/cli/commands/report.d.ts.map +1 -1
  629. package/dist/cli/commands/report.js +11 -4
  630. package/dist/cli/commands/respond.d.ts.map +1 -1
  631. package/dist/cli/commands/respond.js +146 -1
  632. package/dist/cli/commands/status.d.ts.map +1 -1
  633. package/dist/cli/commands/status.js +104 -0
  634. package/dist/cli/commands/wait.d.ts.map +1 -1
  635. package/dist/cli/commands/wait.js +39 -1
  636. package/dist/cli/config/agent-target-options.d.ts +12 -0
  637. package/dist/cli/config/agent-target-options.d.ts.map +1 -1
  638. package/dist/cli/config/agent-target-options.js +15 -1
  639. package/dist/cli/docs/agent-operations.d.ts +1 -1
  640. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  641. package/dist/cli/docs/agent-operations.js +34 -0
  642. package/dist/cli/program.d.ts.map +1 -1
  643. package/dist/cli/program.js +6 -0
  644. package/dist/cli/types/api-responses.d.ts +375 -0
  645. package/dist/cli/types/api-responses.d.ts.map +1 -1
  646. package/dist/cli/types/index.d.ts +63 -0
  647. package/dist/cli/types/index.d.ts.map +1 -1
  648. package/dist/cli/types/index.js +31 -1
  649. package/dist/cli/utils/daemon.d.ts.map +1 -1
  650. package/dist/cli/utils/daemon.js +3 -0
  651. package/dist/cli/utils/env-setup.d.ts +24 -0
  652. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  653. package/dist/cli/utils/env-setup.js +70 -0
  654. package/dist/cli/utils/vapid-keygen.d.ts +74 -0
  655. package/dist/cli/utils/vapid-keygen.d.ts.map +1 -0
  656. package/dist/cli/utils/vapid-keygen.js +111 -0
  657. package/dist/lib/cli-tools/types.d.ts +11 -1
  658. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  659. package/dist/lib/detection/tools/verified-against.d.ts +14 -3
  660. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
  661. package/dist/lib/detection/tools/verified-against.js +14 -3
  662. package/dist/lib/push/vapid.d.ts +178 -0
  663. package/dist/lib/push/vapid.d.ts.map +1 -0
  664. package/dist/lib/push/vapid.js +293 -0
  665. package/dist/lib/server/localhost-self-check.d.ts +203 -0
  666. package/dist/lib/server/localhost-self-check.d.ts.map +1 -0
  667. package/dist/lib/server/localhost-self-check.js +333 -0
  668. package/dist/server/locales/en/notifications.json +23 -1
  669. package/dist/server/locales/ja/notifications.json +23 -1
  670. package/dist/server/server.js +103 -0
  671. package/dist/server/src/config/image-extensions.js +244 -0
  672. package/dist/server/src/config/opencode-constants.js +69 -0
  673. package/dist/server/src/config/tmux-pane-config.js +100 -1
  674. package/dist/server/src/lib/cli-tools/base.js +33 -48
  675. package/dist/server/src/lib/cli-tools/opencode-config.js +12 -0
  676. package/dist/server/src/lib/cli-tools/opencode.js +435 -7
  677. package/dist/server/src/lib/cli-tools/start-availability.js +160 -0
  678. package/dist/server/src/lib/cmate-cli-tool-parser.js +328 -7
  679. package/dist/server/src/lib/cmate-parser.js +12 -0
  680. package/dist/server/src/lib/db/agent-instances-db.js +129 -0
  681. package/dist/server/src/lib/db/agent-session-cost-db.js +204 -0
  682. package/dist/server/src/lib/db/agent-session-cost-sampler.js +194 -0
  683. package/dist/server/src/lib/db/chat-db.js +33 -0
  684. package/dist/server/src/lib/db/db-instance.js +11 -0
  685. package/dist/server/src/lib/db/db.js +8 -3
  686. package/dist/server/src/lib/db/migrations/index.js +6 -0
  687. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  688. package/dist/server/src/lib/db/migrations/v57-push-subscription-defaults-notice.js +54 -0
  689. package/dist/server/src/lib/db/migrations/v58-agent-session-costs.js +100 -0
  690. package/dist/server/src/lib/db/migrations/v59-opencode-instance-settings.js +71 -0
  691. package/dist/server/src/lib/db/push-subscriptions-db.js +56 -5
  692. package/dist/server/src/lib/detection/cli-patterns.js +17 -6
  693. package/dist/server/src/lib/detection/excerpt.js +48 -0
  694. package/dist/server/src/lib/detection/model-info-extractor.js +26 -3
  695. package/dist/server/src/lib/detection/opencode-modal-overlay.js +400 -0
  696. package/dist/server/src/lib/detection/opencode-pane-obstruction.js +181 -0
  697. package/dist/server/src/lib/detection/status-detector.js +7 -0
  698. package/dist/server/src/lib/detection/status-reason.js +20 -0
  699. package/dist/server/src/lib/detection/terminal-columns.js +94 -0
  700. package/dist/server/src/lib/detection/tools/opencode/detect.js +43 -0
  701. package/dist/server/src/lib/detection/tools/opencode/prompt.js +20 -0
  702. package/dist/server/src/lib/detection/tools/verified-against.js +14 -3
  703. package/dist/server/src/lib/detection/upstream-faults.js +7 -22
  704. package/dist/server/src/lib/hooks/agent-session-telemetry.js +324 -0
  705. package/dist/server/src/lib/hooks/pending-decision-kind.js +72 -0
  706. package/dist/server/src/lib/hooks/sources/define-source.js +88 -0
  707. package/dist/server/src/lib/hooks/sources/opencode/client.js +907 -2
  708. package/dist/server/src/lib/hooks/sources/opencode/diff.js +336 -0
  709. package/dist/server/src/lib/hooks/sources/opencode/history.js +480 -0
  710. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +76 -7
  711. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +222 -0
  712. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +31 -0
  713. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +45 -0
  714. package/dist/server/src/lib/hooks/sources/opencode/ports.js +16 -0
  715. package/dist/server/src/lib/hooks/sources/opencode/push.js +307 -0
  716. package/dist/server/src/lib/hooks/sources/opencode/reattach.js +284 -0
  717. package/dist/server/src/lib/hooks/sources/opencode/runtime.js +165 -2
  718. package/dist/server/src/lib/hooks/sources/opencode/source.js +46 -2
  719. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +407 -4
  720. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +383 -0
  721. package/dist/server/src/lib/hooks/structured-decision-response.js +460 -0
  722. package/dist/server/src/lib/job-executor.js +43 -20
  723. package/dist/server/src/lib/polling/response-checker.js +43 -16
  724. package/dist/server/src/lib/polling/structured-history-gate.js +75 -0
  725. package/dist/server/src/lib/prompt-answer-sender.js +153 -2
  726. package/dist/server/src/lib/push/delivery-health.js +237 -0
  727. package/dist/server/src/lib/push/failure-push-notifier.js +109 -7
  728. package/dist/server/src/lib/push/index.js +25 -1
  729. package/dist/server/src/lib/push/prompt-card-state.js +254 -14
  730. package/dist/server/src/lib/push/push-sender.js +63 -12
  731. package/dist/server/src/lib/push/resolution-push-notifier.js +15 -3
  732. package/dist/server/src/lib/push/vapid.js +264 -5
  733. package/dist/server/src/lib/push/waiting-push-notifier.js +7 -0
  734. package/dist/server/src/lib/server/localhost-self-check.js +333 -0
  735. package/dist/server/src/lib/session/agent-event-state.js +169 -4
  736. package/dist/server/src/lib/session/claude-executor.js +152 -15
  737. package/dist/server/src/lib/session/current-output-builder.js +182 -15
  738. package/dist/server/src/lib/session/opencode-session-api.js +214 -0
  739. package/dist/server/src/lib/session/opencode-session-recall.js +168 -0
  740. package/dist/server/src/lib/session/opencode-session-store.js +274 -0
  741. package/dist/server/src/lib/session/provisional-turn.js +54 -1
  742. package/dist/server/src/lib/session/send-user-message.js +6 -5
  743. package/dist/server/src/lib/session/structured-prompt.js +53 -2
  744. package/dist/server/src/lib/skills/compatibility-matrix.js +50 -1
  745. package/dist/server/src/lib/tmux/tmux.js +74 -4
  746. package/dist/server/src/lib/verification/gate-runner.js +71 -8
  747. package/dist/server/src/types/agent-session.js +63 -0
  748. package/dist/server/src/types/agent-transcript.js +80 -0
  749. package/dist/server/src/types/opencode-export.js +228 -0
  750. package/dist/server/src/types/opencode-instance-settings.js +140 -0
  751. package/dist/server/src/types/opencode-share.js +111 -0
  752. package/dist/server/src/types/terminal-keys.js +69 -1
  753. package/dist/types/cli-tool-contracts.d.ts +48 -0
  754. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  755. package/dist/types/terminal-keys.d.ts +89 -0
  756. package/dist/types/terminal-keys.d.ts.map +1 -0
  757. package/dist/types/terminal-keys.js +105 -0
  758. package/package.json +1 -1
  759. package/.next/server/chunks/1029.js +0 -1
  760. package/.next/server/chunks/1239.js +0 -1
  761. package/.next/server/chunks/1538.js +0 -7
  762. package/.next/server/chunks/2546.js +0 -1
  763. package/.next/server/chunks/2689.js +0 -13
  764. package/.next/server/chunks/3292.js +0 -1
  765. package/.next/server/chunks/3417.js +0 -1
  766. package/.next/server/chunks/3736.js +0 -1
  767. package/.next/server/chunks/4423.js +0 -1
  768. package/.next/server/chunks/4444.js +0 -32
  769. package/.next/server/chunks/4565.js +0 -3
  770. package/.next/server/chunks/467.js +0 -1
  771. package/.next/server/chunks/4905.js +0 -5
  772. package/.next/server/chunks/552.js +0 -19
  773. package/.next/server/chunks/5998.js +0 -74
  774. package/.next/server/chunks/6919.js +0 -1
  775. package/.next/server/chunks/7970.js +0 -229
  776. package/.next/server/chunks/8536.js +0 -1
  777. package/.next/server/chunks/9284.js +0 -1
  778. package/.next/static/chunks/3361-5d6e93fba8a92bc1.js +0 -1
  779. package/.next/static/chunks/6381-b7250e8ca7a44c6c.js +0 -1
  780. package/.next/static/chunks/8521-c43994fb58501d13.js +0 -1
  781. package/.next/static/chunks/app/api/app/update/route-6add0d88e2828c23.js +0 -1
  782. package/.next/static/chunks/app/api/app/update-check/route-6add0d88e2828c23.js +0 -1
  783. package/.next/static/chunks/app/api/assistant/conversation/route-6add0d88e2828c23.js +0 -1
  784. package/.next/static/chunks/app/api/assistant/current-output/route-6add0d88e2828c23.js +0 -1
  785. package/.next/static/chunks/app/api/assistant/messages/route-6add0d88e2828c23.js +0 -1
  786. package/.next/static/chunks/app/api/assistant/session/route-6add0d88e2828c23.js +0 -1
  787. package/.next/static/chunks/app/api/assistant/start/route-6add0d88e2828c23.js +0 -1
  788. package/.next/static/chunks/app/api/assistant/terminal/route-6add0d88e2828c23.js +0 -1
  789. package/.next/static/chunks/app/api/assistant/tools/route-6add0d88e2828c23.js +0 -1
  790. package/.next/static/chunks/app/api/auth/login/route-6add0d88e2828c23.js +0 -1
  791. package/.next/static/chunks/app/api/auth/logout/route-6add0d88e2828c23.js +0 -1
  792. package/.next/static/chunks/app/api/auth/status/route-6add0d88e2828c23.js +0 -1
  793. package/.next/static/chunks/app/api/capabilities/route-6add0d88e2828c23.js +0 -1
  794. package/.next/static/chunks/app/api/daily-summary/route-6add0d88e2828c23.js +0 -1
  795. package/.next/static/chunks/app/api/daily-summary/status/route-6add0d88e2828c23.js +0 -1
  796. package/.next/static/chunks/app/api/external-apps/[id]/health/route-6add0d88e2828c23.js +0 -1
  797. package/.next/static/chunks/app/api/external-apps/[id]/route-6add0d88e2828c23.js +0 -1
  798. package/.next/static/chunks/app/api/external-apps/route-6add0d88e2828c23.js +0 -1
  799. package/.next/static/chunks/app/api/fs/browse/route-6add0d88e2828c23.js +0 -1
  800. package/.next/static/chunks/app/api/fs/recent-paths/route-6add0d88e2828c23.js +0 -1
  801. package/.next/static/chunks/app/api/hooks/agent-event/route-6add0d88e2828c23.js +0 -1
  802. package/.next/static/chunks/app/api/hooks/claude-done/route-6add0d88e2828c23.js +0 -1
  803. package/.next/static/chunks/app/api/hooks/permission-request/route-6add0d88e2828c23.js +0 -1
  804. package/.next/static/chunks/app/api/metrics/vibe/route-6add0d88e2828c23.js +0 -1
  805. package/.next/static/chunks/app/api/ollama/models/route-6add0d88e2828c23.js +0 -1
  806. package/.next/static/chunks/app/api/push/escalation/route-6add0d88e2828c23.js +0 -1
  807. package/.next/static/chunks/app/api/push/subscriptions/route-6add0d88e2828c23.js +0 -1
  808. package/.next/static/chunks/app/api/push/vapid/route-6add0d88e2828c23.js +0 -1
  809. package/.next/static/chunks/app/api/repositories/[id]/route-6add0d88e2828c23.js +0 -1
  810. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  811. package/.next/static/chunks/app/api/repositories/[id]/todos/route-6add0d88e2828c23.js +0 -1
  812. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-6add0d88e2828c23.js +0 -1
  813. package/.next/static/chunks/app/api/repositories/clone/route-6add0d88e2828c23.js +0 -1
  814. package/.next/static/chunks/app/api/repositories/excluded/route-6add0d88e2828c23.js +0 -1
  815. package/.next/static/chunks/app/api/repositories/restore/route-6add0d88e2828c23.js +0 -1
  816. package/.next/static/chunks/app/api/repositories/route-6add0d88e2828c23.js +0 -1
  817. package/.next/static/chunks/app/api/repositories/scan/route-6add0d88e2828c23.js +0 -1
  818. package/.next/static/chunks/app/api/repositories/sync/route-6add0d88e2828c23.js +0 -1
  819. package/.next/static/chunks/app/api/repositories/validate-path/route-6add0d88e2828c23.js +0 -1
  820. package/.next/static/chunks/app/api/sidebar/group-order/route-6add0d88e2828c23.js +0 -1
  821. package/.next/static/chunks/app/api/skills/[id]/route-6add0d88e2828c23.js +0 -1
  822. package/.next/static/chunks/app/api/skills/installations/route-6add0d88e2828c23.js +0 -1
  823. package/.next/static/chunks/app/api/skills/operations/route-6add0d88e2828c23.js +0 -1
  824. package/.next/static/chunks/app/api/skills/reindex/route-6add0d88e2828c23.js +0 -1
  825. package/.next/static/chunks/app/api/skills/route-6add0d88e2828c23.js +0 -1
  826. package/.next/static/chunks/app/api/slash-commands/route-6add0d88e2828c23.js +0 -1
  827. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-6add0d88e2828c23.js +0 -1
  828. package/.next/static/chunks/app/api/tasks/[taskId]/route-6add0d88e2828c23.js +0 -1
  829. package/.next/static/chunks/app/api/templates/[id]/route-6add0d88e2828c23.js +0 -1
  830. package/.next/static/chunks/app/api/templates/route-6add0d88e2828c23.js +0 -1
  831. package/.next/static/chunks/app/api/todos/route-6add0d88e2828c23.js +0 -1
  832. package/.next/static/chunks/app/api/verification/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  833. package/.next/static/chunks/app/api/verification/runs/route-6add0d88e2828c23.js +0 -1
  834. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-6add0d88e2828c23.js +0 -1
  835. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-6add0d88e2828c23.js +0 -1
  836. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-6add0d88e2828c23.js +0 -1
  837. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-6add0d88e2828c23.js +0 -1
  838. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-6add0d88e2828c23.js +0 -1
  839. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-6add0d88e2828c23.js +0 -1
  840. package/.next/static/chunks/app/api/worktrees/[id]/env/route-6add0d88e2828c23.js +0 -1
  841. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-6add0d88e2828c23.js +0 -1
  842. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-6add0d88e2828c23.js +0 -1
  843. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-6add0d88e2828c23.js +0 -1
  844. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-6add0d88e2828c23.js +0 -1
  845. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-6add0d88e2828c23.js +0 -1
  846. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-6add0d88e2828c23.js +0 -1
  847. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-6add0d88e2828c23.js +0 -1
  848. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-6add0d88e2828c23.js +0 -1
  849. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-6add0d88e2828c23.js +0 -1
  850. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-6add0d88e2828c23.js +0 -1
  851. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-6add0d88e2828c23.js +0 -1
  852. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-6add0d88e2828c23.js +0 -1
  853. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-6add0d88e2828c23.js +0 -1
  854. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-6add0d88e2828c23.js +0 -1
  855. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-6add0d88e2828c23.js +0 -1
  856. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-6add0d88e2828c23.js +0 -1
  857. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-6add0d88e2828c23.js +0 -1
  858. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-6add0d88e2828c23.js +0 -1
  859. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-6add0d88e2828c23.js +0 -1
  860. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-6add0d88e2828c23.js +0 -1
  861. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-6add0d88e2828c23.js +0 -1
  862. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-6add0d88e2828c23.js +0 -1
  863. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-6add0d88e2828c23.js +0 -1
  864. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-6add0d88e2828c23.js +0 -1
  865. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-6add0d88e2828c23.js +0 -1
  866. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-6add0d88e2828c23.js +0 -1
  867. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-6add0d88e2828c23.js +0 -1
  868. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-6add0d88e2828c23.js +0 -1
  869. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-6add0d88e2828c23.js +0 -1
  870. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-6add0d88e2828c23.js +0 -1
  871. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-6add0d88e2828c23.js +0 -1
  872. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-6add0d88e2828c23.js +0 -1
  873. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-6add0d88e2828c23.js +0 -1
  874. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-6add0d88e2828c23.js +0 -1
  875. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-6add0d88e2828c23.js +0 -1
  876. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-6add0d88e2828c23.js +0 -1
  877. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-6add0d88e2828c23.js +0 -1
  878. package/.next/static/chunks/app/api/worktrees/[id]/route-6add0d88e2828c23.js +0 -1
  879. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-6add0d88e2828c23.js +0 -1
  880. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-6add0d88e2828c23.js +0 -1
  881. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-6add0d88e2828c23.js +0 -1
  882. package/.next/static/chunks/app/api/worktrees/[id]/search/route-6add0d88e2828c23.js +0 -1
  883. package/.next/static/chunks/app/api/worktrees/[id]/send/route-6add0d88e2828c23.js +0 -1
  884. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-6add0d88e2828c23.js +0 -1
  885. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-6add0d88e2828c23.js +0 -1
  886. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-6add0d88e2828c23.js +0 -1
  887. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-6add0d88e2828c23.js +0 -1
  888. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-6add0d88e2828c23.js +0 -1
  889. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-6add0d88e2828c23.js +0 -1
  890. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-6add0d88e2828c23.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-6add0d88e2828c23.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-6add0d88e2828c23.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-6add0d88e2828c23.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-6add0d88e2828c23.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-6add0d88e2828c23.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-6add0d88e2828c23.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-6add0d88e2828c23.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-6add0d88e2828c23.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-6add0d88e2828c23.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-6add0d88e2828c23.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-6add0d88e2828c23.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-6add0d88e2828c23.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-6add0d88e2828c23.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-6add0d88e2828c23.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-6add0d88e2828c23.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/route-6add0d88e2828c23.js +0 -1
  909. package/.next/static/chunks/app/manifest.webmanifest/route-6add0d88e2828c23.js +0 -1
  910. package/.next/static/chunks/app/more/page-3266dfa945972649.js +0 -1
  911. package/.next/static/chunks/app/proxy/[...path]/route-6add0d88e2828c23.js +0 -1
  912. package/.next/static/chunks/app/review/page-8f63aff862fee421.js +0 -1
  913. package/.next/static/chunks/app/worktrees/[id]/layout-6add0d88e2828c23.js +0 -1
  914. package/.next/static/chunks/app/worktrees/[id]/page-e4f28966b4fc0ce1.js +0 -1
  915. package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +0 -1
  916. package/.next/static/css/928e5a8830fbf997.css +0 -1
  917. /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_buildManifest.js +0 -0
  918. /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_ssgManifest.js +0 -0
@@ -0,0 +1,5 @@
1
+ "use strict";exports.id=1886,exports.ids=[1886],exports.modules={17287:(a,b,c)=>{c.d(b,{CD:()=>g,nL:()=>f});var d=c(24455);let e=globalThis.__permissionDecisions??(globalThis.__permissionDecisions=new Map);function f(a,b,c,f){e.set((0,d.v7)(a,b,c),f)}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},23365:(a,b,c)=>{c.d(b,{H:()=>g,y:()=>h});var d=c(16983),e=c(34405),f=c(15194);let g=200;function h(a){var b;return{statusLines:"opencode"===(b=a)?d.xT:"gemini"===b?g:e.G,usesAlternateScreen:(0,f.VA)(a)}}},34405:(a,b,c)=>{c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},41466:(a,b,c)=>{c.d(b,{Ui:()=>as,TZ:()=>ar});var d=c(81886),e=c(8953),f=c(79892),g=c(85164),h=c(40236),i=c(93997),j=c(29021),k=c(21820),l=c(33873),m=c(8004),n=c(72626);let o=(0,n.h)("cli-tools/opencode-config"),p=/^[a-zA-Z0-9._:/-]{1,100}$/,q=/^[a-zA-Z0-9._:/@-]{1,200}$/,r="CM_OPENCODE_LOCAL_PROVIDER_CONFIG",s="OPENCODE_CONFIG",t=["opencode.json","opencode.jsonc",l.join(".opencode","opencode.json"),l.join(".opencode","opencode.jsonc")],u=["opencode.json","opencode.jsonc"];async function v(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return o.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return o.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&p.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("ollama-api-timeout"):o.warn("failed-to-fetch")}return a}async function w(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return o.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return o.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&q.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("lm-studio-api"):o.warn("failed-to-fetch")}return a}function x(a=process.env){let b=l.join(k.homedir(),".config");return l.join((0,m.T)(a.XDG_CONFIG_HOME,b,"XDG_CONFIG_HOME"),"opencode")}async function y(){let[a,b]=await Promise.all([v(),w()]),c={};return Object.keys(a).length>0&&(c.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:a}),Object.keys(b).length>0&&(c.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:b}),c}async function z(a){let b=function(a=process.env){let b=(a[r]??"").trim().toLowerCase();return"worktree"===b||"project"===b?"worktree":"global"===b||"user"===b?"global":(""!==b&&"off"!==b&&"0"!==b&&"false"!==b&&"none"!==b&&o.warn("opencode-config-mode-unrecognised",{variable:r,value:b}),"off")}();if("off"===b)return{written:!1,configPath:null,reason:"disabled"};let c="worktree"===b?function(a){let b=l.resolve(a);try{if(!j.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return j.realpathSync(b)}(a):null,d=function(a,b=process.env){if(""!==(b[s]??"").trim())return`env:${s}`;if(null!==a)for(let b of t){let c=l.join(a,b);if(j.existsSync(c))return c}let c=x(b);for(let a of u){let b=l.join(c,a);if(j.existsSync(b))return b}return null}(c);if(null!==d)return o.info("opencode-config-generation-skipped",{mode:b,owned:d}),{written:!1,configPath:null,reason:"existing-config"};let e=c??x(),f=l.join(e,"opencode.json"),g=await y();if(0===Object.keys(g).length)return{written:!1,configPath:null,reason:"no-providers"};try{"global"===b&&j.mkdirSync(e,{recursive:!0}),j.writeFileSync(f,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:g},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return{written:!1,configPath:null,reason:"existing-config"};return o.warn("failed-to-write-opencodejson:error-insta"),{written:!1,configPath:null,reason:"write-failed"}}return o.info("opencode-config-generated",{mode:b,configPath:f}),{written:!0,configPath:f,reason:"written"}}var A=c(16983),B=c(79646),C=c(28354),D=c(39333),E=c(4970),F=c(49791),G=c(62887),H=c(72272),I=c(49154),J=c(48083),K=c(36051),L=c(57510),M=c(97709),N=c(75356),O=c(98211),P=c(90488),Q=c(85322);let R=(0,n.h)("lib/hooks/sources/opencode/ingest");async function S(a,b,c){let d=(0,M.VM)(Q.k),e=(0,O.Lu)(b.raw,b.receivedAt);if(!e)return R.info("opencode-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let f=await (0,H.t)(d,a,e,d.parsePermissionRequest(b.raw));return R.info("opencode-permission-decided",{worktreeId:a.worktreeId,instanceId:c,decisionId:e.id,behavior:f.behavior,reason:f.reason,delivered:f.delivered,settled:f.settled}),f.settled}async function T(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(4689),c.e(6065),c.e(1191),c.e(6337),c.e(9373),c.e(6274),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void R.info("opencode-stop-unresolved-target",{worktreeId:a.worktreeId});let i=await f(g,h,Q.k,b);R.info("opencode-stop-applied",{worktreeId:a.worktreeId,instanceId:b,taskId:i.taskId,taskEventApplied:i.taskEventApplied,verificationRunId:i.verificationRunId})}async function U(a,b){let c=a.instanceId??Q.k;try{let d=(0,M.VM)(Q.k),e=(0,J.qo)({worktreeId:a.worktreeId,cliToolId:Q.k,instanceId:c,event:b.event,detail:b.detail,sessionId:b.conversationId,at:b.receivedAt,identity:d.eventIdentityOf(b.raw),identityKind:d.capabilities.eventIdentity});if(e.duplicate)return void R.info("opencode-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail,by:e.by});let f={event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,G.h9)??null,sessionId:b.conversationId,message:(function(a){let b=(0,L.Qd)(a.raw.properties)?a.raw.properties:{};if(a.detail===N.aF)return(0,L.NZ)(b,["metadata","command"])??(0,L.O2)(b,"permission");if(a.detail===N.Tm){let a=b.questions;return Array.isArray(a)&&(0,L.Qd)(a[0])?(0,L.O2)(a[0],"question"):null}return a.detail===N.vE?(0,L.NZ)(b,["error","data","message"])??(0,L.NZ)(b,["error","name"]):null})(b)?.slice(0,K.lY)??null,model:b.model},g={sessionStartMayArriveLate:d.capabilities.sessionStartMayArriveLate};if("notification"===b.event&&b.detail===N.aF){f.decisionId=(0,L.O2)((0,L.Qd)(b.raw.properties)?b.raw.properties:{},"id");let d=(0,O.LF)(b.raw,b.receivedAt);f.toolName=d?.toolName??null,f.decisionPatterns=d?.patterns??null,f.promptSettled=await S(a,b,c),(0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g);return}if("notification"===b.event&&b.detail===N.C8){f.decisionId=(0,N.Mn)(b.raw),f.promptSettled=!!(0,M.VM)(Q.k).capabilities.permissionReplyReleasesPrompt||(R.info("opencode-permission-reply-not-releasing",{worktreeId:a.worktreeId,instanceId:c,reason:"capability-permissionReplyReleasesPrompt-false"}),!1),(0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g),R.info("opencode-permission-reply-observed",{worktreeId:a.worktreeId,instanceId:c,decisionId:f.decisionId,released:f.promptSettled});return}if((0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g),"notification"===b.event&&b.detail===N.Tm){let d=(0,M.VM)(Q.k).parseQuestion(b.raw);d&&((0,J._N)(a.worktreeId,Q.k,c,d,b.receivedAt),(0,J.MU)(a.worktreeId,Q.k,c,{toolName:I.GF,decisionId:d.promptId,detail:N.Tm},b.receivedAt),R.info("opencode-question-recorded",{worktreeId:a.worktreeId,instanceId:c,decisionId:d.promptId,questionCount:d.questions.length,optionCounts:d.questions.map(a=>a.choices.length)})),await (0,P.Vo)(a,c,f.message??null,b.receivedAt);return}if("stop"===b.event)return void await T(a,c);"notification"===b.event&&b.detail===N.vE&&await (0,P.dJ)(a,c,(0,L.NZ)((0,L.Qd)(b.raw.properties)?b.raw.properties:{},["error","name"]),f.message??null,b.conversationId,b.receivedAt),R.info("opencode-event-received",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail})}catch(d){R.error("opencode-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:c,event:b.event,error:d instanceof Error?d.message:String(d)})}}var V=c(84574),W=c(85965),X=c(13602);let Y=(0,n.h)("lib/hooks/sources/opencode/runtime");function Z(a,b){return{worktreeId:a,cliToolId:"opencode",instanceId:b}}async function $(a,b){try{return await (0,V.CU)(a,b)}catch(b){return Y.warn("opencode-port-reserve-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),null}}let _=[0,500,1e3,2e3,4e3];async function aa(a,b){for(let[c,d]of _.entries()){d>0&&await new Promise(a=>setTimeout(a,d));let e=await (0,F.sc)(b);if("healthy"===e.kind)return c>0&&Y.info("opencode-server-reachable-after-retry",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempt:c}),e.health;if("rejected"===e.kind){Y.warn("opencode-server-refused-commandmate",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,status:e.status,consequence:"structured events are off for this session; the scraper decides"});break}}return null}async function ab(a){try{let b=(0,V.hC)(a);if(null===b)return!1;if((0,X.wb)(a))return!0;let c=await aa(a,b);if(!c)return Y.info("opencode-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempts:_.length}),!1;await W.cC.subscribe(a,b=>{U(a,b)});let d=await ac(a);return Y.info("opencode-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,version:c.version,activity:d}),!0}catch(b){return Y.warn("opencode-event-stream-attach-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ac(a){let b=null;try{b=await W.cC.probeActivity(a)}catch(b){Y.debug("opencode-activity-probe-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return(0,X.yn)(a,b,Date.now()),b}async function ad(a,b){try{if((0,X.wb)(a))return!0;let c=await (0,V.jp)(a,b);if(null===c)return!1;return await ab(a)}catch(b){return Y.warn("opencode-event-stream-resume-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ae(a){let b=a.instanceId??a.cliToolId;try{let c=(0,V.hC)(a);if(null===c)return!1;let d=(0,X.lf)(a);if("live"!==d.state)return Y.info("opencode-abort-skipped-not-live",{worktreeId:a.worktreeId,instanceId:b,port:c,liveness:d.state}),!1;let e=(0,X.ym)(a);if(null===e)return Y.info("opencode-abort-skipped-no-session",{worktreeId:a.worktreeId,instanceId:b,port:c}),!1;let f=(0,X.H1)(a,e,2e3);if(!await (0,F.UR)(c,e))return f.cancel(),Y.warn("opencode-abort-rejected",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!1;if(!await f.seen)return Y.warn("opencode-abort-unconfirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e,timeoutMs:2e3}),!1;return Y.info("opencode-abort-confirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!0}catch(c){return Y.warn("opencode-abort-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function af(a){try{await (0,X.FN)(a),(0,V.kE)(a)}catch(b){Y.warn("opencode-event-stream-release-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)})}}var ag=c(18529),ah=c(70849),ai=c(27939),aj=c(93949),ak=c(20610),al=c(2669);let am=(0,n.h)("cli-tools/opencode"),an=(0,C.promisify)(B.execFile);function ao(a){return a instanceof Error?a.message:String(a)}function ap(){let a=process.env[A.ao],b=(0,A._u)();return void 0!==a&&String(b)!==a.trim()?am.warn("opencode-pane-width-rejected",{requested:a,applied:b}):b>=A.Lg&&am.warn("opencode-pane-width-sidebar-visible",{width:b,sidebarMinWidth:A.Lg}),b}let aq=[0,50,100,200];function ar(a,b){return a?`${a}
2
+
3
+ [添付画像: ${b}]`:`[添付画像: ${b}]`}class as extends d.M{navigationKeys(){return{keys:e.sM,leaderKey:e.Mx}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,f.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw new al.lU(this.name,"OpenCode is not installed or not in PATH");let d=this.getSessionName(a,c),e=Z(a,c);if(await (0,f.N)(d)){await this.reconcileExistingSession(d,{windowWidth:ap(),windowHeight:A.xT}),await ad(e,b),am.info("opencode-session-sessionname");return}(0,E.Fq)(e);try{await z(b),await (0,f.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,ak.Uc));try{await an("tmux",["resize-window","-t",(0,f.lA)(d),"-x",String(ap()),"-y",String(A.xT)])}catch{}await $(e,b);let g=(0,E.wK)({target:e,executablePath:this.command,worktreePath:b}),h=(0,ai.pr)(e,b),i=null===h?g:(0,ai.XO)(g,h);null!==h&&am.info("opencode-session-resumed",{worktreeId:a,instanceId:c??this.id,sessionId:h}),await (0,f.V1)(d,i,!0),await this.waitForReady(d),await ab(e),am.info("started-opencode-session:sessionname")}catch(b){let a=ao(b);throw Error(`Failed to start OpenCode session: ${a}`)}}async waitForReady(a){for(let b=0;b<60;b++){try{let c=(0,g.aJ)(await (0,f.Xg)(a,50));if(g.vU.test(c))return am.info("opencode-composer-detected",{attempt:b}),!0;if(g.LO.test(c))return am.info("opencode-overlay-detected",{attempt:b}),!0}catch{}await new Promise(a=>setTimeout(a,500))}return am.info("opencode-ready-detection-timeout"),!1}async trySendViaServer(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=(0,V.hC)(a);if(null===e)return!1;let f=(0,X.lf)(a);if("live"!==f.state)return am.info("opencode-send-skipped-not-live",{worktreeId:a.worktreeId,instanceId:d,port:e,liveness:f.state}),!1;let g=(0,X.ym)(a);if(null===g)return am.info("opencode-send-skipped-no-session",{worktreeId:a.worktreeId,instanceId:d,port:e}),!1;let h=[{type:"text",text:b}];void 0!==c&&h.push({type:"file",mime:(0,D.$Y)((0,l.extname)(c)),filename:(0,l.basename)(c),url:(0,F.fy)(c)});let i=(0,F.CH)(),j=(0,ag.QH)((0,ag.Q1)(a));if(!await (0,F.wZ)(e,g,i,h,j))return!1;if(!await this.verifyPostedMessage(e,g,i,b))return am.warn("opencode-send-unverified",{worktreeId:a.worktreeId,instanceId:d,port:e,sessionId:g,messageId:i,hasImage:void 0!==c}),!1;return am.info("opencode-send-delivered-via-api",{worktreeId:a.worktreeId,instanceId:d,port:e,sessionId:g,messageId:i,hasImage:void 0!==c}),!0}catch(b){return am.warn("opencode-send-api-failed",{worktreeId:a.worktreeId,instanceId:d,error:ao(b)}),!1}}async verifyPostedMessage(a,b,c,d){for(let e of aq){e>0&&await new Promise(a=>setTimeout(a,e));let f=await (0,F.ep)(a,b,c);if("found"===f.kind)return f.texts.includes(d);if("missing"===f.kind)break}return!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,f.N)(d))throw Error(`OpenCode session ${d} does not exist. Start the session first.`);if(await this.trySendViaServer(Z(a,c),b))return void(0,i.gm)(d);try{await (0,h.FW)({sessionName:d,message:b,cliToolId:"opencode",composer:this.describeComposer()}),(0,i.gm)(d),am.info("sent-message-to-opencode-session:session")}catch(b){let a=ao(b);throw Error(`Failed to send message to OpenCode: ${a}`)}}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=this.getSessionName(a,d);if(!await (0,f.N)(e))throw Error(`OpenCode session ${e} does not exist. Start the session first.`);let g=Z(a,d);if(await this.trySendViaServer(g,b,c))return void(0,i.gm)(e);am.info("opencode-image-degraded-to-path",{worktreeId:a,instanceId:d??this.id}),await this.sendMessage(a,ar(b,c),d)}async killSession(a,b){let c=this.getSessionName(a,b),d=Z(a,b),e=(0,V.hC)(d),g=await (0,ah.LQ)(d).catch(()=>null);g&&!g.captured&&am.info("opencode-session-capture-skipped",{sessionName:c,reason:g.skipped}),await af(d);try{if(await (0,f.N)(c)){await (0,f.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,ak.pL)),await (0,f.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,ak.KI));let a=await (0,aj.rY)({sessionAlive:()=>(0,f.N)(c),portAnswering:null===e?null:async()=>await (0,F.Ok)(e)!==null});a.ok||(am.warn("opencode-graceful-exit-postcondition-failed",{sessionName:c,reason:a.reason,...null!==e?{port:e}:{}}),await (0,f.fY)(c))}else await (0,f.fY)(c);(0,i.gm)(c),am.info("stopped-opencode-session:sessionname")}catch(a){throw am.error("session:stop-failed",{error:ao(a)}),a}}async interrupt(a,b){let c=this.getSessionName(a,b);if(await ae(Z(a,b))){(0,i.gm)(c),am.info("opencode-interrupt-aborted-via-api");return}await (0,f.ds)(c,"Escape"),await new Promise(a=>setTimeout(a,ak.os)),await (0,f.ds)(c,"Escape"),(0,i.gm)(c),am.info("opencode-interrupt-sent")}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},56263:(a,b,c)=>{c.d(b,{L1:()=>e,MJ:()=>j,Rf:()=>f,ky:()=>g,lM:()=>i,pL:()=>h,wp:()=>d,zt:()=>k});let d=200,e=100,f=1e5,g="[... truncated ...]",h=3e4,i=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,j=128,k="Install with: brew install copilot-cli (macOS) or npm i -g @github/copilot"},59701:(a,b,c)=>{c.r(b),c.d(b,{CLIToolManager:()=>S});var d=c(81886),e=c(57905);class f extends d.M{async isInstalled(){return await (0,e.zw)()}async isRunning(a,b){return await (0,e.Yq)(a,b)}async launchSession(a,b,c){await (0,e.R7)({worktreeId:a,worktreePath:b,instanceId:c})}async sendMessage(a,b,c){await (0,e.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
4
+ ![](${c})`,f=b?`${b}${e}`:e;await this.sendMessage(a,f,d)}async killSession(a,b){await (0,e.VU)(a,b)}constructor(...a){super(...a),this.id="claude",this.name="Claude Code",this.command="claude"}}var g=c(79892),h=c(40236),i=c(93997),j=c(85164),k=c(72626),l=c(22354),m=c(4970),n=c(20610),o=c(2669);let p=(0,k.h)("cli-tools/codex");function q(a){return a instanceof Error?a.message:String(a)}class r extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw new o.lU(this.name,"Codex CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),p.info("codex-session-sessionname");return}(0,m.Fq)({worktreeId:a,cliToolId:l.c1,instanceId:c});try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let e=(0,m.wK)({target:{worktreeId:a,cliToolId:l.c1,instanceId:c},executablePath:this.command,worktreePath:b});await (0,g.V1)(d,e,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d),p.info("started-codex-session:sessionname")}catch(b){let a=q(b);throw Error(`Failed to start Codex session: ${a}`)}}async waitForReady(a){let b=!1,c=!1,d=!1,e=0;for(let f=0;f<30;f++){try{let f=await (0,g.Xg)(a,50),h=(0,j.aJ)(f);if((0,j.zZ)(h))return void p.info("codex-prompt-detected");if(!d&&function(a){return j.XV.every(b=>a.includes(b))}(h)){await (0,g.V1)(a,"3",!1),d=!0,p.info("codex-hooks-review-declined"),await new Promise(a=>setTimeout(a,n.CV));continue}let i=(0,j.E6)(h);if(("hooks-list"===i||"hooks-detail"===i)&&e<4){await (0,g.ds)(a,"Escape"),e++,p.info("codex-hooks-screen-escaped"),await new Promise(a=>setTimeout(a,n.CV));continue}let k=(0,j.Qh)(h);if("update"===k&&!b){await (0,g.V1)(a,"2",!1),b=!0,p.info("skipped-codex-update"),await new Promise(a=>setTimeout(a,n.CV));continue}if("press-enter"===k){await (0,g.ds)(a,"Enter"),p.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,n.CV));continue}if("trust"===k&&!c){await (0,g.V1)(a,"1",!1),c=!0,p.info("auto-trusted-folder-for"),await new Promise(a=>setTimeout(a,n.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}p.info("codex-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if((0,j.zZ)(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw p.info("codex-prompt-not"),Error("Codex prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Codex session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,h.FW)({sessionName:d,message:b,cliToolId:"codex",composer:this.describeComposer()}),(0,i.gm)(d),p.info("sent-message-to-codex-session:sessionnam")}catch(b){let a=q(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&p.info("stopped-codex-session:sessionname")}catch(a){throw p.error("session:stop-failed",{error:q(a)}),a}}constructor(...a){super(...a),this.id="codex",this.name="Codex CLI",this.command="codex"}}var s=c(23365);let t=(0,k.h)("cli-tools/gemini");function u(a){return a instanceof Error?a.message:String(a)}class v extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw new o.lU(this.name,"Gemini CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),t.info("gemini-session-sessionname");return}(0,m.Fq)({worktreeId:a,cliToolId:l.o,instanceId:c});try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let e=(0,m.wK)({target:{worktreeId:a,cliToolId:l.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,g.V1)(d,e,!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),t.info("started-gemini-session:sessionname")}catch(b){let a=u(b);throw Error(`Failed to start Gemini session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,g.Xg)(a,s.H),d=(0,j.aJ)(c);if(j.wN.test(d))return void t.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,g.ds)(a,"Enter"),b=!0,t.info("auto-trusted-folder-for"))}catch{}await new Promise(a=>setTimeout(a,1e3))}t.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,s.H),c=(0,j.aJ)(b);if(j.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}t.info("gemini-prompt-not")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,h.FW)({sessionName:d,message:b,cliToolId:"gemini",composer:this.describeComposer()}),(0,i.gm)(d),t.info("sent-message-to-gemini-session:sessionna")}catch(b){let a=u(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Is)),await (0,g.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&t.info("stopped-gemini-session:sessionname")}catch(a){throw t.error("session:stop-failed",{error:u(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}var w=c(15194),x=c(88807),y=c(56791);let z=(0,k.h)("cli-tools/vibe-local");function A(a){return a instanceof Error?a.message:String(a)}class B extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw new o.lU(this.name,"vibe-local is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),z.info("vibe-local-session");return}try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let c="vibe-local -y";try{let b=(0,x.getDbInstance)(),d=(0,y.getWorktreeById)(b,a);d?.vibeLocalModel&&w.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,w.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,g.V1)(d,c,!0),await new Promise(a=>setTimeout(a,5e3)),z.info("started-vibe-local-session:sessionname")}catch(b){let a=A(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Vibe Local session ${d} does not exist. Start the session first.`);try{await (0,h.FW)({sessionName:d,message:b,cliToolId:"vibe-local",composer:this.describeComposer(),interEnterWaitMs:n.PY}),(0,i.gm)(d),z.info("sent-message-to-vibe-local-session:sessi")}catch(b){let a=A(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Is)),await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&z.info("stopped-vibe-local-session:sessionname")}catch(a){throw z.error("session:stop-failed",{error:A(a)}),a}}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var C=c(41466),D=c(81776),E=c(56263),F=c(21758),G=c(54633),H=c(77093);let I=(0,k.h)("cli-tools/copilot"),J=new Set(["model","agent","theme","permissions","skills","mcp","settings","statusline","subagents","resume","session"]),K=/^[>❯](?:\s|$)/;class L extends d.M{async isInstalled(){return await (0,D.B0)()!==null}launchExecutable(a){return"path"===a.source?this.command:F.nL}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async launchSession(a,b,c){let d=await (0,D.B0)();if(!d)throw new o.lU(this.name,`GitHub Copilot CLI is not installed. ${E.zt}`);let e=this.getSessionName(a,c);if(await (0,g.N)(e)){await this.reconcileExistingSession(e),I.info("copilot-session-exists");return}(0,m.Fq)({worktreeId:a,cliToolId:G.V,instanceId:c});try{await (0,g.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let f=(0,m.wK)({target:{worktreeId:a,cliToolId:G.V,instanceId:c},executablePath:this.launchExecutable(d),worktreePath:b});await (0,g.V1)(e,f,!0),await this.waitForReady(e),I.info("started-copilot-session",{executableSource:d.source,version:d.version})}catch(b){let a=(0,H.u1)(b);throw Error(`Failed to start Copilot session: ${a}`)}}async answerFolderTrustDialog(a,b){return!!(0,j.Rx)(b)&&(await (0,g.V1)(a,j.oD,!1),(0,i.gm)(a),I.info("copilot-folder-trust-answered"),!0)}isComposerDrawn(a){let b=a.split("\n");for(let a=1;a<b.length-1;a++)if(K.test(b[a])&&j.A.test(b[a-1].trimEnd())&&j.A.test(b[a+1].trimEnd()))return!0;return!1}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,g.Xg)(a,50),d=(0,j.aJ)(c);if(this.isComposerDrawn(d))return void I.info("copilot-prompt-detected");!b&&await this.answerFolderTrustDialog(a,d)&&(b=!0)}catch{}await new Promise(a=>setTimeout(a,1e3))}I.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3){let c=Date.now(),d=!1;for(;Date.now()-c<b;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Du.test(c))return;!d&&await this.answerFolderTrustDialog(a,c)&&(d=!0)}catch{}await new Promise(a=>setTimeout(a,500))}I.info("copilot-prompt-not-detected")}extractSlashCommand(a){let b=a.trim();if(!b.startsWith("/"))return null;let c=b.match(/^\/(\S+)/);return c?c[1]:null}async waitForSelectionList(a){let b=Date.now();for(;Date.now()-b<5e3;){await new Promise(a=>setTimeout(a,300));try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if((0,j.gT)(c.split("\n")))return I.info("copilot-selection-list-detected"),!0}catch{}}return I.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&J.has(a)){await (0,g.V1)(d,b,!0),await this.waitForSelectionList(d),(0,i.gm)(d),I.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,h.FW)({sessionName:d,message:b,cliToolId:"copilot",composer:this.describeComposer(),textInputWaitMs:E.L1,verifyDelayMs:E.wp}),(0,i.gm)(d),I.info("sent-message-to-copilot-session")}catch(b){let a=(0,H.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await (0,g.V1)(d,`/model ${b}`,!0),await this.waitForPrompt(d,E.pL),(0,i.gm)(d),I.info("copilot-model-switched",{model:b})}catch(c){let a=(0,H.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Is)),await (0,g.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,E.L1)),await (0,g.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,n.Rk))),await (0,g.fY)(c)&&I.info("stopped-copilot-session")}catch(a){throw I.error("session:stop-failed",{error:(0,H.u1)(a)}),a}}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="copilot"}}let M=(0,k.h)("cli-tools/antigravity");function N(a){return a instanceof Error?a.message:String(a)}let O=/\?\s+for\s+shortcuts/,P=/Do you trust the contents of this project\?/;function Q(a){return O.test(a)&&!P.test(a)}class R extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async launchSession(a,b,c,d){if(!await this.isInstalled())throw new o.lU(this.name,"Antigravity CLI (agy) is not installed or not in PATH");let e=this.getSessionName(a,c);if(await (0,g.N)(e)){await this.reconcileExistingSession(e),M.info("antigravity-session-exists");return}(0,m.Fq)({worktreeId:a,cliToolId:l.F0,instanceId:c});try{await (0,g.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let f=(0,m.wK)({target:{worktreeId:a,cliToolId:l.F0,instanceId:c},executablePath:this.command,worktreePath:b}),h=d?`${f} --model '${d.replace(/'/g,"'\\''")}'`:f;await (0,g.V1)(e,h,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),M.info("started-antigravity-session")}catch(b){let a=N(b);throw Error(`Failed to start Antigravity session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,g.Xg)(a,50),d=(0,j.aJ)(c);if(Q(d))return void M.info("antigravity-prompt-detected");if(!b&&P.test(d)){await (0,g.ds)(a,"Enter"),b=!0,M.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}M.info("antigravity-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(Q(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw M.info("antigravity-prompt-not-ready"),Error("Antigravity prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Antigravity session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,h.FW)({sessionName:d,message:b,cliToolId:"antigravity",composer:this.describeComposer()}),(0,i.gm)(d),M.info("sent-message-to-antigravity-session")}catch(b){let a=N(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,n.Zf)));let a=await (0,g.fY)(c);(0,i.gm)(c),a&&M.info("stopped-antigravity-session")}catch(a){throw M.error("session:stop-failed",{error:N(a)}),a}}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}class S{constructor(){this.tools=new Map,this.tools.set("claude",new f),this.tools.set("codex",new r),this.tools.set("gemini",new v),this.tools.set("vibe-local",new B),this.tools.set("opencode",new C.Ui),this.tools.set("copilot",new L),this.tools.set("antigravity",new R)}static getInstance(){return S.instance||(S.instance=new S),S.instance}getTool(a){let b=this.tools.get(a);if(!b)throw Error(`CLI tool '${a}' not found`);return b}getAllTools(){return Array.from(this.tools.values())}async getToolInfo(a){let b=this.getTool(a),c=await b.isInstalled();return{id:b.id,name:b.name,command:b.command,installed:c}}async getAllToolsInfo(){return Promise.all(this.getAllTools().map(async a=>{let b=await a.isInstalled();return{id:a.id,name:a.name,command:a.command,installed:b}}))}async getInstalledTools(){return(await this.getAllToolsInfo()).filter(a=>a.installed)}async stopPollers(a,b,d){let{stopPolling:e}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1719),c.e(1191),c.e(6337),c.e(2759),c.e(7824),c.e(7472),c.e(5017),c.e(1058),c.e(1601),c.e(221),c.e(5220)]).then(c.bind(c,95220));e(a,b,d)}}},70849:(a,b,c)=>{c.d(b,{LQ:()=>k,SW:()=>l});var d=c(72626),e=c(84574),f=c(48083),g=c(77634),h=c(27939);let i=(0,d.h)("lib/session/opencode-session-recall");async function j(a,b){let c=new Set,d=await (0,g.GP)(a,b);for(let b=0;b<3;b+=1){if(null===d)return null;if(null===d.parentId||c.has(d.parentId))break;c.add(d.parentId),i.debug("opencode-session-parent-hop",{from:d.id,to:d.parentId}),d=await (0,g.GP)(a,d.parentId)}return d}async function k(a){let b=a.instanceId??a.cliToolId,c=(0,e.hC)(a);if(null===c)return{captured:!1,skipped:"no-port"};let d=(0,f.ak)(a.worktreeId,"opencode",a.instanceId)?.sessionId;if(!(0,h.jp)(d))return{captured:!1,skipped:"no-session-observed"};let g=await j(c,d);if(null===g)return{captured:!1,skipped:"session-unreadable"};if(null===g.directory)return{captured:!1,skipped:"no-directory"};let k=(0,e.U9)(a);return null!==k&&k!==g.directory?(i.warn("opencode-session-capture-directory-mismatch",{worktreeId:a.worktreeId,instanceId:b,expected:k,reported:g.directory}),{captured:!1,skipped:"directory-mismatch"}):(0,h.F_)(a,{sessionId:g.id,title:g.title,worktreePath:g.directory})?(i.info("opencode-session-captured",{worktreeId:a.worktreeId,instanceId:b,sessionId:g.id,viaParentOf:g.id===d?null:d}),{captured:!0,memory:{sessionId:g.id,title:g.title,worktreePath:g.directory,updatedAt:Date.now()}}):{captured:!1,skipped:"not-persisted"}}async function l(a){let b=(0,e.hC)(a),c=(0,f.ak)(a.worktreeId,"opencode",a.instanceId)?.sessionId;if(null!==b&&(0,h.jp)(c)){let a=await j(b,c);if(null!==a)return a.id}return(0,h.KA)(a)?.sessionId??null}},72272:(a,b,c)=>{c.d(b,{t:()=>i});var d=c(72626),e=c(50474),f=c(25071),g=c(17287);let h=(0,d.h)("lib/hooks/permission-adjudication");async function i(a,b,d,j,k="event"){let l=b.instanceId??b.cliToolId,m={worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l},{resolvePermissionRequest:n}=await c.e(3241).then(c.bind(c,43241)),o=n(m,j),p="allow"===o.behavior?{kind:"allowOnce"}:{kind:"abstain"};if("abstain"===p.kind){let c=(0,e.y_)(a);c.safe||h.warn("permission-request-abstain-blocks-agent",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l,toolName:j?.toolName??null,decisionId:d.id,reason:o.reason,consequence:c.summary,blocksForMs:c.blocksForMs})}let{delivery:q}=await (0,f.GW)(a,b,d,p),r=q?.delivered===!0,s=r&&a.capabilities.permissionReplyReleasesPrompt;return(0,g.nL)(b.worktreeId,b.cliToolId,b.instanceId,{decisionId:d.id,toolName:j?.toolName??null,behavior:"allow"===o.behavior?"allow":null,reason:o.reason,delivered:r,releasedPrompt:s,trigger:k,at:d.askedAt}),h.info("permission-decision-adjudicated",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l,decisionId:d.id,toolName:j?.toolName??null,behavior:o.behavior,reason:o.reason,suppressedBy:o.suppressedBy,delivered:r,settled:s,trigger:k}),{decisionId:d.id,behavior:"allow"===o.behavior?"allow":null,reason:o.reason,delivered:r,settled:s}}},73434:(a,b,c)=>{c.d(b,{hh:()=>f});let d=["CLAUDECODE","CM_AUTH_TOKEN","CM_AUTH_TOKEN_HASH","CM_AUTH_EXPIRE","CM_HTTPS_KEY","CM_HTTPS_CERT","CM_ALLOWED_IPS","CM_TRUST_PROXY","CM_DB_PATH","GH_DEBUG"],e=["CM_AGENT_INSTANCE_ID","CM_AGENT_TOOL","CM_AGENT_WORKTREE_ID","CM_HOOK_PORT","CM_HOOK_URL","CM_PERMISSION_HOOK_URL"];function f(){let a={...process.env};for(let b of Object.keys(a))(d.includes(b)||e.includes(b)||b.startsWith("CM_HOOK_"))&&delete a[b];return a}},77634:(a,b,c)=>{c.d(b,{GP:()=>l,Hv:()=>h,eJ:()=>n,mf:()=>o,y4:()=>m,yg:()=>p});var d=c(72626),e=c(49791),f=c(27939);let g=(0,d.h)("lib/session/opencode-session-api"),h="session_new";function i(a,b){let c=a[b];return"string"==typeof c&&c.length>0?c:null}async function j(a,b){try{let c=await fetch(a,{...b,redirect:e.uS,signal:AbortSignal.timeout(e.T0)});if(!c.ok)return null;if(!function(a){let b=a.headers?.get?.("content-type");return"string"==typeof b&&b.split(";",1)[0]?.trim().toLowerCase()===e._t}(c))return g.debug("opencode-session-request-content-type",{url:a,contentType:c.headers?.get?.("content-type")??null}),null;return await c.json()}catch(b){return g.debug("opencode-session-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}function k(a){if(!("object"==typeof a&&null!==a&&!Array.isArray(a)))return null;let b=i(a,"id");if(!(0,f.jp)(b))return null;let c=i(a,"title");return{id:b,title:null===c?null:c.slice(0,f.Y2),directory:i(a,"directory"),parentId:i(a,"parentID")}}async function l(a,b){return(0,f.jp)(b)?k(await j(`${(0,e.M2)(a)}/session/${encodeURIComponent(b)}`)):null}async function m(a,b){return(0,f.jp)(b)?k(await j(`${(0,e.M2)(a)}/session/${encodeURIComponent(b)}/fork`,{method:"POST",headers:{"content-type":e._t},body:"{}"})):null}async function n(a){return!0===await j(`${(0,e.M2)(a)}/tui/open-sessions`,{method:"POST",headers:{"content-type":e._t},body:"{}"})}async function o(a,b){return!0===await j(`${(0,e.M2)(a)}/tui/execute-command`,{method:"POST",headers:{"content-type":e._t},body:JSON.stringify({command:b})})}async function p(a,b){return!!(0,f.jp)(b)&&!0===await j(`${(0,e.M2)(a)}/tui/select-session`,{method:"POST",headers:{"content-type":e._t},body:JSON.stringify({sessionID:b})})}},81776:(a,b,c)=>{c.d(b,{B0:()=>n,En:()=>l});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(73434);let i="copilot",j=/(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/;function k(a){try{if(!(0,e.statSync)(a).isFile())return!1;return(0,e.accessSync)(a,e.constants.X_OK),!0}catch{return!1}}function l(a){let b=process.env.PATH;if(!b)return null;for(let c of b.split(g.delimiter)){if(!c)continue;let b=(0,g.join)(c,a);if(k(b))return b}return null}function m(a){return new Promise(b=>{(0,d.execFile)(a,["--version"],{timeout:5e3,maxBuffer:65536,env:(0,h.hh)()},(a,c,d)=>{if(a)return void b(null);let e=j.exec(`${c??""}
5
+ ${d??""}`);b(e?e[1]:null)})})}async function n(){let a=l(i);if(a){let b=await m(a);if(b)return{path:a,version:b,source:"path"}}if(!l("gh"))return null;for(let a of function(){let a=process.env.XDG_DATA_HOME||(0,g.join)((0,f.homedir)(),".local","share"),b=(0,g.join)(a,"gh",i);return[b,(0,g.join)(b,i)]}()){if(!k(a))continue;let b=await m(a);if(b)return{path:a,version:b,source:"gh-managed"}}return null}},81886:(a,b,c)=>{c.d(b,{M:()=>n});var d=c(79646),e=c(28354),f=c(40964),g=c(79892),h=c(56717),i=c(23365),j=c(93949),k=c(96287),l=c(8953);let m=(0,e.promisify)(d.exec);class n{async isInstalled(){try{return await m(`which ${this.command}`,{timeout:5e3}),!0}catch{return!1}}getSessionName(a,b){return(0,f.m)(this.id,a,b)}async startSession(a,b,c,d){try{await this.launchSession(a,b,c,d)}catch(b){throw(0,k.Zl)({worktreeId:a,cliToolId:this.id,instanceId:c,toolName:this.name},b),b}}async reconcileExistingSession(a,b){await (0,g.zT)(a,b)}async interrupt(a,b){let c=this.getSessionName(a,b);await (0,g.ds)(c,"Escape")}describeComposer(){return(0,h.gc)(this.id)}gracefulExitSequence(){return(0,j.JV)(this.id)}captureSpec(){return(0,i.y)(this.id)}navigationKeys(){return{keys:l.qD,leaderKey:null}}}},93949:(a,b,c)=>{c.d(b,{JV:()=>i,rY:()=>k});var d=c(56263),e=c(20610),f=c(86069);let g={keys:[(0,f.IS)("C-d")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},h={claude:g,codex:g,antigravity:g,gemini:{keys:[(0,f.IS)("C-c",e.Is),(0,f.iF)(`/quit\r`,void 0)],exitWaitMs:e.Zf,ownsLoopbackServer:!1},"vibe-local":{keys:[(0,f.IS)("C-c",e.Is),(0,f.IS)("C-c")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},copilot:{keys:[(0,f.IS)("C-c",e.Is),(0,f.iF)("/exit",d.L1),(0,f.IS)("Enter")],exitWaitMs:e.Rk,ownsLoopbackServer:!1},opencode:{keys:[(0,f.iF)("/exit",e.pL),(0,f.IS)("Enter")],exitWaitMs:e.KI,ownsLoopbackServer:!0}};function i(a){return h[a]??g}let j=a=>new Promise(b=>setTimeout(b,a));async function k(a){let b=Math.max(1,a.attempts??1),c=a.intervalMs??0,d=a.sleep??j,e=!0;for(let f=0;f<b&&(e=await a.sessionAlive());f+=1)f<b-1&&c>0&&await d(c);if(e)return{ok:!1,reason:"graceful_exit_timeout"};let f=a.portAnswering;if(!f)return{ok:!0};let g=!0;for(let a=0;a<b&&(g=await f());a+=1)a<b-1&&c>0&&await d(c);return g?{ok:!1,reason:"port_orphaned"}:{ok:!0}}},96287:(a,b,c)=>{c.d(b,{$k:()=>f,VI:()=>g,Zl:()=>e});var d=c(2669);function e(a,b){Promise.all([c.e(1356),c.e(1191),c.e(6337)]).then(c.bind(c,81099)).then(({notifySessionStartFailurePush:c})=>c({...a,error:b})).catch(()=>{})}async function f(a,b){if(await a.isInstalled())return;let c=new d.lU(a.name);throw e({worktreeId:b.worktreeId,cliToolId:a.id,instanceId:b.instanceId,toolName:a.name,subject:b.subject},c),c}function g(a,b){Promise.resolve().then(c.bind(c,59701)).then(({CLIToolManager:c})=>{let f=c.getInstance().getTool(a).name;e({worktreeId:b.worktreeId,cliToolId:a,instanceId:b.instanceId,toolName:f,subject:b.subject},new d.lU(f))}).catch(()=>{})}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1944,exports.ids=[1944],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},26833:(a,b,c)=>{c.d(b,{Iz:()=>g,X0:()=>h,om:()=>i});var d=c(65417),e=c(46065),f=c(63271);async function g(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["add","--",...b],a,d.Ev)})}async function h(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["restore","--staged","--",...b],a,d.Ev)})}async function i(a,b,c){await (0,e.dX)(a,async()=>{let g=["commit","-m",b];c&&g.push("--amend"),g.push("--");try{await (0,e.rS)(g,a,d.Ev)}catch(b){let a=b instanceof Error?b.message:"";if(/nothing to commit|no changes added to commit|nothing added to commit/i.test(a))throw new f.mZ("Nothing to commit");throw b}})}},39988:(a,b,c)=>{c.d(b,{SN:()=>n,jr:()=>i,lY:()=>m,nX:()=>l});var d=c(65417),e=c(46065),f=c(2412),g=c(63271);function h(a){let b=new Map;if(!a)return b;let c=null;for(let d of a.split("\n")){let a=d.trimEnd();if(a.startsWith("worktree "))c=a.slice(9).trim();else if(a.startsWith("branch ")&&c){let d=a.slice(7).trim(),e=d.startsWith("refs/heads/")?d.slice(11):d;e&&b.set(e,c)}else""===a&&(c=null)}return b}async function i(a,b="local"){let c="local"===b||"all"===b,d="remote"===b||"all"===b,[f,g,j,k,l]=await Promise.all([c?(0,e.Bc)(["branch","--list"],a):Promise.resolve(""),d?(0,e.Bc)(["branch","-r"],a):Promise.resolve(""),(0,e.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a),(0,e.Bc)(["worktree","list","--porcelain"],a),(0,e.Bc)(["for-each-ref","--format=%(refname:short)%09%(upstream:short)%09%(upstream:track)","refs/heads"],a)]),m=j?j.trim():null,n=h(k??""),o=function(a){let b=new Map;if(!a)return b;for(let c of a.split("\n")){if(!c.trim())continue;let[a,d="",e=""]=c.split(" ");if(!a)continue;let f=d.trim()||null,g=null;if(f){let a=e.match(/ahead (\d+)/),b=e.match(/behind (\d+)/);a||b?g={ahead:a?parseInt(a[1],10):0,behind:b?parseInt(b[1],10):0}:/gone/.test(e)||(g={ahead:0,behind:0})}b.set(a,{upstream:f,aheadBehind:g})}return b}(l??""),p=[];if(c)for(let{name:a,isCurrent:b}of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trimEnd();if(!a.trim())continue;let d=a.startsWith("* "),e=a.replace(/^[*+]?\s+/,"").trim();!e||e.startsWith("(")||b.push({name:e,isCurrent:d})}return b}(f??"")){let c=o.get(a);p.push({name:a,isCurrent:b,isRemote:!1,isDefault:null!==m&&m===`origin/${a}`,upstream:c?.upstream??null,aheadBehind:c?.aheadBehind??null,checkedOutWorktreePath:n.get(a)??null})}if(d)for(let a of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trim();a&&(a.includes("->")||b.push(a))}return b}(g??""))p.push({name:a,isCurrent:!1,isRemote:!0,isDefault:null!==m&&m===a,upstream:null,aheadBehind:null,checkedOutWorktreePath:null});return p}async function j(a,b){let c=await (0,e.Bc)(["worktree","list","--porcelain"],a);if(null===c)return null;let d=h(c).get(b);return d&&d!==a?d:null}function k(a){if(a instanceof g.y0||a instanceof g.wo||a instanceof g.rI)throw a;let b=a instanceof Error?a.message:String(a),c=a?.stderr??"",d=`${c} ${b}`;if(/did not match|not a valid ref|not found|unknown revision|invalid reference|couldn't find remote ref/i.test(d))throw new g.ur("Branch not found");throw a}async function l(a,b){let{branch:c,createIfMissing:f=!1,from:h,force:i=!1}=b,l=await j(a,c);if(l)throw new g.oK("Branch is checked out in another worktree",l);if(!i){let b=await (0,e.Bc)(["status","--porcelain"],a);if(null!==b&&b.length>0)throw new g.d_("Working tree has uncommitted changes")}await (0,e.dX)(a,async()=>{let b;f?(b=["switch","-c",c],h&&b.push(h),b.push("--")):b=c.startsWith("origin/")?["switch","-c",c.slice(7),"--track",c,"--"]:i?["checkout","-f",c,"--"]:["switch",c,"--"];try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function m(a,b){let{name:c,from:f}=b;await (0,e.dX)(a,async()=>{let b=["branch",c];f&&b.push(f),b.push("--");try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function n(a,b){let{name:c,force:h=!1}=b,i=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null!==i&&i.trim()===c)throw new g.MC("Cannot delete the current branch");let j=await (0,f.tR)(a);if(null!==j&&j===c)throw new g.qb("Cannot delete the default branch");await (0,e.dX)(a,async()=>{try{await (0,e.rS)(["branch",h?"-D":"-d",c,"--"],a,d.Ev)}catch(d){let a=d instanceof Error?d.message:String(d),b=d?.stderr??"",c=`${b} ${a}`;if(/not fully merged/i.test(c))throw new g.A6("Branch is not fully merged");k(d)}})}},59082:(a,b,c)=>{c.d(b,{C4:()=>l,FW:()=>j,Iz:()=>k,Z3:()=>m});var d=c(65417),e=c(72626),f=c(46065),g=c(2412),h=c(63271);let i=(0,e.h)("git-remote");async function j(a,b){let{remote:c="origin",prune:e}=b,g=["fetch"];e&&g.push("--prune"),g.push(c,"--"),await (0,f.sl)(g,a,d.dw)}async function k(a,b,c){await (0,f.rS)(["remote","add",b,c],a,5e3)}async function l(a,b){let{remote:c="origin",branch:e,rebase:g,ffOnly:h}=b;return(0,f.dX)(a,async()=>{let b=["pull"];return g&&b.push("--rebase"),h&&b.push("--ff-only"),b.push(c),e&&b.push(e),b.push("--"),(0,f.mY)(b,a,d.A$,!0)})}async function m(a,b){let{remote:c="origin",branch:e,force:j,forceWithLease:k,setUpstream:l}=b;if(j||k){let b=await (0,g.tR)(a);if(null!==b&&b===e)throw new h.rm;i.warn("git:danger:force-push",{operation:"push",worktreePath:a,branch:e,forceWithLease:!0===k,timestamp:new Date().toISOString()})}await (0,f.dX)(a,async()=>{let b=["push"];k?b.push("--force-with-lease"):j&&b.push("--force"),l&&b.push("-u"),b.push(c,`${e}:refs/heads/${e}`,"--"),await (0,f.sl)(b,a,d.fL)})}},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1 +1 @@
1
- "use strict";exports.id=2119,exports.ids=[2119],exports.modules={72119:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"{count} more agents","overflowTrigger":"More agents"},"toc":{"title":"Contents","show":"Show table of contents","hide":"Hide table of contents","empty":"No headings"},"composer":{"placeholder":"Type your message…","commandsHint":"commands","newlineHint":"newline","removeAttachment":"Remove attachment","showSlashCommands":"Show slash commands","attachImage":"Attach image","sendMessage":"Send message"},"interrupt":{"stopProcessing":"Stop processing"},"history":{"title":"Message History","regionLabel":"Message history","loading":"Loading messages","empty":"No messages yet","show":"Show","displayLimit":"History display limit","showArchived":"Show archived","showUserOnly":"Show user messages only","showAllMessages":"Show all messages","openSearch":"Open search","closeSearch":"Close search","copied":"Copied to clipboard","copyFailed":"Failed to copy","search":{"regionLabel":"Search history text","placeholder":"Search...","keywordLabel":"Search keyword","prev":"Previous result","next":"Next result","close":"Close search bar","countAtMax":"{current}/{max}+"}},"conversation":{"waitingForResponse":"Waiting for response...","you":"You","assistant":"Assistant","sending":"Sending…","failedToSend":"Failed to send","retrySending":"Retry sending message","discard":"Discard","discardMessage":"Discard message","insertToMessage":"Insert to message","copy":"Copy","copyMessage":"Copy message","collapse":"Collapse","expand":"Expand","collapseMessage":"Collapse message","expandMessage":"Expand message","systemMessage":"System Message","systemMessageLabel":"System message","openFile":"Open file: {path}","conversationLabel":"Conversation: {preview}"},"messages":{"loading":"Loading messages...","empty":"No messages yet","you":"You","copy":"Copy","copyMessage":"Copy message","viewLogFile":"View log file →"},"slashCommands":{"title":"Commands","searchPlaceholder":"Search commands...","enterCustomCommand":"Enter custom command...","selectHint":"select","closeHint":"close","empty":"No commands available","catalogStale":{"hint":"Your CLI is newer than this list. Add missing commands in ~/.commandmate/slash-commands/."},"sourceBadge":{"userCatalog":"Custom"},"descriptions":{"clear":"Clear conversation history","compact":"Compact context to reduce token usage","resume":"Resume previous conversation","rewind":"Rewind to previous conversation state","config":"Open configuration settings","model":"Switch AI model","permissions":"View or update tool permissions","status":"Check session status","context":"Show context window usage","review":"Review code changes","help":"Show all available commands","doctor":"Check installation health","export":"Export conversation history","focus":"Toggle focus mode","effort":"Adjust model thinking effort (high/medium/low)","fast":"Switch to fast response mode","loop":"Run a prompt repeatedly while the session stays open","add-dir":"Add a working directory for file access during the session","terminal-setup":"Configure terminal keybindings for Shift+Enter and other shortcuts","statusline":"Configure the status line display","usage":"Show session cost, plan usage limits, and activity stats","tasks":"View and manage background tasks","memory":{"claude":"Edit CLAUDE.md memory files and manage auto-memory","copilot":"Show memory status, or enable and disable memory across sessions"},"new":"Start a new conversation","logout":{"codex":"Sign out from Codex","claude":"Sign out of your Anthropic account","copilot":"Log out of the current OAuth session"},"quit":"Exit Codex CLI","diff":"Show Git diff (including untracked files)","mention":"Attach file/folder for next interaction","mcp":"Manage MCP servers and available tools","init":{"codex":"Generate AGENTS.md template in current directory","claude":"Generate a CLAUDE.md guide for the repository","copilot":"Initialize Copilot instructions for this repository","opencode":"Run guided AGENTS.md setup"},"feedback":{"codex":"Send feedback to Codex team","claude":"Send feedback about Claude Code","copilot":"Provide feedback about the CLI"},"plan":"Toggle plan mode","goal":"Set goal for current session","agent":{"codex":"Switch active agent (Codex)","copilot":"Browse and select an agent"},"subagents":"Manage subagents","fork":"Fork current session","memories":"Manage Codex memories","skills":{"codex":"Manage Codex skills","claude":"Manage Claude Code skills","copilot":"Manage skills for enhanced capabilities","opencode":"Browse and run available skills"},"hooks":"View or manage hook configurations","sessions":"Browse conversation history","connect":"Connect a provider","exit":{"opencode":"Exit OpenCode TUI","claude":"Exit the CLI","codex":"Exit the CLI","copilot":"Exit the CLI"},"models":"Switch AI model","agents":{"opencode":"List and manage available agents","claude":"Show a reminder to ask Claude to create or manage subagents, or to edit .claude/agents/ directly"},"themes":"Change TUI theme","editor":"Open editor for long messages","advisor":"Enable or disable the advisor tool, which consults a second model for guidance at key moments during a task","autocompact":"Set the auto-compact window: how full the context window gets before Claude Code compacts automatically","autofix-pr":"Spawn a Claude Code on the web session that watches the current branch\'s PR and pushes fixes when CI fails or reviewers leave comments","background":"Detach the current session to run as a background agent and free this terminal","batch":"Orchestrate large-scale changes across a codebase in parallel","branch":"Create a branch of the current conversation at this point, so you can try a different direction without losing the conversation as it stands","btw":"Ask a quick side question in an ephemeral fork, without adding it to the conversation","bug":"Report a bug or share your conversation","cd":"Move this session to a new working directory","chrome":"Configure Claude in Chrome settings","claude-api":"Load Claude API reference material for your project\'s language (Python, TypeScript, Java, Go, Ruby, C#, PHP, or cURL) and Managed Agents reference","code-review":"Review the current diff for correctness bugs and cleanup opportunities","color":"Set the prompt bar color for the current session","copy":"Copy the last response to the clipboard as markdown","dataviz":"Design guidance for charts, graphs, and dashboards","debug":{"claude":"Enable debug logging for the current session and troubleshoot issues by reading the session debug log","opencode":"View debug information"},"deep-research":"Fan out web searches on a question, fetch and cross-check sources, and synthesize a cited report","design-login":"Authorize design-system access for /design-sync with your claude.ai account","design-sync":"Convert your repo\'s React design system and upload it to Claude Design, so designs it produces use your real components","desktop":"Continue the current session in the Claude Code Desktop app","fewer-permission-prompts":"Scan your transcripts for common read-only Bash and MCP tool calls, then add a prioritized allowlist to project .claude/settings.json to reduce permission prompts","heapdump":"Write a JavaScript heap snapshot and a memory breakdown to ~/Desktop, or your home directory on Linux without a Desktop folder, for diagnosing high memory usage","ide":"Manage IDE integration: status, current selection, open files, and other editor context","insights":"Generate a report analyzing your Claude Code sessions, including project areas, interaction patterns, and friction points","install-github-app":"Install the Claude GitHub App for a repository, with an optional step to set up GitHub Actions workflows and secrets","install-slack-app":"Install the Claude Slack app","keybindings":"Open your keyboard shortcuts file","login":{"claude":"Sign in to your Anthropic account","copilot":"Log in to Copilot"},"mobile":"Show QR code to download the Claude mobile app","passes":"Share a free week of Claude Code with friends","plugin":{"claude":"Manage Claude Code plugins","copilot":"Manage plugins and plugin marketplaces"},"powerup":"Discover Claude Code features through quick interactive lessons with animated demos","privacy-settings":"View and update your privacy settings","radio":"Open Claude FM lo-fi radio in your browser","recap":"Generate a one-line summary of the current session on demand","release-notes":"View the changelog in an interactive version picker","reload-plugins":"Reload all active plugins to apply pending changes without restarting","reload-skills":"Re-scan skill and command directories so skills added or changed on disk during the session become available without restarting","remote-control":"Make this session available for Remote Control from claude.ai","remote-env":"Choose the default environment for cloud agents","rename":"Rename the current session or thread","run":"Launch and drive your project\'s app to see a change working, not only passing tests","run-skill-generator":"Teach /run and /verify how to build, launch, and drive your project\'s app from a clean environment by writing a per-project skill","sandbox":"Toggle sandbox mode","scroll-speed":"Adjust mouse wheel scroll speed interactively, with a ruler you can scroll while the dialog is open to preview the change","security-review":"Analyze the changes on your current branch for security vulnerabilities","setup-bedrock":"Configure Amazon Bedrock authentication, region, and model pins through an interactive wizard","setup-vertex":"Configure Google Cloud\'s Agent Platform authentication, project, region, and model pins through an interactive wizard","simplify":"Review the changed code for cleanup opportunities and apply the fixes","stickers":"Order Claude Code stickers","stop":"Stop background sessions and terminals","subtask":"Spawn a forked subagent: a background subagent that inherits the full conversation and works on the task while you keep working","team-onboarding":"Generate a team onboarding guide from your Claude Code usage history","teleport":"Pull a Claude Code on the web session into this terminal: opens a picker, then fetches the branch and conversation","theme":"Choose the color and syntax highlighting theme","tui":"Set the terminal UI renderer and relaunch into it with your conversation intact","ultrareview":"Run a deep, multi-agent code review in a cloud sandbox with ultrareview","upgrade":"Open the upgrade page in your browser to switch to a higher plan tier","usage-credits":"Configure usage credits, or request them from your admin, when you hit a limit","verify":"Confirm a code change does what it should by building your project\'s app, running it, and observing the result, rather than relying on tests or type checks","voice":"Toggle voice dictation, or enable it in a specific mode","web-setup":"Connect your GitHub account to Claude Code on the web using your local gh CLI credentials","workflows":"Open the workflow progress view to watch, pause, resume, or save running and completed workflows","keymap":"Remap TUI shortcuts","vim":"Toggle Vim mode for the composer","setup-default-sandbox":"Set up elevated agent sandbox","sandbox-add-read-dir":"Let sandbox read a directory: /sandbox-add-read-dir [absolute-path]","experimental":"Toggle experimental features","approve":"Approve one retry of a recent auto-review denial","import":{"codex":"Import setup, this project, and recent chats from Claude Code","claude":"Bring configuration from OpenAI Codex or Google Gemini CLI into Claude Code, including instruction files, MCP servers, commands, subagents, and skills"},"archive":"Archive this session and exit","delete":"Permanently delete this session and exit","app":{"codex":"Continue this session in the Desktop app","copilot":"Open the GitHub Copilot desktop app"},"side":"Start a side conversation in an ephemeral fork","raw":"Toggle raw scrollback mode for copy-friendly terminal selection","debug-config":"Show config layers and requirement sources for debugging","title":"Configure which items appear in the terminal title","pets":"Choose or hide the terminal pet","apps":"Manage apps","plugins":"Browse plugins","rollout":"Print the rollout file path","ps":"List background terminals","personality":"Choose a communication style for Codex","test-approval":"Test approval request","list-agents":"List the subagents and other Claude Code sessions Claude can message, with the name to use for each","allow-all":"Enable all tool, path, and URL permissions","ask":"Ask a quick side question without adding to conversation history","autopilot":"Toggle autopilot mode","changelog":"Display the changelog for CLI versions","chronicle":"Show session history tools and insights","cwd":"Change the working directory, or show the current one","delegate":"Send this session to GitHub to create a pull request","diagnose":"Analyze the current session log","env":"Show loaded environment details","fleet":"Enable fleet mode for parallel subagent execution","footer":"Configure status line items","instructions":"View and toggle custom instruction files","keep-alive":"Manage keep-alive mode, which prevents system sleep","limits":"View or edit session limits","list-dirs":"Display all allowed directories","lsp":"Manage language server configuration","pr":"Operate on pull requests for the current branch","refine":"Rewrite a rough prompt into a clear one for review","remote":"Toggle remote control from GitHub web and mobile","research":"Run a deep research investigation","reset-allowed-tools":"Reset the list of allowed tools","restart":"Restart the CLI, preserving the current session","rubber-duck":"Get an independent critique of the current work","search":"Search the conversation timeline","session":"View and manage sessions","settings":"Open the settings UI, or show and set a single value","share":"Share the session to a markdown file or a GitHub gist","undo":"Rewind the last turn and revert file changes","update":"Update the CLI to the latest version","user":"Manage the GitHub user list","version":"Display version information","mcps":"Toggle MCP servers","move":"Move to another project directory","variants":"Switch the model variant"}},"session":{"confirmKill":"End session for \\"{name}\\"?\\n\\nAll message history will be deleted. Log files will be retained.","failedToKill":"Failed to end session","confirmEnd":"End {tool} session?","endWarning":"Ending the session will clear chat history.","running":"Session running","starting":"Starting session","startingEllipsis":"Starting session..."},"status":{"waitingForResponse":"Waiting for response","responseCompleted":"Response completed","thinking":"Thinking...","thinkingStatus":"Thinking","agentIsThinking":"{toolName} is thinking..."},"output":{"latest":"Latest output","realtimeUpdate":"Real-time update"},"errors":{"failedToUpdateFavorite":"Failed to update favorite","failedToUpdateStatus":"Failed to update status"},"feedback":{"title":"Feedback & Support","bugReport":"Report a bug","featureRequest":"Request a feature","question":"Ask a question","viewIssues":"View all issues"},"fileTree":{"moveTo":"Move to...","moveDialogTitle":"Select destination","moveConfirm":"Move here","moveSuccess":"Moved successfully","timeAgo":"{time} ago","rootDirectory":"Root","metadata":{"size":"Size","created":"Created","modified":"Modified","settingsLabel":"Metadata display settings","settingsTitle":"Show inline","showSize":"File size","showCreated":"Created date","showModified":"Modified date"},"loading":"Loading files","empty":"No files found","newFile":"New File","newDirectory":"New Directory","noResultsMatching":"No files matching \\"{query}\\"","noResultsContaining":"No files containing \\"{query}\\"","label":"File tree","refreshing":"Refreshing files","refreshLabel":"Refresh file tree","resetViewLabel":"Reset file tree view","loadError":"Failed to load files","loadDirectoryError":"Failed to load directory: {status}","itemCount":"{count} items"},"update":{"available":"A new version is available","latestVersion":"Latest: v{version}","updateCommand":"Update command:","viewRelease":"View Release","dataPreserved":"Your database data will be preserved during the update.","version":"Version","installTypeGlobal":"npm (global)","installTypeLocal":"Local (git pull)","updateNow":"Update now","npxRestartNotice":"This server runs via npx. The update fetches the latest version and restarts the server. Some startup settings (such as the port) may change; if the page does not reconnect on its own, run \\"commandmate status\\" to find where the server is running.","confirmTitle":"Update CommandMate?","confirmDescription":"CommandMate will be updated to v{version}. The server stops, the new version installs, and the server starts again. This takes a few minutes.","confirmButton":"Update","starting":"Starting the update...","updating":"Updating. The server will restart automatically.","updatingHint":"This takes a few minutes. Keep this window open — the page reloads by itself once the new version is ready.","noRestartTitle":"Update installed","noRestartDescription":"This server was not started by \\"commandmate start --daemon\\", so it was left running on the old version. Restart it manually to apply the update.","timeoutTitle":"The update may have failed","timeoutDescription":"The server did not come back within the expected time. Check its state and finish the update manually:","errorTitle":"Could not start the update","errorNotGlobal":"CommandMate is not installed globally, so it cannot update itself.","errorInProgress":"An update is already running.","errorGeneric":"The update could not be started. Run the command manually:","logHint":"Update log: {path}"},"terminal":{"historyLabel":"History","filesLabel":"Files","showHistory":"Show history","hideHistory":"Hide history","showFiles":"Show files","hideFiles":"Hide files","equalizeWidths":"Equal widths","equalizeWidthsHint":"Equalize terminal widths and reset History width","addSplit":"Add split","removeSplit":"Remove split","selectInstance":"Select agent instance for {split}","moreActions":"More actions","searchTerminal":"Search terminal","endSession":"End session","endSessionFor":"End session for {name}"},"unsentComposer":{"regionLabel":"Unsent input","label":"Unsent input:","run":"Run","clear":"Clear"},"todo":{"addPlaceholder":"Add a todo…","add":"Add","empty":"No todos yet.","loading":"Loading…","statusTodo":"Todo","statusDoing":"In progress","statusDone":"Done","cycleStatus":"Status: {status} (click to change)","moveUp":"Move up","moveDown":"Move down","delete":"Delete todo","edit":"Edit todo","editTitle":"Edit todo","contentLabel":"Title","contentPlaceholder":"Todo title","detailLabel":"Detail","detailPlaceholder":"Add notes (optional)…","hasDetail":"Has detail","copyDetail":"Copy detail","save":"Save","cancel":"Cancel","loadError":"Failed to load todos","addError":"Failed to add todo","updateError":"Failed to update todo","deleteError":"Failed to delete todo","reorderError":"Failed to reorder todos"},"htmlPreview":{"interactiveModeConfirm":"Interactive mode executes scripts in the HTML file. Use Safe mode for untrusted HTML files.","title":"HTML Preview: {path}","modeSource":"Source","modePreview":"Preview","modeSplit":"Split","sandboxSafe":"Safe","sandboxInteractive":"Interactive"},"editor":{"saveFailedCloseConfirm":"Save failed. Close anyway?","unsavedCloseConfirm":"You have unsaved changes. Are you sure you want to close?","loading":"Loading...","placeholder":"Start typing...","placeholderMarkdown":"Start typing markdown...","saveSuccess":"File saved successfully","saveError":"Failed to save file","loadError":"Failed to load file","sessionExpired":"Session expired. Please re-login.","autoSaveFailed":"Auto-save failed. Switched to manual save.","unsaved":"Unsaved","auto":"Auto","splitView":"Split view","editorOnly":"Editor only","previewOnly":"Preview only","enterFullscreen":"Enter fullscreen (Ctrl+Shift+F)","exitFullscreen":"Exit fullscreen (ESC)","indent":"Indent (Tab)","outdent":"Outdent (Shift+Tab)","tabMovesFocusOn":"Tab moves focus (Ctrl+M to indent instead)","tabMovesFocusOff":"Tab indents (Ctrl+M to move focus instead)"},"actions":{"copyPath":"Copy path","copyContent":"Copy content","copyFilePath":"Copy file path","copyFileContent":"Copy file content","search":"Search","searchInFile":"Search in file","edit":"Edit","editFile":"Edit file","download":"Download","downloadFile":"Download file","close":"Close","save":"Save","saving":"Saving...","saved":"Saved","prev":"Prev","next":"Next","fullscreen":"Fullscreen","exitFullscreen":"Exit fullscreen","minimize":"Minimize","maximize":"Maximize","retry":"Retry","refresh":"Refresh","resetView":"Reset view"},"fileSearch":{"placeholder":"Search...","prevMatch":"Previous match","nextMatch":"Next match","close":"Close search"},"fileViewer":{"loading":"Loading file...","loadError":"Failed to load file","tabSource":"Source","tabPreview":"Preview","sandboxSafe":"Safe","sandboxInteractive":"Interactive","slideTitle":"{name} - Slide {number}","noSlides":"No slides found in {fileName}","slides":"Slides","editor":"Editor","modeSwitch":"Switch display mode","modeViewer":"Viewer","modeEditor":"Edit","moreActions":"More actions"},"fileTabs":{"unsavedChanges":"Unsaved changes","closeTab":"Close {name}"},"markdownPreview":{"loadingImage":"[loading image...]","editor":"Editor","preview":"Preview","exitFullscreenHint":"Press ESC to exit fullscreen","exitFullscreenHintSwipe":"(or swipe down)","largeFileWarning":"Large file: Performance may be affected."},"mermaid":{"rendering":"Rendering diagram...","loading":"Loading diagram...","errorTitle":"Diagram Error","emptyCode":"Diagram code is empty","renderError":"Failed to render diagram"},"imageViewer":{"loadError":"Failed to load image"},"videoViewer":{"loadError":"Failed to load video","loading":"Loading video...","unsupported":"Your browser does not support the video tag."},"logViewer":{"title":"Log Files","all":"All ({count})","toolCount":"{tool} ({count})","empty":"No log files found","emptyFiltered":"No {tool} log files found","copyTitle":"Copy sanitized log to clipboard","export":"Export","exporting":"Exporting...","copied":"Log copied to clipboard (sanitized)","exportError":"Failed to export log: {error}","searchPlaceholder":"Search in log file...","prevMatch":"Previous match (Shift+Enter)","nextMatch":"Next match (Enter)","noMatches":"No matches found for \\"{query}\\""},"pdfPreview":{"title":"PDF Preview: {path}","loadError":"Could not load the PDF preview.","openInNewTab":"Open PDF in a new tab","download":"Download","downloadPdf":"Download PDF"},"diffViewer":{"badge":"DIFF","close":"Close diff view"},"search":{"searching":"Searching...","placeholder":"Search files...","label":"Search files","clear":"Clear search","mode":"Mode:","modeName":"Name","modeContent":"Content"},"tabs":{"ariaLabel":"Mobile navigation","terminal":"Terminal","history":"History","files":"Files","memo":"Tools","info":"Info","newOutput":"New output available","promptWaiting":"Prompt waiting","updateAvailable":"Update available"},"git":{"uncommittedChanges":"Uncommitted changes","askAi":"Ask AI","askAiTooltip":"Draft the current state into the AI chat (nothing is sent automatically)","advancedOperations":"Advanced operations","remote":"Remote","paneSections":"Git pane sections","tabs":{"status":"Status","changes":"Changes","history":"History","advanced":"Advanced"},"checkout":{"action":"Checkout","ariaLabel":"Checkout branch","noBranches":"No branches","checkoutBranch":"Checkout {name}","checkedOutElsewhere":"Checked out in another worktree: {path}","defaultBadge":"default","confirmTitlePrefix":"Checkout ","confirmTitleSuffix":"?","forceLabel":"Discard uncommitted changes (force) — uncommitted changes will be lost","historyLossWarning":"Switching to another branch may permanently discard the chat history, memos, and schedules linked to this worktree on the next sync.","runningSessionWarning":"Switching to this branch changes the working files a running session is operating on."},"branches":{"title":"Branches","newButton":"+ New","refresh":"Refresh branches","filterLocal":"local","filterRemote":"remote","filterAll":"all","loading":"Loading branches...","empty":"No branches","defaultBadge":"default","deleteBranch":"Delete {name}","delete":"Delete","createTitle":"Create branch","namePlaceholder":"branch name (e.g. feature/123-foo)","nameLabel":"New branch name","baseLabel":"Base branch","currentHead":"(current HEAD)","create":"Create","deleteTitlePrefix":"Delete ","deleteTitleSuffix":"?","forceDeleteLabel":"Force delete (-D) — unmerged commits will be lost"},"changes":{"title":"Changes","refresh":"Refresh changes","loading":"Loading changes...","listHeader":"{title} ({count})","empty":"None","togglePreview":"Toggle diff preview for {path}","showDiff":"Show diff for {path}","diff":"Diff","fileAction":"{action} {path}","loadingPreview":"Loading diff preview...","previewFailed":"Failed to load preview","noDiff":"No diff available","truncated":"… truncated — open full diff","staged":"Staged","unstaged":"Unstaged","untracked":"Untracked","stage":"Stage","unstage":"Unstage","commitMessage":"Commit message","amend":"Amend","commit":"Commit","committing":"Committing...","commitAndPush":"Commit + Push","commitAndPushTooltip":"Commit, then push. If the push fails the commit is already saved — just retry Push."},"history":{"title":"Commit History","refresh":"Refresh commit history","loading":"Loading commit history...","empty":"No commits found","viewDiffFor":"View diff for {hash}","viewDiff":"View diff","hideDiff":"Hide diff","loadingChangedFiles":"Loading changed files...","noChangedFiles":"No changed files","showCommitDiff":"Show commit diff for {path}","changedFiles":"Changed Files","diffLabel":"Diff: {file}","loadingDiff":"Loading diff...","noDiff":"No diff available","diffInFilePanel":"Diff displayed in file panel: {file}"},"currentStatus":{"title":"Current Status","refresh":"Check the remote and refresh (git fetch)","refreshing":"Checking the remote...","loading":"Loading git status...","uncommitted":"uncommitted","aheadTooltip":"commits ahead of upstream as of the last fetch (the live remote may differ)","behindTooltip":"commits behind upstream as of the last fetch (the live remote may differ)","lastFetch":"Last fetch: {relative}","lastFetchNever":"Last fetch: never","lastFetchTooltip":"ahead/behind compares against the remote information from this moment. Use the refresh button to update it.","noUpstreamBadge":"not pushed","noUpstreamTooltip":"This branch has no upstream, so ahead/behind cannot be computed (it has never been pushed)","upstreamGoneBadge":"remote deleted","upstreamGoneTooltip":"The configured upstream has no remote-tracking branch anymore (it was likely deleted on the remote)","detachedBadge":"detached","detachedTooltip":"HEAD does not point to a branch, so ahead/behind cannot be computed","aheadBehindErrorBadge":"unavailable","aheadBehindErrorTooltip":"Could not read ahead/behind (timeout or similar). Use the refresh button to retry."},"danger":{"title":"Danger Zone","resetOpen":"Reset…","revertOpen":"Revert…","forcePushOpen":"Force Push…","selectCommitHint":"Select a commit in Commit History to enable revert / reset-to-commit.","resetTitle":"Reset","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"Selected commit ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(none selected)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"A hard reset permanently discards uncommitted changes, and moving HEAD may also lose commits. This operation cannot be undone.","runningSessionWarning":"This destructive operation will overwrite the working files a running session is editing.","confirmPlaceholder":"Type \\"{branch}\\" to confirm","reset":"Reset","revertTitle":"Revert","revertBodyPrefix":"Revert commit ","revertNoCommit":"No commit (leave staged)","revert":"Revert","forcePushTitle":"Force Push","protectedBranchWarning":"Force pushing to the default branch is not allowed.","forceWithLease":"Use --force-with-lease (recommended — refuses if the remote moved)","forcePush":"Force Push"},"network":{"quickActions":"Quick actions","fetch":"Fetch","pull":"Pull","push":"Push","noUpstreamTooltip":"No upstream — will set upstream on push","pushing":"Pushing","pulling":"Pulling","fetching":"Fetching","progress":"{operation}… {elapsed}s","abort":"Abort","conflicts":"Pull produced conflicts: {files}. Resolve them in the terminal.","authFailedGuidance":"Run push/pull once in the terminal to set up your credentials.","failed":"Git network operation failed"},"stash":{"titlePrefix":"Stash ","count":"({count})","refresh":"Refresh stash list","messagePlaceholder":"Stash message (optional)","includeUntracked":"Include untracked","push":"Stash","loading":"Loading stashes...","empty":"No stashes","apply":"Apply","pop":"Pop","drop":"Drop","dropConfirmSuffix":" will be permanently deleted. This operation cannot be undone."},"aiPrompts":{"branchCreate":"Create branch {name} from {base} and check it out.","branchCreateBaseHead":"the current HEAD","branchDelete":"Delete branch {name}.","branchDeleteForce":"Delete branch {name}. Force-delete it with -D even if it still has unmerged commits.","stashCleanup":"List the old stash entries and suggest which ones are safe to drop.","stashCleanupCurrent":"Current stashes:","stashConflict":"A conflict occurred while running stash pop / apply. Please resolve the conflict and then commit.","reset":"I want to run a {mode} reset onto {target}. Please do it safely.","resetHard":"I want to run a hard reset onto {target}. Please do it safely. A hard reset can discard work in progress. If you need to undo the hard reset afterwards, recover it from git reflog.","revert":"Please revert commit {commit}.","forcePush":"I want to push {branchRef} with force-with-lease. Check the diff against its upstream ({upstream}) first, and push only if it is safe.","forcePushAhead":"I want to push {branchRef} (↑{ahead}) with force-with-lease. Check the diff against its upstream ({upstream}) first, and push only if it is safe.","forcePushCurrentBranch":"the current branch"}},"activityBar":{"toggleSidebar":"Toggle sidebar","label":"Activity Bar","files":"Files","git":"Git","notes":"Notes","schedules":"Schedules","agent":"Agent","timer":"Timer","todo":"ToDo","skills":"Skills","verification":"Verification","env":"Env"},"branchMismatch":{"changedFrom":"Branch changed from","to":"to","dismiss":"Dismiss alert"},"contextMenu":{"label":"File actions","uploadFile":"Upload File","rename":"Rename","move":"Move","delete":"Delete"},"navigation":{"toolbarLabel":"TUI Navigation","caption":"Nav","quitPager":"Quit pager"},"newFileDialog":{"title":"New File","fileNameLabel":"File name","placeholder":"document","create":"Create"},"paneResizer":{"label":"Resize panes. Use {arrows} arrow keys to adjust.","arrowsHorizontal":"left and right","arrowsVertical":"up and down"},"desktopLayout":{"activityPane":"Activity pane","terminalPane":"Terminal pane"},"worktreeStatus":{"notSet":"Not set","ready":"Ready","inProgress":"In Progress","inReview":"In Review","done":"Done"},"card":{"main":"Main","description":"Description","link":"Link","openLink":"Open link in new tab","updated":"Updated {time}"},"detail":{"worktree":"Worktree","repository":"Repository","copyRepositoryPath":"Copy repository path","copyWorktreePath":"Copy worktree path","copyPath":"Copy path","copied":"Copied!","path":"Path","status":"Status","worktreeStatusLabel":"Worktree status","description":"Description","addNotesPlaceholder":"Add notes about this branch...","noDescription":"No description added yet","link":"Link","lastUpdated":"Last Updated","logs":"Logs","hide":"Hide","show":"Show","goBack":"Go back to worktree list","home":"Home","viewInfo":"View worktree information","info":"Info","infoModalTitle":"Worktree Information","loading":"Loading worktree...","loadingInfo":"Loading worktree info...","errorLoading":"Error loading worktree","uploadFile":"Upload file","unknownRepository":"Unknown","loadingEditor":"Loading editor...","agentInstanceSelection":"Agent Instance Selection","statusPill":"{label}: {status}","subTabMessage":"Message","subTabGit":"Git","statusPillWithModel":"{label}: {status} — model {model}"},"detailStatus":{"idle":"Idle - No active session","ready":"Ready - Waiting for input","running":"Running - Processing","waiting":"Waiting - User input required"},"agentModel":{"label":"Model","modelLabel":"Model: {model}"},"nextAction":{"start":"Start","sendMessage":"Send message","approveReject":"Approve / Reject","replyToPrompt":"Reply to prompt","checkStalled":"Check stalled","running":"Running..."},"awaitingInstruction":{"badge":"Ready for work","label":"The agent finished its turn and is waiting for your next instruction"},"verification":{"title":"Verification","refresh":"Refresh","loading":"Loading verification data…","loadError":"Could not load verification data: {message}","contract":{"heading":"Execution contract","empty":"No contract on this branch.\\nCreate one with `commandmate send --contract <file>`, or the `cmate-task-contract` Skill.","scopeAllow":"scope.allow","scopeDeny":"scope.deny","gates":"verify.gates","gatesAll":"all declared gates","autoYes":"autoYes.mode","autoYesUnset":"unset (keeps the existing behavior)","file":"contract file","updated":"updated"},"runs":{"heading":"Verification runs","empty":"No verification run yet.\\nPress Re-verify, or run `commandmate verify <worktree-id>`.","rerun":"Re-verify","rerunPending":"Starting…","rerunConflict":"A verification run is already in progress (run {runId}).","rerunConflictUnknown":"A verification run is already in progress.","rerunError":"Could not start verification: {message}","select":"Show gates for run {runId} (RESULT {verdict})","runLabel":"run {runId}","trigger":"trigger={trigger}"},"gates":{"heading":"Gates — run {runId}","empty":"This run recorded no gates.","loading":"Loading gates…","notFound":"That verification run is no longer available.","loadError":"Could not load the verification run: {message}","exitCode":"exit={code}","duration":"duration={duration}","contractSource":"[contract]","showLog":"Show log tail","hideLog":"Hide log tail","logOmitted":"… (+{count} more lines; run `commandmate verify show {runId}` for the full log)","noLog":"No log output recorded."},"runStatus":{"running":"running","passed":"passed","failed":"failed","not_started":"not_started","error":"error","cancelled":"cancelled"},"gateStatus":{"running":"RUNNING","passed":"PASS","failed":"FAIL","timeout":"TIMEOUT","skipped":"SKIP","error":"ERROR"},"chip":{"taskReason":"Task “{title}”: {status}","resultBadge":"RESULT {verdict}","runReason":"Last verification: RESULT {verdict} (run {runId})","noRun":"No verification run yet","failingGates":"Gates that did not pass: {gates}","gatesPassed":"All {count} gates passed","openHint":"Open the Verification pane","dash":"—"}},"task":{"status":{"pending":"pending","running":"running","waiting_input":"waiting_input","verifying":"verifying","succeeded":"succeeded","failed":"failed","not_started":"not_started","cancelled":"cancelled"}},"envManager":{"title":"Env Manager","description":"View and edit this worktree\'s environment files. Values are hidden by default.","filePickerLabel":"Environment file","viewModeLabel":"View mode","viewKeyValue":"Key-Value","viewRaw":"Raw","notCreated":"not created","templateBadge":"template","notCreatedHint":"{file} does not exist yet. Add a key and save to create it.","keyLabel":"Variable name","valueLabel":"Value of {key}","showValue":"Show the value of {key}","hideValue":"Hide the value of {key}","removeRow":"Remove {key}","addRow":"Add variable","revealAll":"Show values","hideAll":"Hide values","reload":"Reload from disk","save":"Save","saved":"Saved.","loading":"Loading environment file...","loadError":"The environment file could not be loaded.","empty":"No variables defined yet.","validationFailed":"This file cannot be saved yet.","suggestionsTitle":"Keys from the template","suggestionsHint":"Defined in .env.example / .env.sample but missing here. Tap to add.","rawLabel":"Raw environment file","rawMaskedLabel":"Raw environment file (values hidden)","rawMaskedHint":"Values are shown as {mask}. Choose \\"Show values\\" to reveal and edit them.","issues":{"invalidSyntax":"Line {line}: not a KEY=VALUE assignment.","invalidKey":"Line {line}: invalid variable name. Use letters, digits and underscores, starting with a letter or underscore.","unterminatedQuote":"Line {line}: the quoted value for {key} is never closed.","duplicateKey":"Line {line}: {key} is defined more than once. The last one wins.","controlCharacter":"Line {line}: contains a control character that is not allowed in an environment file.","tooLarge":"This file is too large to edit here.","tooManyEntries":"This file defines too many variables to edit here."}}}')}};
1
+ "use strict";exports.id=2119,exports.ids=[2119],exports.modules={72119:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"{count} more agents","overflowTrigger":"More agents"},"toc":{"title":"Contents","show":"Show table of contents","hide":"Hide table of contents","empty":"No headings"},"composer":{"placeholder":"Type your message…","commandsHint":"commands","newlineHint":"newline","removeAttachment":"Remove attachment","showSlashCommands":"Show slash commands","attachImage":"Attach image","sendMessage":"Send message"},"interrupt":{"stopProcessing":"Stop processing"},"history":{"title":"Message History","regionLabel":"Message history","loading":"Loading messages","empty":"No messages yet","show":"Show","displayLimit":"History display limit","showArchived":"Show archived","showUserOnly":"Show user messages only","showAllMessages":"Show all messages","openSearch":"Open search","closeSearch":"Close search","copied":"Copied to clipboard","copyFailed":"Failed to copy","search":{"regionLabel":"Search history text","placeholder":"Search...","keywordLabel":"Search keyword","prev":"Previous result","next":"Next result","close":"Close search bar","countAtMax":"{current}/{max}+"}},"conversation":{"waitingForResponse":"Waiting for response...","you":"You","assistant":"Assistant","sending":"Sending…","failedToSend":"Failed to send","retrySending":"Retry sending message","discard":"Discard","discardMessage":"Discard message","insertToMessage":"Insert to message","copy":"Copy","copyMessage":"Copy message","collapse":"Collapse","expand":"Expand","collapseMessage":"Collapse message","expandMessage":"Expand message","systemMessage":"System Message","systemMessageLabel":"System message","openFile":"Open file: {path}","conversationLabel":"Conversation: {preview}"},"messages":{"loading":"Loading messages...","empty":"No messages yet","you":"You","copy":"Copy","copyMessage":"Copy message","viewLogFile":"View log file →"},"slashCommands":{"title":"Commands","searchPlaceholder":"Search commands...","enterCustomCommand":"Enter custom command...","selectHint":"select","closeHint":"close","empty":"No commands available","catalogStale":{"hint":"Your CLI is newer than this list. Add missing commands in ~/.commandmate/slash-commands/."},"sourceBadge":{"userCatalog":"Custom"},"descriptions":{"clear":"Clear conversation history","compact":"Compact context to reduce token usage","resume":"Resume previous conversation","rewind":"Rewind to previous conversation state","config":"Open configuration settings","model":"Switch AI model","permissions":"View or update tool permissions","status":"Check session status","context":"Show context window usage","review":"Review code changes","help":"Show all available commands","doctor":"Check installation health","export":"Export conversation history","focus":"Toggle focus mode","effort":"Adjust model thinking effort (high/medium/low)","fast":"Switch to fast response mode","loop":"Run a prompt repeatedly while the session stays open","add-dir":"Add a working directory for file access during the session","terminal-setup":"Configure terminal keybindings for Shift+Enter and other shortcuts","statusline":"Configure the status line display","usage":"Show session cost, plan usage limits, and activity stats","tasks":"View and manage background tasks","memory":{"claude":"Edit CLAUDE.md memory files and manage auto-memory","copilot":"Show memory status, or enable and disable memory across sessions"},"new":"Start a new conversation","logout":{"codex":"Sign out from Codex","claude":"Sign out of your Anthropic account","copilot":"Log out of the current OAuth session"},"quit":"Exit Codex CLI","diff":"Show Git diff (including untracked files)","mention":"Attach file/folder for next interaction","mcp":"Manage MCP servers and available tools","init":{"codex":"Generate AGENTS.md template in current directory","claude":"Generate a CLAUDE.md guide for the repository","copilot":"Initialize Copilot instructions for this repository","opencode":"Run guided AGENTS.md setup"},"feedback":{"codex":"Send feedback to Codex team","claude":"Send feedback about Claude Code","copilot":"Provide feedback about the CLI"},"plan":"Toggle plan mode","goal":"Set goal for current session","agent":{"copilot":"Browse and select an agent"},"subagents":"Manage subagents","fork":"Fork current session","memories":"Manage Codex memories","skills":{"codex":"Manage Codex skills","claude":"Manage Claude Code skills","copilot":"Manage skills for enhanced capabilities","opencode":"Browse and run available skills"},"hooks":"View or manage hook configurations","sessions":"Browse conversation history","connect":"Connect a provider","exit":{"opencode":"Exit OpenCode TUI","claude":"Exit the CLI","codex":"Exit the CLI","copilot":"Exit the CLI"},"models":"Switch AI model","agents":{"opencode":"List and manage available agents","claude":"Show a reminder to ask Claude to create or manage subagents, or to edit .claude/agents/ directly","codex":"view and switch between all active agent sessions"},"themes":"Change TUI theme","editor":"Open editor for long messages","advisor":"Enable or disable the advisor tool, which consults a second model for guidance at key moments during a task","autocompact":"Set the auto-compact window: how full the context window gets before Claude Code compacts automatically","autofix-pr":"Spawn a Claude Code on the web session that watches the current branch\'s PR and pushes fixes when CI fails or reviewers leave comments","background":"Detach the current session to run as a background agent and free this terminal","batch":"Orchestrate large-scale changes across a codebase in parallel","branch":"Create a branch of the current conversation at this point, so you can try a different direction without losing the conversation as it stands","btw":"Ask a quick side question in an ephemeral fork, without adding it to the conversation","bug":"Report a bug or share your conversation","cd":{"claude":"Move this session to a new working directory","codex":"change the current working directory"},"chrome":"Configure Claude in Chrome settings","claude-api":"Load Claude API reference material for your project\'s language (Python, TypeScript, Java, Go, Ruby, C#, PHP, or cURL) and Managed Agents reference","code-review":"Review the current diff for correctness bugs and cleanup opportunities","color":"Set the prompt bar color for the current session","copy":"Copy the last response to the clipboard as markdown","dataviz":"Design guidance for charts, graphs, and dashboards","debug":{"claude":"Enable debug logging for the current session and troubleshoot issues by reading the session debug log","opencode":"View debug information"},"deep-research":"Fan out web searches on a question, fetch and cross-check sources, and synthesize a cited report","design-login":"Authorize design-system access for /design-sync with your claude.ai account","design-sync":"Convert your repo\'s React design system and upload it to Claude Design, so designs it produces use your real components","desktop":"Continue the current session in the Claude Code Desktop app","fewer-permission-prompts":"Scan your transcripts for common read-only Bash and MCP tool calls, then add a prioritized allowlist to project .claude/settings.json to reduce permission prompts","heapdump":"Write a JavaScript heap snapshot and a memory breakdown to ~/Desktop, or your home directory on Linux without a Desktop folder, for diagnosing high memory usage","ide":"Manage IDE integration: status, current selection, open files, and other editor context","insights":"Generate a report analyzing your Claude Code sessions, including project areas, interaction patterns, and friction points","install-github-app":"Install the Claude GitHub App for a repository, with an optional step to set up GitHub Actions workflows and secrets","install-slack-app":"Install the Claude Slack app","keybindings":"Open your keyboard shortcuts file","login":{"claude":"Sign in to your Anthropic account","copilot":"Log in to Copilot"},"mobile":"Show QR code to download the Claude mobile app","passes":"Share a free week of Claude Code with friends","plugin":{"claude":"Manage Claude Code plugins","copilot":"Manage plugins and plugin marketplaces"},"powerup":"Discover Claude Code features through quick interactive lessons with animated demos","privacy-settings":"View and update your privacy settings","radio":"Open Claude FM lo-fi radio in your browser","recap":"Generate a one-line summary of the current session on demand","release-notes":"View the changelog in an interactive version picker","reload-plugins":"Reload all active plugins to apply pending changes without restarting","reload-skills":"Re-scan skill and command directories so skills added or changed on disk during the session become available without restarting","remote-control":"Make this session available for Remote Control from claude.ai","remote-env":"Choose the default environment for cloud agents","rename":"Rename the current session or thread","run":"Launch and drive your project\'s app to see a change working, not only passing tests","run-skill-generator":"Teach /run and /verify how to build, launch, and drive your project\'s app from a clean environment by writing a per-project skill","sandbox":"Toggle sandbox mode","scroll-speed":"Adjust mouse wheel scroll speed interactively, with a ruler you can scroll while the dialog is open to preview the change","security-review":"Analyze the changes on your current branch for security vulnerabilities","setup-bedrock":"Configure Amazon Bedrock authentication, region, and model pins through an interactive wizard","setup-vertex":"Configure Google Cloud\'s Agent Platform authentication, project, region, and model pins through an interactive wizard","simplify":"Review the changed code for cleanup opportunities and apply the fixes","stickers":"Order Claude Code stickers","stop":"Stop background sessions and terminals","subtask":"Spawn a forked subagent: a background subagent that inherits the full conversation and works on the task while you keep working","team-onboarding":"Generate a team onboarding guide from your Claude Code usage history","teleport":"Pull a Claude Code on the web session into this terminal: opens a picker, then fetches the branch and conversation","theme":"Choose the color and syntax highlighting theme","tui":"Set the terminal UI renderer and relaunch into it with your conversation intact","ultrareview":"Run a deep, multi-agent code review in a cloud sandbox with ultrareview","upgrade":"Open the upgrade page in your browser to switch to a higher plan tier","usage-credits":"Configure usage credits, or request them from your admin, when you hit a limit","verify":"Confirm a code change does what it should by building your project\'s app, running it, and observing the result, rather than relying on tests or type checks","voice":"Toggle voice dictation, or enable it in a specific mode","web-setup":"Connect your GitHub account to Claude Code on the web using your local gh CLI credentials","workflows":"Open the workflow progress view to watch, pause, resume, or save running and completed workflows","keymap":"Remap TUI shortcuts","vim":"Toggle Vim mode for the composer","setup-default-sandbox":"Set up elevated agent sandbox","sandbox-add-read-dir":"Let sandbox read a directory: /sandbox-add-read-dir [absolute-path]","experimental":"Toggle experimental features","approve":"Approve one retry of a recent auto-review denial","import":{"codex":"Import setup, this project, and recent chats from Claude Code","claude":"Bring configuration from OpenAI Codex or Google Gemini CLI into Claude Code, including instruction files, MCP servers, commands, subagents, and skills"},"archive":"Archive this session and exit","delete":"Permanently delete this session and exit","app":{"codex":"Continue this session in the Desktop app","copilot":"Open the GitHub Copilot desktop app"},"side":"Start a side conversation in an ephemeral fork","raw":"Toggle raw scrollback mode for copy-friendly terminal selection","debug-config":"Show config layers and requirement sources for debugging","title":"Configure which items appear in the terminal title","pets":"Choose or hide the terminal pet","apps":"Manage apps","plugins":"Browse plugins","rollout":"Print the rollout file path","ps":"List background terminals","personality":"Choose a communication style for Codex","test-approval":"Test approval request","list-agents":"List the subagents and other Claude Code sessions Claude can message, with the name to use for each","allow-all":"Enable all tool, path, and URL permissions","ask":"Ask a quick side question without adding to conversation history","autopilot":"Toggle autopilot mode","changelog":"Display the changelog for CLI versions","chronicle":"Show session history tools and insights","cwd":"Change the working directory, or show the current one","delegate":"Send this session to GitHub to create a pull request","diagnose":"Analyze the current session log","env":"Show loaded environment details","fleet":"Enable fleet mode for parallel subagent execution","footer":"Configure status line items","instructions":"View and toggle custom instruction files","keep-alive":"Manage keep-alive mode, which prevents system sleep","limits":"View or edit session limits","list-dirs":"Display all allowed directories","lsp":"Manage language server configuration","pr":"Operate on pull requests for the current branch","refine":"Rewrite a rough prompt into a clear one for review","remote":"Toggle remote control from GitHub web and mobile","research":"Run a deep research investigation","reset-allowed-tools":"Reset the list of allowed tools","restart":"Restart the CLI, preserving the current session","rubber-duck":"Get an independent critique of the current work","search":"Search the conversation timeline","session":"View and manage sessions","settings":"Open the settings UI, or show and set a single value","share":"Share the session to a markdown file or a GitHub gist","undo":"Rewind the last turn and revert file changes","update":"Update the CLI to the latest version","user":"Manage the GitHub user list","version":"Display version information","mcps":"Toggle MCP servers","move":"Move to another project directory","variants":"Switch the model variant","pwd":"show the current working directory","artifacts":"List the artifacts you own or that are shared with you, then attach one to the session, open it in your browser, or copy its link","auto-mode-setup":"Draft autoMode.environment entries from your project and recent sessions, then review the draft and save it to your user settings"}},"session":{"confirmKill":"End session for \\"{name}\\"?\\n\\nAll message history will be deleted. Log files will be retained.","failedToKill":"Failed to end session","confirmEnd":"End {tool} session?","endWarning":"Ending the session will clear chat history.","running":"Session running","starting":"Starting session","startingEllipsis":"Starting session..."},"status":{"waitingForResponse":"Waiting for response","responseCompleted":"Response completed","thinking":"Thinking...","thinkingStatus":"Thinking","agentIsThinking":"{toolName} is thinking..."},"output":{"latest":"Latest output","realtimeUpdate":"Real-time update"},"errors":{"failedToUpdateFavorite":"Failed to update favorite","failedToUpdateStatus":"Failed to update status"},"feedback":{"title":"Feedback & Support","bugReport":"Report a bug","featureRequest":"Request a feature","question":"Ask a question","viewIssues":"View all issues"},"fileTree":{"moveTo":"Move to...","moveDialogTitle":"Select destination","moveConfirm":"Move here","moveSuccess":"Moved successfully","timeAgo":"{time} ago","rootDirectory":"Root","metadata":{"size":"Size","created":"Created","modified":"Modified","settingsLabel":"Metadata display settings","settingsTitle":"Show inline","showSize":"File size","showCreated":"Created date","showModified":"Modified date"},"loading":"Loading files","empty":"No files found","newFile":"New File","newDirectory":"New Directory","noResultsMatching":"No files matching \\"{query}\\"","noResultsContaining":"No files containing \\"{query}\\"","label":"File tree","refreshing":"Refreshing files","refreshLabel":"Refresh file tree","resetViewLabel":"Reset file tree view","loadError":"Failed to load files","loadDirectoryError":"Failed to load directory: {status}","itemCount":"{count} items"},"update":{"available":"A new version is available","latestVersion":"Latest: v{version}","updateCommand":"Update command:","viewRelease":"View Release","dataPreserved":"Your database data will be preserved during the update.","version":"Version","installTypeGlobal":"npm (global)","installTypeLocal":"Local (git pull)","updateNow":"Update now","npxRestartNotice":"This server runs via npx. The update fetches the latest version and restarts the server. Some startup settings (such as the port) may change; if the page does not reconnect on its own, run \\"commandmate status\\" to find where the server is running.","confirmTitle":"Update CommandMate?","confirmDescription":"CommandMate will be updated to v{version}. The server stops, the new version installs, and the server starts again. This takes a few minutes.","confirmButton":"Update","starting":"Starting the update...","updating":"Updating. The server will restart automatically.","updatingHint":"This takes a few minutes. Keep this window open — the page reloads by itself once the new version is ready.","noRestartTitle":"Update installed","noRestartDescription":"This server was not started by \\"commandmate start --daemon\\", so it was left running on the old version. Restart it manually to apply the update.","timeoutTitle":"The update may have failed","timeoutDescription":"The server did not come back within the expected time. Check its state and finish the update manually:","errorTitle":"Could not start the update","errorNotGlobal":"CommandMate is not installed globally, so it cannot update itself.","errorInProgress":"An update is already running.","errorGeneric":"The update could not be started. Run the command manually:","logHint":"Update log: {path}"},"terminal":{"historyLabel":"History","filesLabel":"Files","showHistory":"Show history","hideHistory":"Hide history","showFiles":"Show files","hideFiles":"Hide files","equalizeWidths":"Equal widths","equalizeWidthsHint":"Equalize terminal widths and reset History width","addSplit":"Add split","removeSplit":"Remove split","selectInstance":"Select agent instance for {split}","moreActions":"More actions","searchTerminal":"Search terminal","endSession":"End session","endSessionFor":"End session for {name}"},"unsentComposer":{"regionLabel":"Unsent input","label":"Unsent input:","run":"Run","clear":"Clear"},"todo":{"addPlaceholder":"Add a todo…","add":"Add","empty":"No todos yet.","loading":"Loading…","statusTodo":"Todo","statusDoing":"In progress","statusDone":"Done","cycleStatus":"Status: {status} (click to change)","moveUp":"Move up","moveDown":"Move down","delete":"Delete todo","edit":"Edit todo","editTitle":"Edit todo","contentLabel":"Title","contentPlaceholder":"Todo title","detailLabel":"Detail","detailPlaceholder":"Add notes (optional)…","hasDetail":"Has detail","copyDetail":"Copy detail","save":"Save","cancel":"Cancel","loadError":"Failed to load todos","addError":"Failed to add todo","updateError":"Failed to update todo","deleteError":"Failed to delete todo","reorderError":"Failed to reorder todos"},"htmlPreview":{"interactiveModeConfirm":"Interactive mode executes scripts in the HTML file. Use Safe mode for untrusted HTML files.","title":"HTML Preview: {path}","modeSource":"Source","modePreview":"Preview","modeSplit":"Split","sandboxSafe":"Safe","sandboxInteractive":"Interactive"},"editor":{"saveFailedCloseConfirm":"Save failed. Close anyway?","unsavedCloseConfirm":"You have unsaved changes. Are you sure you want to close?","loading":"Loading...","placeholder":"Start typing...","placeholderMarkdown":"Start typing markdown...","saveSuccess":"File saved successfully","saveError":"Failed to save file","loadError":"Failed to load file","sessionExpired":"Session expired. Please re-login.","autoSaveFailed":"Auto-save failed. Switched to manual save.","unsaved":"Unsaved","auto":"Auto","splitView":"Split view","editorOnly":"Editor only","previewOnly":"Preview only","enterFullscreen":"Enter fullscreen (Ctrl+Shift+F)","exitFullscreen":"Exit fullscreen (ESC)","indent":"Indent (Tab)","outdent":"Outdent (Shift+Tab)","tabMovesFocusOn":"Tab moves focus (Ctrl+M to indent instead)","tabMovesFocusOff":"Tab indents (Ctrl+M to move focus instead)"},"actions":{"copyPath":"Copy path","copyContent":"Copy content","copyFilePath":"Copy file path","copyFileContent":"Copy file content","search":"Search","searchInFile":"Search in file","edit":"Edit","editFile":"Edit file","download":"Download","downloadFile":"Download file","close":"Close","save":"Save","saving":"Saving...","saved":"Saved","prev":"Prev","next":"Next","fullscreen":"Fullscreen","exitFullscreen":"Exit fullscreen","minimize":"Minimize","maximize":"Maximize","retry":"Retry","refresh":"Refresh","resetView":"Reset view"},"fileSearch":{"placeholder":"Search...","prevMatch":"Previous match","nextMatch":"Next match","close":"Close search"},"fileViewer":{"loading":"Loading file...","loadError":"Failed to load file","tabSource":"Source","tabPreview":"Preview","sandboxSafe":"Safe","sandboxInteractive":"Interactive","slideTitle":"{name} - Slide {number}","noSlides":"No slides found in {fileName}","slides":"Slides","editor":"Editor","modeSwitch":"Switch display mode","modeViewer":"Viewer","modeEditor":"Edit","moreActions":"More actions"},"fileTabs":{"unsavedChanges":"Unsaved changes","closeTab":"Close {name}"},"markdownPreview":{"loadingImage":"[loading image...]","editor":"Editor","preview":"Preview","exitFullscreenHint":"Press ESC to exit fullscreen","exitFullscreenHintSwipe":"(or swipe down)","largeFileWarning":"Large file: Performance may be affected."},"mermaid":{"rendering":"Rendering diagram...","loading":"Loading diagram...","errorTitle":"Diagram Error","emptyCode":"Diagram code is empty","renderError":"Failed to render diagram"},"imageViewer":{"loadError":"Failed to load image"},"videoViewer":{"loadError":"Failed to load video","loading":"Loading video...","unsupported":"Your browser does not support the video tag."},"logViewer":{"title":"Log Files","all":"All ({count})","toolCount":"{tool} ({count})","empty":"No log files found","emptyFiltered":"No {tool} log files found","copyTitle":"Copy sanitized log to clipboard","export":"Export","exporting":"Exporting...","copied":"Log copied to clipboard (sanitized)","exportError":"Failed to export log: {error}","searchPlaceholder":"Search in log file...","prevMatch":"Previous match (Shift+Enter)","nextMatch":"Next match (Enter)","noMatches":"No matches found for \\"{query}\\""},"pdfPreview":{"title":"PDF Preview: {path}","loadError":"Could not load the PDF preview.","openInNewTab":"Open PDF in a new tab","download":"Download","downloadPdf":"Download PDF"},"diffViewer":{"badge":"DIFF","close":"Close diff view"},"search":{"searching":"Searching...","placeholder":"Search files...","label":"Search files","clear":"Clear search","mode":"Mode:","modeName":"Name","modeContent":"Content"},"tabs":{"ariaLabel":"Mobile navigation","terminal":"Terminal","history":"History","files":"Files","memo":"Tools","info":"Info","newOutput":"New output available","promptWaiting":"Prompt waiting","updateAvailable":"Update available"},"git":{"uncommittedChanges":"Uncommitted changes","askAi":"Ask AI","askAiTooltip":"Draft the current state into the AI chat (nothing is sent automatically)","advancedOperations":"Advanced operations","remote":"Remote","paneSections":"Git pane sections","tabs":{"status":"Status","changes":"Changes","history":"History","advanced":"Advanced"},"checkout":{"action":"Checkout","ariaLabel":"Checkout branch","noBranches":"No branches","checkoutBranch":"Checkout {name}","checkedOutElsewhere":"Checked out in another worktree: {path}","defaultBadge":"default","confirmTitlePrefix":"Checkout ","confirmTitleSuffix":"?","forceLabel":"Discard uncommitted changes (force) — uncommitted changes will be lost","historyLossWarning":"Switching to another branch may permanently discard the chat history, memos, and schedules linked to this worktree on the next sync.","runningSessionWarning":"Switching to this branch changes the working files a running session is operating on."},"branches":{"title":"Branches","newButton":"+ New","refresh":"Refresh branches","filterLocal":"local","filterRemote":"remote","filterAll":"all","loading":"Loading branches...","empty":"No branches","defaultBadge":"default","deleteBranch":"Delete {name}","delete":"Delete","createTitle":"Create branch","namePlaceholder":"branch name (e.g. feature/123-foo)","nameLabel":"New branch name","baseLabel":"Base branch","currentHead":"(current HEAD)","create":"Create","deleteTitlePrefix":"Delete ","deleteTitleSuffix":"?","forceDeleteLabel":"Force delete (-D) — unmerged commits will be lost"},"changes":{"title":"Changes","refresh":"Refresh changes","loading":"Loading changes...","listHeader":"{title} ({count})","empty":"None","togglePreview":"Toggle diff preview for {path}","showDiff":"Show diff for {path}","diff":"Diff","fileAction":"{action} {path}","loadingPreview":"Loading diff preview...","previewFailed":"Failed to load preview","noDiff":"No diff available","truncated":"… truncated — open full diff","staged":"Staged","unstaged":"Unstaged","untracked":"Untracked","stage":"Stage","unstage":"Unstage","commitMessage":"Commit message","amend":"Amend","commit":"Commit","committing":"Committing...","commitAndPush":"Commit + Push","commitAndPushTooltip":"Commit, then push. If the push fails the commit is already saved — just retry Push."},"history":{"title":"Commit History","refresh":"Refresh commit history","loading":"Loading commit history...","empty":"No commits found","viewDiffFor":"View diff for {hash}","viewDiff":"View diff","hideDiff":"Hide diff","loadingChangedFiles":"Loading changed files...","noChangedFiles":"No changed files","showCommitDiff":"Show commit diff for {path}","changedFiles":"Changed Files","diffLabel":"Diff: {file}","loadingDiff":"Loading diff...","noDiff":"No diff available","diffInFilePanel":"Diff displayed in file panel: {file}"},"currentStatus":{"title":"Current Status","refresh":"Check the remote and refresh (git fetch)","refreshing":"Checking the remote...","loading":"Loading git status...","uncommitted":"uncommitted","aheadTooltip":"commits ahead of upstream as of the last fetch (the live remote may differ)","behindTooltip":"commits behind upstream as of the last fetch (the live remote may differ)","lastFetch":"Last fetch: {relative}","lastFetchNever":"Last fetch: never","lastFetchTooltip":"ahead/behind compares against the remote information from this moment. Use the refresh button to update it.","noUpstreamBadge":"not pushed","noUpstreamTooltip":"This branch has no upstream, so ahead/behind cannot be computed (it has never been pushed)","upstreamGoneBadge":"remote deleted","upstreamGoneTooltip":"The configured upstream has no remote-tracking branch anymore (it was likely deleted on the remote)","detachedBadge":"detached","detachedTooltip":"HEAD does not point to a branch, so ahead/behind cannot be computed","aheadBehindErrorBadge":"unavailable","aheadBehindErrorTooltip":"Could not read ahead/behind (timeout or similar). Use the refresh button to retry."},"danger":{"title":"Danger Zone","resetOpen":"Reset…","revertOpen":"Revert…","forcePushOpen":"Force Push…","selectCommitHint":"Select a commit in Commit History to enable revert / reset-to-commit.","resetTitle":"Reset","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"Selected commit ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(none selected)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"A hard reset permanently discards uncommitted changes, and moving HEAD may also lose commits. This operation cannot be undone.","runningSessionWarning":"This destructive operation will overwrite the working files a running session is editing.","confirmPlaceholder":"Type \\"{branch}\\" to confirm","reset":"Reset","revertTitle":"Revert","revertBodyPrefix":"Revert commit ","revertNoCommit":"No commit (leave staged)","revert":"Revert","forcePushTitle":"Force Push","protectedBranchWarning":"Force pushing to the default branch is not allowed.","forceWithLease":"Use --force-with-lease (recommended — refuses if the remote moved)","forcePush":"Force Push"},"network":{"quickActions":"Quick actions","fetch":"Fetch","pull":"Pull","push":"Push","noUpstreamTooltip":"No upstream — will set upstream on push","pushing":"Pushing","pulling":"Pulling","fetching":"Fetching","progress":"{operation}… {elapsed}s","abort":"Abort","conflicts":"Pull produced conflicts: {files}. Resolve them in the terminal.","authFailedGuidance":"Run push/pull once in the terminal to set up your credentials.","failed":"Git network operation failed"},"stash":{"titlePrefix":"Stash ","count":"({count})","refresh":"Refresh stash list","messagePlaceholder":"Stash message (optional)","includeUntracked":"Include untracked","push":"Stash","loading":"Loading stashes...","empty":"No stashes","apply":"Apply","pop":"Pop","drop":"Drop","dropConfirmSuffix":" will be permanently deleted. This operation cannot be undone."},"aiPrompts":{"branchCreate":"Create branch {name} from {base} and check it out.","branchCreateBaseHead":"the current HEAD","branchDelete":"Delete branch {name}.","branchDeleteForce":"Delete branch {name}. Force-delete it with -D even if it still has unmerged commits.","stashCleanup":"List the old stash entries and suggest which ones are safe to drop.","stashCleanupCurrent":"Current stashes:","stashConflict":"A conflict occurred while running stash pop / apply. Please resolve the conflict and then commit.","reset":"I want to run a {mode} reset onto {target}. Please do it safely.","resetHard":"I want to run a hard reset onto {target}. Please do it safely. A hard reset can discard work in progress. If you need to undo the hard reset afterwards, recover it from git reflog.","revert":"Please revert commit {commit}.","forcePush":"I want to push {branchRef} with force-with-lease. Check the diff against its upstream ({upstream}) first, and push only if it is safe.","forcePushAhead":"I want to push {branchRef} (↑{ahead}) with force-with-lease. Check the diff against its upstream ({upstream}) first, and push only if it is safe.","forcePushCurrentBranch":"the current branch"}},"activityBar":{"toggleSidebar":"Toggle sidebar","label":"Activity Bar","files":"Files","git":"Git","notes":"Notes","schedules":"Schedules","agent":"Agent","timer":"Timer","todo":"ToDo","skills":"Skills","verification":"Verification","env":"Env"},"branchMismatch":{"changedFrom":"Branch changed from","to":"to","dismiss":"Dismiss alert"},"contextMenu":{"label":"File actions","uploadFile":"Upload File","rename":"Rename","move":"Move","delete":"Delete"},"navigation":{"toolbarLabel":"TUI Navigation","caption":"Nav","quitPager":"Quit pager"},"newFileDialog":{"title":"New File","fileNameLabel":"File name","placeholder":"document","create":"Create"},"paneResizer":{"label":"Resize panes. Use {arrows} arrow keys to adjust.","arrowsHorizontal":"left and right","arrowsVertical":"up and down"},"desktopLayout":{"activityPane":"Activity pane","terminalPane":"Terminal pane"},"worktreeStatus":{"notSet":"Not set","ready":"Ready","inProgress":"In Progress","inReview":"In Review","done":"Done"},"card":{"main":"Main","description":"Description","link":"Link","openLink":"Open link in new tab","updated":"Updated {time}"},"detail":{"worktree":"Worktree","repository":"Repository","copyRepositoryPath":"Copy repository path","copyWorktreePath":"Copy worktree path","copyPath":"Copy path","copied":"Copied!","path":"Path","status":"Status","worktreeStatusLabel":"Worktree status","description":"Description","addNotesPlaceholder":"Add notes about this branch...","noDescription":"No description added yet","link":"Link","lastUpdated":"Last Updated","logs":"Logs","hide":"Hide","show":"Show","goBack":"Go back to worktree list","home":"Home","viewInfo":"View worktree information","info":"Info","infoModalTitle":"Worktree Information","loading":"Loading worktree...","loadingInfo":"Loading worktree info...","errorLoading":"Error loading worktree","uploadFile":"Upload file","unknownRepository":"Unknown","loadingEditor":"Loading editor...","agentInstanceSelection":"Agent Instance Selection","statusPill":"{label}: {status}","subTabMessage":"Message","subTabGit":"Git","statusPillWithModel":"{label}: {status} — model {model}","statusPillWithUsage":"{base} — {usage}","statusPillWithSource":"{base} — {source}"},"detailStatus":{"idle":"Idle - No active session","ready":"Ready - Waiting for input","running":"Running - Processing","waiting":"Waiting - User input required"},"agentSource":{"line":"Events: {kind} ({state})","lineBare":"Events: {kind}","kindSse":"SSE","kindHooks":"hooks","kindScraper":"screen scrape","livenessLive":"connected","livenessStale":"stalled","reasonPortIdentityChanged":"another process took the port","reasonHeartbeatStale":"no heartbeat for over 30s","reasonNotSubscribed":"no event subscription","reasonOther":"reason: {reason}","degradedTitle":"Structured events are not arriving","healthyTitle":"Receiving structured events"},"agentModel":{"label":"Model","modelLabel":"Model: {model}"},"nextAction":{"start":"Start","sendMessage":"Send message","approveReject":"Approve / Reject","replyToPrompt":"Reply to prompt","checkStalled":"Check stalled","running":"Running..."},"awaitingInstruction":{"badge":"Ready for work","label":"The agent finished its turn and is waiting for your next instruction"},"verification":{"title":"Verification","refresh":"Refresh","loading":"Loading verification data…","loadError":"Could not load verification data: {message}","contract":{"heading":"Execution contract","empty":"No contract on this branch.\\nCreate one with `commandmate send --contract <file>`, or the `cmate-task-contract` Skill.","scopeAllow":"scope.allow","scopeDeny":"scope.deny","gates":"verify.gates","gatesAll":"all declared gates","autoYes":"autoYes.mode","autoYesUnset":"unset (keeps the existing behavior)","file":"contract file","updated":"updated"},"runs":{"heading":"Verification runs","empty":"No verification run yet.\\nPress Re-verify, or run `commandmate verify <worktree-id>`.","rerun":"Re-verify","rerunPending":"Starting…","rerunConflict":"A verification run is already in progress (run {runId}).","rerunConflictUnknown":"A verification run is already in progress.","rerunError":"Could not start verification: {message}","select":"Show gates for run {runId} (RESULT {verdict})","runLabel":"run {runId}","trigger":"trigger={trigger}"},"gates":{"heading":"Gates — run {runId}","empty":"This run recorded no gates.","loading":"Loading gates…","notFound":"That verification run is no longer available.","loadError":"Could not load the verification run: {message}","exitCode":"exit={code}","duration":"duration={duration}","contractSource":"[contract]","showLog":"Show log tail","hideLog":"Hide log tail","logOmitted":"… (+{count} more lines; run `commandmate verify show {runId}` for the full log)","noLog":"No log output recorded."},"runStatus":{"running":"running","passed":"passed","failed":"failed","not_started":"not_started","error":"error","cancelled":"cancelled"},"gateStatus":{"running":"RUNNING","passed":"PASS","failed":"FAIL","timeout":"TIMEOUT","skipped":"SKIP","error":"ERROR"},"chip":{"taskReason":"Task “{title}”: {status}","resultBadge":"RESULT {verdict}","runReason":"Last verification: RESULT {verdict} (run {runId})","noRun":"No verification run yet","failingGates":"Gates that did not pass: {gates}","gatesPassed":"All {count} gates passed","openHint":"Open the Verification pane","dash":"—"}},"task":{"status":{"pending":"pending","running":"running","waiting_input":"waiting_input","verifying":"verifying","succeeded":"succeeded","failed":"failed","not_started":"not_started","cancelled":"cancelled"}},"envManager":{"title":"Env Manager","description":"View and edit this worktree\'s environment files. Values are hidden by default.","filePickerLabel":"Environment file","viewModeLabel":"View mode","viewKeyValue":"Key-Value","viewRaw":"Raw","notCreated":"not created","templateBadge":"template","notCreatedHint":"{file} does not exist yet. Add a key and save to create it.","keyLabel":"Variable name","valueLabel":"Value of {key}","showValue":"Show the value of {key}","hideValue":"Hide the value of {key}","removeRow":"Remove {key}","addRow":"Add variable","revealAll":"Show values","hideAll":"Hide values","reload":"Reload from disk","save":"Save","saved":"Saved.","loading":"Loading environment file...","loadError":"The environment file could not be loaded.","empty":"No variables defined yet.","validationFailed":"This file cannot be saved yet.","suggestionsTitle":"Keys from the template","suggestionsHint":"Defined in .env.example / .env.sample but missing here. Tap to add.","rawLabel":"Raw environment file","rawMaskedLabel":"Raw environment file (values hidden)","rawMaskedHint":"Values are shown as {mask}. Choose \\"Show values\\" to reveal and edit them.","issues":{"invalidSyntax":"Line {line}: not a KEY=VALUE assignment.","invalidKey":"Line {line}: invalid variable name. Use letters, digits and underscores, starting with a letter or underscore.","unterminatedQuote":"Line {line}: the quoted value for {key} is never closed.","duplicateKey":"Line {line}: {key} is defined more than once. The last one wins.","controlCharacter":"Line {line}: contains a control character that is not allowed in an environment file.","tooLarge":"This file is too large to edit here.","tooManyEntries":"This file defines too many variables to edit here."}},"agentSession":{"context":"{tokens} ({percent}%)","chipLabel":"Session usage — {usage}","titleLabel":"Session: {title}","agentLabel":"Agent: {agent}","costLabel":"Cost so far: {cost}","spentLabel":"Spent this session: {tokens} tokens","contextLabel":"Context in use: {tokens} of {limit} tokens ({percent}%)","contextUnknownLabel":"Context in use: {tokens} tokens (window unknown)"},"opencodeDiff":{"title":"Files this turn changed","subtitle":"{count} files","revertedTitle":"Changes held back by a revert","revertedSubtitle":"{count} files are reverted","openDiff":"Show the diff for {file}","unnamedFile":"(unnamed file)","status":{"added":"added","deleted":"deleted","modified":"modified"},"revert":"Revert this turn","unrevert":"Restore","revertConfirmTitle":"Revert this turn?","revertConfirmBody":"opencode will roll back its changes to {count} files. Files it created are deleted, and committed changes are rolled back in the working tree too. Restore undoes this.","revertConfirmLabel":"Revert","unrevertConfirmTitle":"Restore the reverted changes?","unrevertConfirmBody":"opencode will put the reverted changes to {count} files back into the working tree.","unrevertConfirmLabel":"Restore","busy":"The agent is mid-turn. Try again once the turn finishes.","noop":"opencode changed nothing (it could not find that turn).","failed":"opencode refused the operation."},"opencodeQuickKeys":{"toolbarLabel":"opencode quick keys","caption":"opencode","needsSession":"Available after this pane\'s first turn ({notation})","showKeys":"Show opencode quick keys","hideKeys":"Hide opencode quick keys","keys":{"agentNext":"Next agent","agentPrev":"Previous agent","commands":"Commands","variant":"Variant","agents":"Agents","sessions":"Sessions","newSession":"New session","models":"Models","themes":"Themes","timeline":"Timeline","undo":"Undo","redo":"Redo","compact":"Compact","pageUp":"Page up","pageDown":"Page down","first":"First message","last":"Latest message"}},"opencodeSidebar":{"regionLabel":"opencode sidebar warning","label":"opencode sidebar is open","body":"It shares rows with the transcript, so the end of a turn cannot be detected. Close it from the opencode pane with:"},"opencodeSession":{"new":"New opencode session","list":"Open opencode session list","fork":"Fork this opencode session","share":"Create a share link","unshare":"Revoke the share link","shareCopy":"Copy link","shareConfirmTitle":"Publish this conversation?","shareConfirmBody":"opencode will publish this session to its own hosting, where anyone with the link can read it. What goes out is the conversation itself — your prompts, the agent\'s replies, and the input and output of every tool it ran — together with the absolute path of the session\'s working directory. Nothing is redacted. You can take the page down afterwards with \\"Revoke the share link\\", but that cannot un-read anything already read.","shareConfirmLabel":"Publish","sharePublicNotice":"Anyone with this link can read it.","errorNoPort":"No opencode server is attached to this pane. Restart the pane and try again.","errorNoSessionFork":"There is no session to fork yet. Run one turn first, then try again.","errorNoSessionShare":"There is no session to share yet. Run one turn first, then try again.","errorRequestFailed":"The request could not be sent. The CommandMate server is unreachable.","errorUnknown":"The action failed. The server gave no reason.","errorCopyFailed":"Could not copy the link. Select the link shown here and copy it manually."}}')}};
@@ -0,0 +1,19 @@
1
+ "use strict";exports.id=221,exports.ids=[221,9508],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(85164);function e(a){let b=(0,d.x7)(a),c=(0,d.M4)(a,b);return{chromeStart:b,echoEnd:c,start:c+1,end:b>=0?b:a.length,headTruncated:c<0}}function f(a){let b=a.split("\n"),c=e(b.map(d.aJ));return c.start>=c.end?"":b.slice(c.start,c.end).join("\n")}function g(a){let b=a.split("\n"),c=e(b),f=c.start>=c.end?"":b.slice(c.start,c.end).join("\n");return d.$t.test(f)&&!d.kD.test(a)&&!d.Ty.test(a)}function h(a,b,c,d,e,f=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||f){let a=e(b);return a>=0?a+1:0}if("antigravity"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},8988:(a,b,c)=>{c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},13033:(a,b,c)=>{c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(85164);let e=new Map;function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n");if((0,d.gT)(b))return[];let c=(0,d.wv)(b),e=c>=0?b.slice(0,c):b,f=[],g=!1;for(let a of e){if(d.JN.test(a)){g=!1;continue}if(d.y.test(a))g=!0;else if(g){if(d.Fg.test(a))continue;g=!1}let b=h(a);b&&(d.J7.some(a=>a.test(b))||f.push(b))}return f}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},18778:(a,b,c)=>{c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.getLastUserMessage)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},21684:(a,b,c)=>{c.d(b,{U:()=>h});var d=c(33873),e=c.n(d),f=c(87447),g=c(8004);function h(){let a=e().join(process.cwd(),"data","logs");return(0,g.T)((0,f._p)("CM_LOG_DIR"),a,"CM_LOG_DIR")}},41364:(a,b,c)=>{c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
2
+
3
+ Created: ${i}
4
+
5
+ ---
6
+
7
+ `}j+=`## Conversation at ${i}
8
+
9
+ `,j+=`### User
10
+
11
+ `,j+=`${b}
12
+
13
+ `;let o=(0,k.hR)(d)?k.ef[d]:d;return j+=`### ${o}
14
+
15
+ `,j+=`${c}
16
+
17
+ `,j+=`---
18
+
19
+ `,await e().writeFile(f,j,"utf-8"),f}async function o(a,b="all"){let c="all"===b?[...k.XH]:[b],d=[];for(let b of c){await m(b);let c=l(b);try{let b=(await e().readdir(c)).filter(b=>b.startsWith(`${a}-`)&&b.endsWith(".md")).map(a=>g().join(c,a));d.push(...b)}catch{}}return d.sort().reverse()}(0,j.h)("log-manager")},45146:(a,b,c)=>{c.d(b,{Et:()=>s,KQ:()=>u,MN:()=>o,SI:()=>l,fq:()=>t,g8:()=>p,sR:()=>w});var d=c(72626),e=c(13033),f=c(72457),g=c(71080),h=c(44321),i=c(80972),j=c(99508);let k=(0,d.h)("response-poller"),l=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],m=new Map,n=new Map;function o(a,b,c){return`${a}:${c??b}`}function p(a,b,c){let d=o(a,b,c);s(a,b,c),n.set(d,Date.now()),("opencode"===b||"copilot"===b)&&(0,e.tb)(d),q(a,b,c)}function q(a,b,c){let d=o(a,b,c),e=setTimeout(async()=>{let e=n.get(d);if(e&&Date.now()-e>18e5)return void s(a,b,c);try{await (0,i.zX)(a,b,c)}catch(a){k.error("error:",{error:a instanceof Error?a.message:String(a)})}(0,j.broadcastTerminalSnapshot)(a,b,c),m.has(d)&&q(a,b,c)},2e3);m.set(d,e)}function r(a){let b=m.get(a);b&&(clearTimeout(b),m.delete(a),n.delete(a)),(0,e.q1)(a),(0,f.iX)(a),(0,g.L1)(a)}function s(a,b,c){r(o(a,b,c))}function t(){for(let a of Array.from(m.keys()))r(a)}function u(){return Array.from(m.keys())}function v(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function w(a,b){let c=new Map;for(let{oldId:b,newId:d}of a)b&&d&&b!==d&&c.set(b,d);if(0===c.size)return[];let d=[],i=[];for(let a of Array.from(m.keys())){let e=v(a);if(!e)continue;let f=c.get(e.worktreeId);if(!f)continue;let g=b(e.worktreeId,e.instanceId);if(!g){i.push(a);continue}d.push({oldKey:a,newKey:o(f,g,e.instanceId),newWorktreeId:f,cliToolId:g,instanceId:e.instanceId})}let j=new Map;for(let a of d){let b=m.get(a.oldKey);b&&clearTimeout(b),m.delete(a.oldKey),j.set(a.newKey,{startedAt:n.get(a.oldKey)}),n.delete(a.oldKey),(0,f.i2)(a.oldKey,a.newKey),(0,g.Re)(a.oldKey,a.newKey);let c=v(a.oldKey);c&&(0,h.fL)(c.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,e.q1)(a.oldKey)}for(let a of i)r(a),k.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;n.set(a.newKey,b??Date.now()),("opencode"===a.cliToolId||"copilot"===a.cliToolId)&&(0,e.tb)(a.newKey),q(a.newWorktreeId,a.cliToolId,a.instanceId)}return d}},71080:(a,b,c)=>{c.d(b,{L1:()=>g,Re:()=>h,j7:()=>f});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}},72457:(a,b,c)=>{c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}function i(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},80972:(a,b,c)=>{c.d(b,{zX:()=>L,z$:()=>K});var d=c(31766),e=c(88807),f=c(56791),g=c(95620),h=c(26895),i=c(18778),j=c(15194),k=c(8988),l=c(85164),m=c(72626),n=c(46423),o=c(93997),p=c(60),q=c(82450),r=c(56263),s=c(13033),t=c(72457),u=c(44321),v=c(71080),w=c(13602);let x=(0,m.h)("lib/polling/structured-history-gate");var y=c(45146),z=c(91601),A=c(92010),B=c(81099),C=c(63209),D=c(73478),E=c(57836),F=c(52767);let G=(0,m.h)("response-poller");function H(a){return{response:"",isComplete:!1,lineCount:a}}function I(a,b,c,d,e,f,g,h=!1){let i=(0,p.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,l.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function J(a,b){let c=(0,l.KO)(b);return(0,h.gF)((0,l._A)((0,l.aJ)(a)),c)}function K(a,b,c,d=o.xE){let e=a.split("\n"),f=e.length;for(;f>0&&""===e[f-1].trim();)f--;let g=e.slice(0,f),h=g.length,i=(0,o.sl)(e.length,d),j="opencode"===c?g.map(l.aJ):null,k="claude"===c?(0,l.GT)(g):"copilot"===c?(0,l.wv)(g):j?(0,l.x7)(j):-1,m=k>=0?k:h,q=h>0&&b>25&&h+25<b,r=h>0&&b>50&&h<50,s=q||r;if(!s&&h<b-5)return null;let t=Math.max(0,h-20),u=g.slice(t),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:z,skipPatterns:A}=(0,l._X)(c),B=(a=60)=>{let b;if("codex"===c)b=/^›\s+(?!Implement|Find and fix|Type|Summarize)/;else if(j)return(0,p.V0)(j).echoEnd;else if("copilot"===c){for(let b=m-1;b>=Math.max(0,m-a);b--){if(!l.y.test((0,l.aJ)(g[b])))continue;let a=b;for(;a+1<m&&l.Fg.test((0,l.aJ)(g[a+1]));)a++;return a}return -1}else b=/^[>❯]\s+\S/;for(let c=m-1;c>=Math.max(0,m-a);c--){let a=(0,l.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c){let a=J(g.join("\n"),c);if(a.isPrompt)return I(g,b,h,s,c,B,a,i)}let C=(0,l.aJ)(v),D=w.test(C),E=x.test(C),F="codex"===c?(0,l.DR)(g,20):z.test(C),G="copilot"===c?(0,l.Wn)(g.slice(Math.max(0,h-8)).map(l.aJ)):null,L="copilot"===c?"idle"===G:("codex"===c||"gemini"===c||"vibe-local"===c||"antigravity"===c)&&D&&!F,M="claude"===c&&D&&E&&!F,N="opencode"===c&&(0,p.bE)(C);if(L||M||N){let a=[],d=(0,p.QM)(b,h,s,c,B,i),e=h;for(let b=d;b<m;b++){let d=g[b],f=(0,l.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&k<0&&(l.sy.test(f)||l.uA.test(f))){e=b;break}A.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),o=f.split("\n").slice(-n.$).join("\n");if("copilot"!==c&&z.test(o))return H(h);if("claude"===c){let a=(0,l.aJ)(f),b=/[╭╮╰╯│]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code|claude\/|v\d+\.\d+/.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=a.match(/^[>❯]\s+(\S.*)$/m);if(g){let b=a.indexOf(g[0]);if(0===a.substring(b+g[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!A.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return H(h)}else if((b||c||d||e)&&f.length<2e3)return H(h)}if("copilot"===c){let a=(0,l.aJ)(f);if(!a.split("\n").some(a=>l.y.test(a))&&l.E0.some(b=>b.test(a)))return H(h)}if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||y.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return H(h);if("opencode"===c){let a=(0,l.aJ)(f);if((a.length<50||!l.Md.test(C))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!l.sx.some(a=>a.test(b))}).length)return H(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:s,captureWindowSaturated:i,turnHeadTruncated:j?(0,p.V0)(j).headTruncated:void 0}}if("opencode"!==c){let a=J(g.join("\n"),c);if(a.isPrompt)return I(g,b,h,s,c,B,a,i)}let O=[],P=s||i||b>=h-5,Q=P?B(80):-1,R=P?Q>=0?Q+1:Math.max(0,h-80):Math.max(0,b);for(let a=R;a<Math.min(h,m);a++){let b=g[a],c=(0,l.aJ)(b);A.some(a=>a.test(c))||O.push(b)}let S=O.join("\n").trim();return S?{response:S,isComplete:!1,lineCount:h}:H(h)}async function L(a,b,c){let h=(0,e.getDbInstance)(),m=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return G.error("worktree-worktreeid-not"),(0,y.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return G.info("session-not-running"),(0,y.Et)(a,b,c),!1;let D=(0,f.getSessionState)(h,a,m),H=D?.lastCapturedLine||0,I=await (0,d.Wh)(a,b,o.xE,c),L=I.split("\n").slice(-100).join("\n"),M=(0,C.bT)(L);if((0,B.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:M?.fault.id??null,matchedText:M?.matchedText}).catch(()=>{}),"opencode"===b||"copilot"===b){let d=(0,y.MN)(a,b,c),e="opencode"===b?(0,p.ZX)(I):I;(0,s.IZ)(d,e,b)}let N=K(I,H,b,o.xE);if(!N||!N.isComplete){let{thinkingPattern:c}=(0,l._X)(b),d=(0,l.aJ)(I).split("\n").slice(-n.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&G.info("marked-answeredcount-pending"),!1}let O="opencode"===b||"copilot"===b,P=!(0,j.VA)(b)&&!N.captureWindowSaturated;if(P&&!N.bufferReset&&N.lineCount===H&&!D?.inProgressMessageId)return!1;if(P&&!N.bufferReset&&N.lineCount<=H)return G.info("already-saved-up-to-line-lastcapturedlin"),!1;let Q=N.promptDetection??J(N.response,b);if(Q.isPrompt){let d=Q.rawContent||Q.cleanContent,i=(0,y.MN)(a,b,c),j=(0,t.zm)(d,b);if((0,t.gv)(i,j))return(0,u.LN)(a,b,c),G.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,q.LH)(d),k=(0,q.Sj)(k,r.Rf,r.ky)),(0,f.clearInProgressMessageId)(h,a,b,m);let l=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:Q.promptData,timestamp:new Date,cliToolId:b,instanceId:m});(0,f.updateSessionState)(h,a,b,N.lineCount,m),(0,g.broadcastMessage)("message",{worktreeId:a,message:l}),(0,F.r)(h,a,b,m,"prompt_detected",{promptType:Q.promptData?.type});let n=Date.now(),o=(0,E.Jp)(a,b,c)?.since??n;return(0,A.R)({worktreeId:a,cliToolId:b,instanceId:c,waitingSince:o})||(0,z.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:m,instanceId:m,waitingKind:"prompt",waitingSince:o,excerpt:Q.promptData?.question??k}).catch(()=>{}),(0,E.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:n}),O||(0,y.Et)(a,b,c),!0}if(!N.response||""===N.response.trim())return(0,f.updateSessionState)(h,a,b,N.lineCount,m),!1;let R="claude"===b?(0,k.R)(N.response):void 0,S=N.response;if("gemini"===b)S=(0,q.IS)(N.response);else if("claude"===b)S=(0,q.NN)(N.response);else if("copilot"===b){let d=(0,y.MN)(a,b,c),e=(0,s.Uz)(d)||N.response;S=(0,q.LH)(e),S=(0,q.Sj)(S,r.Rf,r.ky),(0,s.q1)(d)}else if("opencode"===b){let d=(0,y.MN)(a,b,c),e=(0,s.Uz)(d),f=N.turnHeadTruncated&&e?e:N.response;S=(0,q.aW)(f),(0,s.q1)(d)}if(!S||""===S.trim()||"[No content]"===S)return(0,f.updateSessionState)(h,a,b,N.lineCount,m),(0,f.clearInProgressMessageId)(h,a,b,m),!1;if(!P){let d=(0,y.MN)(a,b,c);if((0,v.j7)(d,S))return G.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:m}),(0,f.updateSessionState)(h,a,b,N.lineCount,m),!1}let T=function(a,b,c){if("opencode"!==b)return!1;try{return(0,w.f4)({worktreeId:a,cliToolId:b,instanceId:c??b})}catch(d){return x.warn("structured-history-gate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}(a,b,c);S&&!T&&await (0,i.T)(h,a,S,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&G.info("marked-answeredcount-pending");let U=(0,f.getSessionState)(h,a,m);if(P&&U&&N.lineCount<=U.lastCapturedLine)return G.info("race-condition-detected-skipping-save-re"),!1;if(T)G.info("structured-history-scrape-suppressed",{worktreeId:a,cliToolId:b,instanceId:m,scrapedLength:S.length});else{let c=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:S,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:m,summary:R?.summary,logFileName:R?.logFileName,requestId:R?.requestId});(0,g.broadcastMessage)("message",{worktreeId:a,message:c})}return(0,E.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,z.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:m,excerpt:S}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,N.lineCount,m),O&&(0,y.Et)(a,b,c),!0}catch(a){return G.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}(0,D.I7)()},82450:(a,b,c)=>{c.d(b,{IS:()=>h,LH:()=>n,NN:()=>g,Sj:()=>p,aW:()=>o});var d=c(85164),e=c(13033),f=c(56263);function g(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.GT)(b),e=c>=0?b.slice(0,c):b,f=-1;for(let a=e.length-1;a>=0;a--)if(/^❯\s+\S/.test(e[a])){f=a;break}let g=f>=0?f+1:0,h=e.slice(g),i=[/CLAUDE_HOOKS_/,/\/bin\/claude/,/^claude\s*$/,/@.*\s+%\s*$/,/^[^⏺]*curl.*POST/,/^[^⏺]*Content-Type/,/^[^⏺]*export\s+CLAUDE_/,/^\s*$/,/^[╭╮╰╯│─\s]+$/,/^[│╭╮╰╯].*[│╭╮╰╯]$/,/Claude Code v[\d.]+/,/^Tips for getting started/,/^Welcome back/,/Run \/init to create/,/^Recent activity/,/^No recent activity/,/▐▛███▜▌|▝▜█████▛▘|▘▘ ▝▝/,/^\s*Opus \d+\.\d+\s*·\s*Claude Max/,/\.com's Organization/,/\?\s*for shortcuts\s*$/,/^─{10,}$/,/^❯\s*$/,d.fW],j=[];for(let a of h)!i.some(b=>b.test(a))&&a.trim()&&j.push(a);return j.join("\n").trim()}function h(a){let b=(0,d.aJ)(a).split("\n"),c=[],e=[/^maenokota@.*%/,/^zsh:/,/^feature-issue-\d+/,/^\s*$/],f=!1,g=[];for(let a of b){if(a.includes("✦")){f=!0;let b=a.indexOf("✦"),c=a.substring(b+1).trim();c&&g.push(c);continue}if(f){if(e.some(b=>b.test(a)))continue;g.push(a)}}if(g.length>0)return g.join("\n").trim();for(let a of b)e.some(b=>b.test(a))||c.push(a);return c.join("\n").trim()}let i=/^●\s+(?:Get |Read |Run |Search |Write |Edit |Delete |List |Create |Fetch |Explore |Execute |Install |Model changed to:)/,j=/^\$\s+[A-Z][A-Za-z]*(?:\s|$)/,k=/^\d+\s+lines\.\.\.$/,l=/^[◐◑◒◓]/,m=/^(?:git\s+--no-pager|git\s+(?:log|diff|show|status|branch|remote|fetch|pull|push|merge|rebase|checkout|reset|stash|tag|config|clone|init|add|commit|rm|mv|bisect|grep|ls-files|rev-parse|describe|shortlog|blame|reflog|cherry-pick|revert|submodule|worktree)\b|npm\s+|npx\s+|yarn\s+|pnpm\s+|cargo\s+|pip\s+|rustc\s+|cmake\s+|docker\s+|kubectl\s+|aws\s+|gcloud\s+|az\s+|terraform\s+|ansible\s+|curl\s+|wget\s+|ssh\s+|scp\s+|rsync\s+|grep\s+|sed\s+|awk\s+|mkdir\s+|rm\s+|cp\s+|mv\s+|chmod\s+|chown\s+)/;function n(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.wv)(b),f=c>=0?b.slice(0,c):b,g=-1;for(let a=f.length-1;a>=0;a--){let b=(0,e.IW)(f[a]);if(b&&/^❯\s+\S/.test(b)){g=a;break}}let h=g>=0?g+1:0;if(g>=0)for(;h<f.length&&d.Fg.test(f[h]);)h++;let n=f.slice(h),o=[],p=!1,q=!1;for(let a of n){let b=(0,e.IW)(a);if(!b){p=!1,q=!1;continue}if(d.J7.some(a=>a.test(b)))continue;if(j.test(b)){q=!0,p=!1;continue}if(i.test(b))continue;if(l.test(b)){p=!0,q=!1;continue}if(!(k.test(b)||m.test(b))){if(/^❯\s*/.test(b)){p=!1,q=!1;continue}if(!/^[│└]/.test(b)){if(/^●/.test(b)){p=!1,q=!1,o.push(b.replace(/^●\s*/,""));continue}p||q||o.push(b)}}}return o.join("\n").trim()}function o(a){let b=a.split("\n"),c=[];for(let a=0;a<b.length;a++){let f=(0,e.l1)(b[a]);f&&d.Md.test(f)&&c.push(a)}let f=0;c.length>=2&&(f=c[c.length-2]+1);let g=[];for(let a=f;a<b.length;a++){let c=(0,e.l1)(b[a]);!(!c||d.sx.some(a=>a.test(c)))&&(d.Md.test(c)||g.push(c))}return g.join("\n").trim()}function p(a,b=f.Rf,c=f.ky){if(!a||a.length<=b)return a;let d=c+"\n",e=b-d.length;if(e<=0)return c.slice(0,b);let g=a.length-e;if(g>0&&g<a.length){let b=a.charCodeAt(g);b>=56320&&b<=57343&&(g+=1)}return d+a.slice(g)}},99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(95620),e=c(88807),f=c(1058),g=c(72626),h=c(59701),i=c(93997);let j=(0,g.h)("terminal-broadcast"),k=new Map,l=[100,250,500,750];async function m(a,b,c){if((0,d.hasRoomSubscribers)(a))try{let d=(0,e.getDbInstance)(),g=await (0,f.$)(d,a,b,c);p(a,b,g,c)}catch(b){j.error("terminal-snapshot:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}function n(a){return JSON.stringify([a.fullOutput??"",a.isRunning,a.thinking??!1,a.isPromptWaiting??!1,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isUnclassifiedActive??!1])}async function o(a,b,c){let d=h.CLIToolManager.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$)((0,e.getDbInstance)(),a,b,c)}function p(a,b,c,e){let f=e??b,g=`${a}:${b}:${f}`;(0,d.broadcast)(a,{type:"terminal_snapshot",worktreeId:a,cliToolId:b,instanceId:f,output:c.fullOutput??"",isRunning:c.isRunning,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isUnclassifiedActive:c.isUnclassifiedActive??!1,version:function(a){let b=(k.get(a)??0)+1;return k.set(a,b),b}(g)})}async function q(a,b,c,e=l){if((0,d.hasRoomSubscribers)(a))try{let d=await o(a,b,c),f=n(d);for(let g of(p(a,b,d,c),e)){await new Promise(a=>setTimeout(a,g));let d=await o(a,b,c);if(n(d)!==f)return void p(a,b,d,c)}}catch(d){j.error("terminal-snapshot:interaction-refresh-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)})}}function r(a,b,c){(0,d.broadcast)(a,{type:"session_status_changed",worktreeId:a,isRunning:b,cliTool:c?.cliTool??null,instance:c?.instance??null})}function s(){k.clear()}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=222,exports.ids=[222],exports.modules={52120:(a,b,c)=>{c.d(b,{PL:()=>e,sb:()=>f});let d={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},e={idle:{className:d.idle,labelKey:"status.idle",type:"dot"},ready:{className:d.ready,labelKey:"status.ready",type:"dot"},running:{className:d.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:d.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:d.spinner,labelKey:"status.generating",type:"spinner"}},f={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},90277:(a,b,c)=>{c.d(b,{Vt:()=>f,aN:()=>g,I_:()=>h,JY:()=>i,sd:()=>j,kj:()=>k});let d=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,e=/^[a-zA-Z0-9][a-zA-Z0-9\-._]*$/,f=new Set(["copilot","opencode"]),g=new Set(["opencode"]);function h(a){let b=a.trim();if(!b)return{cliToolId:"claude",model:void 0};let{tokens:c,error:d}=function(a){let b=[],c="",d=!1,e=null;for(let f of a){if(e){f===e?e=null:c+=f;continue}if('"'===f||"'"===f){e=f,d=!0;continue}if(/\s/.test(f)){d&&(b.push(c),c="",d=!1);continue}c+=f,d=!0}return e?{tokens:[],error:"CLI Tool column has an unterminated quote"}:(d&&b.push(c),{tokens:b})}(b);if(d)return{cliToolId:b.split(/\s+/)[0],error:d};let e=c[0];return 1===c.length?{cliToolId:e,model:void 0}:f.has(e)?g.has(e)?function(a,b){let c={cliToolId:a},d=new Set,e=(a,c)=>{let d=b[c+1];return void 0===d||d.startsWith("-")?null:d};for(let f=0;f<b.length;f++){let g=b[f];if(d.has(g))return{cliToolId:a,error:`${a} option "${g}" is repeated`};switch(g){case"--model":case"-m":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add("--model"),d.add("-m"),c.model=b,f++;break}case"--agent":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.agent=b,f++;break}case"--variant":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.variant=b,f++;break}case"--title":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.title=b,f++;break}case"--continue":case"-c":d.add("--continue"),d.add("-c"),c.continueSession=!0;break;default:return{cliToolId:a,error:`${a} only supports: opencode [--model <provider/model>] [--agent <name>] [--variant <name>] [--continue] [--title <text>]`}}}return c}(e,c.slice(1)):3===c.length&&"--model"===c[1]?{cliToolId:e,model:c[2]}:{cliToolId:e,error:`${e} only supports: ${e} --model <modelName>`}:{cliToolId:e,error:`CLI Tool "${e}" does not support additional options`}}function i(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"Model name contains control characters"}:""===a.trim()?{valid:!1,reason:"Model name must not be empty"}:d.test(a)?a.length>128?{valid:!1,reason:"Model name exceeds 128 characters"}:{valid:!0}:{valid:!1,reason:"Model name contains invalid characters"}}function j(a,b){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:`opencode ${b} contains control characters`}:""===a.trim()?{valid:!1,reason:`opencode ${b} must not be empty`}:e.test(a)?a.length>64?{valid:!1,reason:`opencode ${b} exceeds 64 characters`}:{valid:!0}:{valid:!1,reason:`opencode ${b} contains invalid characters`}}function k(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"opencode title contains control characters"}:""===a.trim()?{valid:!1,reason:"opencode title must not be empty"}:a.startsWith("-")?{valid:!1,reason:'opencode title must not start with "-"'}:a.includes("|")?{valid:!1,reason:'opencode title must not contain "|"'}:a.length>200?{valid:!1,reason:"opencode title exceeds 200 characters"}:{valid:!0}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=2328,exports.ids=[2328],exports.modules={36931:(a,b,c)=>{c.d(b,{BO:()=>f,Cg:()=>h,IX:()=>e,LE:()=>j,Qk:()=>k,l2:()=>d});let d=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function e(a){if("string"!=typeof a||a.length>64)return null;let b=d.exec(a);return b?{major:Number(b[1]),minor:Number(b[2]),patch:Number(b[3]),prerelease:b[4]?b[4].split("."):[],build:b[5]?b[5].split("."):[]}:null}function f(a){return null!==e(a)}function g(a,b){return a.major!==b.major?a.major<b.major?-1:1:a.minor!==b.minor?a.minor<b.minor?-1:1:a.patch!==b.patch?a.patch<b.patch?-1:1:function(a,b){if(0===a.length&&0===b.length)return 0;if(0===a.length)return 1;if(0===b.length)return -1;let c=Math.min(a.length,b.length);for(let d=0;d<c;d++){let c=a[d],e=b[d];if(c===e)continue;let f=/^\d+$/.test(c),g=/^\d+$/.test(e);if(f&&g)return Number(c)<Number(e)?-1:1;if(f)return -1;if(g)return 1;return c<e?-1:1}return a.length===b.length?0:a.length<b.length?-1:1}(a.prerelease,b.prerelease)}function h(a,b){let c=e(a),d=e(b);return c&&d?g(c,d):null}function i(a){if("string"!=typeof a)return null;let b=a.trim();if(0===b.length||b.length>100||b.includes("||"))return null;let c=b.split(/\s+/);if(c.length>4)return null;let d=[];for(let a of c){let b=/^(>=|<=|>|<|=|\^|~)?(.+)$/.exec(a);if(!b)return null;let c=b[1]??"=",f=e(b[2]);if(!f)return null;if("^"===c||"~"===c){let a="^"===c?f.major>0?{major:f.major+1,minor:0,patch:0,prerelease:[],build:[]}:f.minor>0?{major:0,minor:f.minor+1,patch:0,prerelease:[],build:[]}:{major:0,minor:0,patch:f.patch+1,prerelease:[],build:[]}:{major:f.major,minor:f.minor+1,patch:0,prerelease:[],build:[]};d.push({operator:">=",version:f}),d.push({operator:"<",version:a});continue}d.push({operator:c,version:f})}return d.length>8?null:d}function j(a){return null!==i(a)}function k(a,b){let c=e(a),d=i(b);return!!c&&!!d&&(!(c.prerelease.length>0)||!!d.some(a=>{var b;return a.version.prerelease.length>0&&(b=a.version,c.major===b.major&&c.minor===b.minor&&c.patch===b.patch)}))&&d.every(a=>(function(a,b){let c=g(a,b.version);switch(b.operator){case"=":return 0===c;case">":return c>0;case">=":return c>=0;case"<":return c<0;case"<=":return c<=0}})(c,a))}},74505:(a,b,c)=>{c.d(b,{jE:()=>z,aJ:()=>u,su:()=>C,kI:()=>s,Ni:()=>B}),c(15194);var d=c(96210);let e={discovery:"skills.compatibility.axis.discovery",invocation:"skills.compatibility.axis.invocation"},f={verified:"skills.compatibility.axisOutcome.verified",unsupported:"skills.compatibility.axisOutcome.unsupported",unknown:"skills.compatibility.axisOutcome.unknown"},g={mechanical:"skills.compatibility.evidenceKind.mechanical",self_report:"skills.compatibility.evidenceKind.selfReport",not_measured:"skills.compatibility.evidenceKind.notMeasured"},h={outcome:"unknown",evidenceKind:"not_measured",labelKey:f.unknown,evidenceKindKey:g.not_measured,limitationKey:null},i={SESSION_RESTART:"skills.compatibility.reload.sessionRestart",SESSION_RESTART_NO_SLASH:"skills.compatibility.reload.sessionRestartNoSlash",UNKNOWN:"skills.compatibility.reload.unknown"},j="https://github.com/Kewton/CommandMate/issues/1513#issuecomment-5083878264",k="2026-07-26";function l(a){return{agent:a,discoveryRoots:[],discovery:h,invocation:h,testedVersion:null,testedDate:null,evidenceSource:null,reloadKey:i.UNKNOWN,skipReasonKey:"skills.compatibility.skipReason.notMeasured"}}let m=[{agent:"claude",discoveryRoots:[d.td],discovery:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:null},invocation:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:null},testedVersion:"2.1.220",testedDate:k,evidenceSource:j,reloadKey:i.SESSION_RESTART,skipReasonKey:null},{agent:"codex",discoveryRoots:[d.Co],discovery:{outcome:"verified",evidenceKind:"self_report",labelKey:f.verified,evidenceKindKey:g.self_report,limitationKey:null},invocation:{outcome:"unsupported",evidenceKind:"mechanical",labelKey:f.unsupported,evidenceKindKey:g.mechanical,limitationKey:"skills.compatibility.limitation.noSlashCommand"},testedVersion:"0.145.0",testedDate:k,evidenceSource:j,reloadKey:i.SESSION_RESTART_NO_SLASH,skipReasonKey:null},l("gemini"),l("vibe-local"),l("opencode"),l("copilot"),l("antigravity")],n=/^\d{4}-\d{2}-\d{2}$/;function o(a,b){if(null===a.testedDate||!n.test(a.testedDate))return null;let c=Date.parse(`${a.testedDate}T00:00:00Z`),d=b.getTime();return Number.isNaN(c)||Number.isNaN(d)?null:Math.max(0,Math.floor((d-c)/864e5))}var p=c(36931);let q={SATISFIED:"SKILL_COMPAT_SATISFIED",HOST_VERSION_OUT_OF_RANGE:"SKILL_COMPAT_HOST_VERSION_OUT_OF_RANGE",HOST_VERSION_UNKNOWN:"SKILL_COMPAT_HOST_VERSION_UNKNOWN",RANGE_UNSUPPORTED:"SKILL_COMPAT_RANGE_UNSUPPORTED"},r={[q.SATISFIED]:"skills.compatibility.reason.satisfied",[q.HOST_VERSION_OUT_OF_RANGE]:"skills.compatibility.reason.hostVersionOutOfRange",[q.HOST_VERSION_UNKNOWN]:"skills.compatibility.reason.hostVersionUnknown",[q.RANGE_UNSUPPORTED]:"skills.compatibility.reason.rangeUnsupported"};function s(a){if("string"!=typeof a)return null;let b=a.trim();return 0===b.length||"0.0.0"===b||null===(0,p.IX)(b)?null:b}function t(a,b,c,d){return{status:a,reasonCode:b,messageKey:r[b],message:function(a,b,c){switch(a){case q.SATISFIED:return`CommandMate ${c} satisfies the required range "${b}".`;case q.HOST_VERSION_OUT_OF_RANGE:return`This Skill requires CommandMate "${b}", but CommandMate ${c} is running.`;case q.HOST_VERSION_UNKNOWN:return`The running CommandMate version could not be determined, so compatibility with "${b}" is unverified.`;case q.RANGE_UNSUPPORTED:return`This Skill declares the unsupported CommandMate version range "${b}", so compatibility is unverified.`}}(b,c,d),requiredRange:c,currentVersion:d}}function u(a,b){var c=a.compatibility.commandmate;let d="string"==typeof c?c:"";return(0,p.LE)(d)?null===b?t("unknown",q.HOST_VERSION_UNKNOWN,d,null):(0,p.Qk)(b,d)?t("compatible",q.SATISFIED,d,b):t("incompatible",q.HOST_VERSION_OUT_OF_RANGE,d,b):t("unknown",q.RANGE_UNSUPPORTED,d,b??null)}let v={CONFIRMED:"SKILL_AGENT_EVIDENCE_CONFIRMED",RESTRICTED:"SKILL_AGENT_EVIDENCE_RESTRICTED",STALE_DECLARATION:"SKILL_AGENT_EVIDENCE_STALE_DECLARATION",UNVERIFIED:"SKILL_AGENT_EVIDENCE_UNVERIFIED"},w={[v.CONFIRMED]:"skills.compatibility.verification.confirmed",[v.RESTRICTED]:"skills.compatibility.verification.restricted",[v.STALE_DECLARATION]:"skills.compatibility.verification.staleDeclaration",[v.UNVERIFIED]:"skills.compatibility.verification.unverified"},x={unsupported:0,unknown:1,commandmate_runtime:2,native:3};function y(a,b){return{axis:a,axisKey:e[a],outcome:b.outcome,outcomeKey:b.labelKey,evidenceKind:b.evidenceKind,evidenceKindKey:b.evidenceKindKey,limitationKey:b.limitationKey}}function z(a,b=new Date){return a.map(a=>(function(a,b){var c;let e=(c=a.agent,m.find(a=>a.agent===c)??null),f={agent:a.agent,evidence:a.evidence,declaredSupport:a.support,declaredLabelKey:d.Wy[a.support]};if(null===e||"not_measured"===e.discovery.evidenceKind)return{...f,support:a.support,labelKey:d.Wy[a.support],verification:v.UNVERIFIED,verificationKey:w[v.UNVERIFIED],measured:null,skipReasonKey:e?.skipReasonKey??null,reloadKey:e?.reloadKey??i.UNKNOWN};let{support:g,verification:h}=function(a,b){let c=x[a],d=x[b];return d<c?{support:b,verification:v.RESTRICTED}:d>c?{support:a,verification:v.STALE_DECLARATION}:{support:a,verification:v.CONFIRMED}}(a.support,function(a){switch(a.discovery.outcome){case"verified":return"native";case"unsupported":return"unsupported";case"unknown":return"unknown"}}(e));return{...f,support:g,labelKey:d.Wy[g],verification:h,verificationKey:w[h],measured:{discovery:y("discovery",e.discovery),invocation:y("invocation",e.invocation),discoveryRoots:[...e.discoveryRoots],testedVersion:e.testedVersion,testedDate:e.testedDate,evidenceSource:e.evidenceSource,ageDays:o(e,b),stale:function(a,b,c=180){let d=o(a,b);return null!==d&&d>c}(e,b)},skipReasonKey:null,reloadKey:e.reloadKey}})(a,b))}let A={HIGHEST_COMPATIBLE:"SKILL_RECOMMEND_HIGHEST_COMPATIBLE",LATEST_UNVERIFIED:"SKILL_RECOMMEND_LATEST_UNVERIFIED",NONE_COMPATIBLE:"SKILL_RECOMMEND_NONE_COMPATIBLE",NO_VERSIONS:"SKILL_RECOMMEND_NO_VERSIONS"};function B(a,b){let{currentVersion:c,includePrerelease:d=!1}=b,e=a.versions.map(a=>({version:a,prerelease:function(a){let b=(0,p.IX)(a);return null!==b&&b.prerelease.length>0}(a.version),compatibility:u(a,c)})).filter(a=>d||!a.prerelease).sort((a,b)=>(0,p.Cg)(b.version.version,a.version.version)??0);if(0===e.length)return{versions:e,recommended:null,reasonCode:A.NO_VERSIONS};let f=e.find(a=>"compatible"===a.compatibility.status);if(f)return{versions:e,recommended:f,reasonCode:A.HIGHEST_COMPATIBLE};if(null===c){let b=e.find(b=>b.version.version===a.latest)??e[0];return{versions:e,recommended:b,reasonCode:A.LATEST_UNVERIFIED}}return{versions:e,recommended:null,reasonCode:A.NONE_COMPATIBLE}}function C(a,b){return a.entries.find(a=>a.id===b)??null}},92328:(a,b,c)=>{c.d(b,{Ai:()=>i,En:()=>j,Jv:()=>f,Qs:()=>h,rt:()=>k});var d=c(10641),e=c(74505);function f(a){return{schemaVersion:a.catalog.schema_version,fetchedAt:a.fetchedAt,revalidatedAt:a.revalidatedAt,stale:a.stale,offline:a.offline,state:a.state,staleReason:a.staleReason,source:{...a.source}}}function g(a){let{version:b,prerelease:c,compatibility:d}=a;return{version:b.version,changelog:b.changelog,publishedAt:b.published_at,declaredRisk:b.declared_risk,prerelease:c,source:{repository:b.source.repository,ref:b.source.ref,commit:b.source.commit},artifact:{assetName:b.artifact.asset_name,sha256:b.artifact.sha256,size:b.artifact.size,format:b.artifact.format},compatibility:{commandmate:d,agents:(0,e.jE)(b.compatibility.agents)}}}function h(a,b){let c=(0,e.Ni)(a,{currentVersion:b.currentVersion,includePrerelease:b.includePrerelease}),d=a.versions.find(b=>b.version===a.latest),f=c.recommended?.compatibility??c.versions[0]?.compatibility??(d?(0,e.aJ)(d,b.currentVersion):null);return{id:a.id,name:a.name,summary:a.summary,provider:{...a.provider},license:a.license,homepage:a.homepage??null,keywords:a.keywords?[...a.keywords]:[],latest:a.latest,recommendedVersion:c.recommended?.version.version??null,recommendedReason:c.reasonCode,compatibility:f,versions:c.versions.map(g)}}let i={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};function j(a,b,c){return d.NextResponse.json({error:b,code:a},{status:c,headers:i})}function k(a){return"true"===a.searchParams.get("prerelease")}},96210:(a,b,c)=>{c.d(b,{$K:()=>B,$Y:()=>P,$e:()=>w,AH:()=>U,AN:()=>v,B3:()=>n,BQ:()=>z,Co:()=>h,DA:()=>X,G0:()=>G,Gm:()=>K,Hx:()=>R,JO:()=>$,KH:()=>l,PB:()=>Z,S$:()=>x,SU:()=>I,UN:()=>E,Ue:()=>D,WL:()=>M,Wr:()=>m,Wy:()=>_,X0:()=>e,Xk:()=>L,Z4:()=>T,_Z:()=>J,a6:()=>r,b:()=>F,cj:()=>f,do:()=>Y,em:()=>s,gI:()=>H,gJ:()=>q,h3:()=>N,jn:()=>p,jq:()=>d,kM:()=>g,l9:()=>u,mg:()=>V,mt:()=>Q,pg:()=>k,q3:()=>y,qu:()=>W,t9:()=>A,td:()=>i,wD:()=>o,wI:()=>O,x2:()=>S,xP:()=>t,y2:()=>j,yV:()=>C});let d=1,e=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,f=64,g=["commandmate","system","con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"],h=".agents/skills",i=".claude/skills",j=[h,i],k=h,l="commandmate.skill.yaml",m="SKILL.md",n=".commandmate-staging",o=[m,l],p="tar.gz",q="application/gzip",r=0x1000000,s=4194304,t=500;function u(a,b){return`${a}-${b}.tar.gz`}let v=100,w=8,x=255,y=100,z=200,A=2e3,B=200,C=10,D=20,E=40,F=4e3,G=300,H=500,I=20,J=20,K=500,L=100,M={maxBytes:65536,maxDepth:16,maxNodes:5e3,maxScalarLength:8192,allowAliases:!1,allowCustomTags:!1,allowDuplicateKeys:!1,forbiddenKeys:["__proto__","constructor","prototype"]},N=["native","commandmate_runtime","unsupported","unknown"],O=["low","moderate","high"],P={low:0,moderate:1,high:2},Q=["filesystem_read","filesystem_write","network_access","process_execution","environment_read","credential_access"],R=["skill_md","instruction","script","asset"],S=/^[0-9a-f]{64}$/,T=/^[0-9a-f]{40}$/,U=/^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/,V=/^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/,W=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/,X=/^[A-Za-z0-9][A-Za-z0-9.+-]{0,63}$/,Y=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/,Z=/^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/,$="https://",_={native:"skills.compatibility.native",commandmate_runtime:"skills.compatibility.commandmateRuntime",unsupported:"skills.compatibility.unsupported",unknown:"skills.compatibility.unknown"}}};
1
+ "use strict";exports.id=2328,exports.ids=[2328],exports.modules={36931:(a,b,c)=>{c.d(b,{BO:()=>f,Cg:()=>h,IX:()=>e,LE:()=>j,Qk:()=>k,l2:()=>d});let d=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function e(a){if("string"!=typeof a||a.length>64)return null;let b=d.exec(a);return b?{major:Number(b[1]),minor:Number(b[2]),patch:Number(b[3]),prerelease:b[4]?b[4].split("."):[],build:b[5]?b[5].split("."):[]}:null}function f(a){return null!==e(a)}function g(a,b){return a.major!==b.major?a.major<b.major?-1:1:a.minor!==b.minor?a.minor<b.minor?-1:1:a.patch!==b.patch?a.patch<b.patch?-1:1:function(a,b){if(0===a.length&&0===b.length)return 0;if(0===a.length)return 1;if(0===b.length)return -1;let c=Math.min(a.length,b.length);for(let d=0;d<c;d++){let c=a[d],e=b[d];if(c===e)continue;let f=/^\d+$/.test(c),g=/^\d+$/.test(e);if(f&&g)return Number(c)<Number(e)?-1:1;if(f)return -1;if(g)return 1;return c<e?-1:1}return a.length===b.length?0:a.length<b.length?-1:1}(a.prerelease,b.prerelease)}function h(a,b){let c=e(a),d=e(b);return c&&d?g(c,d):null}function i(a){if("string"!=typeof a)return null;let b=a.trim();if(0===b.length||b.length>100||b.includes("||"))return null;let c=b.split(/\s+/);if(c.length>4)return null;let d=[];for(let a of c){let b=/^(>=|<=|>|<|=|\^|~)?(.+)$/.exec(a);if(!b)return null;let c=b[1]??"=",f=e(b[2]);if(!f)return null;if("^"===c||"~"===c){let a="^"===c?f.major>0?{major:f.major+1,minor:0,patch:0,prerelease:[],build:[]}:f.minor>0?{major:0,minor:f.minor+1,patch:0,prerelease:[],build:[]}:{major:0,minor:0,patch:f.patch+1,prerelease:[],build:[]}:{major:f.major,minor:f.minor+1,patch:0,prerelease:[],build:[]};d.push({operator:">=",version:f}),d.push({operator:"<",version:a});continue}d.push({operator:c,version:f})}return d.length>8?null:d}function j(a){return null!==i(a)}function k(a,b){let c=e(a),d=i(b);return!!c&&!!d&&(!(c.prerelease.length>0)||!!d.some(a=>{var b;return a.version.prerelease.length>0&&(b=a.version,c.major===b.major&&c.minor===b.minor&&c.patch===b.patch)}))&&d.every(a=>(function(a,b){let c=g(a,b.version);switch(b.operator){case"=":return 0===c;case">":return c>0;case">=":return c>=0;case"<":return c<0;case"<=":return c<=0}})(c,a))}},74505:(a,b,c)=>{c.d(b,{jE:()=>A,aJ:()=>v,su:()=>D,kI:()=>t,Ni:()=>C}),c(15194);var d=c(96210);let e={discovery:"skills.compatibility.axis.discovery",invocation:"skills.compatibility.axis.invocation"},f={verified:"skills.compatibility.axisOutcome.verified",unsupported:"skills.compatibility.axisOutcome.unsupported",unknown:"skills.compatibility.axisOutcome.unknown"},g={mechanical:"skills.compatibility.evidenceKind.mechanical",self_report:"skills.compatibility.evidenceKind.selfReport",not_measured:"skills.compatibility.evidenceKind.notMeasured"},h={outcome:"unknown",evidenceKind:"not_measured",labelKey:f.unknown,evidenceKindKey:g.not_measured,limitationKey:null},i={SESSION_RESTART:"skills.compatibility.reload.sessionRestart",SESSION_RESTART_NO_SLASH:"skills.compatibility.reload.sessionRestartNoSlash",UNKNOWN:"skills.compatibility.reload.unknown"},j={NO_SLASH_COMMAND:"skills.compatibility.limitation.noSlashCommand"},k="https://github.com/Kewton/CommandMate/issues/1513#issuecomment-5083878264",l="2026-07-26";function m(a){return{agent:a,discoveryRoots:[],discovery:h,invocation:h,testedVersion:null,testedDate:null,evidenceSource:null,reloadKey:i.UNKNOWN,skipReasonKey:"skills.compatibility.skipReason.notMeasured"}}let n=[{agent:"claude",discoveryRoots:[d.td],discovery:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:null},invocation:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:null},testedVersion:"2.1.220",testedDate:l,evidenceSource:k,reloadKey:i.SESSION_RESTART,skipReasonKey:null},{agent:"codex",discoveryRoots:[d.Co],discovery:{outcome:"verified",evidenceKind:"self_report",labelKey:f.verified,evidenceKindKey:g.self_report,limitationKey:null},invocation:{outcome:"unsupported",evidenceKind:"mechanical",labelKey:f.unsupported,evidenceKindKey:g.mechanical,limitationKey:j.NO_SLASH_COMMAND},testedVersion:"0.145.0",testedDate:l,evidenceSource:k,reloadKey:i.SESSION_RESTART_NO_SLASH,skipReasonKey:null},m("gemini"),m("vibe-local"),{agent:"opencode",discoveryRoots:[d.Co,d.td],discovery:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:null},invocation:{outcome:"verified",evidenceKind:"mechanical",labelKey:f.verified,evidenceKindKey:g.mechanical,limitationKey:j.NO_SLASH_COMMAND},testedVersion:"1.18.22",testedDate:"2026-08-25",evidenceSource:"https://github.com/Kewton/CommandMate/blob/main/docs/design/opencode-server-live-verification.md#11-issue-2036--2037-opencode-11822-2026-08-25",reloadKey:i.SESSION_RESTART,skipReasonKey:null},m("copilot"),m("antigravity")],o=/^\d{4}-\d{2}-\d{2}$/;function p(a,b){if(null===a.testedDate||!o.test(a.testedDate))return null;let c=Date.parse(`${a.testedDate}T00:00:00Z`),d=b.getTime();return Number.isNaN(c)||Number.isNaN(d)?null:Math.max(0,Math.floor((d-c)/864e5))}var q=c(36931);let r={SATISFIED:"SKILL_COMPAT_SATISFIED",HOST_VERSION_OUT_OF_RANGE:"SKILL_COMPAT_HOST_VERSION_OUT_OF_RANGE",HOST_VERSION_UNKNOWN:"SKILL_COMPAT_HOST_VERSION_UNKNOWN",RANGE_UNSUPPORTED:"SKILL_COMPAT_RANGE_UNSUPPORTED"},s={[r.SATISFIED]:"skills.compatibility.reason.satisfied",[r.HOST_VERSION_OUT_OF_RANGE]:"skills.compatibility.reason.hostVersionOutOfRange",[r.HOST_VERSION_UNKNOWN]:"skills.compatibility.reason.hostVersionUnknown",[r.RANGE_UNSUPPORTED]:"skills.compatibility.reason.rangeUnsupported"};function t(a){if("string"!=typeof a)return null;let b=a.trim();return 0===b.length||"0.0.0"===b||null===(0,q.IX)(b)?null:b}function u(a,b,c,d){return{status:a,reasonCode:b,messageKey:s[b],message:function(a,b,c){switch(a){case r.SATISFIED:return`CommandMate ${c} satisfies the required range "${b}".`;case r.HOST_VERSION_OUT_OF_RANGE:return`This Skill requires CommandMate "${b}", but CommandMate ${c} is running.`;case r.HOST_VERSION_UNKNOWN:return`The running CommandMate version could not be determined, so compatibility with "${b}" is unverified.`;case r.RANGE_UNSUPPORTED:return`This Skill declares the unsupported CommandMate version range "${b}", so compatibility is unverified.`}}(b,c,d),requiredRange:c,currentVersion:d}}function v(a,b){var c=a.compatibility.commandmate;let d="string"==typeof c?c:"";return(0,q.LE)(d)?null===b?u("unknown",r.HOST_VERSION_UNKNOWN,d,null):(0,q.Qk)(b,d)?u("compatible",r.SATISFIED,d,b):u("incompatible",r.HOST_VERSION_OUT_OF_RANGE,d,b):u("unknown",r.RANGE_UNSUPPORTED,d,b??null)}let w={CONFIRMED:"SKILL_AGENT_EVIDENCE_CONFIRMED",RESTRICTED:"SKILL_AGENT_EVIDENCE_RESTRICTED",STALE_DECLARATION:"SKILL_AGENT_EVIDENCE_STALE_DECLARATION",UNVERIFIED:"SKILL_AGENT_EVIDENCE_UNVERIFIED"},x={[w.CONFIRMED]:"skills.compatibility.verification.confirmed",[w.RESTRICTED]:"skills.compatibility.verification.restricted",[w.STALE_DECLARATION]:"skills.compatibility.verification.staleDeclaration",[w.UNVERIFIED]:"skills.compatibility.verification.unverified"},y={unsupported:0,unknown:1,commandmate_runtime:2,native:3};function z(a,b){return{axis:a,axisKey:e[a],outcome:b.outcome,outcomeKey:b.labelKey,evidenceKind:b.evidenceKind,evidenceKindKey:b.evidenceKindKey,limitationKey:b.limitationKey}}function A(a,b=new Date){return a.map(a=>(function(a,b){var c;let e=(c=a.agent,n.find(a=>a.agent===c)??null),f={agent:a.agent,evidence:a.evidence,declaredSupport:a.support,declaredLabelKey:d.Wy[a.support]};if(null===e||"not_measured"===e.discovery.evidenceKind)return{...f,support:a.support,labelKey:d.Wy[a.support],verification:w.UNVERIFIED,verificationKey:x[w.UNVERIFIED],measured:null,skipReasonKey:e?.skipReasonKey??null,reloadKey:e?.reloadKey??i.UNKNOWN};let{support:g,verification:h}=function(a,b){let c=y[a],d=y[b];return d<c?{support:b,verification:w.RESTRICTED}:d>c?{support:a,verification:w.STALE_DECLARATION}:{support:a,verification:w.CONFIRMED}}(a.support,function(a){switch(a.discovery.outcome){case"verified":return"native";case"unsupported":return"unsupported";case"unknown":return"unknown"}}(e));return{...f,support:g,labelKey:d.Wy[g],verification:h,verificationKey:x[h],measured:{discovery:z("discovery",e.discovery),invocation:z("invocation",e.invocation),discoveryRoots:[...e.discoveryRoots],testedVersion:e.testedVersion,testedDate:e.testedDate,evidenceSource:e.evidenceSource,ageDays:p(e,b),stale:function(a,b,c=180){let d=p(a,b);return null!==d&&d>c}(e,b)},skipReasonKey:null,reloadKey:e.reloadKey}})(a,b))}let B={HIGHEST_COMPATIBLE:"SKILL_RECOMMEND_HIGHEST_COMPATIBLE",LATEST_UNVERIFIED:"SKILL_RECOMMEND_LATEST_UNVERIFIED",NONE_COMPATIBLE:"SKILL_RECOMMEND_NONE_COMPATIBLE",NO_VERSIONS:"SKILL_RECOMMEND_NO_VERSIONS"};function C(a,b){let{currentVersion:c,includePrerelease:d=!1}=b,e=a.versions.map(a=>({version:a,prerelease:function(a){let b=(0,q.IX)(a);return null!==b&&b.prerelease.length>0}(a.version),compatibility:v(a,c)})).filter(a=>d||!a.prerelease).sort((a,b)=>(0,q.Cg)(b.version.version,a.version.version)??0);if(0===e.length)return{versions:e,recommended:null,reasonCode:B.NO_VERSIONS};let f=e.find(a=>"compatible"===a.compatibility.status);if(f)return{versions:e,recommended:f,reasonCode:B.HIGHEST_COMPATIBLE};if(null===c){let b=e.find(b=>b.version.version===a.latest)??e[0];return{versions:e,recommended:b,reasonCode:B.LATEST_UNVERIFIED}}return{versions:e,recommended:null,reasonCode:B.NONE_COMPATIBLE}}function D(a,b){return a.entries.find(a=>a.id===b)??null}},92328:(a,b,c)=>{c.d(b,{Ai:()=>i,En:()=>j,Jv:()=>f,Qs:()=>h,rt:()=>k});var d=c(10641),e=c(74505);function f(a){return{schemaVersion:a.catalog.schema_version,fetchedAt:a.fetchedAt,revalidatedAt:a.revalidatedAt,stale:a.stale,offline:a.offline,state:a.state,staleReason:a.staleReason,source:{...a.source}}}function g(a){let{version:b,prerelease:c,compatibility:d}=a;return{version:b.version,changelog:b.changelog,publishedAt:b.published_at,declaredRisk:b.declared_risk,prerelease:c,source:{repository:b.source.repository,ref:b.source.ref,commit:b.source.commit},artifact:{assetName:b.artifact.asset_name,sha256:b.artifact.sha256,size:b.artifact.size,format:b.artifact.format},compatibility:{commandmate:d,agents:(0,e.jE)(b.compatibility.agents)}}}function h(a,b){let c=(0,e.Ni)(a,{currentVersion:b.currentVersion,includePrerelease:b.includePrerelease}),d=a.versions.find(b=>b.version===a.latest),f=c.recommended?.compatibility??c.versions[0]?.compatibility??(d?(0,e.aJ)(d,b.currentVersion):null);return{id:a.id,name:a.name,summary:a.summary,provider:{...a.provider},license:a.license,homepage:a.homepage??null,keywords:a.keywords?[...a.keywords]:[],latest:a.latest,recommendedVersion:c.recommended?.version.version??null,recommendedReason:c.reasonCode,compatibility:f,versions:c.versions.map(g)}}let i={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};function j(a,b,c){return d.NextResponse.json({error:b,code:a},{status:c,headers:i})}function k(a){return"true"===a.searchParams.get("prerelease")}},96210:(a,b,c)=>{c.d(b,{$K:()=>B,$Y:()=>P,$e:()=>w,AH:()=>U,AN:()=>v,B3:()=>n,BQ:()=>z,Co:()=>h,DA:()=>X,G0:()=>G,Gm:()=>K,Hx:()=>R,JO:()=>$,KH:()=>l,PB:()=>Z,S$:()=>x,SU:()=>I,UN:()=>E,Ue:()=>D,WL:()=>M,Wr:()=>m,Wy:()=>_,X0:()=>e,Xk:()=>L,Z4:()=>T,_Z:()=>J,a6:()=>r,b:()=>F,cj:()=>f,do:()=>Y,em:()=>s,gI:()=>H,gJ:()=>q,h3:()=>N,jn:()=>p,jq:()=>d,kM:()=>g,l9:()=>u,mg:()=>V,mt:()=>Q,pg:()=>k,q3:()=>y,qu:()=>W,t9:()=>A,td:()=>i,wD:()=>o,wI:()=>O,x2:()=>S,xP:()=>t,y2:()=>j,yV:()=>C});let d=1,e=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,f=64,g=["commandmate","system","con","prn","aux","nul","com1","com2","com3","com4","com5","com6","com7","com8","com9","lpt1","lpt2","lpt3","lpt4","lpt5","lpt6","lpt7","lpt8","lpt9"],h=".agents/skills",i=".claude/skills",j=[h,i],k=h,l="commandmate.skill.yaml",m="SKILL.md",n=".commandmate-staging",o=[m,l],p="tar.gz",q="application/gzip",r=0x1000000,s=4194304,t=500;function u(a,b){return`${a}-${b}.tar.gz`}let v=100,w=8,x=255,y=100,z=200,A=2e3,B=200,C=10,D=20,E=40,F=4e3,G=300,H=500,I=20,J=20,K=500,L=100,M={maxBytes:65536,maxDepth:16,maxNodes:5e3,maxScalarLength:8192,allowAliases:!1,allowCustomTags:!1,allowDuplicateKeys:!1,forbiddenKeys:["__proto__","constructor","prototype"]},N=["native","commandmate_runtime","unsupported","unknown"],O=["low","moderate","high"],P={low:0,moderate:1,high:2},Q=["filesystem_read","filesystem_write","network_access","process_execution","environment_read","credential_access"],R=["skill_md","instruction","script","asset"],S=/^[0-9a-f]{64}$/,T=/^[0-9a-f]{40}$/,U=/^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/,V=/^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/,W=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/,X=/^[A-Za-z0-9][A-Za-z0-9.+-]{0,63}$/,Y=/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/,Z=/^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/,$="https://",_={native:"skills.compatibility.native",commandmate_runtime:"skills.compatibility.commandmateRuntime",unsupported:"skills.compatibility.unsupported",unknown:"skills.compatibility.unknown"}}};