commandmate 0.29.1 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (979) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +468 -417
  3. package/.next/app-path-routes-manifest.json +30 -23
  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 +25 -8
  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 +18 -18
  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 +19 -19
  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/settings/default-surface-mode/route.js +1 -0
  127. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -0
  128. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -0
  129. package/.next/server/app/api/sidebar/group-order/route.js +1 -7
  130. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  131. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/[id]/route.js +1 -1
  133. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/installations/route.js +2 -2
  136. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/operations/route.js +2 -2
  139. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  140. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/skills/reindex/route.js +1 -1
  142. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  143. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/skills/route.js +1 -1
  145. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  146. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/slash-commands/route.js +1 -1
  148. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  149. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  154. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/templates/[id]/route.js +2 -2
  157. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  158. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/templates/route.js +2 -2
  160. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  161. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/todos/route.js +1 -1
  163. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  164. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  166. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  167. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/verification/runs/route.js +1 -1
  169. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  170. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -0
  181. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -0
  182. package/.next/server/app/api/worktrees/[id]/{start-polling → cli-reference}/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  187. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -2
  190. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  199. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  286. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  289. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  316. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  322. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  328. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -7
  334. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  391. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  392. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  393. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -0
  394. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -0
  395. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -0
  396. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  397. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  398. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  399. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -0
  400. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -0
  401. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -0
  402. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  406. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  407. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  408. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  409. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  410. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  411. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -0
  412. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -0
  413. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -0
  414. package/.next/server/app/api/worktrees/route.js +1 -1
  415. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  416. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  417. package/.next/server/app/chat/page.js +2 -2
  418. package/.next/server/app/chat/page.js.nft.json +1 -1
  419. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/login/page.js +2 -2
  421. package/.next/server/app/login/page.js.nft.json +1 -1
  422. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  423. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  424. package/.next/server/app/more/page.js +2 -2
  425. package/.next/server/app/more/page.js.nft.json +1 -1
  426. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  427. package/.next/server/app/offline/page.js.nft.json +1 -1
  428. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  429. package/.next/server/app/page.js +1 -1
  430. package/.next/server/app/page.js.nft.json +1 -1
  431. package/.next/server/app/page_client-reference-manifest.js +1 -1
  432. package/.next/server/app/proxy/[...path]/route.js +1 -1
  433. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  434. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  435. package/.next/server/app/repositories/page.js +2 -2
  436. package/.next/server/app/repositories/page.js.nft.json +1 -1
  437. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  438. package/.next/server/app/review/page.js +1 -1
  439. package/.next/server/app/review/page.js.nft.json +1 -1
  440. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  441. package/.next/server/app/sessions/page.js +1 -1
  442. package/.next/server/app/sessions/page.js.nft.json +1 -1
  443. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/skills/[skillId]/page.js +2 -2
  445. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  446. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  447. package/.next/server/app/skills/installed/page.js +2 -2
  448. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  449. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  450. package/.next/server/app/skills/page.js +2 -2
  451. package/.next/server/app/skills/page.js.nft.json +1 -1
  452. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  453. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  454. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  455. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  456. package/.next/server/app/worktrees/[id]/page.js +12 -12
  457. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  458. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  459. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  460. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  461. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  462. package/.next/server/app-paths-manifest.json +30 -23
  463. package/.next/server/chunks/1058.js +1 -1
  464. package/.next/server/chunks/1068.js +1 -1
  465. package/.next/server/chunks/1191.js +1 -1
  466. package/.next/server/chunks/1341.js +1 -0
  467. package/.next/server/chunks/1501.js +5 -0
  468. package/.next/server/chunks/1886.js +3 -4
  469. package/.next/server/chunks/2119.js +1 -1
  470. package/.next/server/chunks/2445.js +1 -1
  471. package/.next/server/chunks/261.js +1 -0
  472. package/.next/server/chunks/2739.js +1 -0
  473. package/.next/server/chunks/2816.js +1 -1
  474. package/.next/server/chunks/2827.js +29 -0
  475. package/.next/server/chunks/3123.js +1 -0
  476. package/.next/server/chunks/3241.js +1 -1
  477. package/.next/server/chunks/3543.js +1 -1
  478. package/.next/server/chunks/3707.js +15 -0
  479. package/.next/server/chunks/3722.js +25 -1
  480. package/.next/server/chunks/3869.js +1 -0
  481. package/.next/server/chunks/3945.js +1 -1
  482. package/.next/server/chunks/4299.js +1 -1
  483. package/.next/server/chunks/4325.js +1 -0
  484. package/.next/server/chunks/4390.js +1 -0
  485. package/.next/server/chunks/4393.js +1 -1
  486. package/.next/server/chunks/4443.js +6 -0
  487. package/.next/server/chunks/5017.js +1 -1
  488. package/.next/server/chunks/5120.js +1 -0
  489. package/.next/server/chunks/5164.js +1 -1
  490. package/.next/server/chunks/5571.js +1 -1
  491. package/.next/server/chunks/6130.js +1 -1
  492. package/.next/server/chunks/6285.js +1 -1
  493. package/.next/server/chunks/6337.js +1 -1
  494. package/.next/server/chunks/663.js +1 -1
  495. package/.next/server/chunks/6781.js +1 -1
  496. package/.next/server/chunks/6894.js +8 -0
  497. package/.next/server/chunks/7366.js +5 -0
  498. package/.next/server/chunks/7685.js +1 -1
  499. package/.next/server/chunks/7824.js +1 -1
  500. package/.next/server/chunks/7836.js +1 -0
  501. package/.next/server/chunks/7905.js +1 -1
  502. package/.next/server/chunks/8118.js +1 -0
  503. package/.next/server/chunks/8356.js +1 -1
  504. package/.next/server/chunks/848.js +1 -1
  505. package/.next/server/chunks/880.js +3 -3
  506. package/.next/server/chunks/8800.js +3 -0
  507. package/.next/server/chunks/8807.js +1 -1
  508. package/.next/server/chunks/9123.js +2 -2
  509. package/.next/server/chunks/9130.js +3 -3
  510. package/.next/server/chunks/9627.js +71 -43
  511. package/.next/server/chunks/9696.js +3 -0
  512. package/.next/server/chunks/9798.js +1 -1
  513. package/.next/server/middleware-build-manifest.js +1 -1
  514. package/.next/server/middleware-manifest.json +5 -5
  515. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  516. package/.next/server/pages/500.html +1 -1
  517. package/.next/server/server-reference-manifest.json +1 -1
  518. package/.next/server/src/middleware.js +1 -1
  519. package/.next/server/src/middleware.js.map +1 -1
  520. package/.next/static/7K0XXFu_ty4wRSkl4X21E/_buildManifest.js +1 -0
  521. package/.next/static/chunks/{2053-c0e931eb4391baa1.js → 2053-3f299a7a2c7d6767.js} +1 -1
  522. package/.next/static/chunks/{3968-8d8ca15657748bfb.js → 3916-0e929d089282dc5d.js} +1 -1
  523. package/.next/static/chunks/3922.9c1ec01fff819c88.js +1 -0
  524. package/.next/static/chunks/5229-6c89475b61bd2c8b.js +1 -0
  525. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  526. package/.next/static/chunks/6381-28d0e95620aa018e.js +1 -0
  527. package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +1 -0
  528. package/.next/static/chunks/{1188-8567ee5ecfef02ee.js → 8593-fa0eb2802e0ce68a.js} +1 -1
  529. package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +1 -0
  530. package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +1 -0
  531. package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +1 -0
  532. package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +1 -0
  533. package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +1 -0
  534. package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +1 -0
  535. package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +1 -0
  536. package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +1 -0
  537. package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +1 -0
  538. package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +1 -0
  539. package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +1 -0
  540. package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +1 -0
  541. package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +1 -0
  542. package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +1 -0
  543. package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +1 -0
  544. package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +1 -0
  545. package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +1 -0
  546. package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +1 -0
  547. package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +1 -0
  548. package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +1 -0
  549. package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +1 -0
  550. package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +1 -0
  551. package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +1 -0
  552. package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +1 -0
  553. package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +1 -0
  554. package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +1 -0
  555. package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +1 -0
  556. package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +1 -0
  557. package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +1 -0
  558. package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +1 -0
  559. package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +1 -0
  560. package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +1 -0
  561. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  562. package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  563. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +1 -0
  564. package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +1 -0
  565. package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +1 -0
  566. package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +1 -0
  567. package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +1 -0
  568. package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +1 -0
  569. package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +1 -0
  570. package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +1 -0
  571. package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +1 -0
  572. package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +1 -0
  573. package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +1 -0
  574. package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +1 -0
  575. package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +1 -0
  576. package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +1 -0
  577. package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +1 -0
  578. package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +1 -0
  579. package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  580. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  581. package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +1 -0
  582. package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +1 -0
  583. package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +1 -0
  584. package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +1 -0
  585. package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  586. package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +1 -0
  625. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +1 -0
  626. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +1 -0
  627. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +1 -0
  628. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +1 -0
  629. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +1 -0
  630. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +1 -0
  631. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +1 -0
  632. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +1 -0
  633. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +1 -0
  634. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +1 -0
  635. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +1 -0
  636. package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +1 -0
  637. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +1 -0
  638. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +1 -0
  639. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +1 -0
  640. package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +1 -0
  641. package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +1 -0
  642. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +1 -0
  643. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +1 -0
  644. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +1 -0
  645. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +1 -0
  646. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +1 -0
  647. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +1 -0
  648. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +1 -0
  649. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +1 -0
  650. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  651. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +1 -0
  652. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +1 -0
  653. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +1 -0
  654. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +1 -0
  655. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +1 -0
  656. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  657. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  658. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  659. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +1 -0
  660. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  661. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +1 -0
  662. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +1 -0
  663. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  664. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  665. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +1 -0
  666. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +1 -0
  667. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +1 -0
  668. package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +1 -0
  669. package/.next/static/chunks/app/chat/{page-231df45127e876c2.js → page-9aa2011410895b0d.js} +1 -1
  670. package/.next/static/chunks/app/login/{page-03659dded846ef1d.js → page-af7241bb4c4a8e59.js} +1 -1
  671. package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +1 -0
  672. package/.next/static/chunks/app/more/page-333bba1c8bbc9c11.js +1 -0
  673. package/.next/static/chunks/app/{page-0305431f43195431.js → page-214f7ffa13a0cf10.js} +1 -1
  674. package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  675. package/.next/static/chunks/app/repositories/{page-ae8fa55749976f79.js → page-4951cac905e50224.js} +1 -1
  676. package/.next/static/chunks/app/review/page-a0899b2d285318c3.js +1 -0
  677. package/.next/static/chunks/app/sessions/page-fb36145ec732092a.js +1 -0
  678. package/.next/static/chunks/app/skills/[skillId]/{page-aaf0bcb1dfb558b9.js → page-9099e26b60442873.js} +1 -1
  679. package/.next/static/chunks/app/skills/installed/{page-dafc486410e839b7.js → page-182e32368696d824.js} +1 -1
  680. package/.next/static/chunks/app/skills/{page-9e3c91da31514893.js → page-d3fdc88239ebe0ab.js} +1 -1
  681. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-90f96977c741bbf8.js → page-f3361237420719b4.js} +1 -1
  682. package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +1 -0
  683. package/.next/static/chunks/app/worktrees/[id]/page-d48b95ed554bcd13.js +1 -0
  684. package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +1 -0
  685. package/.next/static/chunks/{webpack-7e79064bfce988d7.js → webpack-9f75198882fdaf08.js} +1 -1
  686. package/.next/static/css/61e10d4b1b11b193.css +1 -0
  687. package/.next/trace +13 -13
  688. package/.next/types/app/api/agents/update/route.ts +347 -0
  689. package/.next/types/app/api/agents/versions/route.ts +347 -0
  690. package/.next/types/app/api/settings/default-agents/route.ts +347 -0
  691. package/.next/types/app/api/settings/default-surface-mode/route.ts +347 -0
  692. package/.next/types/app/api/worktrees/[id]/{start-polling → cli-reference}/route.ts +3 -3
  693. package/.next/types/app/api/worktrees/[id]/verify/config/route.ts +347 -0
  694. package/.next/types/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.ts +347 -0
  695. package/.next/types/app/api/worktrees/apply-default-agents/route.ts +347 -0
  696. package/.next/types/routes.d.ts +9 -2
  697. package/.next/types/validator.ts +72 -9
  698. package/dist/cli/commands/agents.d.ts +35 -0
  699. package/dist/cli/commands/agents.d.ts.map +1 -0
  700. package/dist/cli/commands/agents.js +212 -0
  701. package/dist/cli/commands/ls.d.ts.map +1 -1
  702. package/dist/cli/commands/ls.js +18 -0
  703. package/dist/cli/commands/verify.d.ts.map +1 -1
  704. package/dist/cli/commands/verify.js +111 -0
  705. package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
  706. package/dist/cli/config/cli-dependencies.js +11 -0
  707. package/dist/cli/docs/agent-operations.d.ts +1 -1
  708. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  709. package/dist/cli/docs/agent-operations.js +30 -0
  710. package/dist/cli/program.d.ts.map +1 -1
  711. package/dist/cli/program.js +6 -0
  712. package/dist/cli/types/api-responses.d.ts +58 -0
  713. package/dist/cli/types/api-responses.d.ts.map +1 -1
  714. package/dist/cli/types/index.d.ts +8 -0
  715. package/dist/cli/types/index.d.ts.map +1 -1
  716. package/dist/cli/utils/preflight.d.ts.map +1 -1
  717. package/dist/cli/utils/preflight.js +6 -0
  718. package/dist/config/system-directories.d.ts +101 -0
  719. package/dist/config/system-directories.d.ts.map +1 -0
  720. package/dist/config/system-directories.js +211 -0
  721. package/dist/lib/cli-tools/types.d.ts +15 -1
  722. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  723. package/dist/lib/detection/status-reason.d.ts +92 -0
  724. package/dist/lib/detection/status-reason.d.ts.map +1 -0
  725. package/dist/lib/detection/status-reason.js +94 -0
  726. package/dist/lib/updates/agent-updater.d.ts +247 -0
  727. package/dist/lib/updates/agent-updater.d.ts.map +1 -0
  728. package/dist/lib/updates/agent-updater.js +373 -0
  729. package/dist/lib/updates/agent-versions.d.ts +77 -0
  730. package/dist/lib/updates/agent-versions.d.ts.map +1 -0
  731. package/dist/lib/updates/agent-versions.js +138 -0
  732. package/dist/lib/updates/codex-version.d.ts +184 -0
  733. package/dist/lib/updates/codex-version.d.ts.map +1 -0
  734. package/dist/lib/updates/codex-version.js +215 -0
  735. package/dist/lib/verification/verify-config.d.ts +202 -0
  736. package/dist/lib/verification/verify-config.d.ts.map +1 -0
  737. package/dist/lib/verification/verify-config.js +429 -0
  738. package/dist/lib/verification/verify-draft.d.ts +182 -0
  739. package/dist/lib/verification/verify-draft.d.ts.map +1 -0
  740. package/dist/lib/verification/verify-draft.js +570 -0
  741. package/dist/server/server.js +58 -0
  742. package/dist/server/src/cli/types/api-responses.js +9 -0
  743. package/dist/server/src/config/cli-tool-timing-config.js +15 -1
  744. package/dist/server/src/config/codex-update-dialog-config.js +154 -0
  745. package/dist/server/src/config/default-agents.js +138 -0
  746. package/dist/server/src/lib/claude-output.js +1 -0
  747. package/dist/server/src/lib/cli-tools/antigravity.js +36 -12
  748. package/dist/server/src/lib/cli-tools/base.js +131 -0
  749. package/dist/server/src/lib/cli-tools/codex.js +350 -100
  750. package/dist/server/src/lib/cli-tools/copilot.js +34 -10
  751. package/dist/server/src/lib/cli-tools/gemini.js +34 -10
  752. package/dist/server/src/lib/cli-tools/liveness-spec.js +214 -0
  753. package/dist/server/src/lib/cli-tools/opencode.js +72 -19
  754. package/dist/server/src/lib/cli-tools/session-liveness.js +64 -0
  755. package/dist/server/src/lib/cli-tools/vibe-local.js +30 -10
  756. package/dist/server/src/lib/db/app-settings-db.js +202 -0
  757. package/dist/server/src/lib/db/chat-db.js +120 -7
  758. package/dist/server/src/lib/db/worktree-db.js +178 -3
  759. package/dist/server/src/lib/detection/status-detector.js +3 -2
  760. package/dist/server/src/lib/detection/status-reason.js +17 -0
  761. package/dist/server/src/lib/detection/tool-liveness.js +233 -0
  762. package/dist/server/src/lib/detection/version-probes.js +290 -0
  763. package/dist/server/src/lib/env.js +122 -0
  764. package/dist/server/src/lib/git/worktrees.js +164 -0
  765. package/dist/server/src/lib/history/transcript-tail.js +80 -0
  766. package/dist/server/src/lib/history/user-turn-recorder.js +247 -0
  767. package/dist/server/src/lib/hooks/permission-decision-service.js +85 -1
  768. package/dist/server/src/lib/hooks/sources/antigravity/history.js +519 -0
  769. package/dist/server/src/lib/hooks/sources/antigravity/source.js +7 -0
  770. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +407 -0
  771. package/dist/server/src/lib/hooks/sources/claude/history.js +654 -0
  772. package/dist/server/src/lib/hooks/sources/claude/source.js +4 -0
  773. package/dist/server/src/lib/hooks/sources/claude/transcript.js +518 -0
  774. package/dist/server/src/lib/hooks/sources/codex/history.js +576 -0
  775. package/dist/server/src/lib/hooks/sources/codex/source.js +4 -0
  776. package/dist/server/src/lib/hooks/sources/codex/transcript.js +448 -0
  777. package/dist/server/src/lib/hooks/sources/copilot/source.js +2 -0
  778. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  779. package/dist/server/src/lib/hooks/sources/legacy-relay.js +3 -0
  780. package/dist/server/src/lib/hooks/sources/opencode/history.js +57 -0
  781. package/dist/server/src/lib/hooks/sources/opencode/source.js +4 -0
  782. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +10 -28
  783. package/dist/server/src/lib/hooks/sources/turn-body.js +118 -0
  784. package/dist/server/src/lib/polling/prompt-dedup.js +2 -4
  785. package/dist/server/src/lib/polling/response-checker.js +44 -3
  786. package/dist/server/src/lib/polling/response-dedup.js +2 -4
  787. package/dist/server/src/lib/polling/response-poller-core.js +191 -29
  788. package/dist/server/src/lib/polling/structured-history-gate.js +147 -16
  789. package/dist/server/src/lib/push/push-sender.js +21 -1
  790. package/dist/server/src/lib/push/waiting-push-notifier.js +126 -8
  791. package/dist/server/src/lib/realtime/publisher-registry.js +171 -0
  792. package/dist/server/src/lib/realtime/terminal-broadcast.js +14 -1
  793. package/dist/server/src/lib/realtime/types.js +96 -1
  794. package/dist/server/src/lib/repo-config/agents-config.js +298 -0
  795. package/dist/server/src/lib/selected-agents-validator.js +93 -23
  796. package/dist/server/src/lib/session/claude-session.js +39 -108
  797. package/dist/server/src/lib/session/current-output-builder.js +263 -4
  798. package/dist/server/src/lib/session/send-user-message.js +90 -2
  799. package/dist/server/src/lib/tmux/tmux.js +29 -0
  800. package/dist/server/src/lib/tui-accumulator.js +2 -8
  801. package/dist/server/src/lib/updates/agent-updater.js +373 -0
  802. package/dist/server/src/lib/updates/agent-versions.js +138 -0
  803. package/dist/server/src/lib/updates/codex-version.js +215 -0
  804. package/dist/server/src/lib/updates/index.js +42 -0
  805. package/dist/server/src/lib/verification/gate-runner.js +298 -37
  806. package/dist/server/src/lib/verification/machine-lock.js +11 -0
  807. package/dist/server/src/lib/verification/run-verdict-vocabulary.js +151 -0
  808. package/dist/server/src/lib/verification/verify-config.js +33 -0
  809. package/dist/server/src/lib/ws-server.js +143 -6
  810. package/dist/server/src/types/agent-transcript.js +241 -5
  811. package/dist/server/src/types/sidebar.js +40 -9
  812. package/dist/server/src/types/ui-state.js +24 -1
  813. package/dist/types/cli-tool-contracts.d.ts +119 -0
  814. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  815. package/package.json +1 -1
  816. package/public/sw.js +15 -1
  817. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +0 -1
  818. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +0 -1
  819. package/.next/server/chunks/1601.js +0 -7
  820. package/.next/server/chunks/1714.js +0 -7
  821. package/.next/server/chunks/221.js +0 -19
  822. package/.next/server/chunks/222.js +0 -1
  823. package/.next/server/chunks/2366.js +0 -1
  824. package/.next/server/chunks/2759.js +0 -8
  825. package/.next/server/chunks/3558.js +0 -1
  826. package/.next/server/chunks/4689.js +0 -25
  827. package/.next/server/chunks/5089.js +0 -1
  828. package/.next/server/chunks/6274.js +0 -14
  829. package/.next/server/chunks/9067.js +0 -1
  830. package/.next/server/chunks/9373.js +0 -9
  831. package/.next/server/chunks/9508.js +0 -1
  832. package/.next/static/Dvfs4ZThl5vBhJGP-ZQuJ/_buildManifest.js +0 -1
  833. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +0 -1
  834. package/.next/static/chunks/3922.0d2e64daf9f187da.js +0 -1
  835. package/.next/static/chunks/5229-580b581fce5aeb52.js +0 -1
  836. package/.next/static/chunks/6381-9a929249196a0e77.js +0 -1
  837. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +0 -1
  838. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +0 -1
  839. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +0 -1
  840. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +0 -1
  841. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +0 -1
  842. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +0 -1
  843. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +0 -1
  844. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +0 -1
  845. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +0 -1
  846. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +0 -1
  847. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +0 -1
  848. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +0 -1
  849. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +0 -1
  850. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +0 -1
  851. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +0 -1
  852. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +0 -1
  853. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +0 -1
  854. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +0 -1
  855. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +0 -1
  856. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +0 -1
  857. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +0 -1
  858. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +0 -1
  859. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +0 -1
  860. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +0 -1
  861. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +0 -1
  862. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +0 -1
  863. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +0 -1
  864. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +0 -1
  865. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +0 -1
  866. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +0 -1
  867. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  868. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +0 -1
  869. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +0 -1
  870. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +0 -1
  871. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +0 -1
  872. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +0 -1
  873. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +0 -1
  874. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +0 -1
  875. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +0 -1
  876. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +0 -1
  877. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +0 -1
  878. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +0 -1
  879. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +0 -1
  880. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +0 -1
  881. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +0 -1
  882. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +0 -1
  883. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +0 -1
  884. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +0 -1
  885. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +0 -1
  886. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +0 -1
  887. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +0 -1
  888. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +0 -1
  889. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +0 -1
  890. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +0 -1
  909. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +0 -1
  910. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +0 -1
  911. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +0 -1
  912. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +0 -1
  913. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +0 -1
  914. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +0 -1
  915. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +0 -1
  916. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +0 -1
  917. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +0 -1
  918. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +0 -1
  919. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +0 -1
  920. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +0 -1
  921. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +0 -1
  922. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +0 -1
  923. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +0 -1
  924. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +0 -1
  925. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +0 -1
  926. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +0 -1
  927. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +0 -1
  928. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +0 -1
  929. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +0 -1
  930. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +0 -1
  931. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +0 -1
  932. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +0 -1
  933. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +0 -1
  934. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +0 -1
  935. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +0 -1
  936. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +0 -1
  937. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +0 -1
  938. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +0 -1
  939. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +0 -1
  940. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +0 -1
  941. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +0 -1
  942. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +0 -1
  943. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +0 -1
  944. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +0 -1
  945. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +0 -1
  946. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +0 -1
  947. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +0 -1
  948. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +0 -1
  949. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +0 -1
  950. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +0 -1
  951. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +0 -1
  952. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +0 -1
  953. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +0 -1
  954. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +0 -1
  955. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +0 -1
  956. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +0 -1
  957. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +0 -1
  958. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +0 -1
  959. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +0 -1
  960. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  961. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +0 -1
  962. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +0 -1
  963. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +0 -1
  964. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +0 -1
  965. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +0 -1
  966. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +0 -1
  967. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +0 -1
  968. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +0 -1
  969. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +0 -1
  970. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +0 -1
  971. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +0 -1
  972. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +0 -1
  973. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +0 -1
  974. package/.next/static/chunks/app/sessions/page-4d5382b257077c14.js +0 -1
  975. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +0 -1
  976. package/.next/static/chunks/app/worktrees/[id]/page-817378dd7c580774.js +0 -1
  977. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +0 -1
  978. package/.next/static/css/6266bde3bce465a2.css +0 -1
  979. /package/.next/static/{Dvfs4ZThl5vBhJGP-ZQuJ → 7K0XXFu_ty4wRSkl4X21E}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":1,"files":["../../../../../../../data/cm.db","../../../../../../../locales/en/notifications.json","../../../../../../../locales/ja/notifications.json","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../scripts/hooks/cmate-agent-event.sh","../../../../../../package.json","../../../../../chunks/1058.js","../../../../../chunks/1191.js","../../../../../chunks/1331.js","../../../../../chunks/1356.js","../../../../../chunks/1503.js","../../../../../chunks/1601.js","../../../../../chunks/1634.js","../../../../../chunks/1714.js","../../../../../chunks/1719.js","../../../../../chunks/1886.js","../../../../../chunks/221.js","../../../../../chunks/2366.js","../../../../../chunks/2759.js","../../../../../chunks/2839.js","../../../../../chunks/3241.js","../../../../../chunks/406.js","../../../../../chunks/4299.js","../../../../../chunks/4689.js","../../../../../chunks/5017.js","../../../../../chunks/5164.js","../../../../../chunks/5220.js","../../../../../chunks/6065.js","../../../../../chunks/6274.js","../../../../../chunks/6337.js","../../../../../chunks/641.js","../../../../../chunks/6781.js","../../../../../chunks/7472.js","../../../../../chunks/7824.js","../../../../../chunks/7905.js","../../../../../chunks/8807.js","../../../../../chunks/9067.js","../../../../../chunks/9130.js","../../../../../chunks/9373.js","../../../../../chunks/9508.js","../../../../../chunks/9627.js","../../../../../chunks/9798.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
@@ -1,7 +0,0 @@
1
- "use strict";exports.id=1601,exports.ids=[1601],exports.modules={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)})}}},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(`
2
- INSERT INTO app_settings (key, value, created_at, updated_at)
3
- VALUES (?, ?, ?, ?)
4
- ON CONFLICT(key) DO UPDATE SET
5
- value = excluded.value,
6
- updated_at = excluded.updated_at
7
- `).run(f,JSON.stringify(b),c,c),b}},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}}};
@@ -1,7 +0,0 @@
1
- "use strict";exports.id=1714,exports.ids=[1714],exports.modules={2466:(a,b,c)=>{c.d(b,{ek:()=>h,u_:()=>g});var d=c(13287);function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a,b){if("string"!=typeof a)return null;let c=a.trim();return""===c?null:c.slice(0,b)}function g(a){if(!e(a)||!Array.isArray(a.questions)||0===a.questions.length||a.questions.length>20)return null;let b=[];for(let c of a.questions){let a=function(a){if(!e(a))return null;let b=f(a.question,1e3);if(null===b||!Array.isArray(a.options)||0===a.options.length||a.options.length>20)return null;let c=[];for(let b of a.options){let a=function(a){if(!e(a))return null;let b=f(a.label,200);return null===b?null:{label:b,description:f(a.description,500)}}(b);if(null===a)return null;c.push(a)}return{question:b,header:f(a.header,64),multiSelect:!0===a.multiSelect,choices:c}}(c);if(null===a)return null;b.push(a)}return b}function h(a){if(!e(a)||a.tool_name!==d.k$)return null;let b=g(a.tool_input);return null===b?null:{questions:b,promptId:f(a.prompt_id,256)}}},13602:(a,b,c)=>{c.d(b,{FN:()=>W,lf:()=>O,ym:()=>S,hS:()=>Q,f4:()=>R,wb:()=>N,bP:()=>U,yn:()=>P,H1:()=>T});var d=c(72626),e=c(24455),f=c(3161),g=c(48083),h=c(27939),i=c(62171),j=c(57510),k=c(49791);let l="\n\n_(truncated)_";function m(a,b,c){return{sessionId:a,userMessageId:b,parts:new Map,assistantMessageIds:new Set,startedAt:c,overflowed:!1}}function n(a,b){a.assistantMessageIds.add(b)}function o(a,b){return a.assistantMessageIds.has(b)}function p(a){if(!(0,j.Qd)(a))return null;let b=(0,j.O2)(a,"id"),c=(0,j.O2)(a,"messageID"),d=(0,j.O2)(a,"type");if(!b||!c||!d)return null;let e=(0,j.Qd)(a.state)?a.state:null;return{id:b,messageId:c,type:d,text:"string"==typeof a.text?a.text:null,tool:(0,j.O2)(a,"tool"),status:e?(0,j.O2)(e,"status"):null,title:e?(0,j.O2)(e,"title"):null,error:e?(0,j.O2)(e,"error")??(0,j.NZ)(e,["error","message"]):null}}function q(a,b){return!a.parts.has(b.id)&&a.parts.size>=512?(a.overflowed=!0,!1):(a.parts.set(b.id,b),!0)}let r=new Set(["step-start","step-finish","snapshot","patch"]);function s(a){return a.replace(/\s+/g," ").trim()}function t(a){let b=[],c=new Set,d=0,e=0;for(let f of a.parts.values()){if("text"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push(a),d+=1;continue}if("reasoning"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push(function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
2
- >
3
- ${b}`}(a));continue}if("tool"===f.type){if("pending"===f.status)continue;b.push(function(a){let b=a.tool??"tool",c=a.title??null,d="error"===a.status,e=`- \`${b}\`${c?` — ${s(c)}`:""}`;return d?a.error?`${e} _(error: ${s(a.error)})_`:`${e} _(error)_`:e}(f)),e+=1;continue}r.has(f.type)||c.add(f.type)}let f=function(a){let b="";for(let c=0;c<a.length;c+=1){if(0===c){b=a[c];continue}b+=a[c].startsWith("- `")&&a[c-1].startsWith("- `")?`
4
- ${a[c]}`:`
5
-
6
- ${a[c]}`}return b}(b);return f.length>2e5&&(f=f.slice(0,2e5-l.length)+l),{sessionId:a.sessionId,userMessageId:a.userMessageId,body:f,textParts:d,toolParts:e,unknownPartTypes:[...c]}}let u=(0,d.h)("lib/hooks/sources/opencode/history"),v=globalThis.__opencodeTranscripts??=new Map;function w(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function x(a){let b=w(a),c=v.get(b);return c||(c=new Map,v.set(b,c)),c}async function y(a,b){let c=v.get(w(a)),d=c?.get(b);return!!d&&!!c&&(c.delete(b),z(a,t(d),d.startedAt,"stream"))}async function z(a,b,d,e){let f=a.instanceId??a.cliToolId;try{var g;if(0===b.body.length)return u.info("opencode-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e}),!1;b.unknownPartTypes.length>0&&u.info("opencode-transcript-unknown-parts",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,partTypes:b.unknownPartTypes});let h=(g=b.userMessageId,`oc-turn:${g}`),[{getDbInstance:i},{createMessage:j,findMessageByRequestId:k},{broadcastMessage:l}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1503),c.e(4299),c.e(1719),c.e(2759)]).then(c.bind(c,95620))]),m=i();if(k(m,a.worktreeId,h))return u.debug("opencode-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:f,requestId:h,origin:e}),!1;let n=j(m,{worktreeId:a.worktreeId,role:"assistant",content:b.body,messageType:"normal",timestamp:new Date(d>0?d:Date.now()),cliToolId:a.cliToolId,instanceId:f,requestId:h});return l("message",{worktreeId:a.worktreeId,message:n}),u.info("opencode-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,requestId:h,origin:e,bodyLength:b.body.length,textParts:b.textParts,toolParts:b.toolParts}),!0}catch(c){return u.error("opencode-transcript-write-failed",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e,error:c instanceof Error?c.message:String(c)}),!1}}async function A(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=await (0,k.EI)(b,c);if(null===e)return u.info("opencode-transcript-backfill-unavailable",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c}),0;let f=function(a,b){if(!Array.isArray(a))return[];let c=new Map;for(let d of a){if(!(0,j.Qd)(d))continue;let a=(0,j.Qd)(d.info)?d.info:null;if(!a||"assistant"!==a.role)continue;let e=(0,j.O2)(a,"parentID");if(!e)continue;let f=function(a,b){let c=a;for(let a of b){if(!(0,j.Qd)(c))return null;c=c[a]}return"number"==typeof c&&Number.isFinite(c)?c:null}(a,["time","created"])??0,g=c.get(e);g||(g=m(b,e,f),c.set(e,g));let h=(0,j.O2)(a,"id");for(let a of(h&&n(g,h),Array.isArray(d.parts)?d.parts:[])){let b=p(a);b&&o(g,b.messageId)&&q(g,b)}}return[...c.values()]}(e,c),g=[...f].sort((a,b)=>b.startedAt-a.startedAt),h=g.slice(0,50);g.length>h.length&&u.warn("opencode-transcript-backfill-truncated",{worktreeId:a.worktreeId,instanceId:d,sessionId:c,examined:h.length,skipped:g.length-h.length,limit:50});let i=0;for(let b of[...h].reverse())await z(a,t(b),b.startedAt,"backfill")&&(i+=1);return u.info("opencode-transcript-backfill-done",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,turns:f.length,written:i}),i}catch(e){return u.error("opencode-transcript-backfill-failed",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,error:e instanceof Error?e.message:String(e)}),0}}var B=c(75356),C=c(98211),D=c(90488),E=c(84574);function F(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["sessionID"])}function G(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}let H=(0,d.h)("lib/hooks/sources/opencode/subscription"),I=[1e3,2e3,4e3,8e3,15e3,3e4],J=globalThis.__opencodeSubscriptions??=new Map,K=globalThis.__opencodeDroppedLiveness??=new Map,L=globalThis.__opencodeProbedActivity??=new Map;function M(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function N(a){return J.has(M(a))}function O(a){let b=M(a);return J.get(b)?.liveness??K.get(b)??{state:"unknown"}}function P(a,b,c){L.set(M(a),{activity:b,at:c})}function Q(a){return L.get(M(a))??null}function R(a){return"live"===O(a).state}function S(a){return J.get(M(a))?.gate.primarySession()??null}function T(a,b,c){let d=J.get(M(a));if(!d)return{seen:Promise.resolve(!1),cancel:()=>{}};let e=()=>{},f=new Promise(a=>{e=a}),g=d.idleWaiters.get(b)??new Set;d.idleWaiters.set(b,g);let h=null,i=a=>{g.delete(i)&&(0===g.size&&d.idleWaiters.delete(b),null!==h&&clearTimeout(h),e(a))};return g.add(i),h=setTimeout(()=>i(!1),c),h.unref?.(),{seen:f,cancel:()=>i(!1)}}async function U(a,b,c,d={}){let e=M(a),f=J.get(e);if(f)return V(f);K.delete(e),L.delete(e);let g=d.port??(0,E.hC)(a);if(null===g)return H.info("opencode-subscription-skipped-no-port",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),{close:async()=>{},liveness:{state:"unknown"}};let h={key:e,target:a,port:g,onEvent:b,normalize:c,gate:function(a=64,b=512,c=64){let d=new Map,e=new Set,f=new Set,g=null,h=(b,c)=>{d.delete(b),d.set(b,c),G(d,a)},i=()=>null!==g&&"busy"===d.get(g),k=a=>{var b;h(a,"busy"),b=a,!f.has(b)&&g!==b&&(i()||(g=b))};return{observe(a,l){let m=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{},c=(0,j.Qd)(b.info)?b.info:null;return null!==c&&(0,j.NZ)(c,["parentID"])?(0,j.NZ)(c,["id"])??(0,j.NZ)(b,["sessionID"]):null}(l);if(null!==m&&(f.add(m),G(f,c),g===m&&(g=null)),"message.updated"===a){let{role:a,id:c}=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return{role:(0,j.NZ)(b,["info","role"]),id:(0,j.NZ)(b,["info","id"])}}(l);if("user"!==a||null===c)return{kind:"ignored"};let d=F(l)??"";return e.has(c)?{kind:"suppressed",sessionId:d,reason:"already-announced"}:(e.add(c),G(e,b),{kind:"announced",sessionId:d,messageId:c})}if("session.status"===a){if("busy"!==function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["status","type"])}(l))return{kind:"ignored"};let a=F(l);return null===a?{kind:"ignored"}:(k(a),{kind:"armed",sessionId:a})}if("session.error"===a){let a=F(l);return null===a?{kind:"ignored"}:{kind:"failed",sessionId:a,errorName:function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["error","name"])}(l)}}if("session.idle"!==a)return{kind:"ignored"};let n=F(l);if(null===n)return{kind:"ignored"};if(f.has(n)||null!==g&&n!==g&&i())return h(n,"idle"),{kind:"suppressed",sessionId:n,reason:"foreign-session"};let o=d.get(n);return void 0===o?{kind:"suppressed",sessionId:n,reason:"never-armed"}:"idle"===o?{kind:"suppressed",sessionId:n,reason:"already-completed"}:(h(n,"idle"),{kind:"completed",sessionId:n})},isArmed:a=>"busy"===d.get(a),arm(a){k(a)},armedSessions:()=>[...d.entries()].filter(([,a])=>"busy"===a).map(([a])=>a),primarySession:()=>g,reset(){d.clear(),g=null}}}(),resync:d.resync??"none",seenDecisions:new Set,idleWaiters:new Map,announcedUpdates:new Set,streamController:new AbortController,lifetimeController:new AbortController,serverVersion:null,liveness:{state:"unknown"},closed:!1,watchdog:null};return J.set(e,h),H.info("opencode-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:g}),Z(h),V(h)}function V(a){return{close:async()=>{await W(a.target)},get liveness(){return a.liveness}}}async function W(a){let b=M(a);K.delete(b),L.delete(b);let c=J.get(b);if(c){for(let a of(c.closed=!0,X(c),[...c.idleWaiters.values()]))for(let b of[...a])b(!1);c.idleWaiters.clear(),c.streamController.abort(),c.lifetimeController.abort(),J.delete(b),(0,f.cI)(a),v.delete(w(a)),(0,i.WC)(a),H.info("opencode-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port})}}function X(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function Y(a){X(a);let b=setTimeout(()=>{a.closed||(H.warn("opencode-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:3e4}),a.streamController.abort())},3e4);b.unref?.(),a.watchdog=b}async function Z(a){let b=0;for(;!a.closed;){a.streamController=new AbortController;let c=a.gate.armedSessions();a.gate.reset();let d="stream-ended";try{let e=await $(a);if(a.closed)break;if("changed"===e)return;if("unreachable"===e)d="health-unreachable";else{let d=await (0,k.mi)(a.port,a.streamController.signal);for await(let e of(a.liveness={state:"live",lastHeartbeatAt:Date.now()},Y(a),await _(a),await aa(a,c),await ab(a),b=0,d))b=0,Y(a),function(a,b){let c=(0,j.O2)(b,"type");("server.heartbeat"===c||"server.connected"===c)&&(a.liveness={state:"live",lastHeartbeatAt:Date.now()}),ac(a,b,Date.now())}(a,e)}}catch(a){d=a instanceof Error?a.message:String(a)}finally{X(a)}if(a.closed)break;a.liveness={state:"lost",since:Date.now(),reason:d},H.warn("opencode-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:d,attempt:b}),await function(a,b){return new Promise(c=>{if(b.aborted)return void c();let d=()=>{clearTimeout(e),c()};b.addEventListener("abort",d,{once:!0});let e=setTimeout(()=>{b.removeEventListener("abort",d),c()},a);e.unref?.()})}(function(a){let b=Math.min(a,I.length-1);return I[b]}(b),a.lifetimeController.signal),b+=1}}async function $(a){var b,c;let d=await (0,k.sc)(a.port);if("healthy"!==d.kind)return H.info("opencode-subscription-health-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,outcome:d.kind,status:"rejected"===d.kind?d.status:void 0}),"unreachable";let e=d.health.version;return null===a.serverVersion||null===e?(a.serverVersion??=e,"same"):e===a.serverVersion?"same":(b=a,c=e,H.warn("opencode-subscription-port-identity-changed",{worktreeId:b.target.worktreeId,instanceId:b.target.instanceId??b.target.cliToolId,port:b.port,reason:"port_identity_changed",expectedVersion:b.serverVersion,observedVersion:c}),b.closed=!0,X(b),b.streamController.abort(),b.lifetimeController.abort(),b.liveness={state:"lost",since:Date.now(),reason:"port_identity_changed"},J.delete(b.key),K.set(b.key,b.liveness),"changed")}async function _(a){let b=Date.now(),[c,d]=await Promise.all([(0,k.Li)(a.port),(0,k.er)(a.port)]),e=(c,d)=>{let e=c.slice(0,50);for(let f of(c.length>e.length&&H.warn("opencode-resync-truncated",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,type:d,examined:e.length,skipped:c.length-e.length,limit:50}),e)){let c=(0,j.O2)(f,"id");!c||a.seenDecisions.has(c)||ac(a,{id:`resync_${c}`,type:d,properties:f},b)}};e(c,"permission.asked"),e(d,"question.asked")}async function aa(a,b){if("session-status-poll"!==a.resync)return;let c=await (0,k.mY)(a.port);if(null===c)return void H.info("opencode-resync-status-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port});let d=[];for(let[b,e]of Object.entries(c))"busy"===e&&(a.gate.arm(b),d.push(b));let e=[];for(let d of b)"idle"===c[d]&&(a.gate.arm(d),e.push(d),ac(a,{id:`resync_idle_${d}`,type:"session.idle",properties:{sessionID:d}},Date.now()));(d.length>0||e.length>0)&&H.info("opencode-turn-state-recovered",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,rearmed:d,synthesized:e,primarySession:a.gate.primarySession()})}async function ab(a){try{let b=(0,h.KA)(a.target)?.sessionId??null,c=a.gate.primarySession()??b;if(!c)return;await A(a.target,a.port,c)}catch(b){H.warn("opencode-history-recovery-failed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,error:b instanceof Error?b.message:String(b)})}}function ac(a,b,c){var d,e;let h=(0,j.O2)(b,"type");if("message.part.updated"===h){let a=(0,B.Zu)(b),c=(0,B.Dp)(b);a&&c&&(0,C.XL)(a,c)}if("session.updated"===h){let d=(0,f.Tv)(b,c);d&&(0,f.G1)(a.target,d)}if(("session.updated"===h||"message.updated"===h)&&(0,g.In)(a.target.worktreeId,a.target.cliToolId,a.target.instanceId,(0,B.Jd)(b)),("message.updated"===h||"message.part.updated"===h)&&function(a,b,c){try{let d=(0,j.O2)(b,"type"),e=(0,j.Qd)(b.properties)?b.properties:{},f=(0,j.O2)(e,"sessionID");if(!f)return;if("message.updated"===d){let b=(0,j.Qd)(e.info)?e.info:null;if(!b||"assistant"!==b.role)return;let d=(0,j.O2)(b,"parentID");if(!d)return;let g=x(a),h=g.get(f),i=h?.userMessageId===d?h:m(f,d,c);if(i!==h)for(h&&u.info("opencode-transcript-turn-superseded",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,abandoned:h.userMessageId}),g.set(f,i);g.size>16;){let b=g.keys().next();if(b.done)break;g.delete(b.value),u.info("opencode-transcript-turn-evicted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:b.value,reason:"max-open-turns"})}let k=(0,j.O2)(b,"id");k&&n(i,k);return}if("message.part.updated"!==d)return;let g=p(e.part);if(!g)return;let h=x(a).get(f);if(!h||!o(h,g.messageId))return void u.debug("opencode-transcript-part-unattached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type,reason:h?"foreign-message":"no-open-turn"});q(h,g)||u.warn("opencode-transcript-turn-overflow",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type})}catch(b){u.error("opencode-transcript-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}(a.target,b,c),("session.diff"===h||"session.updated"===h||"message.updated"===h)&&(0,i.hf)(a.target,b,c),"installation.update-available"===h&&function(a,b,c){let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"version");if(e){if(a.announcedUpdates.has(e))return H.info("opencode-update-available-repeat-dropped",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e});a.announcedUpdates.add(e),H.info("opencode-update-available",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e}),(0,D.BF)(a.target,a.target.instanceId??a.target.cliToolId,e,c)}}(a,b,c),"session.idle"===h){let c=(0,j.O2)((0,j.Qd)(b.properties)?b.properties:{},"sessionID");if(c){let b=a.idleWaiters.get(c);if(b)for(let a of[...b])a(!0);y(a.target,c)}}let k=a.gate.observe(h,b);"failed"===k.kind&&H.warn("opencode-session-error",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:k.sessionId,errorName:k.errorName});let l=null;try{l=a.normalize({payload:b,receivedAt:c})}catch(a){H.error("opencode-normalize-threw",{type:h,error:a instanceof Error?a.message:String(a)});return}if(!l)return;let r=(d=l.event,e=k,"stop"===d&&"completed"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-turn-end":"user_prompt_submit"===d&&"announced"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-new-prompt":null);if(null!==r)return void H.info("opencode-repeat-suppressed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:l.conversationId,event:l.event,reason:r});!function(a,b){let c=(0,j.O2)(b,"type");if("permission.asked"!==c&&"question.asked"!==c)return;let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"id");if(e)for(a.seenDecisions.add(e);a.seenDecisions.size>256;){let b=a.seenDecisions.values().next();if(b.done)break;a.seenDecisions.delete(b.value)}}(a,b);try{a.onEvent(l)}catch(a){H.error("opencode-event-handler-failed",{type:h,error:a instanceof Error?a.message:String(a)})}}},18529:(a,b,c)=>{c.d(b,{$x:()=>s,Lj:()=>t,Q1:()=>r,QH:()=>u});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(43252),k=c(79827);let l=(0,i.h)("lib/hooks/sources/opencode/launch-settings"),m=globalThis.__opencodeLaunchSettings??=new Map;function n(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function o(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-launch-settings.json");return(0,g.T)(process.env.CM_OPENCODE_LAUNCH_SETTINGS_FILE,a,"CM_OPENCODE_LAUNCH_SETTINGS_FILE")}function p(){try{let a=JSON.parse((0,d.readFileSync)(o(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,k.ZH)(d);(0,k.Mj)(a)&&(b[c]=a)}return b}catch{return{}}}function q(a){let b=o();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
7
- `,{mode:384})}catch(a){l.warn("opencode-launch-settings-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function r(a){let b=n(a),c=m.get(b);if(c)return c;let d=p()[b];return d?(m.set(b,d),d):{...k.gF}}function s(a,b){let c=n(a),d=(0,k.ZH)(b??{}),e=p();return(0,k.Mj)(d)?(m.set(c,d),e[c]=d,q(e)):(m.delete(c),c in e&&(delete e[c],q(e))),d}function t(a){let b=(0,k.ZH)(a??{}),c=[];b.agent&&c.push(`--agent ${(0,j.ZL)(b.agent)}`);let d=(0,k.sw)(b);return d&&c.push(`--model ${(0,j.ZL)(d)}`),c.length>0?` ${c.join(" ")}`:""}function u(a){let b=(0,k.ZH)(a??{}),c={};return b.agent&&(c.agent=b.agent),b.providerId&&b.modelId&&(c.model={providerID:b.providerId,modelID:b.modelId}),b.variant&&(c.variant=b.variant),Object.keys(c).length>0?c:null}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62171:(a,b,c)=>{c.d(b,{HL:()=>q,WC:()=>r,hf:()=>p,ki:()=>u,pw:()=>v,rn:()=>s,t2:()=>t});var d=c(72626),e=c(24455),f=c(85322),g=c(84574),h=c(49791);let i=(0,d.h)("lib/hooks/sources/opencode/diff"),j=globalThis.__opencodeSessionDiff??(globalThis.__opencodeSessionDiff=new Map),k=globalThis.__opencodeSessionDiffRefreshes??(globalThis.__opencodeSessionDiffRefreshes=new Set);function l(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function m(a){return{sessionId:null,turnMessageId:null,files:[],filesAt:null,revertedFiles:[],revertedMessageId:null,at:a}}function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a,b){let c=a[b];return"string"!=typeof c||0===c.length?null:c.slice(0,128)}function p(a,b,c){let d=l(a),e=j.get(d)??m(c),f=function(a){if("message.updated"!==a.type)return null;let b=n(a.properties)?a.properties:null,c=b&&n(b.info)?b.info:null;if(!c||"user"!==c.role)return null;let d=o(c,"id");return d?{sessionId:o(c,"sessionID"),messageId:d}:null}(b);if(f){if(f.messageId===e.turnMessageId)return;j.set(d,{...e,sessionId:f.sessionId??e.sessionId,turnMessageId:f.messageId,files:[],filesAt:null,at:c});return}let g=function(a){let b=a.type,c=n(a.properties)?a.properties:null;if(!c)return null;if("session.diff"===b)return{kind:"files",sessionId:o(c,"sessionID"),files:(0,h.M)(c.diff)};if("session.updated"===b){let a=n(c.info)?c.info:null;if(!a||"string"==typeof a.parentID&&a.parentID.length>0)return null;let b=n(a.revert)?a.revert:null;return{kind:"held",sessionId:o(a,"id"),messageId:b?o(b,"messageID"):null}}return null}(b);if(g){if("files"===g.kind)return void j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedFiles:g.files,at:c});j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedMessageId:g.messageId,revertedFiles:null===g.messageId?[]:e.revertedFiles,at:c})}}function q(a,b,c){return b!==f.k?null:j.get((0,e.v7)(a,b,c))??null}function r(a){let b=l(a);j.delete(b),k.delete(b)}function s(a){if(a.cliToolId!==f.k)return null;let b=l(a),c=j.get(b);if(!c)return null;if(null!==c.filesAt||null===c.sessionId||null===c.turnMessageId||k.has(b))return c;let d=(0,g.hC)(a);return null===d||(k.add(b),t(a,d,c.sessionId,c.turnMessageId).finally(()=>{k.delete(b)})),c}async function t(a,b,c,d){let e=await (0,h.iv)(b,c,d);if(null===e)return i.debug("opencode-turn-diff-unavailable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:c}),null;let f=l(a),g=j.get(f);return g&&g.turnMessageId===d&&j.set(f,{...g,files:e,filesAt:Date.now()}),e}function u(a,b,c){let d=l(a),e=Date.now(),f=j.get(d)??m(e);j.set(d,{...f,revertedMessageId:b,revertedFiles:c,at:e})}function v(a,b){let c=q(a,f.k,b);if(!c)return null;let d=new Set;for(let a of[...c.files,...c.revertedFiles])null!==a.file&&d.add(a.file);let e=[...c.files,...c.revertedFiles].filter(a=>null===a.file).length;return d.size+e}},75356:(a,b,c)=>{c.d(b,{C8:()=>h,Dp:()=>o,Jd:()=>l,Mn:()=>q,Tm:()=>g,Zu:()=>p,aF:()=>f,lu:()=>t,oG:()=>r,pV:()=>k,vE:()=>i});var d=c(62887),e=c(57510);let f="permission_prompt",g="question_prompt",h=d.KC,i="error";function j(a){return(0,e.Qd)(a.properties)?a.properties:{}}function k(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","modelID"])??(0,e.NZ)(b,["model","id"]):null}function l(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","variant"])??(0,e.NZ)(b,["variant"]):null}function m(a){return(0,e.NZ)(j(a),["part","state","status"])}function n(a){return"tool"===(0,e.NZ)(j(a),["part","type"])}function o(a){return(0,e.NZ)(j(a),["part","tool"])}function p(a){return(0,e.NZ)(j(a),["part","callID"])}function q(a){return(0,e.NZ)(j(a),["requestID"])}function r(a){let b=j(a);switch((0,e.NZ)(a,["type"])){case"permission.asked":case"question.asked":return(0,e.hY)((0,e.NZ)(b,["id"]));case"permission.replied":return(0,e.hY)(q(a));case"message.updated":return(0,e.hY)((0,e.NZ)(b,["info","id"]));case"message.part.updated":return(0,e.hY)(p(a));default:return null}}let s=["completed","error"],t=[(0,e.KR)("session.idle","stop"),(0,e.KR)("session.created","session_start"),(0,e.KR)("session.deleted","session_end"),(a,b)=>"message.updated"===a&&"user"===(0,e.NZ)(j(b),["info","role"])?{event:"user_prompt_submit"}:null,(a,b)=>"message.part.updated"===a&&n(b)&&"running"===m(b)?{event:"pre_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(a,b)=>"message.part.updated"===a&&n(b)&&s.includes(m(b)??"")?{event:"post_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(0,e.KR)("permission.asked","notification",f),(0,e.KR)("question.asked","notification",g),(0,e.KR)("session.error","notification",i),(0,e.KR)("permission.replied","notification",h)].map(function(a){return(b,c)=>{let d=a(b,c);return d?{...d,conversationId:d.conversationId??(0,e.NZ)(j(c),["sessionID"])}:null}})},90488:(a,b,c)=>{c.d(b,{BF:()=>j,Vo:()=>h,dJ:()=>i});let d=(0,c(72626).h)("lib/hooks/sources/opencode/push");async function e(a){try{let[{getDbInstance:b},{getWorktreeById:d}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]);return d(b(),a)?.name??a}catch{return a}}async function f(){return Promise.all([c.e(1356),c.e(1191)]).then(c.bind(c,61191))}async function g(a,b){return{worktreeId:a.worktreeId,worktreeName:await e(a.worktreeId),instanceId:b}}async function h(a,b,c,e){try{let{notifyPushSubscribers:h,buildExcerpt:i}=await f(),j=await g(a,b);await h({...j,kind:"prompt",agentName:b,waitingKind:"prompt",waitingSince:e,excerpt:i(c??void 0,80)},e),d.info("opencode-question-push-sent",{worktreeId:a.worktreeId,instanceId:b,hasQuestion:null!==c})}catch(c){d.warn("opencode-question-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function i(a,b,c,e,h,i){if("MessageAbortedError"===c)return void d.info("opencode-error-push-skipped-interrupt",{worktreeId:a.worktreeId,instanceId:b,errorName:c});try{let{notifyPushSubscribers:j,buildExcerpt:k}=await f(),l=await g(a,b);await j({...l,kind:"failure",agentName:b,excerpt:k(e??void 0,80),failure:{reason:"agent-session-error",signature:`opencode:session-error:${h??"unknown"}:${c??"unknown"}`}},i),d.info("opencode-error-push-sent",{worktreeId:a.worktreeId,instanceId:b,errorName:c,sessionId:h})}catch(c){d.warn("opencode-error-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function j(a,b,c,e){try{let{notifyPushSubscribers:h}=await f(),i=await g(a,b);await h({...i,kind:"completion",agentName:b,excerpt:c,updateAvailable:{agent:b,version:c}},e),d.info("opencode-update-push-sent",{worktreeId:a.worktreeId,instanceId:b,version:c})}catch(c){d.warn("opencode-update-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}},98211:(a,b,c)=>{c.d(b,{AB:()=>m,FZ:()=>i,LF:()=>l,Lu:()=>k,XL:()=>g,v1:()=>j});var d=c(2466),e=c(57510);let f=globalThis.__opencodeToolCallNames??=new Map;function g(a,b){for(f.delete(a),f.set(a,b);f.size>256;){let a=f.keys().next();if(a.done)break;f.delete(a.value)}}function h(a){return"string"==typeof a.type&&(0,e.Qd)(a.properties)?a.properties:a}function i(a){var b;let c=h(a),d=(0,e.O2)(c,"id"),g=(0,e.O2)(c,"sessionID");if(!d||!g||Array.isArray(c.questions))return null;let i=(0,e.O2)(c,"permission"),j=(0,e.Qd)(c.metadata)?c.metadata:{};return{toolName:((b=(0,e.NZ)(c,["tool","callID"]))?f.get(b)??null:null)??i??"permission",toolInput:{permission:i,patterns:Array.isArray(c.patterns)?c.patterns:[],...j},promptId:d,sessionId:g,permissionMode:null,permissionSuggestions:Array.isArray(c.always)?c.always:null}}function j(a){let b=h(a),c=(0,e.O2)(b,"id");if(!c)return null;let f=(0,d.u_)({questions:b.questions});return null===f?null:{questions:f,promptId:c}}function k(a,b){let c=i(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function l(a,b){let c=k(a,b);if(!c||"permission"!==c.subject.kind)return null;let d=c.subject.toolInput.patterns;return{toolName:c.subject.toolName,patterns:Array.isArray(d)?d:[]}}function m(a,b){let c=h(a),d=(0,e.O2)(c,"id"),f=j(a);return d&&f?{kind:"question",id:d,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:f},raw:a,askedAt:b}:null}}};
@@ -1,19 +0,0 @@
1
- "use strict";exports.id=221,exports.ids=[221,9508],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(85164);function e(a){let b=(0,d.x7)(a),c=(0,d.M4)(a,b);return{chromeStart:b,echoEnd:c,start:c+1,end:b>=0?b:a.length,headTruncated:c<0}}function f(a){let b=a.split("\n"),c=e(b.map(d.aJ));return c.start>=c.end?"":b.slice(c.start,c.end).join("\n")}function g(a){let b=a.split("\n"),c=e(b),f=c.start>=c.end?"":b.slice(c.start,c.end).join("\n");return d.$t.test(f)&&!d.kD.test(a)&&!d.Ty.test(a)}function h(a,b,c,d,e,f=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||f){let a=e(b);return a>=0?a+1:0}if("antigravity"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},8988:(a,b,c)=>{c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},13033:(a,b,c)=>{c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(85164);let e=new Map;function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n");if((0,d.gT)(b))return[];let c=(0,d.wv)(b),e=c>=0?b.slice(0,c):b,f=[],g=!1;for(let a of e){if(d.JN.test(a)){g=!1;continue}if(d.y.test(a))g=!0;else if(g){if(d.Fg.test(a))continue;g=!1}let b=h(a);b&&(d.J7.some(a=>a.test(b))||f.push(b))}return f}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},18778:(a,b,c)=>{c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.getLastUserMessage)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},21684:(a,b,c)=>{c.d(b,{U:()=>h});var d=c(33873),e=c.n(d),f=c(87447),g=c(8004);function h(){let a=e().join(process.cwd(),"data","logs");return(0,g.T)((0,f._p)("CM_LOG_DIR"),a,"CM_LOG_DIR")}},41364:(a,b,c)=>{c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
2
-
3
- Created: ${i}
4
-
5
- ---
6
-
7
- `}j+=`## Conversation at ${i}
8
-
9
- `,j+=`### User
10
-
11
- `,j+=`${b}
12
-
13
- `;let o=(0,k.hR)(d)?k.ef[d]:d;return j+=`### ${o}
14
-
15
- `,j+=`${c}
16
-
17
- `,j+=`---
18
-
19
- `,await e().writeFile(f,j,"utf-8"),f}async function o(a,b="all"){let c="all"===b?[...k.XH]:[b],d=[];for(let b of c){await m(b);let c=l(b);try{let b=(await e().readdir(c)).filter(b=>b.startsWith(`${a}-`)&&b.endsWith(".md")).map(a=>g().join(c,a));d.push(...b)}catch{}}return d.sort().reverse()}(0,j.h)("log-manager")},45146:(a,b,c)=>{c.d(b,{Et:()=>s,KQ:()=>u,MN:()=>o,SI:()=>l,fq:()=>t,g8:()=>p,sR:()=>w});var d=c(72626),e=c(13033),f=c(72457),g=c(71080),h=c(44321),i=c(80972),j=c(99508);let k=(0,d.h)("response-poller"),l=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],m=new Map,n=new Map;function o(a,b,c){return`${a}:${c??b}`}function p(a,b,c){let d=o(a,b,c);s(a,b,c),n.set(d,Date.now()),("opencode"===b||"copilot"===b)&&(0,e.tb)(d),q(a,b,c)}function q(a,b,c){let d=o(a,b,c),e=setTimeout(async()=>{let e=n.get(d);if(e&&Date.now()-e>18e5)return void s(a,b,c);try{await (0,i.zX)(a,b,c)}catch(a){k.error("error:",{error:a instanceof Error?a.message:String(a)})}(0,j.broadcastTerminalSnapshot)(a,b,c),m.has(d)&&q(a,b,c)},2e3);m.set(d,e)}function r(a){let b=m.get(a);b&&(clearTimeout(b),m.delete(a),n.delete(a)),(0,e.q1)(a),(0,f.iX)(a),(0,g.L1)(a)}function s(a,b,c){r(o(a,b,c))}function t(){for(let a of Array.from(m.keys()))r(a)}function u(){return Array.from(m.keys())}function v(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function w(a,b){let c=new Map;for(let{oldId:b,newId:d}of a)b&&d&&b!==d&&c.set(b,d);if(0===c.size)return[];let d=[],i=[];for(let a of Array.from(m.keys())){let e=v(a);if(!e)continue;let f=c.get(e.worktreeId);if(!f)continue;let g=b(e.worktreeId,e.instanceId);if(!g){i.push(a);continue}d.push({oldKey:a,newKey:o(f,g,e.instanceId),newWorktreeId:f,cliToolId:g,instanceId:e.instanceId})}let j=new Map;for(let a of d){let b=m.get(a.oldKey);b&&clearTimeout(b),m.delete(a.oldKey),j.set(a.newKey,{startedAt:n.get(a.oldKey)}),n.delete(a.oldKey),(0,f.i2)(a.oldKey,a.newKey),(0,g.Re)(a.oldKey,a.newKey);let c=v(a.oldKey);c&&(0,h.fL)(c.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,e.q1)(a.oldKey)}for(let a of i)r(a),k.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;n.set(a.newKey,b??Date.now()),("opencode"===a.cliToolId||"copilot"===a.cliToolId)&&(0,e.tb)(a.newKey),q(a.newWorktreeId,a.cliToolId,a.instanceId)}return d}},71080:(a,b,c)=>{c.d(b,{L1:()=>g,Re:()=>h,j7:()=>f});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}},72457:(a,b,c)=>{c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}function i(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},80972:(a,b,c)=>{c.d(b,{zX:()=>L,z$:()=>K});var d=c(31766),e=c(88807),f=c(56791),g=c(95620),h=c(26895),i=c(18778),j=c(15194),k=c(8988),l=c(85164),m=c(72626),n=c(46423),o=c(93997),p=c(60),q=c(82450),r=c(56263),s=c(13033),t=c(72457),u=c(44321),v=c(71080),w=c(13602);let x=(0,m.h)("lib/polling/structured-history-gate");var y=c(45146),z=c(91601),A=c(92010),B=c(81099),C=c(63209),D=c(73478),E=c(57836),F=c(52767);let G=(0,m.h)("response-poller");function H(a){return{response:"",isComplete:!1,lineCount:a}}function I(a,b,c,d,e,f,g,h=!1){let i=(0,p.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,l.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function J(a,b){let c=(0,l.KO)(b);return(0,h.gF)((0,l._A)((0,l.aJ)(a)),c)}function K(a,b,c,d=o.xE){let e=a.split("\n"),f=e.length;for(;f>0&&""===e[f-1].trim();)f--;let g=e.slice(0,f),h=g.length,i=(0,o.sl)(e.length,d),j="opencode"===c?g.map(l.aJ):null,k="claude"===c?(0,l.GT)(g):"copilot"===c?(0,l.wv)(g):j?(0,l.x7)(j):-1,m=k>=0?k:h,q=h>0&&b>25&&h+25<b,r=h>0&&b>50&&h<50,s=q||r;if(!s&&h<b-5)return null;let t=Math.max(0,h-20),u=g.slice(t),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:z,skipPatterns:A}=(0,l._X)(c),B=(a=60)=>{let b;if("codex"===c)b=/^›\s+(?!Implement|Find and fix|Type|Summarize)/;else if(j)return(0,p.V0)(j).echoEnd;else if("copilot"===c){for(let b=m-1;b>=Math.max(0,m-a);b--){if(!l.y.test((0,l.aJ)(g[b])))continue;let a=b;for(;a+1<m&&l.Fg.test((0,l.aJ)(g[a+1]));)a++;return a}return -1}else b=/^[>❯]\s+\S/;for(let c=m-1;c>=Math.max(0,m-a);c--){let a=(0,l.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c){let a=J(g.join("\n"),c);if(a.isPrompt)return I(g,b,h,s,c,B,a,i)}let C=(0,l.aJ)(v),D=w.test(C),E=x.test(C),F="codex"===c?(0,l.DR)(g,20):z.test(C),G="copilot"===c?(0,l.Wn)(g.slice(Math.max(0,h-8)).map(l.aJ)):null,L="copilot"===c?"idle"===G:("codex"===c||"gemini"===c||"vibe-local"===c||"antigravity"===c)&&D&&!F,M="claude"===c&&D&&E&&!F,N="opencode"===c&&(0,p.bE)(C);if(L||M||N){let a=[],d=(0,p.QM)(b,h,s,c,B,i),e=h;for(let b=d;b<m;b++){let d=g[b],f=(0,l.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&k<0&&(l.sy.test(f)||l.uA.test(f))){e=b;break}A.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),o=f.split("\n").slice(-n.$).join("\n");if("copilot"!==c&&z.test(o))return H(h);if("claude"===c){let a=(0,l.aJ)(f),b=/[╭╮╰╯│]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code|claude\/|v\d+\.\d+/.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=a.match(/^[>❯]\s+(\S.*)$/m);if(g){let b=a.indexOf(g[0]);if(0===a.substring(b+g[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!A.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return H(h)}else if((b||c||d||e)&&f.length<2e3)return H(h)}if("copilot"===c){let a=(0,l.aJ)(f);if(!a.split("\n").some(a=>l.y.test(a))&&l.E0.some(b=>b.test(a)))return H(h)}if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||y.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return H(h);if("opencode"===c){let a=(0,l.aJ)(f);if((a.length<50||!l.Md.test(C))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!l.sx.some(a=>a.test(b))}).length)return H(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:s,captureWindowSaturated:i,turnHeadTruncated:j?(0,p.V0)(j).headTruncated:void 0}}if("opencode"!==c){let a=J(g.join("\n"),c);if(a.isPrompt)return I(g,b,h,s,c,B,a,i)}let O=[],P=s||i||b>=h-5,Q=P?B(80):-1,R=P?Q>=0?Q+1:Math.max(0,h-80):Math.max(0,b);for(let a=R;a<Math.min(h,m);a++){let b=g[a],c=(0,l.aJ)(b);A.some(a=>a.test(c))||O.push(b)}let S=O.join("\n").trim();return S?{response:S,isComplete:!1,lineCount:h}:H(h)}async function L(a,b,c){let h=(0,e.getDbInstance)(),m=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return G.error("worktree-worktreeid-not"),(0,y.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return G.info("session-not-running"),(0,y.Et)(a,b,c),!1;let D=(0,f.getSessionState)(h,a,m),H=D?.lastCapturedLine||0,I=await (0,d.Wh)(a,b,o.xE,c),L=I.split("\n").slice(-100).join("\n"),M=(0,C.bT)(L);if((0,B.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:M?.fault.id??null,matchedText:M?.matchedText}).catch(()=>{}),"opencode"===b||"copilot"===b){let d=(0,y.MN)(a,b,c),e="opencode"===b?(0,p.ZX)(I):I;(0,s.IZ)(d,e,b)}let N=K(I,H,b,o.xE);if(!N||!N.isComplete){let{thinkingPattern:c}=(0,l._X)(b),d=(0,l.aJ)(I).split("\n").slice(-n.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&G.info("marked-answeredcount-pending"),!1}let O="opencode"===b||"copilot"===b,P=!(0,j.VA)(b)&&!N.captureWindowSaturated;if(P&&!N.bufferReset&&N.lineCount===H&&!D?.inProgressMessageId)return!1;if(P&&!N.bufferReset&&N.lineCount<=H)return G.info("already-saved-up-to-line-lastcapturedlin"),!1;let Q=N.promptDetection??J(N.response,b);if(Q.isPrompt){let d=Q.rawContent||Q.cleanContent,i=(0,y.MN)(a,b,c),j=(0,t.zm)(d,b);if((0,t.gv)(i,j))return(0,u.LN)(a,b,c),G.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,q.LH)(d),k=(0,q.Sj)(k,r.Rf,r.ky)),(0,f.clearInProgressMessageId)(h,a,b,m);let l=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:Q.promptData,timestamp:new Date,cliToolId:b,instanceId:m});(0,f.updateSessionState)(h,a,b,N.lineCount,m),(0,g.broadcastMessage)("message",{worktreeId:a,message:l}),(0,F.r)(h,a,b,m,"prompt_detected",{promptType:Q.promptData?.type});let n=Date.now(),o=(0,E.Jp)(a,b,c)?.since??n;return(0,A.R)({worktreeId:a,cliToolId:b,instanceId:c,waitingSince:o})||(0,z.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:m,instanceId:m,waitingKind:"prompt",waitingSince:o,excerpt:Q.promptData?.question??k}).catch(()=>{}),(0,E.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:n}),O||(0,y.Et)(a,b,c),!0}if(!N.response||""===N.response.trim())return(0,f.updateSessionState)(h,a,b,N.lineCount,m),!1;let R="claude"===b?(0,k.R)(N.response):void 0,S=N.response;if("gemini"===b)S=(0,q.IS)(N.response);else if("claude"===b)S=(0,q.NN)(N.response);else if("copilot"===b){let d=(0,y.MN)(a,b,c),e=(0,s.Uz)(d)||N.response;S=(0,q.LH)(e),S=(0,q.Sj)(S,r.Rf,r.ky),(0,s.q1)(d)}else if("opencode"===b){let d=(0,y.MN)(a,b,c),e=(0,s.Uz)(d),f=N.turnHeadTruncated&&e?e:N.response;S=(0,q.aW)(f),(0,s.q1)(d)}if(!S||""===S.trim()||"[No content]"===S)return(0,f.updateSessionState)(h,a,b,N.lineCount,m),(0,f.clearInProgressMessageId)(h,a,b,m),!1;if(!P){let d=(0,y.MN)(a,b,c);if((0,v.j7)(d,S))return G.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:m}),(0,f.updateSessionState)(h,a,b,N.lineCount,m),!1}let T=function(a,b,c){if("opencode"!==b)return!1;try{return(0,w.f4)({worktreeId:a,cliToolId:b,instanceId:c??b})}catch(d){return x.warn("structured-history-gate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}(a,b,c);S&&!T&&await (0,i.T)(h,a,S,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&G.info("marked-answeredcount-pending");let U=(0,f.getSessionState)(h,a,m);if(P&&U&&N.lineCount<=U.lastCapturedLine)return G.info("race-condition-detected-skipping-save-re"),!1;if(T)G.info("structured-history-scrape-suppressed",{worktreeId:a,cliToolId:b,instanceId:m,scrapedLength:S.length});else{let c=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:S,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:m,summary:R?.summary,logFileName:R?.logFileName,requestId:R?.requestId});(0,g.broadcastMessage)("message",{worktreeId:a,message:c})}return(0,E.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,z.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:m,excerpt:S}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,N.lineCount,m),O&&(0,y.Et)(a,b,c),!0}catch(a){return G.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}(0,D.I7)()},82450:(a,b,c)=>{c.d(b,{IS:()=>h,LH:()=>n,NN:()=>g,Sj:()=>p,aW:()=>o});var d=c(85164),e=c(13033),f=c(56263);function g(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.GT)(b),e=c>=0?b.slice(0,c):b,f=-1;for(let a=e.length-1;a>=0;a--)if(/^❯\s+\S/.test(e[a])){f=a;break}let g=f>=0?f+1:0,h=e.slice(g),i=[/CLAUDE_HOOKS_/,/\/bin\/claude/,/^claude\s*$/,/@.*\s+%\s*$/,/^[^⏺]*curl.*POST/,/^[^⏺]*Content-Type/,/^[^⏺]*export\s+CLAUDE_/,/^\s*$/,/^[╭╮╰╯│─\s]+$/,/^[│╭╮╰╯].*[│╭╮╰╯]$/,/Claude Code v[\d.]+/,/^Tips for getting started/,/^Welcome back/,/Run \/init to create/,/^Recent activity/,/^No recent activity/,/▐▛███▜▌|▝▜█████▛▘|▘▘ ▝▝/,/^\s*Opus \d+\.\d+\s*·\s*Claude Max/,/\.com's Organization/,/\?\s*for shortcuts\s*$/,/^─{10,}$/,/^❯\s*$/,d.fW],j=[];for(let a of h)!i.some(b=>b.test(a))&&a.trim()&&j.push(a);return j.join("\n").trim()}function h(a){let b=(0,d.aJ)(a).split("\n"),c=[],e=[/^maenokota@.*%/,/^zsh:/,/^feature-issue-\d+/,/^\s*$/],f=!1,g=[];for(let a of b){if(a.includes("✦")){f=!0;let b=a.indexOf("✦"),c=a.substring(b+1).trim();c&&g.push(c);continue}if(f){if(e.some(b=>b.test(a)))continue;g.push(a)}}if(g.length>0)return g.join("\n").trim();for(let a of b)e.some(b=>b.test(a))||c.push(a);return c.join("\n").trim()}let i=/^●\s+(?:Get |Read |Run |Search |Write |Edit |Delete |List |Create |Fetch |Explore |Execute |Install |Model changed to:)/,j=/^\$\s+[A-Z][A-Za-z]*(?:\s|$)/,k=/^\d+\s+lines\.\.\.$/,l=/^[◐◑◒◓]/,m=/^(?:git\s+--no-pager|git\s+(?:log|diff|show|status|branch|remote|fetch|pull|push|merge|rebase|checkout|reset|stash|tag|config|clone|init|add|commit|rm|mv|bisect|grep|ls-files|rev-parse|describe|shortlog|blame|reflog|cherry-pick|revert|submodule|worktree)\b|npm\s+|npx\s+|yarn\s+|pnpm\s+|cargo\s+|pip\s+|rustc\s+|cmake\s+|docker\s+|kubectl\s+|aws\s+|gcloud\s+|az\s+|terraform\s+|ansible\s+|curl\s+|wget\s+|ssh\s+|scp\s+|rsync\s+|grep\s+|sed\s+|awk\s+|mkdir\s+|rm\s+|cp\s+|mv\s+|chmod\s+|chown\s+)/;function n(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.wv)(b),f=c>=0?b.slice(0,c):b,g=-1;for(let a=f.length-1;a>=0;a--){let b=(0,e.IW)(f[a]);if(b&&/^❯\s+\S/.test(b)){g=a;break}}let h=g>=0?g+1:0;if(g>=0)for(;h<f.length&&d.Fg.test(f[h]);)h++;let n=f.slice(h),o=[],p=!1,q=!1;for(let a of n){let b=(0,e.IW)(a);if(!b){p=!1,q=!1;continue}if(d.J7.some(a=>a.test(b)))continue;if(j.test(b)){q=!0,p=!1;continue}if(i.test(b))continue;if(l.test(b)){p=!0,q=!1;continue}if(!(k.test(b)||m.test(b))){if(/^❯\s*/.test(b)){p=!1,q=!1;continue}if(!/^[│└]/.test(b)){if(/^●/.test(b)){p=!1,q=!1,o.push(b.replace(/^●\s*/,""));continue}p||q||o.push(b)}}}return o.join("\n").trim()}function o(a){let b=a.split("\n"),c=[];for(let a=0;a<b.length;a++){let f=(0,e.l1)(b[a]);f&&d.Md.test(f)&&c.push(a)}let f=0;c.length>=2&&(f=c[c.length-2]+1);let g=[];for(let a=f;a<b.length;a++){let c=(0,e.l1)(b[a]);!(!c||d.sx.some(a=>a.test(c)))&&(d.Md.test(c)||g.push(c))}return g.join("\n").trim()}function p(a,b=f.Rf,c=f.ky){if(!a||a.length<=b)return a;let d=c+"\n",e=b-d.length;if(e<=0)return c.slice(0,b);let g=a.length-e;if(g>0&&g<a.length){let b=a.charCodeAt(g);b>=56320&&b<=57343&&(g+=1)}return d+a.slice(g)}},99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(95620),e=c(88807),f=c(1058),g=c(72626),h=c(59701),i=c(93997);let j=(0,g.h)("terminal-broadcast"),k=new Map,l=[100,250,500,750];async function m(a,b,c){if((0,d.hasRoomSubscribers)(a))try{let d=(0,e.getDbInstance)(),g=await (0,f.$)(d,a,b,c);p(a,b,g,c)}catch(b){j.error("terminal-snapshot:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}function n(a){return JSON.stringify([a.fullOutput??"",a.isRunning,a.thinking??!1,a.isPromptWaiting??!1,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isUnclassifiedActive??!1])}async function o(a,b,c){let d=h.CLIToolManager.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$)((0,e.getDbInstance)(),a,b,c)}function p(a,b,c,e){let f=e??b,g=`${a}:${b}:${f}`;(0,d.broadcast)(a,{type:"terminal_snapshot",worktreeId:a,cliToolId:b,instanceId:f,output:c.fullOutput??"",isRunning:c.isRunning,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isUnclassifiedActive:c.isUnclassifiedActive??!1,version:function(a){let b=(k.get(a)??0)+1;return k.set(a,b),b}(g)})}async function q(a,b,c,e=l){if((0,d.hasRoomSubscribers)(a))try{let d=await o(a,b,c),f=n(d);for(let g of(p(a,b,d,c),e)){await new Promise(a=>setTimeout(a,g));let d=await o(a,b,c);if(n(d)!==f)return void p(a,b,d,c)}}catch(d){j.error("terminal-snapshot:interaction-refresh-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)})}}function r(a,b,c){(0,d.broadcast)(a,{type:"session_status_changed",worktreeId:a,isRunning:b,cliTool:c?.cliTool??null,instance:c?.instance??null})}function s(){k.clear()}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=222,exports.ids=[222],exports.modules={52120:(a,b,c)=>{c.d(b,{PL:()=>e,sb:()=>f});let d={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},e={idle:{className:d.idle,labelKey:"status.idle",type:"dot"},ready:{className:d.ready,labelKey:"status.ready",type:"dot"},running:{className:d.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:d.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:d.spinner,labelKey:"status.generating",type:"spinner"}},f={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},90277:(a,b,c)=>{c.d(b,{Vt:()=>f,aN:()=>g,I_:()=>h,JY:()=>i,sd:()=>j,kj:()=>k});let d=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,e=/^[a-zA-Z0-9][a-zA-Z0-9\-._]*$/,f=new Set(["copilot","opencode"]),g=new Set(["opencode"]);function h(a){let b=a.trim();if(!b)return{cliToolId:"claude",model:void 0};let{tokens:c,error:d}=function(a){let b=[],c="",d=!1,e=null;for(let f of a){if(e){f===e?e=null:c+=f;continue}if('"'===f||"'"===f){e=f,d=!0;continue}if(/\s/.test(f)){d&&(b.push(c),c="",d=!1);continue}c+=f,d=!0}return e?{tokens:[],error:"CLI Tool column has an unterminated quote"}:(d&&b.push(c),{tokens:b})}(b);if(d)return{cliToolId:b.split(/\s+/)[0],error:d};let e=c[0];return 1===c.length?{cliToolId:e,model:void 0}:f.has(e)?g.has(e)?function(a,b){let c={cliToolId:a},d=new Set,e=(a,c)=>{let d=b[c+1];return void 0===d||d.startsWith("-")?null:d};for(let f=0;f<b.length;f++){let g=b[f];if(d.has(g))return{cliToolId:a,error:`${a} option "${g}" is repeated`};switch(g){case"--model":case"-m":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add("--model"),d.add("-m"),c.model=b,f++;break}case"--agent":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.agent=b,f++;break}case"--variant":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.variant=b,f++;break}case"--title":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.title=b,f++;break}case"--continue":case"-c":d.add("--continue"),d.add("-c"),c.continueSession=!0;break;default:return{cliToolId:a,error:`${a} only supports: opencode [--model <provider/model>] [--agent <name>] [--variant <name>] [--continue] [--title <text>]`}}}return c}(e,c.slice(1)):3===c.length&&"--model"===c[1]?{cliToolId:e,model:c[2]}:{cliToolId:e,error:`${e} only supports: ${e} --model <modelName>`}:{cliToolId:e,error:`CLI Tool "${e}" does not support additional options`}}function i(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"Model name contains control characters"}:""===a.trim()?{valid:!1,reason:"Model name must not be empty"}:d.test(a)?a.length>128?{valid:!1,reason:"Model name exceeds 128 characters"}:{valid:!0}:{valid:!1,reason:"Model name contains invalid characters"}}function j(a,b){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:`opencode ${b} contains control characters`}:""===a.trim()?{valid:!1,reason:`opencode ${b} must not be empty`}:e.test(a)?a.length>64?{valid:!1,reason:`opencode ${b} exceeds 64 characters`}:{valid:!0}:{valid:!1,reason:`opencode ${b} contains invalid characters`}}function k(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"opencode title contains control characters"}:""===a.trim()?{valid:!1,reason:"opencode title must not be empty"}:a.startsWith("-")?{valid:!1,reason:'opencode title must not start with "-"'}:a.includes("|")?{valid:!1,reason:'opencode title must not contain "|"'}:a.length>200?{valid:!1,reason:"opencode title exceeds 200 characters"}:{valid:!0}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2366,exports.ids=[2366],exports.modules={3979:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.tokenizeClass=b.strToChars=void 0;let g=c(8765),h=f(c(80738));b.strToChars=a=>a.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(a,b,c,d,e,f,g)=>{if(c)return a;let h=String.fromCharCode(b?8:d?parseInt(d,16):e?parseInt(e,16):f?"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?".indexOf(f):({0:0,t:9,n:10,v:11,f:12,r:13})[g]);return/[[\]{}^$.|?*+()]/.test(h)?`\\${h}`:h}),b.tokenizeClass=(a,b)=>{var c,d,e,f,i,j,k;let l=[],m,n,o=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;null!==(m=o.exec(a));){let a=null!=(k=null!=(j=null!=(i=null!=(f=null!=(e=null!=(d=null!=(c=m[1]&&h.words())?c:m[2]&&h.ints())?d:m[3]&&h.whitespace())?e:m[4]&&h.notWords())?f:m[5]&&h.notInts())?i:m[6]&&h.notWhitespace())?j:m[7]&&{type:g.types.RANGE,from:(m[8]||m[9]).charCodeAt(0),to:(n=m[10]).charCodeAt(n.length-1)})?k:(n=m[16])&&{type:g.types.CHAR,value:n.charCodeAt(0)};if(!a)return[l,o.lastIndex];l.push(a)}throw SyntaxError(`Invalid regular expression: /${b}/: Unterminated character class`)}},8765:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(54803),b),e(c(59756),b),e(c(33004),b)},33004:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0})},49320:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.writeSetTokens=b.setChar=void 0;let g=c(8765),h=f(c(97537));function i(a){return 94===a?"\\^":92===a?"\\\\":93===a?"\\]":45===a?"\\-":String.fromCharCode(a)}function j(a,{lookup:b,len:c}){if(c!==a.length)return!1;let d=b();for(let b of a){if(b.type===g.types.SET)return!1;let a=b.type===g.types.CHAR?b.value:`${b.from}-${b.to}`;if(!d[a])return!1;d[a]=!1}return!0}b.setChar=i,b.writeSetTokens=function a(b,c=!1){if(j(b.set,h.INTS))return b.not?"\\D":"\\d";if(j(b.set,h.WORDS))return b.not?"\\W":"\\w";if(b.not&&j(b.set,h.NOTANYCHAR))return".";if(j(b.set,h.WHITESPACE))return b.not?"\\S":"\\s";let d="";for(let c=0;c<b.set.length;c++){var e;d+=(e=b.set[c]).type===g.types.CHAR?i(e.value):e.type===g.types.RANGE?`${i(e.from)}-${i(e.to)}`:a(e,!0)}let f=`${b.not?"^":""}${d}`;return c?f:`[${f}]`}},54803:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0})},59756:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.types=void 0,function(a){a[a.ROOT=0]="ROOT",a[a.GROUP=1]="GROUP",a[a.POSITION=2]="POSITION",a[a.SET=3]="SET",a[a.RANGE=4]="RANGE",a[a.REPETITION=5]="REPETITION",a[a.REFERENCE=6]="REFERENCE",a[a.CHAR=7]="CHAR"}(b.types||(b.types={}))},63989:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.reconstruct=void 0;let d=c(8765),e=c(49320),f=a=>a.map(b.reconstruct).join(""),g=a=>{if("options"in a)return a.options.map(f).join("|");if("stack"in a)return f(a.stack);throw Error("options or stack must be Root or Group token")};b.reconstruct=a=>{switch(a.type){case d.types.ROOT:return g(a);case d.types.CHAR:{let b=String.fromCharCode(a.value);return(/[[\\{}$^.|?*+()]/.test(b)?"\\":"")+b}case d.types.POSITION:if("^"===a.value||"$"===a.value)return a.value;return`\\${a.value}`;case d.types.REFERENCE:return`\\${a.value}`;case d.types.SET:return e.writeSetTokens(a);case d.types.GROUP:{let b=a.name?`?<${a.name}>`:a.remember?"":a.followedBy?"?=":a.notFollowedBy?"?!":"?:";return`(${b}${g(a)})`}case d.types.REPETITION:{let c,{min:d,max:e}=a;return c=0===d&&1===e?"?":1===d&&e===1/0?"+":0===d&&e===1/0?"*":e===1/0?`{${d},}`:d===e?`{${d}}`:`{${d},${e}}`,`${b.reconstruct(a.value)}${c}`}case d.types.RANGE:return`${e.setChar(a.from)}-${e.setChar(a.to)}`;default:throw Error(`Invalid token type ${a}`)}}},67851:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.types=void 0;let f=c(8765);Object.defineProperty(b,"types",{enumerable:!0,get:function(){return f.types}}),e(c(91446),b),e(c(63989),b);let g=c(91446),h=c(63989);e(c(8765),b),b.default=g.tokenizer,a.exports=g.tokenizer,a.exports.types=f.types,a.exports.reconstruct=h.reconstruct},80738:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.anyChar=b.notWhitespace=b.whitespace=b.notInts=b.ints=b.notWords=b.words=void 0;let d=c(8765),e=()=>[{type:d.types.RANGE,from:48,to:57}],f=()=>[{type:d.types.CHAR,value:95},{type:d.types.RANGE,from:97,to:122},{type:d.types.RANGE,from:65,to:90},{type:d.types.RANGE,from:48,to:57}],g=()=>[{type:d.types.CHAR,value:9},{type:d.types.CHAR,value:10},{type:d.types.CHAR,value:11},{type:d.types.CHAR,value:12},{type:d.types.CHAR,value:13},{type:d.types.CHAR,value:32},{type:d.types.CHAR,value:160},{type:d.types.CHAR,value:5760},{type:d.types.RANGE,from:8192,to:8202},{type:d.types.CHAR,value:8232},{type:d.types.CHAR,value:8233},{type:d.types.CHAR,value:8239},{type:d.types.CHAR,value:8287},{type:d.types.CHAR,value:12288},{type:d.types.CHAR,value:65279}];b.words=()=>({type:d.types.SET,set:f(),not:!1}),b.notWords=()=>({type:d.types.SET,set:f(),not:!0}),b.ints=()=>({type:d.types.SET,set:e(),not:!1}),b.notInts=()=>({type:d.types.SET,set:e(),not:!0}),b.whitespace=()=>({type:d.types.SET,set:g(),not:!1}),b.notWhitespace=()=>({type:d.types.SET,set:g(),not:!0}),b.anyChar=()=>({type:d.types.SET,set:[{type:d.types.CHAR,value:10},{type:d.types.CHAR,value:13},{type:d.types.CHAR,value:8232},{type:d.types.CHAR,value:8233}],not:!0})},82366:(a,b,c)=>{let d=c(67851),{types:e}=c(67851);function f(a,b){var c;let f={reps:0,limit:b?.limit??25};(c=a,"[object RegExp]"===Object.prototype.toString.call(c))?a=a.source:"string"!=typeof a&&(a=String(a));try{return function a(b,c,d){let f,g;if(b.type===e.REPETITION&&(d++,c.reps++,d>1||c.reps>c.limit))return!1;if(b.options){for(f=0,g=b.options.length;f<g;f++)if(!a({stack:b.options[f]},c,d))return!1}let h=b.stack||b.value?.stack;if(!h)return!0;for(f=0,g=h.length;f<g;f++)if(!a(h[f],c,d))return!1;return!0}(d(a),f,0)}catch{return!1}}a.exports=f,a.exports.default=f,a.exports.safeRegex=f},91446:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.tokenizer=void 0;let g=f(c(3979)),h=c(8765),i=f(c(80738)),j=/^[a-zA-Z_$]$/i,k=/^[a-zA-Z0-9_$]$/i,l=/\d/;b.tokenizer=a=>{let b=0,c,d={type:h.types.ROOT,stack:[]},e=d,f=d.stack,m=[],n=[],o=0,p=b=>{throw SyntaxError(`Invalid regular expression: /${a}/: Nothing to repeat at column ${b-1}`)},q=g.strToChars(a);for(;b<q.length;)switch(c=q[b++]){case"\\":if(b===q.length)throw SyntaxError(`Invalid regular expression: /${a}/: \\ at end of pattern`);switch(c=q[b++]){case"b":f.push({type:h.types.POSITION,value:"b"});break;case"B":f.push({type:h.types.POSITION,value:"B"});break;case"w":f.push(i.words());break;case"W":f.push(i.notWords());break;case"d":f.push(i.ints());break;case"D":f.push(i.notInts());break;case"s":f.push(i.whitespace());break;case"S":f.push(i.notWhitespace());break;default:if(l.test(c)){let a=c;for(;b<q.length&&l.test(q[b]);)a+=q[b++];let d=parseInt(a,10),e={type:h.types.REFERENCE,value:d};f.push(e),n.push({reference:e,stack:f,index:f.length-1})}else f.push({type:h.types.CHAR,value:c.charCodeAt(0)})}break;case"^":f.push({type:h.types.POSITION,value:"^"});break;case"$":f.push({type:h.types.POSITION,value:"$"});break;case"[":{let c;"^"===q[b]?(c=!0,b++):c=!1;let d=g.tokenizeClass(q.slice(b),a);b+=d[1],f.push({type:h.types.SET,set:d[0],not:c});break}case".":f.push(i.anyChar());break;case"(":{let d={type:h.types.GROUP,stack:[],remember:!0};if("?"===q[b])if(c=q[b+1],b+=2,"="===c)d.followedBy=!0,d.remember=!1;else if("!"===c)d.notFollowedBy=!0,d.remember=!1;else if("<"===c){let c="";if(j.test(q[b]))c+=q[b],b++;else throw SyntaxError(`Invalid regular expression: /${a}/: Invalid capture group name, character '${q[b]}' after '<' at column ${b+1}`);for(;b<q.length&&k.test(q[b]);)c+=q[b],b++;if(!c)throw SyntaxError(`Invalid regular expression: /${a}/: Invalid capture group name, character '${q[b]}' after '<' at column ${b+1}`);if(">"!==q[b])throw SyntaxError(`Invalid regular expression: /${a}/: Unclosed capture group name, expected '>', found '${q[b]}' at column ${b+1}`);d.name=c,b++}else if(":"===c)d.remember=!1;else throw SyntaxError(`Invalid regular expression: /${a}/: Invalid group, character '${c}' after '?' at column ${b-1}`);else o+=1;f.push(d),m.push(e),e=d,f=d.stack;break}case")":if(0===m.length)throw SyntaxError(`Invalid regular expression: /${a}/: Unmatched ) at column ${b-1}`);f=(e=m.pop()).options?e.options[e.options.length-1]:e.stack;break;case"|":{e.options||(e.options=[e.stack],delete e.stack);let a=[];e.options.push(a),f=a;break}case"{":{let a=/^(\d+)(,(\d+)?)?\}/.exec(q.slice(b)),c,d;null!==a?(0===f.length&&p(b),c=parseInt(a[1],10),d=a[2]?a[3]?parseInt(a[3],10):1/0:c,b+=a[0].length,f.push({type:h.types.REPETITION,min:c,max:d,value:f.pop()})):f.push({type:h.types.CHAR,value:123});break}case"?":0===f.length&&p(b),f.push({type:h.types.REPETITION,min:0,max:1,value:f.pop()});break;case"+":0===f.length&&p(b),f.push({type:h.types.REPETITION,min:1,max:1/0,value:f.pop()});break;case"*":0===f.length&&p(b),f.push({type:h.types.REPETITION,min:0,max:1/0,value:f.pop()});break;default:f.push({type:h.types.CHAR,value:c.charCodeAt(0)})}if(0!==m.length)throw SyntaxError(`Invalid regular expression: /${a}/: Unterminated group`);return function(a,b){for(let c of a.reverse())if(b<c.reference.value){c.reference.type=h.types.CHAR;let a=c.reference.value.toString();if(c.reference.value=parseInt(a,8),!/^[0-7]+$/.test(a)){let b=0;for(;"8"!==a[b]&&"9"!==a[b];)b+=1;if(0===b?(c.reference.value=a.charCodeAt(0),b+=1):c.reference.value=parseInt(a.slice(0,b),8),a.length>b){let d=c.stack.splice(c.index+1);for(let d of a.slice(b))c.stack.push({type:h.types.CHAR,value:d.charCodeAt(0)});c.stack.push(...d)}}}}(n,o),d}},97537:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.NOTANYCHAR=b.WHITESPACE=b.WORDS=b.INTS=void 0;let g=f(c(80738)),h=c(8765);function i(a){let b={},c=0;for(let d of a)d.type===h.types.CHAR&&(b[d.value]=!0),d.type===h.types.RANGE&&(b[`${d.from}-${d.to}`]=!0),c+=1;return{lookup:()=>Object.assign({},b),len:c}}b.INTS=i(g.ints().set),b.WORDS=i(g.words().set),b.WHITESPACE=i(g.whitespace().set),b.NOTANYCHAR=i(g.anyChar().set)}};
@@ -1,8 +0,0 @@
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)}
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
- `}}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
- `)}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
5
- Content-Length: 0\r
6
- Connection: close\r
7
- \r
8
- `)}catch{}a.destroy()}async function J(a,b,c,d){let e,f=(a.url||"/").split("?")[0].split("/")[2]||"";if(!f)return void I(b,"400 Bad Request");try{let a=d.getDb(),b=d.getCache(a);e=await b.getByPathPrefix(f)}catch(a){D.error("ws-proxy:cache-error",{pathPrefix:f,error:a instanceof Error?a.message:String(a)}),!b.destroyed&&b.writable&&I(b,"502 Bad Gateway");return}if(b.destroyed||!b.writable)return;if(!e)return void I(b,"404 Not Found");if(!e.enabled)return void I(b,"503 Service Unavailable");if(!e.websocketEnabled)return void I(b,"403 Forbidden");if(!H.has(e.targetHost)){D.warn("ws-proxy:ssrf-blocked",{pathPrefix:f}),I(b,"403 Forbidden");return}let g=d.netConnect({host:e.targetHost,port:e.targetPort}),h=!1,i=!1,j=()=>{if(!i){i=!0;try{g.destroy()}catch{}try{b.destroy()}catch{}}};g.on("connect",()=>{h=!0;try{let b=function(a){let b=a.method||"GET",c=a.url||"/",d=a.httpVersion||"1.1",e=[`${b} ${c} HTTP/${d}`];for(let[b,c]of Object.entries(a.headers))if(void 0!==c)if(Array.isArray(c))for(let a of c)e.push(`${b}: ${a}`);else e.push(`${b}: ${c}`);return e.join("\r\n")+"\r\n\r\n"}(a);g.write(b)}catch(a){D.error("ws-proxy:upstream-write-error",{pathPrefix:f,error:a instanceof Error?a.message:String(a)}),j();return}b.pipe(g),g.pipe(b)}),g.on("error",a=>{D.error("ws-proxy:upstream-error",{pathPrefix:f,error:a.message}),h||b.destroyed||!b.writable?j():I(b,"502 Bad Gateway")}),g.on("close",()=>{j()}),b.on("error",a=>{D.error("ws-proxy:client-error",{pathPrefix:f,error:a.message}),j()}),b.on("close",()=>{j()})}function K(a){E=new d.zu({noServer:!0}),function(a){C();let b=(0,B.wN)(b=>{a(b.worktreeId,{type:"session_status_changed",worktreeId:b.worktreeId,cliTool:b.cliToolId,instance:b.instanceId??b.cliToolId,isWaitingForResponse:b.waiting,waitingKind:b.kind??null,waitingSince:b.since})});globalThis.__waitingStatusBroadcastUnsubscribe=b}(N),a.on("upgrade",(a,b,c)=>{let d=a.url||"/";if(d.startsWith("/_next/")){b.write("HTTP/1.1 426 Upgrade Required\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"),b.destroy();return}if((0,g.Rh)()){let c=(0,g.Z2)(a.socket.remoteAddress||"");if(!(0,g.c$)(c,(0,g.nu)())){let a=c.substring(0,45);D.warn("websocket:denied",{ip:a}),b.write("HTTP/1.1 403 Forbidden\r\n\r\n"),b.destroy();return}}if((0,f.y2)()){let c=a.headers.cookie||"",d=(0,f.JT)(c)[f.aq];if(!d||!(0,f.nr)(d)){b.write("HTTP/1.1 401 Unauthorized\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"),b.destroy();return}}if(d.startsWith("/proxy/"))return void(async()=>{try{await J(a,b,c,{getDb:()=>(0,j.getDbInstance)(),getCache:a=>(0,z.Ds)(a),netConnect:a=>(0,e.connect)(a)})}catch(a){if(D.error("ws-proxy:unhandled-error",{error:a instanceof Error?a.message:String(a)}),!b.destroyed&&b.writable){try{b.write("HTTP/1.1 500 Internal Server Error\r\nContent-Length: 0\r\nConnection: close\r\n\r\n")}catch{}b.destroy()}}})();E.handleUpgrade(a,b,c,b=>{E.emit("connection",b,a)})}),E.on("error",a=>{D.error("server:error",{error:a.message})}),E.on("connection",a=>{let b={ws:a,worktreeIds:new Set,terminalSubscription:null};F.set(a,b),a.on("message",b=>{try{let c=JSON.parse(b.toString());L(a,c)}catch(a){D.error("message:parse-failed",{error:a instanceof Error?a.message:String(a)})}}),a.on("close",()=>{O(a)}),a.on("error",b=>{"WS_ERR_INVALID_CLOSE_CODE"===b.code||b.message?.includes("Invalid WebSocket frame")||b.message?.includes("write after end")||b.message?.includes("ECONNRESET")||b.message?.includes("EPIPE")||D.error("websocket:error",{error:b.message});try{a.terminate()}catch{}O(a)})})}function L(a,b){switch(b.type){case"subscribe":if(!b.worktreeId)return;var c=a,d=b.worktreeId;let e=F.get(c);e&&(e.worktreeIds.add(d),G.has(d)||G.set(d,new Set),G.get(d).add(c));break;case"unsubscribe":if(!b.worktreeId)return;!function(a,b){let c=F.get(a);if(!c)return;c.worktreeIds.delete(b);let d=G.get(b);d&&(d.delete(a),0===d.size&&G.delete(b))}(a,b.worktreeId);break;case"broadcast":if(!b.worktreeId)return;N(b.worktreeId,b.data);break;case"client_version":M(a,b);break;case"terminal_subscribe":Q(a,b);break;case"terminal_input":R(a,b);break;case"terminal_resize":S(a,b);break;case"terminal_unsubscribe":T(a);break;default:D.warn("message:unknown-type")}}function M(a,b){let c="string"==typeof b.version?b.version:"";if(!c)return;let e=(0,A.Sw)();if(e&&c&&"0.0.0"!==e&&"0.0.0"!==c&&e!==c&&a.readyState===d.kb.OPEN)try{a.send(JSON.stringify({type:"version_mismatch",serverVersion:e,clientVersion:c}))}catch(a){D.error("version:notify-failed",{error:a instanceof Error?a.message:String(a)})}}function N(a,b){let c=G.get(a);if(c&&0!==c.size)try{let e=JSON.stringify({type:"broadcast",worktreeId:a,data:b});c.forEach(a=>{if(a.readyState===d.kb.OPEN)try{a.send(e)}catch(a){D.error("broadcast:send-failed",{error:a instanceof Error?a.message:String(a)})}})}catch(b){D.error("broadcast:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)});try{let b=JSON.stringify({type:"broadcast",worktreeId:a,data:{error:"Message encoding error"}});c.forEach(a=>{if(a.readyState===d.kb.OPEN)try{a.send(b)}catch{}})}catch(a){D.error("fallback:send-failed",{error:a instanceof Error?a.message:String(a)})}}}function O(a){let b=F.get(a);b&&(b.worktreeIds.forEach(b=>{let c=G.get(b);c&&(c.delete(a),0===c.size&&G.delete(b))}),b.terminalSubscription&&(b.terminalSubscription.unsubscribe(),b.terminalSubscription=null),F.delete(a))}function P(a,b){a.readyState===d.kb.OPEN&&a.send(JSON.stringify(b))}async function Q(a,b){let c=F.get(a);if(!c)return void P(a,{type:"terminal_error",error:"Unauthorized WebSocket client"});if("true"!==process.env.TMUX_CONTROL_MODE_ENABLED)return void P(a,{type:"terminal_error",error:"Tmux control mode is disabled"});let{worktreeId:d,cliToolId:e}=b;if(!d||!e||!(0,h.hR)(e))return void P(a,{type:"terminal_error",error:"Invalid terminal subscription parameters"});let f=(0,j.getDbInstance)();if(!(0,k.getWorktreeById)(f,d))return void P(a,{type:"terminal_error",error:"Worktree not found"});c.terminalSubscription&&(await c.terminalSubscription.unsubscribe(),c.terminalSubscription=null);let g=(0,i.m)(e,d),m=y();if(m.getSubscriberCount(g)>=4)return void P(a,{type:"terminal_error",error:"Terminal subscriber limit reached"});let n=!1,o=Date.now(),p=await m.subscribe(g,{onOutput:b=>{if(!n){n=!0;let a=Math.max(0,Math.round(Date.now()-o));l.firstOutputLatencyCount+=1,l.firstOutputLatencyTotalMs+=a,l.firstOutputLatencyLastMs=a,l.firstOutputLatencyMinMs=null===l.firstOutputLatencyMinMs?a:Math.min(l.firstOutputLatencyMinMs,a),l.firstOutputLatencyMaxMs=null===l.firstOutputLatencyMaxMs?a:Math.max(l.firstOutputLatencyMaxMs,a)}P(a,{type:"terminal_output",data:b})},onExit:({exitCode:b})=>{P(a,{type:"terminal_exit",exitCode:b})},onError:b=>{(async()=>{try{let b=await m.captureSnapshot(g,{startLine:-200});b.length>0&&P(a,{type:"terminal_output",data:b,fallback:!0})}catch{}P(a,{type:"terminal_error",error:b.message,fallback:!0})})()}});c.terminalSubscription={worktreeId:d,cliToolId:e,sessionName:g,startedAt:o,unsubscribe:p.unsubscribe},P(a,{type:"terminal_status",connected:!0,worktreeId:d,cliToolId:e})}async function R(a,b){let c=F.get(a),d=c?.terminalSubscription;if(!d)return void P(a,{type:"terminal_error",error:"No active terminal subscription"});let e="string"==typeof b.data?b.data:"";if(0===e.length||e.length>4096)return void P(a,{type:"terminal_error",error:"Invalid terminal input"});try{await y().sendInput(d.sessionName,e)}catch(b){P(a,{type:"terminal_error",error:b instanceof Error?b.message:"Failed to send terminal input"})}}async function S(a,b){let c=F.get(a),d=c?.terminalSubscription;if(d){if("number"!=typeof b.cols||!Number.isInteger(b.cols)||b.cols<20||b.cols>500||"number"!=typeof b.rows||!Number.isInteger(b.rows)||b.rows<5||b.rows>200)return void P(a,{type:"terminal_error",error:"Invalid terminal resize payload"});try{await y().resize(d.sessionName,b.cols,b.rows)}catch(b){P(a,{type:"terminal_error",error:b instanceof Error?b.message:"Failed to resize terminal"})}}}async function T(a){let b=F.get(a);if(b?.terminalSubscription){try{await b.terminalSubscription.unsubscribe()}catch{}b.terminalSubscription=null,P(a,{type:"terminal_status",connected:!1})}}function U(a,b){N(a,b)}function V(a){let b=G.get(a);return!!b&&b.size>0}function W(a,b){b.worktreeId?N(b.worktreeId,{type:a,...b}):D.warn("broadcast:missing-worktree-id")}let X="worktree_renamed";function Y(a){let b=new Map;for(let{oldId:c,newId:d}of a)c&&d&&c!==d&&b.set(c,d);if(0===b.size)return[];let c=[];for(let[a,d]of b){let b=G.get(a);b&&0!==b.size&&(G.delete(a),c.push({oldId:a,newId:d,sockets:b}))}let d=[];for(let{oldId:a,newId:b,sockets:e}of c){let c=G.get(b)??new Set;for(let d of e){c.add(d);let e=F.get(d);e&&(e.worktreeIds.delete(a),e.worktreeIds.add(b)),P(d,{type:X,worktreeId:b,previousWorktreeId:a})}G.set(b,c),d.push({oldId:a,newId:b,subscribers:e.size})}for(let a of F.values()){let c=a.terminalSubscription;if(!c)continue;let d=b.get(c.worktreeId);if(d)try{if(!(0,h.hR)(c.cliToolId))continue;c.sessionName=(0,i.m)(c.cliToolId,d),c.worktreeId=d}catch(a){D.warn("terminal:rename-failed",{worktreeId:c.worktreeId,newId:d,error:a instanceof Error?a.message:String(a)})}}return d.length>0&&D.info("rooms:migrated",{count:d.length}),d}function Z(a){for(let b of a){let a=G.get(b);a&&(a.forEach(a=>{let c=F.get(a);c&&c.worktreeIds.delete(b)}),G.delete(b))}}function $(){C(),E&&(F.forEach(a=>{a.ws.close()}),F.clear(),G.clear(),E.close(),E=null)}let _={handleMessage:L,handleClientVersion:M,handleProxyUpgrade:J,handleTerminalSubscribe:Q,handleTerminalInput:R,handleTerminalResize:S,handleTerminalUnsubscribe:T,handleDisconnect:O,registerClientForTest(a){F.set(a,{ws:a,worktreeIds:new Set,terminalSubscription:null})},getClientInfoForTest:a=>F.get(a),resetStateForTest(){F.clear(),G.clear()}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3558,exports.ids=[3558],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(95620),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);default:return a.trim()}}async function k(a,b,c,g,k){let l=k??c;try{let m;if((0,h.VA)(c))return null;let n=(0,e.getSessionState)(a,b,l),o=n?.lastCapturedLine||0;try{m=await (0,d.Wh)(b,c,1e4,k)}catch{return i.info("failed-to-capture"),null}if(!m)return null;let p=m.split("\n"),q=p.length;for(;q>0&&""===p[q-1].trim();)q--;let r=q,{bufferReset:s,reason:t}=r>0&&o>25&&r+25<o?{bufferReset:!0,reason:"shrink"}:r>0&&o>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:o});let u=s?0:o;if(!s&&r<=o)return r<o&&((0,e.updateSessionState)(a,b,c,r,k),i.info("position:corrected-stale",{from:o,to:r})),null;let v=p.slice(u).join("\n"),w=j(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,k),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:l});return(0,e.updateSessionState)(a,b,c,r,k),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:o,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},16700:(a,b,c)=>{c.d(b,{A:()=>e,Y:()=>f});let d=new Set(["claude","codex","antigravity"]);function e(a){return d.has(a)?"non_interactive":"interactive"}function f(a){return"non_interactive"===e(a)}},46961:(a,b,c)=>{c.d(b,{e:()=>f});var d=c(56791),e=c(82149);function f(a,b){if(!(0,d.getAssistantConversationById)(a,b))return;let c=(0,d.getRunningAssistantExecutionByConversation)(a,b),f=(0,e.kx)(b);c&&!f&&((0,d.updateAssistantExecution)(a,c.id,{status:"failed",finishedAt:new Date,stderrText:[c.stderrText??"","[Execution reconciled after process registry loss]"].filter(Boolean).join("\n")}),(0,d.updateAssistantConversation)(a,b,{status:"ready"}))}},49070:(a,b,c)=>{c.d(b,{A:()=>l});var d=c(31766),e=c(80972),f=c(12462),g=c(56791),h=c(57821),i=c(72626),j=c(85164);let k=(0,i.h)("assistant/conversation-response-saver");async function l(a,b,c,i=new Date){try{let k=(0,g.getAssistantSessionState)(a,b),l=k?.lastCapturedLine??0,m=(0,h.G)(b),n=await (0,d.Wh)(m,c,1e4),o="codex"===c?function(a,b){let c=a.split("\n"),d=c.length;for(;d>0&&""===c[d-1].trim();)d--;let e=c.slice(0,d),f=[];for(let a=Math.max(0,b);a<e.length;a++){let b=(0,j.aJ)(e[a]).trimEnd();/^›(?:\s+.*)?$/.test(b)&&f.push(a)}if(f.length<2)return null;let g=f[f.length-2],h=f[f.length-1],i=(0,j.aJ)(e.slice(g+1,h).join("\n")).trim();return i?!function(a){let b=a.trim();return/^•\s+Working\s+\(\d+s\s+•\s+esc to interrupt\)$/i.test(b)||/^•\s+Thinking\s+\(\d+s\s+•\s+esc to interrupt\)$/i.test(b)||/^•\s+Running/i.test(b)}(i)?{response:i,lineCount:h}:null:{response:"",lineCount:h}}(n,l):null,p=o?{response:o.response,isComplete:!0,lineCount:o.lineCount,bufferReset:!1}:(0,e.z$)(n,l,c);if(!p||!p.isComplete||!p.bufferReset&&p.lineCount<=l)return null;let q=(0,f.T8)(p.response,c);if(!q||""===q.trim()||"[No content]"===q)return(0,g.updateAssistantSessionState)(a,b,p.lineCount),null;let r=(0,g.createAssistantMessage)(a,{conversationId:b,role:"assistant",content:q,messageType:"normal",timestamp:i});return(0,g.updateAssistantSessionState)(a,b,p.lineCount),r}catch(a){return k.debug("save:skipped",{conversationId:b,cliToolId:c,error:a instanceof Error?a.message:String(a)}),null}}},57821:(a,b,c)=>{c.d(b,{G:()=>e,O:()=>f});var d=c(59701);function e(a){return`assistant-${a}`}function f(a,b){let c=d.CLIToolManager.getInstance().getTool(a),f=e(b),g=c.getSessionName(f);return{cliTool:c,worktreeId:f,sessionName:g}}},82149:(a,b,c)=>{c.d(b,{AR:()=>i,Qi:()=>j,XO:()=>f,kx:()=>h,uT:()=>g});let d=new Map,e=new Map;function f(a,b,c){d.set(a,{executionId:a,conversationId:b,process:c,cancellationRequested:!1}),e.set(b,a)}function g(a){let b=d.get(a);b&&(e.delete(b.conversationId),d.delete(a))}function h(a){let b=e.get(a);return b?d.get(b)??null:null}function i(a){return d.get(a)?.cancellationRequested??!1}function j(a){let b=h(a);return!!b&&(b.cancellationRequested=!0,!b.process.killed&&b.process.kill("SIGTERM"))}},95736:(a,b,c)=>{a.exports=c(44870)}};