commandmate 0.29.1 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (906) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +458 -414
  3. package/.next/app-path-routes-manifest.json +32 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/react-loadable-manifest.json +3 -3
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +17 -0
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/update/route.js +2 -0
  12. package/.next/server/app/api/agents/update/route.js.nft.json +1 -0
  13. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -0
  14. package/.next/server/app/api/agents/versions/route.js +1 -0
  15. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -0
  16. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -0
  17. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/app/update-check/route.js +1 -1
  19. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  21. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  24. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/messages/route.js +1 -1
  27. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/session/route.js +1 -1
  30. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/start/route.js +2 -2
  33. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  36. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  37. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/assistant/tools/route.js +1 -1
  39. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  40. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/capabilities/route.js +1 -1
  45. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/daily-summary/route.js +1 -1
  47. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  48. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  50. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  51. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  53. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  54. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  56. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/external-apps/route.js +1 -1
  59. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  60. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/fs/browse/route.js +1 -7
  62. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  63. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/fs/recent-paths/route.js +1 -7
  65. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  66. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  68. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  71. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  72. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  74. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/metrics/vibe/route.js +2 -2
  77. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  78. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/push/escalation/route.js +7 -1
  81. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  82. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  84. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  85. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/push/vapid/route.js +7 -1
  87. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  88. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  97. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/clone/route.js +1 -1
  103. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  106. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/restore/route.js +1 -1
  109. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/route.js +1 -1
  112. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/scan/route.js +1 -1
  115. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/repositories/sync/route.js +1 -1
  118. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  119. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  122. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/settings/default-agents/route.js +1 -0
  124. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -0
  125. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -0
  126. package/.next/server/app/api/sidebar/group-order/route.js +1 -7
  127. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  128. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/skills/[id]/route.js +1 -1
  130. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/installations/route.js +2 -2
  133. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/operations/route.js +2 -2
  136. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/reindex/route.js +1 -1
  139. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  140. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/skills/route.js +1 -1
  142. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  143. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/slash-commands/route.js +1 -1
  145. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  146. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  148. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  149. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/templates/[id]/route.js +2 -2
  154. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/templates/route.js +2 -2
  157. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  158. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/todos/route.js +1 -1
  160. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  161. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  163. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  164. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/verification/runs/route.js +1 -1
  166. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  167. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  181. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -2
  184. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  193. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  280. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  283. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  316. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  322. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -7
  328. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -0
  391. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -0
  392. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -0
  393. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  394. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  395. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  396. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -0
  397. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -0
  398. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -0
  399. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  400. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  401. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  402. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  406. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  407. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  408. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -0
  409. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -0
  410. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -0
  411. package/.next/server/app/api/worktrees/route.js +1 -1
  412. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  413. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  414. package/.next/server/app/chat/page.js +2 -2
  415. package/.next/server/app/chat/page.js.nft.json +1 -1
  416. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  417. package/.next/server/app/login/page.js +2 -2
  418. package/.next/server/app/login/page.js.nft.json +1 -1
  419. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  421. package/.next/server/app/more/page.js +2 -2
  422. package/.next/server/app/more/page.js.nft.json +1 -1
  423. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  424. package/.next/server/app/offline/page.js.nft.json +1 -1
  425. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  426. package/.next/server/app/page.js +1 -1
  427. package/.next/server/app/page.js.nft.json +1 -1
  428. package/.next/server/app/page_client-reference-manifest.js +1 -1
  429. package/.next/server/app/proxy/[...path]/route.js +1 -1
  430. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  431. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  432. package/.next/server/app/repositories/page.js +2 -2
  433. package/.next/server/app/repositories/page.js.nft.json +1 -1
  434. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  435. package/.next/server/app/review/page.js +1 -1
  436. package/.next/server/app/review/page.js.nft.json +1 -1
  437. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  438. package/.next/server/app/sessions/page.js +1 -1
  439. package/.next/server/app/sessions/page.js.nft.json +1 -1
  440. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  441. package/.next/server/app/skills/[skillId]/page.js +2 -2
  442. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  443. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/skills/installed/page.js +2 -2
  445. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  446. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  447. package/.next/server/app/skills/page.js +2 -2
  448. package/.next/server/app/skills/page.js.nft.json +1 -1
  449. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  450. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  451. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  452. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  453. package/.next/server/app/worktrees/[id]/page.js +12 -12
  454. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  455. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  456. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  457. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  458. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  459. package/.next/server/app-paths-manifest.json +32 -26
  460. package/.next/server/chunks/1058.js +1 -1
  461. package/.next/server/chunks/1068.js +1 -1
  462. package/.next/server/chunks/1341.js +1 -0
  463. package/.next/server/chunks/1501.js +5 -0
  464. package/.next/server/chunks/1886.js +3 -4
  465. package/.next/server/chunks/2119.js +1 -1
  466. package/.next/server/chunks/2198.js +1 -0
  467. package/.next/server/chunks/221.js +7 -1
  468. package/.next/server/chunks/2445.js +1 -1
  469. package/.next/server/chunks/2759.js +1 -1
  470. package/.next/server/chunks/3543.js +1 -1
  471. package/.next/server/chunks/3558.js +1 -1
  472. package/.next/server/chunks/3707.js +15 -0
  473. package/.next/server/chunks/3722.js +25 -1
  474. package/.next/server/chunks/3869.js +1 -0
  475. package/.next/server/chunks/3945.js +1 -1
  476. package/.next/server/chunks/4299.js +1 -1
  477. package/.next/server/chunks/4390.js +1 -0
  478. package/.next/server/chunks/4393.js +1 -1
  479. package/.next/server/chunks/5017.js +1 -1
  480. package/.next/server/chunks/5164.js +1 -1
  481. package/.next/server/chunks/5571.js +1 -1
  482. package/.next/server/chunks/6130.js +1 -1
  483. package/.next/server/chunks/6285.js +1 -1
  484. package/.next/server/chunks/6781.js +1 -1
  485. package/.next/server/chunks/7366.js +5 -0
  486. package/.next/server/chunks/7824.js +1 -1
  487. package/.next/server/chunks/7905.js +1 -1
  488. package/.next/server/chunks/8118.js +1 -0
  489. package/.next/server/chunks/848.js +1 -1
  490. package/.next/server/chunks/880.js +3 -3
  491. package/.next/server/chunks/8800.js +3 -0
  492. package/.next/server/chunks/9123.js +2 -2
  493. package/.next/server/chunks/9508.js +1 -1
  494. package/.next/server/chunks/9627.js +30 -24
  495. package/.next/server/middleware-build-manifest.js +1 -1
  496. package/.next/server/middleware-manifest.json +5 -5
  497. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  498. package/.next/server/pages/500.html +1 -1
  499. package/.next/server/server-reference-manifest.json +1 -1
  500. package/.next/static/0YoRrahue4Vchxg1z83IQ/_buildManifest.js +1 -0
  501. package/.next/static/chunks/1379-af7af9e08f47c979.js +1 -0
  502. package/.next/static/chunks/{2053-c0e931eb4391baa1.js → 2053-3f299a7a2c7d6767.js} +1 -1
  503. package/.next/static/chunks/3922.9c1ec01fff819c88.js +1 -0
  504. package/.next/static/chunks/{3968-8d8ca15657748bfb.js → 4882-388e94fe0a03c2ba.js} +1 -1
  505. package/.next/static/chunks/5229-b2a81bb8fb5c19e9.js +1 -0
  506. package/.next/static/chunks/6381-9ba5198c0a6ff197.js +1 -0
  507. package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +1 -0
  508. package/.next/static/chunks/{1188-8567ee5ecfef02ee.js → 8593-fa0eb2802e0ce68a.js} +1 -1
  509. package/.next/static/chunks/app/api/agents/update/route-1c30fb8d4d6fa6ef.js +1 -0
  510. package/.next/static/chunks/app/api/agents/versions/route-1c30fb8d4d6fa6ef.js +1 -0
  511. package/.next/static/chunks/app/api/app/update/route-1c30fb8d4d6fa6ef.js +1 -0
  512. package/.next/static/chunks/app/api/app/update-check/route-1c30fb8d4d6fa6ef.js +1 -0
  513. package/.next/static/chunks/app/api/assistant/conversation/route-1c30fb8d4d6fa6ef.js +1 -0
  514. package/.next/static/chunks/app/api/assistant/current-output/route-1c30fb8d4d6fa6ef.js +1 -0
  515. package/.next/static/chunks/app/api/assistant/messages/route-1c30fb8d4d6fa6ef.js +1 -0
  516. package/.next/static/chunks/app/api/assistant/session/route-1c30fb8d4d6fa6ef.js +1 -0
  517. package/.next/static/chunks/app/api/assistant/start/route-1c30fb8d4d6fa6ef.js +1 -0
  518. package/.next/static/chunks/app/api/assistant/terminal/route-1c30fb8d4d6fa6ef.js +1 -0
  519. package/.next/static/chunks/app/api/assistant/tools/route-1c30fb8d4d6fa6ef.js +1 -0
  520. package/.next/static/chunks/app/api/auth/login/route-1c30fb8d4d6fa6ef.js +1 -0
  521. package/.next/static/chunks/app/api/auth/logout/route-1c30fb8d4d6fa6ef.js +1 -0
  522. package/.next/static/chunks/app/api/auth/status/route-1c30fb8d4d6fa6ef.js +1 -0
  523. package/.next/static/chunks/app/api/capabilities/route-1c30fb8d4d6fa6ef.js +1 -0
  524. package/.next/static/chunks/app/api/daily-summary/route-1c30fb8d4d6fa6ef.js +1 -0
  525. package/.next/static/chunks/app/api/daily-summary/status/route-1c30fb8d4d6fa6ef.js +1 -0
  526. package/.next/static/chunks/app/api/external-apps/[id]/health/route-1c30fb8d4d6fa6ef.js +1 -0
  527. package/.next/static/chunks/app/api/external-apps/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  528. package/.next/static/chunks/app/api/external-apps/route-1c30fb8d4d6fa6ef.js +1 -0
  529. package/.next/static/chunks/app/api/fs/browse/route-1c30fb8d4d6fa6ef.js +1 -0
  530. package/.next/static/chunks/app/api/fs/recent-paths/route-1c30fb8d4d6fa6ef.js +1 -0
  531. package/.next/static/chunks/app/api/hooks/agent-event/route-1c30fb8d4d6fa6ef.js +1 -0
  532. package/.next/static/chunks/app/api/hooks/claude-done/route-1c30fb8d4d6fa6ef.js +1 -0
  533. package/.next/static/chunks/app/api/hooks/permission-request/route-1c30fb8d4d6fa6ef.js +1 -0
  534. package/.next/static/chunks/app/api/metrics/vibe/route-1c30fb8d4d6fa6ef.js +1 -0
  535. package/.next/static/chunks/app/api/ollama/models/route-1c30fb8d4d6fa6ef.js +1 -0
  536. package/.next/static/chunks/app/api/push/escalation/route-1c30fb8d4d6fa6ef.js +1 -0
  537. package/.next/static/chunks/app/api/push/subscriptions/route-1c30fb8d4d6fa6ef.js +1 -0
  538. package/.next/static/chunks/app/api/push/vapid/route-1c30fb8d4d6fa6ef.js +1 -0
  539. package/.next/static/chunks/app/api/remote/pair/route-1c30fb8d4d6fa6ef.js +1 -0
  540. package/.next/static/chunks/app/api/repositories/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  541. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  542. package/.next/static/chunks/app/api/repositories/[id]/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  543. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-1c30fb8d4d6fa6ef.js +1 -0
  544. package/.next/static/chunks/app/api/repositories/clone/route-1c30fb8d4d6fa6ef.js +1 -0
  545. package/.next/static/chunks/app/api/repositories/excluded/route-1c30fb8d4d6fa6ef.js +1 -0
  546. package/.next/static/chunks/app/api/repositories/restore/route-1c30fb8d4d6fa6ef.js +1 -0
  547. package/.next/static/chunks/app/api/repositories/route-1c30fb8d4d6fa6ef.js +1 -0
  548. package/.next/static/chunks/app/api/repositories/scan/route-1c30fb8d4d6fa6ef.js +1 -0
  549. package/.next/static/chunks/app/api/repositories/sync/route-1c30fb8d4d6fa6ef.js +1 -0
  550. package/.next/static/chunks/app/api/repositories/validate-path/route-1c30fb8d4d6fa6ef.js +1 -0
  551. package/.next/static/chunks/app/api/settings/default-agents/route-1c30fb8d4d6fa6ef.js +1 -0
  552. package/.next/static/chunks/app/api/sidebar/group-order/route-1c30fb8d4d6fa6ef.js +1 -0
  553. package/.next/static/chunks/app/api/skills/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  554. package/.next/static/chunks/app/api/skills/installations/route-1c30fb8d4d6fa6ef.js +1 -0
  555. package/.next/static/chunks/app/api/skills/operations/route-1c30fb8d4d6fa6ef.js +1 -0
  556. package/.next/static/chunks/app/api/skills/reindex/route-1c30fb8d4d6fa6ef.js +1 -0
  557. package/.next/static/chunks/app/api/skills/route-1c30fb8d4d6fa6ef.js +1 -0
  558. package/.next/static/chunks/app/api/slash-commands/route-1c30fb8d4d6fa6ef.js +1 -0
  559. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-1c30fb8d4d6fa6ef.js +1 -0
  560. package/.next/static/chunks/app/api/tasks/[taskId]/route-1c30fb8d4d6fa6ef.js +1 -0
  561. package/.next/static/chunks/app/api/templates/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  562. package/.next/static/chunks/app/api/templates/route-1c30fb8d4d6fa6ef.js +1 -0
  563. package/.next/static/chunks/app/api/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  564. package/.next/static/chunks/app/api/verification/runs/[runId]/route-1c30fb8d4d6fa6ef.js +1 -0
  565. package/.next/static/chunks/app/api/verification/runs/route-1c30fb8d4d6fa6ef.js +1 -0
  566. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-1c30fb8d4d6fa6ef.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-1c30fb8d4d6fa6ef.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-1c30fb8d4d6fa6ef.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-1c30fb8d4d6fa6ef.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-1c30fb8d4d6fa6ef.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-1c30fb8d4d6fa6ef.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/env/route-1c30fb8d4d6fa6ef.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-1c30fb8d4d6fa6ef.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-1c30fb8d4d6fa6ef.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-1c30fb8d4d6fa6ef.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-1c30fb8d4d6fa6ef.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-1c30fb8d4d6fa6ef.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-1c30fb8d4d6fa6ef.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-1c30fb8d4d6fa6ef.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-1c30fb8d4d6fa6ef.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-1c30fb8d4d6fa6ef.js +1 -0
  583. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-1c30fb8d4d6fa6ef.js +1 -0
  584. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-1c30fb8d4d6fa6ef.js +1 -0
  585. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-1c30fb8d4d6fa6ef.js +1 -0
  586. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-1c30fb8d4d6fa6ef.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-1c30fb8d4d6fa6ef.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-1c30fb8d4d6fa6ef.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-1c30fb8d4d6fa6ef.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-1c30fb8d4d6fa6ef.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-1c30fb8d4d6fa6ef.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-1c30fb8d4d6fa6ef.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-1c30fb8d4d6fa6ef.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-1c30fb8d4d6fa6ef.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-1c30fb8d4d6fa6ef.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-1c30fb8d4d6fa6ef.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-1c30fb8d4d6fa6ef.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-1c30fb8d4d6fa6ef.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-1c30fb8d4d6fa6ef.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-1c30fb8d4d6fa6ef.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-1c30fb8d4d6fa6ef.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-1c30fb8d4d6fa6ef.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-1c30fb8d4d6fa6ef.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-1c30fb8d4d6fa6ef.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-1c30fb8d4d6fa6ef.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-1c30fb8d4d6fa6ef.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-1c30fb8d4d6fa6ef.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-1c30fb8d4d6fa6ef.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-1c30fb8d4d6fa6ef.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-1c30fb8d4d6fa6ef.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-1c30fb8d4d6fa6ef.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-1c30fb8d4d6fa6ef.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-1c30fb8d4d6fa6ef.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-1c30fb8d4d6fa6ef.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-1c30fb8d4d6fa6ef.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/search/route-1c30fb8d4d6fa6ef.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/send/route-1c30fb8d4d6fa6ef.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-1c30fb8d4d6fa6ef.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-1c30fb8d4d6fa6ef.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-1c30fb8d4d6fa6ef.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-1c30fb8d4d6fa6ef.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-1c30fb8d4d6fa6ef.js +1 -0
  625. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-1c30fb8d4d6fa6ef.js +1 -0
  626. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-1c30fb8d4d6fa6ef.js +1 -0
  627. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-1c30fb8d4d6fa6ef.js +1 -0
  628. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-1c30fb8d4d6fa6ef.js +1 -0
  629. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-1c30fb8d4d6fa6ef.js +1 -0
  630. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-1c30fb8d4d6fa6ef.js +1 -0
  631. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-1c30fb8d4d6fa6ef.js +1 -0
  632. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-1c30fb8d4d6fa6ef.js +1 -0
  633. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-1c30fb8d4d6fa6ef.js +1 -0
  634. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-1c30fb8d4d6fa6ef.js +1 -0
  635. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  636. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  637. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  638. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-1c30fb8d4d6fa6ef.js +1 -0
  639. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  640. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-1c30fb8d4d6fa6ef.js +1 -0
  641. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-1c30fb8d4d6fa6ef.js +1 -0
  642. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-1c30fb8d4d6fa6ef.js +1 -0
  643. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-1c30fb8d4d6fa6ef.js +1 -0
  644. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-1c30fb8d4d6fa6ef.js +1 -0
  645. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-1c30fb8d4d6fa6ef.js +1 -0
  646. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-1c30fb8d4d6fa6ef.js +1 -0
  647. package/.next/static/chunks/app/api/worktrees/route-1c30fb8d4d6fa6ef.js +1 -0
  648. package/.next/static/chunks/app/chat/{page-231df45127e876c2.js → page-9aa2011410895b0d.js} +1 -1
  649. package/.next/static/chunks/app/login/{page-03659dded846ef1d.js → page-af7241bb4c4a8e59.js} +1 -1
  650. package/.next/static/chunks/app/manifest.webmanifest/route-1c30fb8d4d6fa6ef.js +1 -0
  651. package/.next/static/chunks/app/more/page-75d3783da0d49a25.js +1 -0
  652. package/.next/static/chunks/app/{page-0305431f43195431.js → page-214f7ffa13a0cf10.js} +1 -1
  653. package/.next/static/chunks/app/proxy/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  654. package/.next/static/chunks/app/repositories/{page-ae8fa55749976f79.js → page-4951cac905e50224.js} +1 -1
  655. package/.next/static/chunks/app/review/page-a0899b2d285318c3.js +1 -0
  656. package/.next/static/chunks/app/sessions/page-fb36145ec732092a.js +1 -0
  657. package/.next/static/chunks/app/skills/[skillId]/{page-aaf0bcb1dfb558b9.js → page-9099e26b60442873.js} +1 -1
  658. package/.next/static/chunks/app/skills/installed/{page-dafc486410e839b7.js → page-182e32368696d824.js} +1 -1
  659. package/.next/static/chunks/app/skills/{page-9e3c91da31514893.js → page-d3fdc88239ebe0ab.js} +1 -1
  660. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-90f96977c741bbf8.js → page-f3361237420719b4.js} +1 -1
  661. package/.next/static/chunks/app/worktrees/[id]/layout-1c30fb8d4d6fa6ef.js +1 -0
  662. package/.next/static/chunks/app/worktrees/[id]/page-ce6279d581d1df95.js +1 -0
  663. package/.next/static/chunks/{webpack-7e79064bfce988d7.js → webpack-9f75198882fdaf08.js} +1 -1
  664. package/.next/static/css/b326c8a734e1928e.css +1 -0
  665. package/.next/trace +13 -13
  666. package/.next/types/app/api/agents/update/route.ts +347 -0
  667. package/.next/types/app/api/agents/versions/route.ts +347 -0
  668. package/.next/types/app/api/settings/default-agents/route.ts +347 -0
  669. package/.next/types/app/api/worktrees/[id]/verify/config/route.ts +347 -0
  670. package/.next/types/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.ts +347 -0
  671. package/.next/types/app/api/worktrees/apply-default-agents/route.ts +347 -0
  672. package/.next/types/routes.d.ts +7 -1
  673. package/.next/types/validator.ts +54 -0
  674. package/dist/cli/commands/agents.d.ts +35 -0
  675. package/dist/cli/commands/agents.d.ts.map +1 -0
  676. package/dist/cli/commands/agents.js +212 -0
  677. package/dist/cli/commands/ls.d.ts.map +1 -1
  678. package/dist/cli/commands/ls.js +18 -0
  679. package/dist/cli/commands/verify.d.ts.map +1 -1
  680. package/dist/cli/commands/verify.js +111 -0
  681. package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
  682. package/dist/cli/config/cli-dependencies.js +11 -0
  683. package/dist/cli/docs/agent-operations.d.ts +1 -1
  684. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  685. package/dist/cli/docs/agent-operations.js +30 -0
  686. package/dist/cli/program.d.ts.map +1 -1
  687. package/dist/cli/program.js +6 -0
  688. package/dist/cli/types/api-responses.d.ts +58 -0
  689. package/dist/cli/types/api-responses.d.ts.map +1 -1
  690. package/dist/cli/types/index.d.ts +8 -0
  691. package/dist/cli/types/index.d.ts.map +1 -1
  692. package/dist/cli/utils/preflight.d.ts.map +1 -1
  693. package/dist/cli/utils/preflight.js +6 -0
  694. package/dist/config/system-directories.d.ts +101 -0
  695. package/dist/config/system-directories.d.ts.map +1 -0
  696. package/dist/config/system-directories.js +211 -0
  697. package/dist/lib/cli-tools/types.d.ts +15 -1
  698. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  699. package/dist/lib/detection/status-reason.d.ts +92 -0
  700. package/dist/lib/detection/status-reason.d.ts.map +1 -0
  701. package/dist/lib/detection/status-reason.js +94 -0
  702. package/dist/lib/updates/agent-updater.d.ts +247 -0
  703. package/dist/lib/updates/agent-updater.d.ts.map +1 -0
  704. package/dist/lib/updates/agent-updater.js +373 -0
  705. package/dist/lib/updates/agent-versions.d.ts +77 -0
  706. package/dist/lib/updates/agent-versions.d.ts.map +1 -0
  707. package/dist/lib/updates/agent-versions.js +138 -0
  708. package/dist/lib/updates/codex-version.d.ts +184 -0
  709. package/dist/lib/updates/codex-version.d.ts.map +1 -0
  710. package/dist/lib/updates/codex-version.js +215 -0
  711. package/dist/lib/verification/verify-config.d.ts +202 -0
  712. package/dist/lib/verification/verify-config.d.ts.map +1 -0
  713. package/dist/lib/verification/verify-config.js +429 -0
  714. package/dist/lib/verification/verify-draft.d.ts +182 -0
  715. package/dist/lib/verification/verify-draft.d.ts.map +1 -0
  716. package/dist/lib/verification/verify-draft.js +570 -0
  717. package/dist/server/src/cli/types/api-responses.js +9 -0
  718. package/dist/server/src/config/cli-tool-timing-config.js +15 -1
  719. package/dist/server/src/config/codex-update-dialog-config.js +154 -0
  720. package/dist/server/src/config/default-agents.js +138 -0
  721. package/dist/server/src/lib/cli-tools/antigravity.js +36 -12
  722. package/dist/server/src/lib/cli-tools/base.js +131 -0
  723. package/dist/server/src/lib/cli-tools/codex.js +350 -100
  724. package/dist/server/src/lib/cli-tools/copilot.js +34 -10
  725. package/dist/server/src/lib/cli-tools/gemini.js +34 -10
  726. package/dist/server/src/lib/cli-tools/liveness-spec.js +214 -0
  727. package/dist/server/src/lib/cli-tools/opencode.js +72 -19
  728. package/dist/server/src/lib/cli-tools/session-liveness.js +64 -0
  729. package/dist/server/src/lib/cli-tools/vibe-local.js +30 -10
  730. package/dist/server/src/lib/db/app-settings-db.js +142 -0
  731. package/dist/server/src/lib/db/worktree-db.js +178 -3
  732. package/dist/server/src/lib/detection/status-reason.js +17 -0
  733. package/dist/server/src/lib/detection/tool-liveness.js +233 -0
  734. package/dist/server/src/lib/detection/version-probes.js +290 -0
  735. package/dist/server/src/lib/git/worktrees.js +10 -0
  736. package/dist/server/src/lib/repo-config/agents-config.js +298 -0
  737. package/dist/server/src/lib/selected-agents-validator.js +93 -23
  738. package/dist/server/src/lib/session/claude-session.js +39 -108
  739. package/dist/server/src/lib/tmux/tmux.js +29 -0
  740. package/dist/server/src/lib/updates/agent-updater.js +373 -0
  741. package/dist/server/src/lib/updates/agent-versions.js +138 -0
  742. package/dist/server/src/lib/updates/codex-version.js +215 -0
  743. package/dist/server/src/lib/updates/index.js +42 -0
  744. package/dist/server/src/lib/verification/gate-runner.js +298 -37
  745. package/dist/server/src/lib/verification/machine-lock.js +11 -0
  746. package/dist/server/src/lib/verification/run-verdict-vocabulary.js +151 -0
  747. package/dist/server/src/lib/verification/verify-config.js +33 -0
  748. package/dist/server/src/types/sidebar.js +40 -9
  749. package/dist/types/cli-tool-contracts.d.ts +119 -0
  750. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  751. package/package.json +1 -1
  752. package/.next/server/chunks/1601.js +0 -7
  753. package/.next/server/chunks/222.js +0 -1
  754. package/.next/server/chunks/2366.js +0 -1
  755. package/.next/server/chunks/4689.js +0 -25
  756. package/.next/server/chunks/5089.js +0 -1
  757. package/.next/server/chunks/6274.js +0 -14
  758. package/.next/server/chunks/9067.js +0 -1
  759. package/.next/server/chunks/9373.js +0 -9
  760. package/.next/static/Dvfs4ZThl5vBhJGP-ZQuJ/_buildManifest.js +0 -1
  761. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +0 -1
  762. package/.next/static/chunks/3922.0d2e64daf9f187da.js +0 -1
  763. package/.next/static/chunks/5229-580b581fce5aeb52.js +0 -1
  764. package/.next/static/chunks/6381-9a929249196a0e77.js +0 -1
  765. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +0 -1
  766. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +0 -1
  767. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +0 -1
  768. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +0 -1
  769. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +0 -1
  770. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +0 -1
  771. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +0 -1
  772. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +0 -1
  773. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +0 -1
  774. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +0 -1
  775. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +0 -1
  776. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +0 -1
  777. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +0 -1
  778. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +0 -1
  779. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +0 -1
  780. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +0 -1
  781. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +0 -1
  782. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +0 -1
  783. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +0 -1
  784. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +0 -1
  785. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +0 -1
  786. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +0 -1
  787. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +0 -1
  788. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +0 -1
  789. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +0 -1
  790. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +0 -1
  791. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +0 -1
  792. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +0 -1
  793. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +0 -1
  794. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +0 -1
  795. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  796. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +0 -1
  797. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +0 -1
  798. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +0 -1
  799. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +0 -1
  800. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +0 -1
  801. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +0 -1
  802. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +0 -1
  803. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +0 -1
  804. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +0 -1
  805. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +0 -1
  806. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +0 -1
  807. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +0 -1
  808. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +0 -1
  809. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +0 -1
  810. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +0 -1
  811. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +0 -1
  812. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +0 -1
  813. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +0 -1
  814. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +0 -1
  815. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +0 -1
  816. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +0 -1
  817. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +0 -1
  818. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +0 -1
  819. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +0 -1
  820. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +0 -1
  821. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +0 -1
  822. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +0 -1
  823. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +0 -1
  824. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +0 -1
  825. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +0 -1
  826. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +0 -1
  827. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +0 -1
  828. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +0 -1
  829. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +0 -1
  830. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +0 -1
  831. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +0 -1
  832. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +0 -1
  833. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +0 -1
  834. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +0 -1
  835. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +0 -1
  836. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +0 -1
  837. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +0 -1
  838. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +0 -1
  839. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +0 -1
  840. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +0 -1
  841. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +0 -1
  842. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +0 -1
  843. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +0 -1
  844. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +0 -1
  845. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +0 -1
  846. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +0 -1
  847. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +0 -1
  848. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +0 -1
  849. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +0 -1
  850. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +0 -1
  851. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +0 -1
  852. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +0 -1
  853. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +0 -1
  854. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +0 -1
  855. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +0 -1
  856. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +0 -1
  857. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +0 -1
  858. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +0 -1
  859. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +0 -1
  860. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +0 -1
  861. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +0 -1
  862. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +0 -1
  863. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +0 -1
  864. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +0 -1
  865. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +0 -1
  866. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +0 -1
  867. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +0 -1
  868. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +0 -1
  869. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +0 -1
  870. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +0 -1
  871. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +0 -1
  872. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +0 -1
  873. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +0 -1
  874. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +0 -1
  875. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +0 -1
  876. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +0 -1
  877. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +0 -1
  878. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +0 -1
  879. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +0 -1
  880. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +0 -1
  881. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +0 -1
  882. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +0 -1
  883. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +0 -1
  884. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +0 -1
  885. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +0 -1
  886. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +0 -1
  887. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +0 -1
  888. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  889. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +0 -1
  890. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +0 -1
  898. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +0 -1
  899. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +0 -1
  900. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +0 -1
  901. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +0 -1
  902. package/.next/static/chunks/app/sessions/page-4d5382b257077c14.js +0 -1
  903. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +0 -1
  904. package/.next/static/chunks/app/worktrees/[id]/page-817378dd7c580774.js +0 -1
  905. package/.next/static/css/6266bde3bce465a2.css +0 -1
  906. /package/.next/static/{Dvfs4ZThl5vBhJGP-ZQuJ → 0YoRrahue4Vchxg1z83IQ}/_ssgManifest.js +0 -0
@@ -16,4 +16,10 @@ Created: ${i}
16
16
 
17
17
  `,j+=`---
18
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()}}};
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}},50779:(a,b,c)=>{c.d(b,{GT:()=>m});var d=c(88807),e=c(43167),f=c(73753),g=c(72626),h=c(57836),i=c(4806),j=c(61191),k=c(27519);let l=(0,g.h)("push/resolution");async function m(a){let{worktreeId:b,agentName:c,at:g=Date.now()}=a,m=function(a,b=Date.now()){let c;if(!(0,k.lU)())return{send:!1,reason:"push-unconfigured"};if(!(0,i.r0)(a,b))return{send:!1,reason:"no-card"};if((0,h.Te)(a))return{send:!1,reason:"still-waiting"};try{c=(0,e.rC)((0,d.getDbInstance)(),"prompt")}catch{return{send:!1,reason:"single-device",deviceCount:0}}return c<2?{send:!1,reason:"single-device",deviceCount:c}:{send:!0,reason:"cross-device-clear",deviceCount:c}}(b,g),n={worktreeId:b,instanceId:c,reason:m.reason,...void 0!==m.deviceCount?{deviceCount:m.deviceCount}:{}};if("still-waiting"!==m.reason&&(0,i._P)(b),!m.send)return void("single-device"===m.reason?l.info("resolution-push-skipped",n):l.debug("resolution-push-skipped",n));try{await (0,j.notifyPushSubscribers)({worktreeId:b,worktreeName:function(a){try{return(0,f.Ui)((0,d.getDbInstance)(),a)?.name??a}catch{return a}}(b),kind:"prompt",agentName:c,resolved:!0},g),l.info("resolution-push-sent",n)}catch(a){l.warn("resolution-push-failed",{...n,error:a instanceof Error?a.message:String(a)})}}},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," ")}},73478:(a,b,c)=>{c.d(b,{I7:()=>r});var d=c(24455),e=c(88807),f=c(73753),g=c(72626),h=c(57836),i=c(80544),j=c(92010),k=c(61191),l=c(50779),m=c(27519);let n=(0,g.h)("push/waiting-notifier"),o=globalThis.__waitingPushPending??(globalThis.__waitingPushPending=new Map);async function p(a,b,c){let d=a.instanceId??a.cliToolId;try{await (0,k.notifyPushSubscribers)({worktreeId:a.worktreeId,worktreeName:function(a){try{return(0,f.Ui)((0,e.getDbInstance)(),a)?.name??a}catch{return a}}(a.worktreeId),kind:"prompt",agentName:d,instanceId:d,waitingKind:a.kind,waitingSince:a.since,escalated:b},c)}catch(c){n.warn("waiting-push-failed",{worktreeId:a.worktreeId,instanceId:d,escalated:b,error:c instanceof Error?c.message:String(c)})}}function q(){if(o.size>0)return;let a=globalThis.__waitingPushEscalationTimer;void 0!==a&&(clearInterval(a),globalThis.__waitingPushEscalationTimer=void 0)}function r(){let a=globalThis.__waitingPushUnsubscribe;a&&(a(),globalThis.__waitingPushUnsubscribe=void 0),o.clear(),q();let b=(0,h.wN)(a=>{!function(a){if(!(0,m.lU)())return;let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(!a.waiting||null===a.since){o.delete(b),q(),(0,l.GT)({worktreeId:a.worktreeId,agentName:a.instanceId??a.cliToolId,at:a.at});return}let c={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,since:a.since,kind:a.kind};o.set(b,c),function(){if(void 0!==globalThis.__waitingPushEscalationTimer)return;let a=setInterval(()=>{!function(a=Date.now()){if(0===o.size)return q();let b=(0,i.rS)(),c=6e4*b.thresholdMinutes;for(let[d,e]of Array.from(o)){let f=(0,h.Jp)(e.worktreeId,e.cliToolId,e.instanceId);if(null===f||f.since!==e.since){o.delete(d);continue}b.enabled&&!(a-e.since<c)&&((0,j.R)({worktreeId:e.worktreeId,cliToolId:e.cliToolId,instanceId:e.instanceId,waitingSince:e.since,escalated:!0})||(o.delete(d),p({...e,kind:f.kind??e.kind},!0,a)))}q()}()},6e4);a.unref?.(),globalThis.__waitingPushEscalationTimer=a}(),(0,j.R)({worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,waitingSince:c.since})||p(c,!1,a.at)}(a)});return globalThis.__waitingPushUnsubscribe=b,b}},80544:(a,b,c)=>{c.d(b,{Di:()=>h,O$:()=>g,d7:()=>k,rS:()=>j});var d=c(88807);let e=(0,c(72626).h)("push/escalation-settings"),f="push_escalation",g={enabled:!0,thresholdMinutes:10},h=[5,10,30,60];function i(a){if("object"!=typeof a||null===a)return{...g};let b="boolean"==typeof a.enabled?a.enabled:g.enabled,c=a.thresholdMinutes;return{enabled:b,thresholdMinutes:"number"==typeof c&&Number.isFinite(c)&&c>=1&&c<=1440?Math.round(c):g.thresholdMinutes}}function j(){try{let a=(0,d.getDbInstance)().prepare("SELECT value FROM app_settings WHERE key = ?").get(f);if(!a)return{...g};return i(JSON.parse(a.value))}catch(a){return e.warn("escalation-settings-read-failed",{error:a instanceof Error?a.message:String(a)}),{...g}}}function k(a){let b=i(a),c=Date.now();return(0,d.getDbInstance)().prepare(`
20
+ INSERT INTO app_settings (key, value, created_at, updated_at)
21
+ VALUES (?, ?, ?, ?)
22
+ ON CONFLICT(key) DO UPDATE SET
23
+ value = excluded.value,
24
+ updated_at = excluded.updated_at
25
+ `).run(f,JSON.stringify(b),c,c),b}},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)}},91601:(a,b,c)=>{c.d(b,{Di:()=>f.Di,HR:()=>d.HR,J$:()=>e.notifyPushSubscribers,O$:()=>f.O$,d7:()=>f.d7,rS:()=>f.rS});var d=c(27519);c(8532);var e=c(61191);c(3915),c(92010),c(81099),c(77703),c(73478);var f=c(80544);c(50779),c(4806)},92010:(a,b,c)=>{c.d(b,{R:()=>h});var d=c(24455),e=c(72626),f=c(52277);let g=(0,e.h)("push/prompt-gate");function h(a){let b=function(a){let{worktreeId:b,cliToolId:c,instanceId:e,waitingSince:g}=a,h=(0,d.aq)(b,c,e);if(null===h||!h.enabled)return{suppress:!1,reason:"auto-yes-inactive",stopReason:h?.stopReason};let i=(0,f.gb)(b,c,e);return null!==i&&i.at>=g?{suppress:!1,reason:"policy-withheld",suppressedBy:i.reason}:!0===a.escalated?{suppress:!1,reason:"escalation-reminder"}:{suppress:!0,reason:"auto-yes-answering"}}(a),c={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waitingSince:a.waitingSince,escalated:!0===a.escalated,reason:b.reason,...void 0!==b.stopReason?{stopReason:b.stopReason}:{},...void 0!==b.suppressedBy?{suppressedBy:b.suppressedBy}:{}};return b.suppress?g.info("prompt-push-suppressed",c):g.debug("prompt-push-allowed",c),b.suppress}},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(83468),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()}}};
@@ -1 +1 @@
1
- "use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","catalogStale":{"hint":"お使いのCLIがこの一覧より新しい可能性があります。表示されないコマンドは ~/.commandmate/slash-commands/ で追加できます。"},"sourceBadge":{"userCatalog":"カスタム"},"descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","review":"コードの変更をレビュー","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","loop":"セッションを開いたままプロンプトを繰り返し実行","add-dir":"セッション中にファイルアクセス用の作業ディレクトリを追加","terminal-setup":"Shift+Enter などのターミナルキーバインドを設定","statusline":"ステータスラインの表示を設定","usage":"セッションのコスト・プラン使用量・アクティビティ統計を表示","tasks":"バックグラウンドタスクを表示・管理","memory":{"claude":"CLAUDE.md メモリファイルを編集し auto-memory を管理","copilot":"メモリの状態表示と、セッション間メモリの有効・無効切り替え"},"new":"新しい会話を開始","logout":{"codex":"Codex からサインアウト","claude":"Anthropic アカウントからサインアウト","copilot":"現在の OAuth ログインセッションからログアウト"},"quit":"Codex CLI を終了","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"MCP サーバーと利用可能なツールを管理","init":{"codex":"カレントディレクトリに AGENTS.md テンプレートを生成","claude":"リポジトリ向けの CLAUDE.md ガイドを生成","copilot":"このリポジトリ向けの Copilot 指示ファイルを初期化","opencode":"AGENTS.md のガイド付きセットアップを実行"},"feedback":{"codex":"Codex チームにフィードバックを送信","claude":"Claude Code についてのフィードバックを送信","copilot":"CLI についてのフィードバックを送信"},"plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":{"copilot":"エージェントを一覧から選択"},"subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":{"codex":"Codex のスキルを管理","claude":"Claude Code のスキルを管理","copilot":"機能を拡張するスキルを管理","opencode":"利用可能なスキルを一覧・実行"},"hooks":"フック設定を確認・管理","sessions":"会話履歴を閲覧","connect":"プロバイダーを接続","exit":{"opencode":"OpenCode TUI を終了","claude":"CLI を終了","codex":"CLI を終了","copilot":"CLI を終了"},"models":"AI モデルを切り替え","agents":{"opencode":"利用可能なエージェントを一覧・管理","claude":"サブエージェントの作成・管理を Claude に依頼するか .claude/agents/ を直接編集するよう促す案内を表示","codex":"稼働中のすべてのエージェントセッションを一覧・切り替え"},"themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く","advisor":"アドバイザーツールの有効・無効を切り替え(要所で第 2 のモデルに助言を求める)","autocompact":"自動コンパクトの閾値を設定(コンテキストがどれだけ埋まったら自動圧縮するか)","autofix-pr":"現在のブランチの PR を監視し、CI 失敗やレビュー指摘に応じて修正を push する web セッションを起動","background":"現在のセッションをバックグラウンドエージェントに切り離してターミナルを解放","batch":"コードベース全体の大規模変更を並列で実行","branch":"この時点で会話を分岐し、現在の流れを失わずに別方針を試す","btw":"一時的なフォークで、会話に残さず短い質問をする","bug":"バグを報告、または会話を共有","cd":{"claude":"このセッションの作業ディレクトリを変更","codex":"現在の作業ディレクトリを変更"},"chrome":"Claude in Chrome の設定","claude-api":"プロジェクトの言語向けの Claude API リファレンスと Managed Agents リファレンスを読み込み","code-review":"現在の差分をバグと整理観点でレビュー","color":"現在のセッションのプロンプトバーの色を設定","copy":"直近の応答をクリップボードにコピー","dataviz":"チャート・グラフ・ダッシュボードの設計ガイダンス","debug":{"claude":"デバッグログを有効化し、セッションのデバッグログを読んで問題を切り分け","opencode":"デバッグ情報を表示"},"deep-research":"質問に対して web 検索を展開し、出典を突き合わせて引用付きレポートを作成","design-login":"claude.ai アカウントで /design-sync のデザインシステムアクセスを認可","design-sync":"リポジトリの React デザインシステムを Claude Design にアップロードし、実際のコンポーネントを使わせる","desktop":"現在のセッションを Claude Code デスクトップアプリで継続","fewer-permission-prompts":"履歴から読み取り専用の Bash / MCP 呼び出しを洗い出し、許可リストを .claude/settings.json に追加して権限プロンプトを削減","heapdump":"ヒープスナップショットとメモリ内訳を書き出し(メモリ使用量の診断用)","ide":"IDE 連携を管理(状態表示と、現在の選択範囲・開いているファイル等の取り込み)","insights":"セッションを分析し、対象領域・対話パターン・摩擦点のレポートを生成","install-github-app":"リポジトリに Claude GitHub App を導入(GitHub Actions の設定も任意で実施)","install-slack-app":"Claude Slack アプリを導入","keybindings":"キーボードショートカットの設定ファイルを開く","login":{"claude":"Anthropic アカウントにサインイン","copilot":"Copilot にログイン"},"mobile":"Claude モバイルアプリのダウンロード用 QR コードを表示","passes":"Claude Code の 1 週間無料パスを友人に共有","plugin":{"claude":"Claude Code のプラグインを管理","copilot":"プラグインとプラグインマーケットプレイスを管理"},"powerup":"対話型レッスンとデモで Claude Code の機能を学ぶ","privacy-settings":"プライバシー設定を確認・更新","radio":"Claude FM の lo-fi ラジオをブラウザで開く","recap":{"claude":"現在のセッションの 1 行要約を生成","codex":"現在の会話をいますぐ要約"},"release-notes":"変更履歴をバージョン選択つきで表示","reload-plugins":"再起動せずに有効なプラグインを再読み込み","reload-skills":"スキル・コマンドのディレクトリを再走査し、再起動せずに反映","remote-control":"このセッションを claude.ai のリモートコントロール対象にする","remote-env":"クラウドエージェントの既定環境を選択","rename":"現在のセッション(スレッド)の名前を変更","run":"プロジェクトのアプリを起動・操作し、テストだけでなく実際の動作で変更を確認","run-skill-generator":"/run と /verify がアプリをクリーンな環境で起動・操作できるよう、プロジェクト専用スキルを生成","sandbox":"サンドボックスモードを切り替え","scroll-speed":"マウスホイールのスクロール速度を対話的に調整","security-review":"現在のブランチの変更をセキュリティ脆弱性の観点で分析","setup-bedrock":"Amazon Bedrock の認証・リージョン・モデル指定をウィザードで設定","setup-vertex":"Google Cloud の認証・プロジェクト・リージョン・モデル指定をウィザードで設定","simplify":"変更されたコードを整理観点でレビューし、修正を適用","stickers":"Claude Code のステッカーを注文","stop":"バックグラウンドのセッション・ターミナルを停止","subtask":"会話全体を引き継ぐバックグラウンドのサブエージェントを起動(作業を続けながら並行実行)","team-onboarding":"利用履歴からチーム向けオンボーディングガイドを生成","teleport":"web の Claude Code セッションをこのターミナルに引き込み(ブランチと会話を取得)","theme":"配色・シンタックスハイライトのテーマを選択","tui":"端末 UI のレンダラーを設定し、会話を保ったまま再起動","ultrareview":"クラウドサンドボックスでマルチエージェントの詳細コードレビューを実行","upgrade":"上位プランへの切り替えページをブラウザで開く","usage-credits":"使用クレジットを設定、または上限到達時に管理者へ申請","verify":"ビルド・実行・観察によって、テストや型検査に頼らず変更の動作を確認","voice":"音声入力を切り替え、または特定モードで有効化","web-setup":"ローカルの gh CLI 認証を使って GitHub アカウントを Claude Code on the web に接続","workflows":"実行中・完了済みワークフローの進捗ビューを開く(監視・一時停止・再開・保存)","keymap":"TUI のショートカットを再割り当て","vim":"コンポーザーの Vim モードを切り替え","setup-default-sandbox":"昇格エージェント用のサンドボックスを設定","sandbox-add-read-dir":"サンドボックスに読み取り可能なディレクトリを追加: /sandbox-add-read-dir [絶対パス]","experimental":"実験的機能を切り替え","approve":"直近の自動レビュー拒否に対する再試行を 1 回承認","import":{"codex":"Claude Code から設定・プロジェクト・最近のチャットを取り込み","claude":"OpenAI Codex / Google Gemini CLI の設定(指示ファイル・MCP サーバー・コマンド・サブエージェント・スキル)を Claude Code に取り込み"},"archive":"このセッションをアーカイブして終了","delete":"このセッションを完全に削除して終了","app":{"codex":"このセッションをデスクトップアプリで継続","copilot":"GitHub Copilot デスクトップアプリを開く"},"side":"一時的なフォークで別の会話を開始","raw":"コピーしやすい raw スクロールバックモードを切り替え","debug-config":"設定の階層と要件の出所をデバッグ用に表示","title":"ターミナルのタイトルに表示する項目を設定","pets":"ターミナルのペットを選択・非表示","apps":"アプリを管理","plugins":"プラグインを閲覧","rollout":"rollout ファイルのパスを表示","ps":"バックグラウンドのターミナル一覧を表示","personality":"Codex の応答スタイルを選択","test-approval":"承認リクエストのテスト","list-agents":"Claude がメッセージを送れるサブエージェントと他の Claude Code セッションを宛先名つきで一覧表示","allow-all":"ツール・パス・URL の権限をすべて許可","ask":"会話履歴に残さない単発の質問","autopilot":"オートパイロットモードを切り替え","changelog":"CLI バージョンの変更履歴を表示","chronicle":"セッション履歴のツールとインサイトを表示","cwd":"作業ディレクトリを変更、または現在地を表示","delegate":"このセッションを GitHub に送りプルリクエストを作成","diagnose":"現在のセッションログを解析","env":"読み込み済みの環境情報を表示","fleet":"サブエージェント並列実行のフリートモードを有効化","footer":"ステータスライン項目を設定","instructions":"カスタム指示ファイルの表示と有効・無効切り替え","keep-alive":"システムスリープを防ぐ keep-alive モードを管理","limits":"セッションの上限を表示・編集","list-dirs":"許可済みディレクトリをすべて表示","lsp":"言語サーバーの設定を管理","pr":"現在のブランチのプルリクエストを操作","refine":"粗いプロンプトをレビュー用に書き直し","remote":"GitHub の Web・モバイルからのリモート操作を切り替え","research":"ディープリサーチ調査を実行","reset-allowed-tools":"許可済みツールの一覧をリセット","restart":"現在のセッションを保ったまま CLI を再起動","rubber-duck":"現在の作業への独立した批評を取得","search":"会話タイムラインを検索","session":"セッションを表示・管理","settings":"設定 UI を開く、または個別の値を表示・設定","share":"セッションを Markdown ファイルや GitHub gist として共有","undo":"直前のターンを巻き戻してファイル変更を取り消し","update":"CLI を最新バージョンに更新","user":"GitHub ユーザー一覧を管理","version":"バージョン情報を表示","mcps":"MCP サーバーの有効・無効を切り替え","move":"別のプロジェクトディレクトリへ移動","variants":"モデルのバリアントを切り替え","pwd":"現在の作業ディレクトリを表示","artifacts":"自分が所有または共有されている Artifact を一覧し、セッションへの添付・ブラウザで開く・リンクのコピーを行う","auto-mode-setup":"プロジェクトと最近のセッションから autoMode.environment の下書きを作成し、内容を確認してユーザー設定に保存する","rate-limit-options":"claude.ai の使用量上限でリクエストがブロックされたときに作業を続ける方法を表示(上限リセット時の自動継続・使用クレジットの追加・プランのアップグレード)","workflow-authoring":"動的ワークフロースクリプトを書くためのリファレンスを読み込み(スクリプト API・レジューム挙動・品質パターン・実例)"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","agentIsThinking":"{toolName} が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","npxRestartNotice":"このサーバは npx で起動しています。アップデートは最新版を取得してサーバを再起動します。ポートなど一部の起動設定は変わることがあります。自動で再接続しない場合は「commandmate status」で稼働先を確認してください。","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"unsentComposer":{"regionLabel":"未送信の入力","label":"未送信の入力:","run":"実行","clear":"クリア"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)","indent":"インデント (Tab)","outdent":"アウトデント (Shift+Tab)","tabMovesFocusOn":"Tab はフォーカス移動 (Ctrl+M でインデントに切替)","tabMovesFocusOff":"Tab はインデント (Ctrl+M でフォーカス移動に切替)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ","modeSwitch":"表示モードの切替","modeViewer":"ビュワー","modeEditor":"編集","moreActions":"その他の操作"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"リモートを確認して更新(git fetch)","refreshing":"リモートを確認中...","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"最後に fetch した時点のアップストリームより先行しているコミット数(リモートの最新状態とは異なる場合があります)","behindTooltip":"最後に fetch した時点のアップストリームより遅れているコミット数(リモートの最新状態とは異なる場合があります)","lastFetch":"最終 fetch: {relative}","lastFetchNever":"最終 fetch: まだ実行していません","lastFetchTooltip":"ahead/behind はこの時点のリモート情報との比較です。更新ボタンで再取得できます。","noUpstreamBadge":"未プッシュ","noUpstreamTooltip":"このブランチにはアップストリームが設定されていないため、ahead/behind を計算できません(まだ push していません)","upstreamGoneBadge":"リモート削除済み","upstreamGoneTooltip":"設定されたアップストリームのリモート追跡ブランチが存在しません(リモート側で削除された可能性があります)","detachedBadge":"detached","detachedTooltip":"HEAD がブランチを指していないため、ahead/behind を計算できません","aheadBehindErrorBadge":"比較できません","aheadBehindErrorTooltip":"ahead/behind の取得に失敗しました(タイムアウトなど)。更新ボタンで再試行できます。"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo","skills":"スキル","verification":"検証","env":"環境変数"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git","statusPillWithModel":"{label}: {status} — モデル {model}","statusPillWithUsage":"{base} — {usage}","statusPillWithSource":"{base} — {source}"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"},"agentSource":{"line":"イベント源: {kind}({state})","lineBare":"イベント源: {kind}","kindSse":"SSE","kindHooks":"hooks","kindScraper":"画面スクレイプ","livenessLive":"接続中","livenessStale":"停止","reasonPortIdentityChanged":"ポートが別プロセスに変わりました","reasonHeartbeatStale":"ハートビートが30秒以上ありません","reasonNotSubscribed":"イベント購読なし","reasonOther":"理由: {reason}","degradedTitle":"構造化イベントが届いていません","healthyTitle":"構造化イベントを受信中"},"agentModel":{"label":"モデル","modelLabel":"モデル: {model}"},"nextAction":{"start":"開始","sendMessage":"メッセージを送信","approveReject":"承認 / 拒否","replyToPrompt":"プロンプトに応答","checkStalled":"停滞を確認","running":"実行中..."},"awaitingInstruction":{"badge":"指示待ち","label":"エージェントはターンを終え、次の指示を待っています"},"verification":{"title":"検証","refresh":"再読み込み","loading":"検証情報を読み込み中…","loadError":"検証情報を取得できませんでした: {message}","contract":{"heading":"実行契約","empty":"このブランチには契約がありません。\\n`commandmate send --contract <ファイル>` か Skill `cmate-task-contract` で作成してください。","scopeAllow":"scope.allow","scopeDeny":"scope.deny","gates":"verify.gates","gatesAll":"宣言済みゲート全件","autoYes":"autoYes.mode","autoYesUnset":"未指定(既存の挙動を維持)","file":"契約ファイル","updated":"更新"},"runs":{"heading":"検証ラン","empty":"検証ランはまだありません。\\n「再検証」を押すか、`commandmate verify <worktree-id>` を実行してください。","rerun":"再検証","rerunPending":"開始中…","rerunConflict":"検証ランが既に実行中です(run {runId})。","rerunConflictUnknown":"検証ランが既に実行中です。","rerunError":"検証を開始できませんでした: {message}","select":"run {runId} のゲートを表示(RESULT {verdict})","runLabel":"run {runId}","trigger":"trigger={trigger}"},"gates":{"heading":"ゲート — run {runId}","empty":"このランにはゲートの記録がありません。","loading":"ゲートを読み込み中…","notFound":"その検証ランは見つかりませんでした。","loadError":"検証ランを取得できませんでした: {message}","exitCode":"exit={code}","duration":"duration={duration}","contractSource":"[contract]","showLog":"ログ末尾を表示","hideLog":"ログ末尾を隠す","logOmitted":"… (+{count} 行省略。全文は `commandmate verify show {runId}`)","noLog":"ログ出力は記録されていません。"},"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":"タスク「{title}」: {status}","resultBadge":"RESULT {verdict}","runReason":"直近の検証: RESULT {verdict}(run {runId})","noRun":"検証ランはまだありません","failingGates":"不合格ゲート: {gates}","gatesPassed":"全 {count} ゲート合格","openHint":"検証ペインを開く","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":"環境変数マネージャ","description":"このワークツリーの環境変数ファイルを表示・編集します。値は既定で伏せられます。","filePickerLabel":"環境変数ファイル","viewModeLabel":"表示形式","viewKeyValue":"キー / 値","viewRaw":"テキスト","notCreated":"未作成","templateBadge":"テンプレート","notCreatedHint":"{file} はまだ存在しません。キーを追加して保存すると作成されます。","keyLabel":"変数名","valueLabel":"{key} の値","showValue":"{key} の値を表示","hideValue":"{key} の値を隠す","removeRow":"{key} を削除","addRow":"変数を追加","revealAll":"値を表示","hideAll":"値を隠す","reload":"ディスクから再読み込み","save":"保存","saved":"保存しました。","loading":"環境変数ファイルを読み込み中...","loadError":"環境変数ファイルを読み込めませんでした。","empty":"変数はまだ定義されていません。","validationFailed":"このファイルはまだ保存できません。","suggestionsTitle":"テンプレートのキー","suggestionsHint":".env.example / .env.sample にあってこのファイルに無いキーです。タップで追加します。","rawLabel":"環境変数ファイル(テキスト)","rawMaskedLabel":"環境変数ファイル(値を伏せた表示)","rawMaskedHint":"値は {mask} で伏せられています。「値を表示」で表示・編集できます。","issues":{"invalidSyntax":"{line} 行目: KEY=VALUE の形式ではありません。","invalidKey":"{line} 行目: 変数名が不正です。英字かアンダースコアで始まり、英数字とアンダースコアのみが使えます。","unterminatedQuote":"{line} 行目: {key} の引用符が閉じられていません。","duplicateKey":"{line} 行目: {key} が重複しています。最後の定義が有効になります。","controlCharacter":"{line} 行目: 環境変数ファイルに使用できない制御文字が含まれています。","tooLarge":"このファイルは大きすぎるため、ここでは編集できません。","tooManyEntries":"このファイルは変数が多すぎるため、ここでは編集できません。"}},"agentSession":{"context":"{tokens}({percent}%)","chipLabel":"セッション使用量 — {usage}","titleLabel":"セッション: {title}","agentLabel":"エージェント: {agent}","costLabel":"現在までのコスト: {cost}","spentLabel":"このセッションの消費: {tokens} トークン","contextLabel":"コンテキスト使用量: {limit} トークン中 {tokens} トークン({percent}%)","contextUnknownLabel":"コンテキスト使用量: {tokens} トークン(上限不明)"},"opencodeDiff":{"title":"このターンの変更ファイル","subtitle":"{count} ファイル","revertedTitle":"取り消し中の変更","revertedSubtitle":"{count} ファイルが取り消されています","openDiff":"{file} の差分を表示","unnamedFile":"(ファイル名なし)","status":{"added":"追加","deleted":"削除","modified":"変更"},"revert":"このターンを取り消す","unrevert":"やり直す","revertConfirmTitle":"このターンを取り消しますか?","revertConfirmBody":"opencode が {count} ファイルへの変更を巻き戻します。追加されたファイルは削除され、コミット済みの変更も作業ツリー上では巻き戻ります。この操作は「やり直す」で復元できます。","revertConfirmLabel":"取り消す","unrevertConfirmTitle":"取り消した変更をやり直しますか?","unrevertConfirmBody":"opencode が取り消し中の {count} ファイルへの変更をすべて作業ツリーに戻します。","unrevertConfirmLabel":"やり直す","busy":"エージェントが実行中のため実行できません。ターンの完了後に再試行してください。","noop":"opencode は変更しませんでした(対象のターンが見つかりません)。","failed":"opencode が操作を拒否しました。"},"opencodeQuickKeys":{"toolbarLabel":"opencode クイックキー","caption":"opencode","needsSession":"このペインの最初のターン以降に使えます({notation})","showKeys":"opencode クイックキーを表示","hideKeys":"opencode クイックキーを隠す","keys":{"agentNext":"次のエージェント","agentPrev":"前のエージェント","commands":"コマンド","variant":"バリアント","agents":"エージェント","sessions":"セッション","newSession":"新規セッション","models":"モデル","themes":"テーマ","timeline":"タイムライン","undo":"取り消し","redo":"やり直し","compact":"圧縮","pageUp":"1ページ上","pageDown":"1ページ下","first":"先頭メッセージ","last":"最新メッセージ"}},"opencodeSidebar":{"regionLabel":"opencode サイドバーの警告","label":"opencode のサイドバーが開いています","body":"トランスクリプトと同じ行を占有するため、ターンの終了を検出できません。opencode のペインで次のキーを押して閉じてください:"},"opencodeSession":{"new":"新規セッション","list":"セッション一覧","fork":"セッションを fork","share":"共有リンクを発行","unshare":"共有を取り消す","shareCopy":"リンクをコピー","shareConfirmTitle":"この会話を外部に公開しますか?","shareConfirmBody":"opencode がこのセッションを opencode のホスティングに公開し、リンクを知っている人なら誰でも読める状態になります。公開されるのは会話そのもの(あなたのプロンプト・エージェントの応答・実行したツールの入出力)と、セッションの作業ディレクトリの絶対パスです。内容は伏せ字になりません。公開後は「共有を取り消す」でページを取り下げられますが、それまでに読まれた内容は取り消せません。","shareConfirmLabel":"公開する","sharePublicNotice":"このリンクは第三者が読めます。","errorNoPort":"このペインに opencode サーバが接続されていません。ペインを起動し直してから再度お試しください。","errorNoSessionFork":"まだ fork できるセッションがありません。1 ターン実行してから再度お試しください。","errorNoSessionShare":"まだ共有できるセッションがありません。1 ターン実行してから再度お試しください。","errorRequestFailed":"リクエストを送信できませんでした。CommandMate サーバに接続できません。","errorUnknown":"操作に失敗しました。原因はサーバから返されていません。","errorCopyFailed":"リンクをコピーできませんでした。表示されているリンクを選択して手動でコピーしてください。"}}')}};
1
+ "use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","catalogStale":{"hint":"お使いのCLIがこの一覧より新しい可能性があります。表示されないコマンドは ~/.commandmate/slash-commands/ で追加できます。"},"sourceBadge":{"userCatalog":"カスタム"},"descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","review":"コードの変更をレビュー","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","loop":"セッションを開いたままプロンプトを繰り返し実行","add-dir":"セッション中にファイルアクセス用の作業ディレクトリを追加","terminal-setup":"Shift+Enter などのターミナルキーバインドを設定","statusline":"ステータスラインの表示を設定","usage":"セッションのコスト・プラン使用量・アクティビティ統計を表示","tasks":"バックグラウンドタスクを表示・管理","memory":{"claude":"CLAUDE.md メモリファイルを編集し auto-memory を管理","copilot":"メモリの状態表示と、セッション間メモリの有効・無効切り替え"},"new":"新しい会話を開始","logout":{"codex":"Codex からサインアウト","claude":"Anthropic アカウントからサインアウト","copilot":"現在の OAuth ログインセッションからログアウト"},"quit":"Codex CLI を終了","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"MCP サーバーと利用可能なツールを管理","init":{"codex":"カレントディレクトリに AGENTS.md テンプレートを生成","claude":"リポジトリ向けの CLAUDE.md ガイドを生成","copilot":"このリポジトリ向けの Copilot 指示ファイルを初期化","opencode":"AGENTS.md のガイド付きセットアップを実行"},"feedback":{"codex":"Codex チームにフィードバックを送信","claude":"Claude Code についてのフィードバックを送信","copilot":"CLI についてのフィードバックを送信"},"plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":{"copilot":"エージェントを一覧から選択"},"subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":{"codex":"Codex のスキルを管理","claude":"Claude Code のスキルを管理","copilot":"機能を拡張するスキルを管理","opencode":"利用可能なスキルを一覧・実行"},"hooks":"フック設定を確認・管理","sessions":"会話履歴を閲覧","connect":"プロバイダーを接続","exit":{"opencode":"OpenCode TUI を終了","claude":"CLI を終了","codex":"CLI を終了","copilot":"CLI を終了"},"models":"AI モデルを切り替え","agents":{"opencode":"利用可能なエージェントを一覧・管理","claude":"サブエージェントの作成・管理を Claude に依頼するか .claude/agents/ を直接編集するよう促す案内を表示","codex":"稼働中のすべてのエージェントセッションを一覧・切り替え"},"themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く","advisor":"アドバイザーツールの有効・無効を切り替え(要所で第 2 のモデルに助言を求める)","autocompact":"自動コンパクトの閾値を設定(コンテキストがどれだけ埋まったら自動圧縮するか)","autofix-pr":"現在のブランチの PR を監視し、CI 失敗やレビュー指摘に応じて修正を push する web セッションを起動","background":"現在のセッションをバックグラウンドエージェントに切り離してターミナルを解放","batch":"コードベース全体の大規模変更を並列で実行","branch":"この時点で会話を分岐し、現在の流れを失わずに別方針を試す","btw":"一時的なフォークで、会話に残さず短い質問をする","bug":"バグを報告、または会話を共有","cd":{"claude":"このセッションの作業ディレクトリを変更","codex":"現在の作業ディレクトリを変更"},"chrome":"Claude in Chrome の設定","claude-api":"プロジェクトの言語向けの Claude API リファレンスと Managed Agents リファレンスを読み込み","code-review":"現在の差分をバグと整理観点でレビュー","color":"現在のセッションのプロンプトバーの色を設定","copy":"直近の応答をクリップボードにコピー","dataviz":"チャート・グラフ・ダッシュボードの設計ガイダンス","debug":{"claude":"デバッグログを有効化し、セッションのデバッグログを読んで問題を切り分け","opencode":"デバッグ情報を表示"},"deep-research":"質問に対して web 検索を展開し、出典を突き合わせて引用付きレポートを作成","design-login":"claude.ai アカウントで /design-sync のデザインシステムアクセスを認可","design-sync":"リポジトリの React デザインシステムを Claude Design にアップロードし、実際のコンポーネントを使わせる","desktop":"現在のセッションを Claude Code デスクトップアプリで継続","fewer-permission-prompts":"履歴から読み取り専用の Bash / MCP 呼び出しを洗い出し、許可リストを .claude/settings.json に追加して権限プロンプトを削減","heapdump":"ヒープスナップショットとメモリ内訳を書き出し(メモリ使用量の診断用)","ide":"IDE 連携を管理(状態表示と、現在の選択範囲・開いているファイル等の取り込み)","insights":"セッションを分析し、対象領域・対話パターン・摩擦点のレポートを生成","install-github-app":"リポジトリに Claude GitHub App を導入(GitHub Actions の設定も任意で実施)","install-slack-app":"Claude Slack アプリを導入","keybindings":"キーボードショートカットの設定ファイルを開く","login":{"claude":"Anthropic アカウントにサインイン","copilot":"Copilot にログイン"},"mobile":"Claude モバイルアプリのダウンロード用 QR コードを表示","passes":"Claude Code の 1 週間無料パスを友人に共有","plugin":{"claude":"Claude Code のプラグインを管理","copilot":"プラグインとプラグインマーケットプレイスを管理"},"powerup":"対話型レッスンとデモで Claude Code の機能を学ぶ","privacy-settings":"プライバシー設定を確認・更新","radio":"Claude FM の lo-fi ラジオをブラウザで開く","recap":{"claude":"現在のセッションの 1 行要約を生成","codex":"現在の会話をいますぐ要約"},"release-notes":"変更履歴をバージョン選択つきで表示","reload-plugins":"再起動せずに有効なプラグインを再読み込み","reload-skills":"スキル・コマンドのディレクトリを再走査し、再起動せずに反映","remote-control":"このセッションを claude.ai のリモートコントロール対象にする","remote-env":"クラウドエージェントの既定環境を選択","rename":"現在のセッション(スレッド)の名前を変更","run":"プロジェクトのアプリを起動・操作し、テストだけでなく実際の動作で変更を確認","run-skill-generator":"/run と /verify がアプリをクリーンな環境で起動・操作できるよう、プロジェクト専用スキルを生成","sandbox":"サンドボックスモードを切り替え","scroll-speed":"マウスホイールのスクロール速度を対話的に調整","security-review":"現在のブランチの変更をセキュリティ脆弱性の観点で分析","setup-bedrock":"Amazon Bedrock の認証・リージョン・モデル指定をウィザードで設定","setup-vertex":"Google Cloud の認証・プロジェクト・リージョン・モデル指定をウィザードで設定","simplify":"変更されたコードを整理観点でレビューし、修正を適用","stickers":"Claude Code のステッカーを注文","stop":"バックグラウンドのセッション・ターミナルを停止","subtask":"会話全体を引き継ぐバックグラウンドのサブエージェントを起動(作業を続けながら並行実行)","team-onboarding":"利用履歴からチーム向けオンボーディングガイドを生成","teleport":"web の Claude Code セッションをこのターミナルに引き込み(ブランチと会話を取得)","theme":"配色・シンタックスハイライトのテーマを選択","tui":"端末 UI のレンダラーを設定し、会話を保ったまま再起動","ultrareview":"クラウドサンドボックスでマルチエージェントの詳細コードレビューを実行","upgrade":"上位プランへの切り替えページをブラウザで開く","usage-credits":"使用クレジットを設定、または上限到達時に管理者へ申請","verify":"ビルド・実行・観察によって、テストや型検査に頼らず変更の動作を確認","voice":"音声入力を切り替え、または特定モードで有効化","web-setup":"ローカルの gh CLI 認証を使って GitHub アカウントを Claude Code on the web に接続","workflows":"実行中・完了済みワークフローの進捗ビューを開く(監視・一時停止・再開・保存)","keymap":"TUI のショートカットを再割り当て","vim":"コンポーザーの Vim モードを切り替え","setup-default-sandbox":"昇格エージェント用のサンドボックスを設定","sandbox-add-read-dir":"サンドボックスに読み取り可能なディレクトリを追加: /sandbox-add-read-dir [絶対パス]","experimental":"実験的機能を切り替え","approve":"直近の自動レビュー拒否に対する再試行を 1 回承認","import":{"codex":"Claude Code から設定・プロジェクト・最近のチャットを取り込み","claude":"OpenAI Codex / Google Gemini CLI の設定(指示ファイル・MCP サーバー・コマンド・サブエージェント・スキル)を Claude Code に取り込み"},"archive":"このセッションをアーカイブして終了","delete":"このセッションを完全に削除して終了","app":{"codex":"このセッションをデスクトップアプリで継続","copilot":"GitHub Copilot デスクトップアプリを開く"},"side":"一時的なフォークで別の会話を開始","raw":"コピーしやすい raw スクロールバックモードを切り替え","debug-config":"設定の階層と要件の出所をデバッグ用に表示","title":"ターミナルのタイトルに表示する項目を設定","pets":"ターミナルのペットを選択・非表示","apps":"アプリを管理","plugins":"プラグインを閲覧","rollout":"rollout ファイルのパスを表示","ps":"バックグラウンドのターミナル一覧を表示","personality":"Codex の応答スタイルを選択","test-approval":"承認リクエストのテスト","list-agents":"Claude がメッセージを送れるサブエージェントと他の Claude Code セッションを宛先名つきで一覧表示","allow-all":"ツール・パス・URL の権限をすべて許可","ask":"会話履歴に残さない単発の質問","autopilot":"オートパイロットモードを切り替え","changelog":"CLI バージョンの変更履歴を表示","chronicle":"セッション履歴のツールとインサイトを表示","cwd":"作業ディレクトリを変更、または現在地を表示","delegate":"このセッションを GitHub に送りプルリクエストを作成","diagnose":"現在のセッションログを解析","env":"読み込み済みの環境情報を表示","fleet":"サブエージェント並列実行のフリートモードを有効化","footer":"ステータスライン項目を設定","instructions":"カスタム指示ファイルの表示と有効・無効切り替え","keep-alive":"システムスリープを防ぐ keep-alive モードを管理","limits":"セッションの上限を表示・編集","list-dirs":"許可済みディレクトリをすべて表示","lsp":"言語サーバーの設定を管理","pr":"現在のブランチのプルリクエストを操作","refine":"粗いプロンプトをレビュー用に書き直し","remote":"GitHub の Web・モバイルからのリモート操作を切り替え","research":"ディープリサーチ調査を実行","reset-allowed-tools":"許可済みツールの一覧をリセット","restart":"現在のセッションを保ったまま CLI を再起動","rubber-duck":"現在の作業への独立した批評を取得","search":"会話タイムラインを検索","session":"セッションを表示・管理","settings":"設定 UI を開く、または個別の値を表示・設定","share":"セッションを Markdown ファイルや GitHub gist として共有","undo":"直前のターンを巻き戻してファイル変更を取り消し","update":"CLI を最新バージョンに更新","user":"GitHub ユーザー一覧を管理","version":"バージョン情報を表示","mcps":"MCP サーバーの有効・無効を切り替え","move":"別のプロジェクトディレクトリへ移動","variants":"モデルのバリアントを切り替え","pwd":"現在の作業ディレクトリを表示","artifacts":"自分が所有または共有されている Artifact を一覧し、セッションへの添付・ブラウザで開く・リンクのコピーを行う","auto-mode-setup":"プロジェクトと最近のセッションから autoMode.environment の下書きを作成し、内容を確認してユーザー設定に保存する","rate-limit-options":"claude.ai の使用量上限でリクエストがブロックされたときに作業を続ける方法を表示(上限リセット時の自動継続・使用クレジットの追加・プランのアップグレード)","workflow-authoring":"動的ワークフロースクリプトを書くためのリファレンスを読み込み(スクリプト API・レジューム挙動・品質パターン・実例)"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","agentIsThinking":"{toolName} が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","npxRestartNotice":"このサーバは npx で起動しています。アップデートは最新版を取得してサーバを再起動します。ポートなど一部の起動設定は変わることがあります。自動で再接続しない場合は「commandmate status」で稼働先を確認してください。","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"unsentComposer":{"regionLabel":"未送信の入力","label":"未送信の入力:","run":"実行","clear":"クリア"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)","indent":"インデント (Tab)","outdent":"アウトデント (Shift+Tab)","tabMovesFocusOn":"Tab はフォーカス移動 (Ctrl+M でインデントに切替)","tabMovesFocusOff":"Tab はインデント (Ctrl+M でフォーカス移動に切替)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ","modeSwitch":"表示モードの切替","modeViewer":"ビュワー","modeEditor":"編集","moreActions":"その他の操作"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"リモートを確認して更新(git fetch)","refreshing":"リモートを確認中...","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"最後に fetch した時点のアップストリームより先行しているコミット数(リモートの最新状態とは異なる場合があります)","behindTooltip":"最後に fetch した時点のアップストリームより遅れているコミット数(リモートの最新状態とは異なる場合があります)","lastFetch":"最終 fetch: {relative}","lastFetchNever":"最終 fetch: まだ実行していません","lastFetchTooltip":"ahead/behind はこの時点のリモート情報との比較です。更新ボタンで再取得できます。","noUpstreamBadge":"未プッシュ","noUpstreamTooltip":"このブランチにはアップストリームが設定されていないため、ahead/behind を計算できません(まだ push していません)","upstreamGoneBadge":"リモート削除済み","upstreamGoneTooltip":"設定されたアップストリームのリモート追跡ブランチが存在しません(リモート側で削除された可能性があります)","detachedBadge":"detached","detachedTooltip":"HEAD がブランチを指していないため、ahead/behind を計算できません","aheadBehindErrorBadge":"比較できません","aheadBehindErrorTooltip":"ahead/behind の取得に失敗しました(タイムアウトなど)。更新ボタンで再試行できます。"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo","skills":"スキル","verification":"検証","env":"環境変数"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git","statusPillWithModel":"{label}: {status} — モデル {model}","statusPillWithUsage":"{base} — {usage}","statusPillWithSource":"{base} — {source}"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"},"agentSource":{"line":"イベント源: {kind}({state})","lineBare":"イベント源: {kind}","kindSse":"SSE","kindHooks":"hooks","kindScraper":"画面スクレイプ","livenessLive":"接続中","livenessStale":"停止","reasonPortIdentityChanged":"ポートが別プロセスに変わりました","reasonHeartbeatStale":"ハートビートが30秒以上ありません","reasonNotSubscribed":"イベント購読なし","reasonOther":"理由: {reason}","degradedTitle":"構造化イベントが届いていません","healthyTitle":"構造化イベントを受信中"},"agentModel":{"label":"モデル","modelLabel":"モデル: {model}"},"nextAction":{"start":"開始","sendMessage":"メッセージを送信","approveReject":"承認 / 拒否","replyToPrompt":"プロンプトに応答","checkStalled":"停滞を確認","running":"実行中..."},"awaitingInstruction":{"badge":"指示待ち","label":"エージェントはターンを終え、次の指示を待っています"},"verification":{"title":"検証","refresh":"再読み込み","loading":"検証情報を読み込み中…","loadError":"検証情報を取得できませんでした: {message}","onboarding":{"what":"検証は、このリポジトリが `{path}` に宣言したゲートを、この worktree でそのまま実行します。","how":"合否は各ゲートの exit code で決まります。`commandmate verify` / `wait --verify` と同じゲートなので、ここが緑ならコマンドラインでも緑です。","loading":"宣言ゲートを読み込み中…","configError":"検証設定を読み込めませんでした: {message}","invalid":"`{path}` は存在しますが読み込めませんでした: {message}","noConfig":{"body":"このリポジトリはまだ検証ゲートを宣言していません(`{path}` がありません)。実行できるゲートが 1 件もない状態です。","hint":"`.github/workflows/*.yml` と `package.json` の scripts を読んで草案を書き出します。既存ファイルは決して上書きしません。CLI では `commandmate verify init` が同じ処理です。","action":"CI から起案する","pending":"起案中…","docs":"verify.yaml の書き方(設計ドキュメント)","created":"`{path}` に {count} 件のゲートを起案しました。判定に使う前に内容を確認してください。","conflict":"`{path}` は既に存在します。上書きはしないので、読み直した内容を表示します。","empty":"CI 定義にも npm scripts にもゲートにできるコマンドが見つかりませんでした。`{path}` を手で書いてください。","error":"検証設定を起案できませんでした: {message}"},"configured":{"body":"`{path}` に {count} 件のゲートが宣言されています。このブランチではまだ 1 度も実行されていません。","gatesHeading":"宣言ゲート","builtin":"組み込みゲートも併せて走ります: {gates}","builtinHint":"組み込みゲートは `.commandmate/verify.yaml` に書かなくても毎回走ります。それぞれの意味はゲート一覧の各行に表示されます。","action":"検証を実行"},"running":{"progress":"実行中: {total} ゲート中 {done} 件が完了しました。","elapsed":"経過 {elapsed}","action":"今すぐ再読み込み","hint":"ゲートは 1 本ずつ順に走ります。完了したゲートから下の一覧に現れます。"},"result":{"body":"このブランチの直近ラン #{runId} の判定は RESULT {verdict} です。","action":"最新ランのゲートを表示"}},"contract":{"heading":"実行契約","empty":"このブランチには契約がありません。\\n`commandmate send --contract <ファイル>` か Skill `cmate-task-contract` で作成してください。","scopeAllow":"scope.allow","scopeDeny":"scope.deny","gates":"verify.gates","gatesAll":"宣言済みゲート全件","autoYes":"autoYes.mode","autoYesUnset":"未指定(既存の挙動を維持)","file":"契約ファイル","updated":"更新"},"runs":{"heading":"検証ラン","empty":"検証ランはまだありません。\\n「再検証」を押すか、`commandmate verify {worktreeId}` を実行してください。","rerun":"再検証","rerunPending":"開始中…","rerunConflict":"検証ランが既に実行中です(run {runId})。","rerunConflictUnknown":"検証ランが既に実行中です。","rerunError":"検証を開始できませんでした: {message}","select":"run {runId} のゲートを表示(RESULT {verdict} — {gloss})","runLabel":"run {runId}","trigger":"trigger={trigger}","cliLegend":"CLI 相当の exit code: {items}","cliLegendItem":"{label} = exit {code}","exitCode":"CLI 相当 exit={code}","cancel":"検証を中止","cancelPending":"中止しています…","cancelHint":"中止すると、実行中のゲートのプロセスグループに終了シグナルを送り、残りのゲートは開始しません。ランは「中止」として閉じられます。","cancelGone":"このランは既に終了していました。一覧を読み直したので、最新の判定を確認してください。","cancelError":"検証を中止できませんでした: {message}","loadMore":"さらに {count} 件を読み込む","history":{"open":"他のブランチを含む横断履歴を表示","close":"横断履歴を閉じる","hint":"このサーバが管理する全 worktree の直近の検証ランです。同じゲートが複数のブランチで落ちているなら、それは作業ではなくゲート側の問題である可能性が高いという読み方をします。","loading":"横断履歴を読み込み中…","empty":"対象期間に他のブランチの検証ランはありません。","error":"横断履歴を取得できませんでした: {message}","failingGates":"不合格ゲート: {gates}"},"partial":"部分実行: 計画されている {total} ゲートのうち {ran} 件だけが実行されました。未実行: {gates}。この判定は実行されたゲートについてのものです。","cancelSettling":"中止を要求しました。ゲートに終了シグナルを送り、プロセスが終わるのを待っています(応答しない場合は 5 秒後に強制終了します)。"},"gates":{"heading":"ゲート — run {runId}","empty":"このランにはゲートの記録がありません。","loading":"ゲートを読み込み中…","notFound":"その検証ランは見つかりませんでした。","loadError":"検証ランを取得できませんでした: {message}","exitCode":"exit={code}","duration":"duration={duration}","contractSource":"[contract]","showLog":"ログ末尾を表示","hideLog":"ログ末尾を隠す","logOmitted":"… (+{count} 行省略。全文は `commandmate verify show {runId}`)","noLog":"ログ出力は記録されていません。","verdictHeading":"このランの判定","contractSourceHint":"`[contract]` は、このブランチに送られた実行契約が指定したゲートであることを表します(`.commandmate/verify.yaml` の宣言ではありません)。","builtinBadge":"組み込み","builtin":{"workEvidence":"作業証跡ゲート(組み込み)。`options.baseRef` より先のコミット、または未コミットの変更があるかを見ます。どちらも無ければランは「未着手」になり、以降のゲートは実行されません。","scope":"スコープゲート(組み込み)。変更されたファイルを実行契約の `scope.allow` / `scope.deny` と突き合わせます。契約が無いランには判定するスコープが無いため未実行になります。","envClean":"環境クリーンゲート(組み込み)。タスク開始時のスナップショットと比べて、待ち受けサーバ・`mcbd-*` tmux セッション・`$HOME`・`~/.commandmate` に残留が無いかを見ます。","config":"設定ゲート(組み込み)。`.commandmate/verify.yaml` を読み込めなかったことをランに記録するための擬似ゲートです。実際のゲートは 1 件も実行されていません。"},"skipHeading":"実行されなかったゲート","skipReasonFor":"{gateId}: {reason}","skipReason":{"primaryCheckout":"この worktree がサーバープロセスの作業ディレクトリそのものなので、`options.skipInPrimaryCheckout` により実行されませんでした。稼働中の画面を壊さないための保護であって、不具合ではありません。別の worktree で実行すれば走ります。","workEvidence":"`work-evidence` ゲートが合格しなかったため、判定する対象が無く実行されませんでした。","mutex":"同じ `mutex` を宣言した別の検証が終わらず、待ち時間の上限に達したため実行されませんでした。作業への判定ではなく資源の競合です。","detachedContract":"このブランチには実行契約がありますが、このランが契約に紐づいていないためスコープを判定できませんでした。`wait --verify` で起動すると自動的に紐づきます。","noContract":"このランには実行契約が紐づいていないため、判定するスコープが宣言されていません。","notRequired":"実行契約が `success.requireScopeClean: false` を宣言しているため判定していません。","unknown":"このゲートは実行されていません。理由はログ末尾を参照してください。","cancelled":"検証が中止されたため、このゲートは判定に至っていません。作業への判定ではなく、実行を止めた結果です。"},"showFullLog":"ログ全文を開く","fullLogTitle":"ログ全文 — {gateId}(run {runId})","fullLogSize":"{lines} 行","fullLogStored":"サーバが保存しているのは各ゲートの末尾だけです(`options.maxLogTailBytes` で上限が決まります)。ここに出ているのがその全量で、これより前の出力はどこにも残っていません。","copyLog":"ログをコピー","copied":"コピーしました","copyFailed":"コピーできませんでした"},"runStatus":{"running":"実行中","passed":"合格","failed":"不合格","not_started":"未着手","error":"判定不能","cancelled":"中止"},"runStatusGloss":{"running":"ゲートを実行中です。判定はまだ出ていません。","passed":"選択されたゲートがすべて合格しました。","failed":"1 つ以上のゲートが不合格・時間切れ・異常終了しました。","not_started":"作業証跡ゼロ: コミットも未コミット変更もありません。判定する対象が無いため、以降のゲートは実行されていません。","error":"判定に至りませんでした。実行されなかったゲートがあるか、検証設定を読み込めませんでした。不合格とは別物です。","cancelled":"検証が判定に達する前に中止されました。"},"gateStatus":{"running":"実行中","passed":"合格","failed":"不合格","timeout":"時間切れ","skipped":"未実行","error":"異常終了"},"gateStatusGloss":{"running":"このゲートはまだ実行中です。","passed":"コマンドが exit 0 で終了しました。","failed":"コマンドが 0 以外の exit code で終了しました。","timeout":"timeoutSec 以内に終わらず打ち切られました。","skipped":"このゲートは実行されていません。合格ではありません。","error":"ゲートを起動できず、判定に至りませんでした。"},"chip":{"taskReason":"タスク「{title}」: {status}","resultBadge":"RESULT {verdict}","runReason":"直近の検証: RESULT {verdict}(run {runId})","noRun":"検証ランはまだありません","failingGates":"不合格ゲート: {gates}","gatesPassed":"全 {count} ゲート合格","openHint":"検証ペインを開く","dash":"—","unverified":"未検証","noTask":"このブランチには実行契約が送られていません","reasonHeading":"この判定の理由","showReason":"理由を表示","hideReason":"理由を隠す"},"selection":{"heading":"実行するゲート","open":"ゲートを選ぶ","close":"選択を閉じる","all":"全 {count} 件を実行します(既定)","partial":"{total} 件中 {selected} 件を選択中: {gates}","gateLabel":"ゲート {gateId} を選ぶ","runAll":"全ゲートで検証","runSelected":"選んだ {count} 件で検証","hint":"選んだゲートだけを実行します。`lint` の 1 行修正を確かめるために `build` や `unit` を待つ必要はありません。判定は実行したゲートについてのものだけで、選択を狭めたランはゲート表に「部分実行」と出ます。実行契約が `success.requireWorkEvidence` / `requireScopeClean` を宣言している場合、`work-evidence` と `scope` は選択に関わらず必ず実行されます(契約が宣言した判定基準は、ゲートの絞り込みでは外せません)。","failedOnly":"不合格だったゲートだけ({count} 件)","failedOnlyEmpty":"表示中のランに、再実行できる不合格ゲートはありません(未実行のゲートは、もう一度実行しても同じ理由で未実行になります)。","selectAll":"全ゲートに戻す"}},"task":{"status":{"pending":"pending(未送信)","running":"running(作業中)","waiting_input":"waiting_input(プロンプト待ち)","verifying":"verifying(検証中)","succeeded":"succeeded(合格)","failed":"failed(不合格)","not_started":"not_started(作業証跡ゼロ)","cancelled":"cancelled(中止)"}},"envManager":{"title":"環境変数マネージャ","description":"このワークツリーの環境変数ファイルを表示・編集します。値は既定で伏せられます。","filePickerLabel":"環境変数ファイル","viewModeLabel":"表示形式","viewKeyValue":"キー / 値","viewRaw":"テキスト","notCreated":"未作成","templateBadge":"テンプレート","notCreatedHint":"{file} はまだ存在しません。キーを追加して保存すると作成されます。","keyLabel":"変数名","valueLabel":"{key} の値","showValue":"{key} の値を表示","hideValue":"{key} の値を隠す","removeRow":"{key} を削除","addRow":"変数を追加","revealAll":"値を表示","hideAll":"値を隠す","reload":"ディスクから再読み込み","save":"保存","saved":"保存しました。","loading":"環境変数ファイルを読み込み中...","loadError":"環境変数ファイルを読み込めませんでした。","empty":"変数はまだ定義されていません。","validationFailed":"このファイルはまだ保存できません。","suggestionsTitle":"テンプレートのキー","suggestionsHint":".env.example / .env.sample にあってこのファイルに無いキーです。タップで追加します。","rawLabel":"環境変数ファイル(テキスト)","rawMaskedLabel":"環境変数ファイル(値を伏せた表示)","rawMaskedHint":"値は {mask} で伏せられています。「値を表示」で表示・編集できます。","issues":{"invalidSyntax":"{line} 行目: KEY=VALUE の形式ではありません。","invalidKey":"{line} 行目: 変数名が不正です。英字かアンダースコアで始まり、英数字とアンダースコアのみが使えます。","unterminatedQuote":"{line} 行目: {key} の引用符が閉じられていません。","duplicateKey":"{line} 行目: {key} が重複しています。最後の定義が有効になります。","controlCharacter":"{line} 行目: 環境変数ファイルに使用できない制御文字が含まれています。","tooLarge":"このファイルは大きすぎるため、ここでは編集できません。","tooManyEntries":"このファイルは変数が多すぎるため、ここでは編集できません。"}},"agentSession":{"context":"{tokens}({percent}%)","chipLabel":"セッション使用量 — {usage}","titleLabel":"セッション: {title}","agentLabel":"エージェント: {agent}","costLabel":"現在までのコスト: {cost}","spentLabel":"このセッションの消費: {tokens} トークン","contextLabel":"コンテキスト使用量: {limit} トークン中 {tokens} トークン({percent}%)","contextUnknownLabel":"コンテキスト使用量: {tokens} トークン(上限不明)"},"opencodeDiff":{"title":"このターンの変更ファイル","subtitle":"{count} ファイル","revertedTitle":"取り消し中の変更","revertedSubtitle":"{count} ファイルが取り消されています","openDiff":"{file} の差分を表示","unnamedFile":"(ファイル名なし)","status":{"added":"追加","deleted":"削除","modified":"変更"},"revert":"このターンを取り消す","unrevert":"やり直す","revertConfirmTitle":"このターンを取り消しますか?","revertConfirmBody":"opencode が {count} ファイルへの変更を巻き戻します。追加されたファイルは削除され、コミット済みの変更も作業ツリー上では巻き戻ります。この操作は「やり直す」で復元できます。","revertConfirmLabel":"取り消す","unrevertConfirmTitle":"取り消した変更をやり直しますか?","unrevertConfirmBody":"opencode が取り消し中の {count} ファイルへの変更をすべて作業ツリーに戻します。","unrevertConfirmLabel":"やり直す","busy":"エージェントが実行中のため実行できません。ターンの完了後に再試行してください。","noop":"opencode は変更しませんでした(対象のターンが見つかりません)。","failed":"opencode が操作を拒否しました。"},"opencodeQuickKeys":{"toolbarLabel":"opencode クイックキー","caption":"opencode","needsSession":"このペインの最初のターン以降に使えます({notation})","showKeys":"opencode クイックキーを表示","hideKeys":"opencode クイックキーを隠す","keys":{"agentNext":"次のエージェント","agentPrev":"前のエージェント","commands":"コマンド","variant":"バリアント","agents":"エージェント","sessions":"セッション","newSession":"新規セッション","models":"モデル","themes":"テーマ","timeline":"タイムライン","undo":"取り消し","redo":"やり直し","compact":"圧縮","pageUp":"1ページ上","pageDown":"1ページ下","first":"先頭メッセージ","last":"最新メッセージ"}},"opencodeSidebar":{"regionLabel":"opencode サイドバーの警告","label":"opencode のサイドバーが開いています","body":"トランスクリプトと同じ行を占有するため、ターンの終了を検出できません。opencode のペインで次のキーを押して閉じてください:"},"opencodeSession":{"new":"新規セッション","list":"セッション一覧","fork":"セッションを fork","share":"共有リンクを発行","unshare":"共有を取り消す","shareCopy":"リンクをコピー","shareConfirmTitle":"この会話を外部に公開しますか?","shareConfirmBody":"opencode がこのセッションを opencode のホスティングに公開し、リンクを知っている人なら誰でも読める状態になります。公開されるのは会話そのもの(あなたのプロンプト・エージェントの応答・実行したツールの入出力)と、セッションの作業ディレクトリの絶対パスです。内容は伏せ字になりません。公開後は「共有を取り消す」でページを取り下げられますが、それまでに読まれた内容は取り消せません。","shareConfirmLabel":"公開する","sharePublicNotice":"このリンクは第三者が読めます。","errorNoPort":"このペインに opencode サーバが接続されていません。ペインを起動し直してから再度お試しください。","errorNoSessionFork":"まだ fork できるセッションがありません。1 ターン実行してから再度お試しください。","errorNoSessionShare":"まだ共有できるセッションがありません。1 ターン実行してから再度お試しください。","errorRequestFailed":"リクエストを送信できませんでした。CommandMate サーバに接続できません。","errorUnknown":"操作に失敗しました。原因はサーバから返されていません。","errorCopyFailed":"リンクをコピーできませんでした。表示されているリンクを選択して手動でコピーしてください。"}}')}};
@@ -1,4 +1,4 @@
1
- exports.id=2759,exports.ids=[2759],exports.modules={3453:(a,b,c)=>{"use strict";c.d(b,{Rh:()=>r,T1:()=>o,Z2:()=>m,c$:()=>n,nu:()=>q});var d=c(72626),e=c(80438);let f=(0,d.h)("ip-restriction"),g="::ffff:",h=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\/(\d{1,2})$/,j=process.env.CM_ALLOWED_IPS?.trim()||"",k=process.env.CM_TRUST_PROXY?.trim()||"";""!==k&&"true"!==k&&"false"!==k&&(0,e.h)(f,"trust-proxy-unexpected",{value:k});let l="true"===k;function m(a){return a?a.toLowerCase().startsWith(g)?a.substring(g.length):a:""}function n(a,b){if(0===b.length)return!1;let c=function(a){let b=a.match(h);if(!b)return null;let c=[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10),parseInt(b[4],10)];for(let a of c)if(a<0||a>255)return null;return(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0}(m(a));if(null===c)return!1;for(let a of b)if((c&a.mask)>>>0===a.network)return!0;return!1}function o(a){if(l){let b=a.get("x-forwarded-for");if(b){let a=b.split(",")[0].trim();if(a)return a}}return a.get("x-real-ip")||null}let p=j.length>0?function(a){let b=a.trim();if(0===b.length)return[];let c=b.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(c.length>256)throw Error(`CM_ALLOWED_IPS: too many entries (${c.length}). Maximum is 256.`);let d=[];for(let a of c){if(a.length>18)throw Error(`CM_ALLOWED_IPS: entry "${a}" exceeds maximum length of 18 characters.`);let b=a.match(i);if(b){let c=[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10),parseInt(b[4],10)],e=parseInt(b[5],10);for(let b of c)if(b<0||b>255)throw Error(`CM_ALLOWED_IPS: invalid octet in "${a}". Octets must be 0-255.`);if(e<0||e>32)throw Error(`CM_ALLOWED_IPS: invalid prefix length in "${a}". Must be 0-32.`);let f=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0,g=0===e?0:0xffffffff<<32-e>>>0;d.push({network:(f&g)>>>0,mask:g});continue}let c=a.match(h);if(c){let b=[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10),parseInt(c[4],10)];for(let c of b)if(c<0||c>255)throw Error(`CM_ALLOWED_IPS: invalid octet in "${a}". Octets must be 0-255.`);let e=(b[0]<<24|b[1]<<16|b[2]<<8|b[3])>>>0;d.push({network:e,mask:0xffffffff});continue}throw Error(`CM_ALLOWED_IPS: invalid entry "${a}". Expected IPv4 address or CIDR notation.`)}return d}(j):[];function q(){return p}function r(){return j.length>0}},7015:(a,b,c)=>{"use strict";c.d(b,{Ds:()=>g});var d=c(81719);class e{constructor(a,b=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=a,this.ttl=b}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let a=(0,d.$i)(this.db);for(let b of(this.cache.clear(),a))this.cache.set(b.pathPrefix,b);this.allAppsCache=a,this.lastRefresh=Date.now()}async getByPathPrefix(a){return this.isStale()&&await this.refresh(),this.cache.get(a)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(a){this.invalidate()}}let f=null;function g(a){if(!f){if(!a)throw Error("Database instance required to initialize cache");f=new e(a)}return f}},26838:(a,b,c)=>{"use strict";c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.29.1"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},39727:()=>{},47990:()=>{},54036:(a,b,c)=>{"use strict";c.d(b,{aq:()=>d,gu:()=>f,kr:()=>h});let d="cm_auth_token",e=/^[0-9a-f]{64}$/;function f(a){return!!a&&e.test(a)}let g=2592e6;function h(){let a=process.env.CM_AUTH_EXPIRE,b=Date.now();if(a)try{return b+function(a){let b=a.match(/^(\d+)([hdm])$/);if(!b)throw Error(`Invalid duration format: "${a}". Use Nh, Nd, or Nm (e.g., "24h", "7d", "90m")`);let c=parseInt(b[1],10),d=b[2],e={h:36e5,d:864e5,m:6e4}[d];if(void 0===e)throw Error(`Invalid duration unit: "${d}"`);let f=c*e;if(f<36e5)throw Error(`Duration too short: minimum is 1h (60m). Got: "${a}"`);if(f>g)throw Error(`Duration too long: maximum is 30d (720h). Got: "${a}"`);return f}(a)}catch{return b+864e5}return process.env.CM_AUTH_TOKEN_HASH?b+864e5:null}},57836:(a,b,c)=>{"use strict";c.d(b,{Jp:()=>k,Te:()=>l,hd:()=>j,wN:()=>h});var d=c(24455);let e=(0,c(72626).h)("waiting-episode-state"),f=globalThis.__sessionWaitingEpisodes??(globalThis.__sessionWaitingEpisodes=new Map),g=globalThis.__sessionWaitingTransitionListeners??(globalThis.__sessionWaitingTransitionListeners=new Set);function h(a){return g.add(a),()=>{g.delete(a)}}function i(a){for(let b of g)try{b(a)}catch(b){e.error("waiting-transition-listener-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waiting:a.waiting,error:b instanceof Error?b.message:String(b)})}}function j({worktreeId:a,cliToolId:b,instanceId:c,waiting:e,kind:g=null,structuredSince:h=null,now:j=Date.now()}){let k=(0,d.v7)(a,b,c),l=f.get(k);if(!e)return void 0===l||(f.delete(k),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1,since:null,kind:null,at:j})),null;if(void 0!==l)return l.kind=g,l.since;let m=h??j;return f.set(k,{since:m,kind:g}),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,since:m,kind:g,at:j}),m}function k(a,b,c){return f.get((0,d.v7)(a,b,c))??null}function l(a){let b=`${a}${d.CS}`;for(let a of f.keys())if(a.startsWith(b))return!0;return!1}},88081:(a,b,c)=>{"use strict";c.d(b,{JT:()=>m,QK:()=>k,aq:()=>f.aq,nr:()=>l,r0:()=>p,sO:()=>h,x:()=>q,y2:()=>n,zr:()=>o});var d=c(55511),e=c.n(d),f=c(54036);let g={maxAttempts:5,lockoutDuration:9e5,cleanupInterval:36e5},h=86400,i=(()=>{let a=process.env.CM_AUTH_TOKEN_HASH||void 0;return a?(0,f.gu)(a)?a:void console.error("[auth] CM_AUTH_TOKEN_HASH is not a valid SHA-256 hash"):void 0})(),j=(0,f.kr)();function k(a){return e().createHash("sha256").update(a).digest("hex")}function l(a){if(!i||!a||"string"!=typeof a||null!==j&&Date.now()>j)return!1;let b=k(a),c=Buffer.from(b,"hex"),d=Buffer.from(i,"hex");return c.length===d.length&&e().timingSafeEqual(c,d)}function m(a){let b={};if(!a)return b;for(let c of a.split(";")){let a=c.indexOf("=");if(-1===a)continue;let d=c.substring(0,a).trim(),e=c.substring(a+1).trim();d&&(b[d]=e)}return b}function n(){return!!i}function o(){if(null===j)return 0;let a=j-Date.now();return a<=0?0:Math.floor(a/1e3)}function p(a){return{httpOnly:!0,sameSite:"strict",secure:!!process.env.CM_HTTPS_CERT,maxAge:a,path:"/"}}function q(){let a=new Map,b=setInterval(()=>{let b=Date.now();for(let[c,d]of a){let e=null===d.lockedUntil||b>d.lockedUntil,f=b-d.lastAttempt>g.lockoutDuration;e&&f&&a.delete(c)}},g.cleanupInterval);return b.unref&&b.unref(),{checkLimit(b){let c=a.get(b);if(!c)return{allowed:!0};if(null!==c.lockedUntil){let a=Date.now();if(a<c.lockedUntil)return{allowed:!1,retryAfter:Math.ceil((c.lockedUntil-a)/1e3)};c.attempts=0,c.lockedUntil=null}return{allowed:!0}},recordFailure(b){let c=Date.now(),d=a.get(b)||{attempts:0,lockedUntil:null,lastAttempt:c};d.attempts++,d.lastAttempt=c,d.attempts>=g.maxAttempts&&(d.lockedUntil=c+g.lockoutDuration),a.set(b,d)},recordSuccess(b){a.delete(b)},destroy(){clearInterval(b),a.clear()}}}},90164:(a,b,c)=>{"use strict";c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`},95620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{WORKTREE_RENAMED_EVENT_TYPE:()=>X,__internal:()=>_,broadcast:()=>U,broadcastMessage:()=>W,cleanupRooms:()=>Z,closeWebSocket:()=>$,handleProxyUpgrade:()=>J,hasRoomSubscribers:()=>V,migrateWorktreeRooms:()=>Y,setupWebSocket:()=>K});var d=c(81503),e=c(91645),f=c(88081),g=c(3453),h=c(15194),i=c(40964),j=c(88807),k=c(56791);let l={capturePaneCalls:0,activeControlSessions:0,subscriberCount:0,cleanupCount:0,firstOutputLatencyCount:0,firstOutputLatencyTotalMs:0,firstOutputLatencyLastMs:null,firstOutputLatencyMinMs:null,firstOutputLatencyMaxMs:null};var m=c(79892),n=c(72626),o=c(79646);class p{push(a){if(0===a.length)return[];let b=(this.remainder+a).split("\n");this.remainder=b.pop()??"";let c=[];for(let a of b){let b=a.endsWith("\r")?a.slice(0,-1):a,d=this.parseLine(b);d&&c.push(d)}return c}flush(){if(0===this.remainder.length)return[];let a=this.parseLine(this.remainder);return this.remainder="",a?[a]:[]}parseLine(a){return 0===a.length?{type:"output",data:"\n"}:a.startsWith("%output ")?{type:"output",data:`${a.slice(8)}
1
+ exports.id=2759,exports.ids=[2759],exports.modules={3453:(a,b,c)=>{"use strict";c.d(b,{Rh:()=>r,T1:()=>o,Z2:()=>m,c$:()=>n,nu:()=>q});var d=c(72626),e=c(80438);let f=(0,d.h)("ip-restriction"),g="::ffff:",h=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/,i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\/(\d{1,2})$/,j=process.env.CM_ALLOWED_IPS?.trim()||"",k=process.env.CM_TRUST_PROXY?.trim()||"";""!==k&&"true"!==k&&"false"!==k&&(0,e.h)(f,"trust-proxy-unexpected",{value:k});let l="true"===k;function m(a){return a?a.toLowerCase().startsWith(g)?a.substring(g.length):a:""}function n(a,b){if(0===b.length)return!1;let c=function(a){let b=a.match(h);if(!b)return null;let c=[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10),parseInt(b[4],10)];for(let a of c)if(a<0||a>255)return null;return(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0}(m(a));if(null===c)return!1;for(let a of b)if((c&a.mask)>>>0===a.network)return!0;return!1}function o(a){if(l){let b=a.get("x-forwarded-for");if(b){let a=b.split(",")[0].trim();if(a)return a}}return a.get("x-real-ip")||null}let p=j.length>0?function(a){let b=a.trim();if(0===b.length)return[];let c=b.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(c.length>256)throw Error(`CM_ALLOWED_IPS: too many entries (${c.length}). Maximum is 256.`);let d=[];for(let a of c){if(a.length>18)throw Error(`CM_ALLOWED_IPS: entry "${a}" exceeds maximum length of 18 characters.`);let b=a.match(i);if(b){let c=[parseInt(b[1],10),parseInt(b[2],10),parseInt(b[3],10),parseInt(b[4],10)],e=parseInt(b[5],10);for(let b of c)if(b<0||b>255)throw Error(`CM_ALLOWED_IPS: invalid octet in "${a}". Octets must be 0-255.`);if(e<0||e>32)throw Error(`CM_ALLOWED_IPS: invalid prefix length in "${a}". Must be 0-32.`);let f=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0,g=0===e?0:0xffffffff<<32-e>>>0;d.push({network:(f&g)>>>0,mask:g});continue}let c=a.match(h);if(c){let b=[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10),parseInt(c[4],10)];for(let c of b)if(c<0||c>255)throw Error(`CM_ALLOWED_IPS: invalid octet in "${a}". Octets must be 0-255.`);let e=(b[0]<<24|b[1]<<16|b[2]<<8|b[3])>>>0;d.push({network:e,mask:0xffffffff});continue}throw Error(`CM_ALLOWED_IPS: invalid entry "${a}". Expected IPv4 address or CIDR notation.`)}return d}(j):[];function q(){return p}function r(){return j.length>0}},7015:(a,b,c)=>{"use strict";c.d(b,{Ds:()=>g});var d=c(81719);class e{constructor(a,b=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=a,this.ttl=b}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let a=(0,d.$i)(this.db);for(let b of(this.cache.clear(),a))this.cache.set(b.pathPrefix,b);this.allAppsCache=a,this.lastRefresh=Date.now()}async getByPathPrefix(a){return this.isStale()&&await this.refresh(),this.cache.get(a)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(a){this.invalidate()}}let f=null;function g(a){if(!f){if(!a)throw Error("Database instance required to initialize cache");f=new e(a)}return f}},26838:(a,b,c)=>{"use strict";c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.29.2"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},39727:()=>{},47990:()=>{},54036:(a,b,c)=>{"use strict";c.d(b,{aq:()=>d,gu:()=>f,kr:()=>h});let d="cm_auth_token",e=/^[0-9a-f]{64}$/;function f(a){return!!a&&e.test(a)}let g=2592e6;function h(){let a=process.env.CM_AUTH_EXPIRE,b=Date.now();if(a)try{return b+function(a){let b=a.match(/^(\d+)([hdm])$/);if(!b)throw Error(`Invalid duration format: "${a}". Use Nh, Nd, or Nm (e.g., "24h", "7d", "90m")`);let c=parseInt(b[1],10),d=b[2],e={h:36e5,d:864e5,m:6e4}[d];if(void 0===e)throw Error(`Invalid duration unit: "${d}"`);let f=c*e;if(f<36e5)throw Error(`Duration too short: minimum is 1h (60m). Got: "${a}"`);if(f>g)throw Error(`Duration too long: maximum is 30d (720h). Got: "${a}"`);return f}(a)}catch{return b+864e5}return process.env.CM_AUTH_TOKEN_HASH?b+864e5:null}},57836:(a,b,c)=>{"use strict";c.d(b,{Jp:()=>k,Te:()=>l,hd:()=>j,wN:()=>h});var d=c(24455);let e=(0,c(72626).h)("waiting-episode-state"),f=globalThis.__sessionWaitingEpisodes??(globalThis.__sessionWaitingEpisodes=new Map),g=globalThis.__sessionWaitingTransitionListeners??(globalThis.__sessionWaitingTransitionListeners=new Set);function h(a){return g.add(a),()=>{g.delete(a)}}function i(a){for(let b of g)try{b(a)}catch(b){e.error("waiting-transition-listener-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waiting:a.waiting,error:b instanceof Error?b.message:String(b)})}}function j({worktreeId:a,cliToolId:b,instanceId:c,waiting:e,kind:g=null,structuredSince:h=null,now:j=Date.now()}){let k=(0,d.v7)(a,b,c),l=f.get(k);if(!e)return void 0===l||(f.delete(k),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1,since:null,kind:null,at:j})),null;if(void 0!==l)return l.kind=g,l.since;let m=h??j;return f.set(k,{since:m,kind:g}),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,since:m,kind:g,at:j}),m}function k(a,b,c){return f.get((0,d.v7)(a,b,c))??null}function l(a){let b=`${a}${d.CS}`;for(let a of f.keys())if(a.startsWith(b))return!0;return!1}},88081:(a,b,c)=>{"use strict";c.d(b,{JT:()=>m,QK:()=>k,aq:()=>f.aq,nr:()=>l,r0:()=>p,sO:()=>h,x:()=>q,y2:()=>n,zr:()=>o});var d=c(55511),e=c.n(d),f=c(54036);let g={maxAttempts:5,lockoutDuration:9e5,cleanupInterval:36e5},h=86400,i=(()=>{let a=process.env.CM_AUTH_TOKEN_HASH||void 0;return a?(0,f.gu)(a)?a:void console.error("[auth] CM_AUTH_TOKEN_HASH is not a valid SHA-256 hash"):void 0})(),j=(0,f.kr)();function k(a){return e().createHash("sha256").update(a).digest("hex")}function l(a){if(!i||!a||"string"!=typeof a||null!==j&&Date.now()>j)return!1;let b=k(a),c=Buffer.from(b,"hex"),d=Buffer.from(i,"hex");return c.length===d.length&&e().timingSafeEqual(c,d)}function m(a){let b={};if(!a)return b;for(let c of a.split(";")){let a=c.indexOf("=");if(-1===a)continue;let d=c.substring(0,a).trim(),e=c.substring(a+1).trim();d&&(b[d]=e)}return b}function n(){return!!i}function o(){if(null===j)return 0;let a=j-Date.now();return a<=0?0:Math.floor(a/1e3)}function p(a){return{httpOnly:!0,sameSite:"strict",secure:!!process.env.CM_HTTPS_CERT,maxAge:a,path:"/"}}function q(){let a=new Map,b=setInterval(()=>{let b=Date.now();for(let[c,d]of a){let e=null===d.lockedUntil||b>d.lockedUntil,f=b-d.lastAttempt>g.lockoutDuration;e&&f&&a.delete(c)}},g.cleanupInterval);return b.unref&&b.unref(),{checkLimit(b){let c=a.get(b);if(!c)return{allowed:!0};if(null!==c.lockedUntil){let a=Date.now();if(a<c.lockedUntil)return{allowed:!1,retryAfter:Math.ceil((c.lockedUntil-a)/1e3)};c.attempts=0,c.lockedUntil=null}return{allowed:!0}},recordFailure(b){let c=Date.now(),d=a.get(b)||{attempts:0,lockedUntil:null,lastAttempt:c};d.attempts++,d.lastAttempt=c,d.attempts>=g.maxAttempts&&(d.lockedUntil=c+g.lockoutDuration),a.set(b,d)},recordSuccess(b){a.delete(b)},destroy(){clearInterval(b),a.clear()}}}},90164:(a,b,c)=>{"use strict";c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`},95620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{WORKTREE_RENAMED_EVENT_TYPE:()=>X,__internal:()=>_,broadcast:()=>U,broadcastMessage:()=>W,cleanupRooms:()=>Z,closeWebSocket:()=>$,handleProxyUpgrade:()=>J,hasRoomSubscribers:()=>V,migrateWorktreeRooms:()=>Y,setupWebSocket:()=>K});var d=c(81503),e=c(91645),f=c(88081),g=c(3453),h=c(15194),i=c(40964),j=c(88807),k=c(56791);let l={capturePaneCalls:0,activeControlSessions:0,subscriberCount:0,cleanupCount:0,firstOutputLatencyCount:0,firstOutputLatencyTotalMs:0,firstOutputLatencyLastMs:null,firstOutputLatencyMinMs:null,firstOutputLatencyMaxMs:null};var m=c(79892),n=c(72626),o=c(79646);class p{push(a){if(0===a.length)return[];let b=(this.remainder+a).split("\n");this.remainder=b.pop()??"";let c=[];for(let a of b){let b=a.endsWith("\r")?a.slice(0,-1):a,d=this.parseLine(b);d&&c.push(d)}return c}flush(){if(0===this.remainder.length)return[];let a=this.parseLine(this.remainder);return this.remainder="",a?[a]:[]}parseLine(a){return 0===a.length?{type:"output",data:"\n"}:a.startsWith("%output ")?{type:"output",data:`${a.slice(8)}
2
2
  `}:"%exit"===a||a.startsWith("%exit ")?{type:"exit",exitCode:null}:a.startsWith("%error ")?{type:"error",error:Error(a.slice(7))}:a.startsWith("%")?null:{type:"output",data:`${a}
3
3
  `}}constructor(){this.remainder=""}}let q=(0,n.h)("tmux-control-client");class r{constructor(a={}){this.parser=new p,this.handlers=new Set,this.child=null,this.sessionName=null,this.idleTimer=null,this.started=!1,this.spawnProcess=a.spawnProcess??((a,b,c)=>(0,o.spawn)(a,b,c)),this.tmuxBinary=a.tmuxBinary??"tmux",this.idleTimeoutMs=a.idleTimeoutMs??3e4}start(a){this.started||(this.sessionName=a,this.child=this.spawnProcess(this.tmuxBinary,["-C","attach-session","-t",(0,m.lA)(a)],{stdio:"pipe"}),this.started=!0,this.child.stdout.setEncoding("utf8"),this.child.stdout.on("data",a=>{this.touch();let b="string"==typeof a?a:a.toString("utf8");for(let a of this.parser.push(b))this.emit(a)}),this.child.stderr.setEncoding("utf8"),this.child.stderr.on("data",a=>{let b="string"==typeof a?a:a.toString("utf8");this.emit({type:"error",error:Error(b.trim()||"tmux control stderr")})}),this.child.on("close",a=>{for(let a of this.parser.flush())this.emit(a);this.emit({type:"exit",exitCode:a}),this.stop()}),this.child.on("error",a=>{this.emit({type:"error",error:a}),this.stop()}),this.resetIdleTimer(),q.debug("start",{sessionName:a}))}onEvent(a){return this.handlers.add(a),()=>{this.handlers.delete(a)}}sendInput(a){if(!this.child?.stdin.writable)throw Error("Tmux control client is not writable");this.touch(),this.child.stdin.write(a)}resize(a,b){if(!this.child?.stdin.writable)throw Error("Tmux control client is not writable");this.touch(),this.child.stdin.write(`refresh-client -C ${a}x${b}
4
4
  `)}stop(){this.idleTimer&&(clearTimeout(this.idleTimer),this.idleTimer=null),this.child&&(this.child.removeAllListeners(),this.child.stdout.removeAllListeners(),this.child.stderr.removeAllListeners(),this.child.kill(),this.child=null),this.started=!1}isStarted(){return this.started}setSessionName(a){this.sessionName=a}emit(a){for(let b of this.handlers)b(a)}touch(){this.resetIdleTimer()}resetIdleTimer(){this.idleTimeoutMs<=0||(this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{q.debug("idle-timeout",{sessionName:this.sessionName}),this.stop()},this.idleTimeoutMs))}}let s=(0,n.h)("tmux-control-registry");class t{constructor(a={}){this.entries=new Map,this.handlers=new Map,this.idleTimeoutMs=a.idleTimeoutMs??15e3,this.createClient=a.createClient??(()=>new r(a))}subscribe(a,b,c){let d=this.ensureEntry(a);d.subscribers.add(b),this.cancelIdleCleanup(d),this.updateMetrics();let e=this.handlers.get(a);return e||(e=new Set,this.handlers.set(a,e)),e.add(c),()=>{e?.delete(c),this.unsubscribe(a,b)}}sendInput(a,b){let c=this.entries.get(a);if(!c)throw Error(`No control client registered for ${a}`);c.client.sendInput(b)}resize(a,b,c){let d=this.entries.get(a);if(!d)throw Error(`No control client registered for ${a}`);d.client.resize(b,c)}hasSession(a){return this.entries.has(a)}getSubscriberCount(a){return this.entries.get(a)?.subscribers.size??0}getTotalSubscriberCount(){let a=0;for(let b of this.entries.values())a+=b.subscribers.size;return a}getSessionCount(){return this.entries.size}shutdown(){for(let[a,b]of this.entries)this.teardownEntry(a,b);this.entries.clear(),this.handlers.clear(),this.updateMetrics()}renameSession(a,b){if(a===b)return!1;let c=this.entries.get(a);if(!c)return!1;if(this.entries.has(b))return s.warn("rename:destination-occupied",{oldName:a,newName:b}),!1;this.entries.delete(a),c.sessionName=b,this.entries.set(b,c),c.client.setSessionName(b);let d=this.handlers.get(a);return d&&(this.handlers.delete(a),this.handlers.set(b,d)),s.debug("rename",{oldName:a,newName:b}),!0}ensureEntry(a){let b=this.entries.get(a);if(b)return b;let c=this.createClient(a);c.start(a);let d={client:c,subscribers:new Set,unsubscribeClientEvent:()=>{},idleTimer:null,sessionName:a};return d.unsubscribeClientEvent=c.onEvent(a=>{let b=this.handlers.get(d.sessionName);if(b)for(let c of b)c(a);("exit"===a.type||"error"===a.type)&&this.deleteEntry(d.sessionName)}),this.entries.set(a,d),this.updateMetrics(),d}unsubscribe(a,b){let c=this.entries.get(a);c&&(c.subscribers.delete(b),this.updateMetrics(),0===c.subscribers.size&&this.scheduleIdleCleanup(a,c))}scheduleIdleCleanup(a,b){if(this.idleTimeoutMs<=0)return void this.deleteEntry(a);this.cancelIdleCleanup(b),b.idleTimer=setTimeout(()=>{s.debug("idle-cleanup",{sessionName:b.sessionName}),this.deleteEntry(b.sessionName)},this.idleTimeoutMs)}cancelIdleCleanup(a){a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null)}deleteEntry(a){let b=this.entries.get(a);b&&(this.teardownEntry(a,b),this.entries.delete(a),this.handlers.delete(a),this.updateMetrics())}teardownEntry(a,b){this.cancelIdleCleanup(b),b.unsubscribeClientEvent(),b.client.stop(),l.cleanupCount+=1}updateMetrics(){l.activeControlSessions=Math.max(0,this.getSessionCount()),l.subscriberCount=Math.max(0,this.getTotalSubscriberCount())}}let u=null,v={streamingOutput:!0,explicitResize:!0,snapshotFallback:!0};class w{constructor(a={}){this.registry=a.registry??(u||(u=new t),u)}async ensureSession(a,b){await (0,m.N)(a)||await (0,m.jw)(a,b)}async sessionExists(a){return(0,m.N)(a)}async sendInput(a,b){if(this.registry.hasSession(a))return void this.registry.sendInput(a,b);await (0,m.V1)(a,b)}async sendSpecialKey(a,b){if("Escape"!==b&&"C-c"!==b&&"C-d"!==b&&"C-m"!==b&&"Enter"!==b)throw Error(`Unsupported special key for ControlModeTmuxTransport: ${b}`);await (0,m.ds)(a,b)}async resize(a,b,c){this.registry.resize(a,b,c)}async captureSnapshot(a,b){return l.capturePaneCalls+=1,(0,m.Xg)(a,b)}async subscribe(a,b){let c=`sub-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,d=this.registry.subscribe(a,c,a=>{"output"===a.type?b.onOutput(a.data):"exit"===a.type?b.onExit?.({exitCode:a.exitCode}):b.onError(a.error)});return{async unsubscribe(){d()}}}getCapabilities(){return v}getSubscriberCount(a){return this.registry.getSubscriberCount(a)}renameSession(a,b){return this.registry.renameSession(a,b)}async killSession(a){return(0,m.fY)(a)}}let x=null;function y(){return x||(x=new w),x}var z=c(7015),A=c(26838),B=c(57836);function C(){let a=globalThis.__waitingStatusBroadcastUnsubscribe;a&&(a(),globalThis.__waitingStatusBroadcastUnsubscribe=void 0)}let D=(0,n.h)("ws-server"),E=null,F=new Map,G=new Map,H=new Set(["localhost","127.0.0.1"]);function I(a,b){try{a.write(`HTTP/1.1 ${b}\r