commandmate 0.33.2 → 0.33.3

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 (304) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +122 -122
  3. package/.next/app-path-routes-manifest.json +24 -24
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update-check/route.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js +1 -1
  27. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  30. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/capabilities/route.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  50. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  52. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/push/escalation/route.js +1 -1
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/vapid/route.js +1 -1
  63. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  65. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  66. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/relays/route.js +1 -1
  68. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  69. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  75. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/clone/route.js +1 -1
  78. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  79. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/restore/route.js +1 -1
  82. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/route.js +1 -1
  85. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/scan/route.js +1 -1
  88. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/sync/route.js +1 -1
  91. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  95. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  96. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/skills/[id]/route.js +1 -1
  100. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/skills/installations/route.js +1 -1
  103. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  104. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/route.js +1 -1
  108. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  120. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  123. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  126. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  132. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  162. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  165. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  168. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  187. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  214. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  231. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  234. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/route.js +1 -1
  240. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  244. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  246. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  250. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  251. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  254. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  255. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/worktrees/[id]/page.js +10 -10
  257. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  258. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  259. package/.next/server/app-paths-manifest.json +24 -24
  260. package/.next/server/chunks/1501.js +6 -2
  261. package/.next/server/chunks/1886.js +2 -2
  262. package/.next/server/chunks/2119.js +1 -1
  263. package/.next/server/chunks/2445.js +1 -1
  264. package/.next/server/chunks/3123.js +1 -1
  265. package/.next/server/chunks/3241.js +1 -1
  266. package/.next/server/chunks/3323.js +1 -1
  267. package/.next/server/chunks/4443.js +1 -1
  268. package/.next/server/chunks/595.js +2 -2
  269. package/.next/server/chunks/6130.js +1 -0
  270. package/.next/server/chunks/650.js +1 -1
  271. package/.next/server/chunks/6661.js +1 -1
  272. package/.next/server/chunks/6781.js +1 -1
  273. package/.next/server/chunks/7875.js +1 -1
  274. package/.next/server/chunks/7905.js +1 -1
  275. package/.next/server/chunks/8918.js +3 -3
  276. package/.next/server/chunks/9553.js +1 -0
  277. package/.next/server/chunks/9627.js +1 -1
  278. package/.next/server/middleware-manifest.json +5 -5
  279. package/.next/server/pages/500.html +1 -1
  280. package/.next/server/server-reference-manifest.json +1 -1
  281. package/.next/static/chunks/{4718-441a2af91f0374e9.js → 4718-814f4ecfd7fcc513.js} +1 -1
  282. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  283. package/.next/static/chunks/app/worktrees/[id]/page-3af707e74a75172b.js +1 -0
  284. package/.next/trace +13 -13
  285. package/dist/server/locales/en/worktree.json +9 -2
  286. package/dist/server/locales/ja/worktree.json +9 -2
  287. package/dist/server/src/lib/cli-tools/vibe-local.js +10 -0
  288. package/dist/server/src/lib/hooks/hook-settings-generator.js +61 -1
  289. package/dist/server/src/lib/hooks/sources/antigravity/history.js +302 -27
  290. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +103 -0
  291. package/dist/server/src/lib/polling/structured-history-gate.js +68 -4
  292. package/dist/server/src/lib/session/agent-session-lifecycle.js +31 -1
  293. package/dist/server/src/lib/session/session-generation-archive.js +194 -0
  294. package/dist/server/src/lib/tasks/contract-message.js +83 -9
  295. package/dist/server/src/lib/tasks/contract-parser.js +2 -0
  296. package/package.json +1 -1
  297. package/.next/server/chunks/153.js +0 -1
  298. package/.next/server/chunks/4299.js +0 -1
  299. package/.next/server/chunks/6838.js +0 -1
  300. package/.next/server/chunks/7366.js +0 -5
  301. package/.next/static/chunks/6022-2fa0b5a82d4ce7b6.js +0 -1
  302. package/.next/static/chunks/app/worktrees/[id]/page-38edcd53e51f53b0.js +0 -1
  303. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → 9x6U1h52hH_r6pOsGwI_p}/_buildManifest.js +0 -0
  304. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → 9x6U1h52hH_r6pOsGwI_p}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=153,exports.ids=[153],exports.modules={35613:(a,b,c)=>{c.d(b,{_M:()=>p});var d=c(32520),e=c(93356),f=c(26838);let g=new Set([301,302,303,307,308]);function h(a,b){let c;try{c=new URL(a)}catch{throw new e.q2(e.Fk.URL_INVALID,{reason:"malformed"})}if("https:"!==c.protocol)throw new e.q2(e.Fk.URL_INVALID,{reason:"scheme"});if(""!==c.username||""!==c.password)throw new e.q2(e.Fk.URL_INVALID,{reason:"userinfo"});if(""!==c.port)throw new e.q2(e.Fk.URL_INVALID,{reason:"port"});let d=c.hostname.toLowerCase(),f=b.find(a=>a.host===d);if(!f||void 0!==f.pathPrefix&&!c.pathname.startsWith(f.pathPrefix))throw new e.q2(e.Fk.SOURCE_NOT_ALLOWED,{host:d});return c}class i{constructor(a){this.controller=new AbortController,this.timedOut=!1,this.callerAborted=!1,this.onCallerAbort=()=>{this.callerAborted=!0,this.controller.abort()},this.totalTimer=setTimeout(()=>{this.timedOut=!0,this.controller.abort()},d.rV),a&&(this.callerSignal=a,a.aborted?this.onCallerAbort():a.addEventListener("abort",this.onCallerAbort,{once:!0}))}async withHeaderTimeout(a){let b=setTimeout(()=>{this.timedOut=!0,this.controller.abort()},d.WS);try{return await a()}finally{clearTimeout(b)}}dispose(){clearTimeout(this.totalTimer),this.callerSignal?.removeEventListener("abort",this.onCallerAbort)}translate(a){return a instanceof e.q2?a:new e.q2(this.timedOut?e.Fk.TIMEOUT:this.callerAborted?e.Fk.ABORTED:e.Fk.NETWORK)}}async function j(a){try{await a.body?.cancel()}catch{}}async function k(a,b,c){let i=h(a,b.entryHosts),k={accept:b.accept,"user-agent":`${d.gT}/${(0,f.Mj)()}`};for(let a=0;;a++){let f,l=await c.withHeaderTimeout(()=>fetch(i.toString(),{method:"GET",redirect:"manual",cache:"no-store",headers:k,signal:c.controller.signal}));if(!g.has(l.status))return l;let m=l.headers.get("location");if(await j(l),a>=d.KX)throw new e.q2(e.Fk.REDIRECT_LIMIT_EXCEEDED,{limit:d.KX});if(!m)throw new e.q2(e.Fk.REDIRECT_INVALID,{reason:"no-location"});try{f=new URL(m,i)}catch{throw new e.q2(e.Fk.REDIRECT_INVALID,{reason:"malformed"})}let n=h(f.toString(),b.redirectHosts);n.origin!==i.origin&&(k=function(a){let b={};for(let[c,e]of Object.entries(a))d.F5.includes(c.toLowerCase())||(b[c]=e);return b}(k)),i=n}}async function l(a,b){let c=a.body;if(!c)throw new e.q2(e.Fk.BODY_MISSING);let d=c.getReader(),f=(0,e.of)(),g=[],h=0;for(;;){let{done:a,value:c}=await d.read();if(a)break;if(c&&0!==c.byteLength){if((h+=c.byteLength)>b)throw await d.cancel().catch(()=>void 0),new e.q2(e.Fk.SIZE_LIMIT_EXCEEDED,{limit:b});f.update(c),g.push(c)}}return{bytes:Buffer.concat(g,h),sha256:f.hex(),size:h}}async function m(a,b,c={}){let f=d.Bi[b],g=new i(c.signal);try{let b=await k(a,f,g);try{!function(a,b,c){if(!a.ok)throw new e.q2(e.Fk.HTTP_STATUS,{status:a.status});let d=a.headers.get("content-type"),f=d?.split(";")[0]?.trim().toLowerCase()??"";if(!b.contentTypes.includes(f))throw new e.q2(e.Fk.CONTENT_TYPE_INVALID,{received:f||"<absent>"});let g=a.headers.get("content-length");if(null===g)return;let h=Number(g);if(!Number.isSafeInteger(h)||h<0)throw new e.q2(e.Fk.SIZE_MISMATCH,{reason:"content-length"});if(h>b.maxBytes)throw new e.q2(e.Fk.SIZE_LIMIT_EXCEEDED,{limit:b.maxBytes});if(void 0!==c&&h!==c)throw new e.q2(e.Fk.SIZE_MISMATCH,{expected:c,actual:h})}(b,f,c.expectedSize)}catch(a){throw await j(b),a}return await l(b,f.maxBytes)}catch(a){throw g.translate(a)}finally{g.dispose()}}let n=globalThis.__skillArtifactDownloads??(globalThis.__skillArtifactDownloads=new Map);async function o(a,b){let{artifact:c}=b,d=await m(c.url,"artifact",{expectedSize:c.size});return(0,e.Ld)({expectedSha256:c.sha256,expectedSize:c.size,actualSha256:d.sha256,actualSize:d.size}),{...d,skillId:a,version:b.version,commit:b.source.commit}}async function p(a,b,c={}){var d,f;(0,e.i1)(a,b);let g=`${a}@${b.version}#${b.artifact.sha256}`,h=n.get(g);return h||(h=o(a,b),n.set(g,h),h.catch(()=>void 0).finally(()=>{n.get(g)===h&&n.delete(g)})),c.signal?(d=h,(f=c.signal).aborted?Promise.reject(new e.q2(e.Fk.ABORTED)):new Promise((a,b)=>{let c=()=>b(new e.q2(e.Fk.ABORTED));f.addEventListener("abort",c,{once:!0}),d.then(b=>{f.removeEventListener("abort",c),a(b)},a=>{f.removeEventListener("abort",c),b(a)})})):h}},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=4299,exports.ids=[4299],exports.modules={8953:(a,b,c)=>{c.d(b,{Mx:()=>f,pU:()=>e,qD:()=>d,sM:()=>i});let d=["Up","Down","Left","Right","Enter","Escape","Tab","BTab","PageUp","PageDown","Home","End","q","1","2","3","4","5","6","7","8","9","y","n"],e=[...d,"s"],f="C-x",g=["C-p","C-t"],h=["a","l","t","m","g","u","r","c"],i=[...d,f,...g,...h];[...d,...g,...h]},31442:(a,b,c)=>{c.d(b,{$D:()=>u,Bl:()=>z,Fk:()=>s,HL:()=>e,Ix:()=>y,KB:()=>t,L0:()=>k,Ls:()=>L,N2:()=>m,ND:()=>p,N_:()=>g,RS:()=>N,Rr:()=>J,Ys:()=>r,bq:()=>n,cD:()=>q,eC:()=>h,g4:()=>K,gM:()=>E,jp:()=>i,jx:()=>F,lY:()=>o,n9:()=>B,om:()=>v,sL:()=>M,tx:()=>l,wv:()=>j});var d=c(16983);let e="mcbd-";function f(a){return`=${a}:`}function g(a){return a.startsWith(e)}let h="@cm_status",i="@cm_worktree",j="@cm_tool",k="@cm_instance",l="@cm_updated",m="@cm_delegated",n=[h,i,j,k,l,m],o="[CommandMate #{@cm_tool}/#{@cm_instance} #{@cm_status}] #{window_width}x#{window_height}";function p(a,b,c){return["set-option","-t",f(a),b,c]}function q(a,b){return["set-option","-u","-t",f(a),b]}function r(a,b){return["show-options","-t",f(a),b]}function s(a,b){return["show-options","-v","-t",f(a),b]}function t(a,b){return p(a,"status-right",b)}function u(a){return q(a,"status-right")}function v(a=process.env){let b=(a.CM_TMUX_STATUS??"").trim().toLowerCase();return"off"!==b&&"0"!==b&&"false"!==b}function w(a,b,c){return["set-hook","-t",f(a),b,c]}function x(a,b){return["set-hook","-u","-t",f(a),b]}function y(a){return["list-clients","-t",f(a),"-F","#{client_control_mode}"]}function z(a){return a.split("\n").map(a=>a.trim()).filter(a=>"0"===a).length}let A=["claude"];function B(a){return!!g(a)&&A.some(b=>a.startsWith(`${e}${b}-`))}let C="client-attached[0]",D="client-attached[1]";function E(a=process.env){return"on"===(a.CM_LIVE_ATTACH_HOOK??"").trim().toLowerCase()}function F(a=process.env){return"on"===(a.CM_READ_MODE_AUTO_POPUP??"").trim().toLowerCase()}function G(a){if(!/["$`\\\n\r]/.test(a))return`"${a}"`}function H(a,b,c=[]){let d=[a,...b,...c].join(" ");return`run-shell -b '${d}'`}let I=["#{session_name}","#{client_control_mode}","#{client_name}"];function J(a,b){let c=G(b);if(void 0!==c)return w(a,C,H(c,I))}function K(a){return x(a,C)}function L(a,b){let c=G(b);if(void 0!==c)return w(a,D,H(c,I))}function M(a){return x(a,D)}function N(a,b=d.Jn,c=d.sO){return[["set-window-option","-t",f(a),"window-size","manual"],["resize-window","-t",f(a),"-x",String(b),"-y",String(c)],q(a,m)]}},40964:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}function g(a,b,c){let e=`mcbd-${a}-${b}`;if(!c||c===a)return f(e),e;let g=(0,d.pL)(c,a),h=g?`${e}-${g}`:e;return f(h),h}},79892:(a,b,c)=>{c.d(b,{Xg:()=>w,ou:()=>B,Ce:()=>A,jw:()=>s,lA:()=>n,nS:()=>q,N:()=>p,N6:()=>C,fY:()=>x,GW:()=>r,zT:()=>o,V1:()=>t,ds:()=>z,KB:()=>v,Sb:()=>D});var d=c(79646),e=c(28354),f=c(93997),g=c(83598),h=c(16983),i=c(72626),j=c(8953),k=c(86069);let l=(0,e.promisify)(d.execFile),m=(0,i.h)("tmux");function n(a){return`=${a}:`}async function o(a,b={}){let c,d,e,f=b.windowWidth??h.Jn,i=b.windowHeight??h.sO,j=n(a);try{c=(await l("tmux",["show-window-options","-v","-t",j,"window-size"],{timeout:5e3})).stdout.trim();let[a,b]=(await l("tmux",["display-message","-p","-t",j,"#{window_width}|#{window_height}"],{timeout:5e3})).stdout.trim().split("|").map(Number);Number.isFinite(a)&&(d=a),Number.isFinite(b)&&(e=b)}catch{}let k="manual"===c,p=d===f&&e===i;if(k&&p)return!1;if((b.respectAttachedClient??!0)&&await (0,g.Fh)(a))return m.info("session-geometry:delegated-to-client",{sessionName:a}),!1;try{return k||await l("tmux",["set-window-option","-t",j,"window-size","manual"],{timeout:5e3}),p||await l("tmux",["resize-window","-t",j,"-x",String(f),"-y",String(i)],{timeout:5e3}),!0}catch(b){return m.warn("session-geometry:reconcile-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}async function p(a){try{return await l("tmux",["has-session","-t",n(a)],{timeout:5e3}),!0}catch{return!1}}async function q(a){try{let{stdout:b}=await l("tmux",["display-message","-p","-t",n(a),"#{session_path}"],{timeout:5e3}),c=b.trim();return""===c?null:c}catch{return null}}async function r(){try{let{stdout:a}=await l("tmux",["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}"],{timeout:5e3});if(!a||""===a.trim())return[];return a.trim().split("\n").map(a=>{let[b,c,d]=a.split("|");return{name:b,windows:parseInt(c,10)||0,attached:"1"===d}})}catch{return[]}}async function s(a,b){let c,d,e,f,g;"string"==typeof a?(c=a,d=b,e=h.eu,f=h.Jn,g=h.sO):(c=a.sessionName,d=a.workingDirectory,e=a.historyLimit||h.eu,f=a.windowWidth||h.Jn,g=a.windowHeight||h.sO);try{await l("tmux",["new-session","-d","-s",c,"-c",d,"-x",String(f),"-y",String(g)],{timeout:5e3}),await l("tmux",["set-option","-t",n(c),"history-limit",String(e)],{timeout:5e3});try{await l("tmux",["new-window","-k","-t",`${n(c)}0`,"-c",d],{timeout:5e3})}catch(a){m.warn("session-history-limit:window-rebuild-failed",{sessionName:c,historyLimit:e,error:a instanceof Error?a.message:String(a)})}await o(c,{windowWidth:f,windowHeight:g,respectAttachedClient:!1})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to create tmux session: ${a}`)}}async function t(a,b,c=!0,d){if(d?.literal&&c)throw Error("sendKeys: { literal: true } cannot be combined with sendEnter — a trailing C-m would be typed as text. Send Enter as a separate key.");let e=d?.literal?function(a,b){if("literal"===b.kind)return["send-keys","-t",a,"-l","--",b.text];if(!(0,k.vY)(b.name))throw Error(`Invalid key sequence key name: ${b.name}`);return["send-keys","-t",a,"--",b.name]}(n(a),{kind:"literal",text:b}):c?["send-keys","-t",n(a),b,"C-m"]:["send-keys","-t",n(a),b];try{await l("tmux",e,{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send keys to tmux session: ${a}`)}}let u=new Set(["Up","Down","Left","Right","Enter","Space","Tab","Escape","BTab","BSpace","DC","PageUp","PageDown","Home","End","q","1","2","3","4","5","6","7","8","9","y","s","C-x","C-p","C-t","a","l","n","t","m","g","u","r","c"]);async function v(a,b){if(0!==b.length){for(let a of b)if(!u.has(a))throw Error(`Invalid special key: ${a}`);try{for(let c=0;c<b.length;c++)await l("tmux",["send-keys","-t",n(a),b[c]],{timeout:5e3}),c<b.length-1&&await new Promise(a=>setTimeout(a,100))}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special keys to tmux session: ${a}`)}}}async function w(a,b){let c,d;"number"==typeof b?(c=-b,d="-"):b?(c=b.startLine??-1e4,d=b.endLine??"-"):(c=-1e3,d="-");try{let{stdout:b}=await l("tmux",["capture-pane","-t",n(a),"-p","-e","-S",String(c),"-E",String(d)],{timeout:5e3,maxBuffer:0xa00000});return b}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to capture pane: ${a}`)}}async function x(a){try{return await l("tmux",["kill-session","-t",n(a)],{timeout:5e3}),!0}catch(b){let a=b instanceof Error?b.message:String(b);if(a?.includes("no server running")||a?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${a}`)}}let y=new Set(["Escape","C-c","C-d","C-m","Enter"]);async function z(a,b){if(!y.has(b))throw Error(`Invalid special key: ${b}`);try{await l("tmux",["send-keys","-t",n(a),b],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special key: ${a}`)}}async function A(a){try{await l("tmux",["send-keys","-t",n(a),"C-u"],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to clear tmux input line: ${a}`)}}async function B(a){try{await l("tmux",["send-keys","-t",n(a),"C-e","C-u"],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to clear tmux composer line: ${a}`)}}function C(a,b=j.qD){return b.includes(a)&&u.has(a)}async function D(a,b){await v(a,b),(0,f.gm)(a);let c=setTimeout(()=>(0,f.gm)(a),250);c.unref?.()}},83598:(a,b,c)=>{c.d(b,{Fh:()=>l,G9:()=>m,Us:()=>j,zQ:()=>k});var d=c(79646),e=c(28354),f=c(31442);let g=(0,e.promisify)(d.execFile),h=globalThis.__cmGeometryDelegationCache??(globalThis.__cmGeometryDelegationCache=new Map),i=globalThis.__cmGeometryDelegationEdge??(globalThis.__cmGeometryDelegationEdge=new Map);async function j(a,b=Date.now()){let c=h.get(a);if(c&&b-c.readAt<1e3)return c.delegated;let d=!1;try{let{stdout:b}=await g("tmux",(0,f.Fk)(a,f.N2),{timeout:5e3});d="1"===b.trim()}catch{d=!1}return h.set(a,{delegated:d,readAt:b}),d}async function k(a,b=Date.now()){let c=await j(a,b),d=i.get(a)??!1;return i.set(a,c),{delegated:c,released:d&&!c}}async function l(a){try{let{stdout:b}=await g("tmux",(0,f.Ix)(a),{timeout:5e3});return(0,f.Bl)(b)>0}catch{return!1}}function m(a){h.delete(a),i.delete(a)}},86069:(a,b,c)=>{c.d(b,{IS:()=>e,iF:()=>f,vY:()=>g});let d=["Escape","C-c","C-d","C-m","Enter"];function e(a,b){return void 0===b?{kind:"key",name:a}:{kind:"key",name:a,delayAfterMs:b}}function f(a,b){return void 0===b?{kind:"literal",text:a}:{kind:"literal",text:a,delayAfterMs:b}}function g(a){return d.includes(a)}},93997:(a,b,c)=>{c.d(b,{aq:()=>m,gm:()=>k,pc:()=>l,sl:()=>f,vF:()=>j,wd:()=>i,xE:()=>e});let d=(0,c(72626).h)("tmux-capture-cache"),e=1e4;function f(a,b=e){return b>0&&a>=b}function g(){return globalThis.__tmuxCaptureCache??=new Map}function h(){return globalThis.__tmuxCaptureCacheInflight??=new Map}function i(a,b){if(""===a)return"";let c=a.split("\n");return b>=c.length?a:c.slice(-b).join("\n")}function j(a,b,c){let d=g(),e=Date.now();for(let[a,b]of d)e-b.timestamp>5e3&&d.delete(a);if(d.size>=100&&!d.has(a)){let a=null,b=1/0;for(let[c,e]of d)e.timestamp<b&&(b=e.timestamp,a=c);a&&d.delete(a)}d.set(a,{output:b,capturedLines:c,timestamp:e})}function k(a){g().delete(a),d.debug("cache:invalidate",{sessionName:a})}function l(){g().clear(),h().clear()}async function m(a,b,c){let d=function(a,b){let c=g(),d=c.get(a);return d?Date.now()-d.timestamp>5e3?(c.delete(a),null):b>d.capturedLines?null:i(d.output,b):null}(a,b);if(null!==d)return d;let f=h(),k=f.get(a);if(k)return i(await k,b);let l=c();f.set(a,l);try{let c=await l;return c.length>0&&j(a,c,e),i(c,b)}finally{f.delete(a)}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6838,exports.ids=[6838],exports.modules={26838:(a,b,c)=>{c.d(b,{E2:()=>o,Mj:()=>m,Sw:()=>l,lX:()=>p});var d=c(29021),e=c(33873),f=c(54325),g=c(90164);let h=/^v?\d+\.\d+\.\d+$/,i=/^[a-zA-Z0-9.\-\s_v]+$/,j=[".next","required-server-files.json"],k=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function l(){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.33.2"}function m(){return l()}let n=null;function o(a){let b=n??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...j),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.33.2"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function p(){try{var a,b,c;if(null!==k.result&&Date.now()-k.fetchedAt<36e5||k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0)))return k.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${m()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?k.rateLimitResetAt=1e3*parseInt(b,10):k.rateLimitResetAt=Date.now()+36e5}(d),k.result;if(!d.ok)return k.result;let e=await d.json(),f=m(),j=e.tag_name.replace(/^v/,""),l={hasUpdate:function(a,b){if(!h.test(a)||!h.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,i,j]=c(b);return g!==d?g>d:i!==e?i>e:j>f}(f,e.tag_name),currentVersion:f,latestVersion:j,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,i.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return k.result=l,k.fetchedAt=Date.now(),l}catch{return k.result}}},54325:(a,b,c)=>{c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},90164:(a,b,c)=>{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`}};
@@ -1,5 +0,0 @@
1
- "use strict";exports.id=7366,exports.ids=[7366],exports.modules={49987:(a,b,c)=>{c.d(b,{H:()=>l,Iq:()=>i,M:()=>k,xL:()=>o});var d=c(29021),e=c(21820),f=c(33873),g=c(55511);let h=(0,c(72626).h)("lib/verification/machine-lock"),i="locks",j="owner";function k(a,b){return(0,f.join)(b,`${a}.lock`)}function l(a=process.env){let b=a.CM_VERIFY_LOCK_ROOT;return b&&""!==b.trim()?b:(0,f.join)((0,e.homedir)(),".commandmate",i)}function m(a){try{let b=JSON.parse((0,d.readFileSync)((0,f.join)(a,j),"utf8"));if("number"!=typeof b.pid||"string"!=typeof b.token)return null;return{pid:b.pid,host:"string"==typeof b.host?b.host:"",token:b.token,acquiredAt:"number"==typeof b.acquiredAt?b.acquiredAt:0}}catch{return null}}function n(a){return a?`pid ${a.pid} on ${a.host||"unknown host"}`:null}async function o(a,b){let c=b.root??l(),i=b.pollIntervalMs??250,o=k(a,c),p=Date.now(),q=p+Math.max(0,b.timeoutMs),r=(0,g.randomUUID)();(0,d.mkdirSync)(c,{recursive:!0});let s=new Set;for(;;){if(b.shouldAbandon?.())return{acquired:!1,waitedMs:Date.now()-p,heldBy:n(m(o)),abandoned:!0};if(function(a,b){try{(0,d.mkdirSync)(a)}catch(a){if("EEXIST"===a.code)return!1;throw a}return(0,d.writeFileSync)((0,f.join)(a,j),JSON.stringify(b),{encoding:"utf8"}),!0}(o,{pid:process.pid,host:(0,e.hostname)(),token:r,acquiredAt:Date.now()}))return{acquired:!0,waitedMs:Date.now()-p,handle:{name:a,path:o,release:()=>{let a=m(o);if(!a||a.token===r)try{(0,d.rmSync)(o,{recursive:!0,force:!0})}catch(a){h.warn("machine-lock-release-failed",{lockPath:o,error:a instanceof Error?a.message:String(a)})}}}};let c=m(o);if(c&&!s.has(c.token)&&function(a){if(a.host!==(0,e.hostname)())return!1;try{return process.kill(a.pid,0),!1}catch(a){return"ESRCH"===a.code}}(c)){s.add(c.token);let a=m(o);if(a&&a.token===c.token)try{(0,d.rmSync)(o,{recursive:!0,force:!0}),h.warn("machine-lock-broken-stale",{lockPath:o,pid:c.pid})}catch{}continue}let g=Date.now();if(g>=q)return{acquired:!1,waitedMs:g-p,heldBy:n(c)};await function(a){return new Promise(b=>setTimeout(b,a))}(Math.min(i,q-g))}}},53604:(a,b,c)=>{c.d(b,{Cr:()=>k,L8:()=>i});var d=c(55511),e=c(29021),f=c(21820),g=c(33873);let h=(0,c(72626).h)("lib/verification/worktree-index"),i="worktree-index";function j(a,b){try{return(0,e.readFileSync)((0,g.join)(a,b),"utf8").trim()}catch{return null}}function k(a,b={}){let c=b.root??function(a=process.env){let b=a.CM_VERIFY_WORKTREE_INDEX_ROOT;return b&&""!==b.trim()?b:(0,g.join)((0,f.homedir)(),".commandmate",i)}();try{(0,e.mkdirSync)(c,{recursive:!0});let b=new Set;for(let d of(0,e.readdirSync)(c))if(/^\d+$/.test(d)){if(j(c,d)===a)return Number(d);b.add(Number(d))}for(let d=0;d<1024;d++)if(!b.has(d)&&function(a,b,c){try{return(0,e.writeFileSync)((0,g.join)(a,String(b)),`${c}
2
- `,{encoding:"utf8",flag:"wx"}),!0}catch(d){if("EEXIST"!==d.code)throw d;return j(a,String(b))===c}}(c,d,a))return d;h.warn("worktree-index-exhausted",{worktreeId:a,root:c})}catch(b){h.warn("worktree-index-unavailable",{worktreeId:a,root:c,error:b instanceof Error?b.message:String(b)})}return Number.parseInt((0,d.createHash)("sha256").update(a).digest("hex").slice(0,8),16)%1024}},74985:(a,b,c)=>{c.d(b,{Uq:()=>i,uT:()=>n});var d=c(33873),e=c(15194),f=c(77142),g=c(90384);let h=`options.requireEnvClean (${g.aT})`;function i(a,b){let c=[];return b?.options.requireEnvClean&&c.push(h),a&&!0===a.success.requireEnvClean&&c.push("success.requireEnvClean (task contract)"),{required:c.length>0,sources:c}}let j=[...e.XH].sort((a,b)=>b.length-a.length);function k(a,b,c){switch(a){case"tmux-sessions":return function(a,b){if(!a.startsWith(f.HL))return"unattributed";let c=a.slice(f.HL.length),d=j.find(a=>c.startsWith(`${a}-`));if(!d)return"unattributed";let e=c.slice(d.length+1);return e===b||e.startsWith(`${b}-`)?"self":"other"}(b.key,c.worktreeId);case"listeners":return function(a,b){if(!a)return"unattributed";let c=(0,d.resolve)(b),e=(0,d.resolve)(a);if(e===c||e.startsWith(c+d.sep))return"self";let f=(0,d.dirname)(c);return e!==f&&e.startsWith(f+d.sep)?"other":"unattributed"}(b.anchor,c.worktreePath);default:return"unattributed"}}function l(a,b){return{key:a.key,detail:a.detail,owner:b}}function m(a,b){let c=b.slice(0,25),d=b.length-c.length,e=c.map(b=>{let c=b.detail?` ${b.detail}`:"";return` ${a} ${b.key}${c} [${b.owner}]`});return d>0&&e.push(` ... and ${d} more`),e}async function n(a){let b,c=Date.now(),d=(a,b,d)=>({status:a,exitCode:d,startedAt:c,durationMs:Date.now()-c,logTail:b});if(!a.baseline)return d("error",function(a,b){let c=a?`task ${a}`:"this run",d=b.length>0?b.join(" and "):"nothing";return`${g.Q5}: UNKNOWN — no baseline snapshot exists for ${c}, so nothing can be compared. This is NOT "the environment is unchanged": no measurement was taken. A baseline is recorded when the task is created (\`send --contract\`) and only while the gate is switched on (currently: ${d}). Switch it on, then re-send the task.`}(a.taskId,a.sources),null);let e=a.capture??(()=>(0,f._8)({worktreeId:a.worktreeId}));try{b=await e()}catch(a){return d("error",`${g.Q5}: UNKNOWN — the current snapshot could not be taken: ${a instanceof Error?a.message:String(a)}`,null)}let h=function(a,b,c){let d=f.I1.map(d=>{let e=a.probes[d],f=b.probes[d];if(!e||"ok"!==e.status)return{probeId:d,status:"unknown",reason:`baseline probe unavailable: ${e?.reason??"not recorded"}`,added:[],ignoredAdded:[],removed:[]};if(!f||"ok"!==f.status)return{probeId:d,status:"unknown",reason:`current probe unavailable: ${f?.reason??"not recorded"}`,added:[],ignoredAdded:[],removed:[]};let g=new Set(e.entries.map(a=>a.key)),h=new Set(f.entries.map(a=>a.key)),i=[],j=[];for(let a of f.entries){if(g.has(a.key))continue;let b=k(d,a,c);("other"===b?j:i).push(l(a,b))}let m=e.entries.filter(a=>!h.has(a.key)).map(a=>l(a,k(d,a,c)));return{probeId:d,status:i.length+m.length>0?"violated":"clean",reason:null,added:i,ignoredAdded:j,removed:m}});return{status:d.some(a=>"violated"===a.status)?"violated":d.some(a=>"unknown"===a.status)?"unknown":"clean",probes:d}}(a.baseline,b,a),i=`${g.Q5}: baseline=${new Date(a.baseline.capturedAt).toISOString()} status=${h.status}`,j=`${i}
3
- ${function(a){let b=[];for(let c of a.probes){let a=f.J6[c.probeId];if("unknown"===c.status){b.push(` ${c.probeId} UNKNOWN (${a}): ${c.reason??"no reason recorded"}`);continue}if("clean"===c.status){let d=c.ignoredAdded.length>0?` (${c.ignoredAdded.length} addition(s) attributed to another worktree)`:"";b.push(` ${c.probeId} clean (${a})${d}`);continue}for(let d of(b.push(` ${c.probeId} VIOLATED (${a}): +${c.added.length} -${c.removed.length}`),b.push(...m("+",c.added)),b.push(...m("-",c.removed)),c.ignoredAdded))b.push(` \xb7 ${d.key} (ignored: belongs to another worktree)`)}return b.join("\n")}(h)}`;return"clean"===h.status?d("passed",j,0):"unknown"===h.status?d("error",`${j}
4
- UNKNOWN is not a pass: at least one probe could not be compared, so the environment was not measured.`,null):d("failed",`${j}
5
- Anything listed under "+" was started or created during this task and left behind — stop it by PID and remove it. Anything under "-" existed when the task started and is now gone — it was killed or deleted; restart or restore it. Never stop a process by pattern (\`pkill -f\`): it takes every process whose command line matches, which is how the production server was stopped in #1739.`,1)}},77142:(a,b,c)=>{c.d(b,{HL:()=>u,I1:()=>m,J6:()=>n,_8:()=>A,dV:()=>E,g9:()=>F});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(87447),i=c(72626),j=c(49987),k=c(53604);let l=(0,i.h)("lib/verification/env-snapshot"),m=["listeners","tmux-sessions","home-entries","commandmate-entries"],n={listeners:"CommandMate TCP listeners","tmux-sessions":"mcbd-* tmux sessions","home-entries":"$HOME entries","commandmate-entries":"~/.commandmate entries"},o={run:function(a,b){return new Promise(c=>{(0,d.execFile)(a,b,{timeout:5e3,maxBuffer:4194304,encoding:"utf8"},(b,d,e)=>b?"number"!=typeof b.code||b.killed?void c({code:null,stdout:d,stderr:e,failure:b.killed?`${a} exceeded 5000ms and was terminated`:`${a} could not be run: ${b.message}`}):void c({code:b.code,stdout:d,stderr:e,failure:null}):void c({code:0,stdout:d,stderr:e,failure:null}))})},readDir:a=>(0,e.readdirSync)(a),homeDir:()=>(0,f.homedir)()},p=/commandmate|dist\/server\/server\.js|next-server|next (dev|start)|server\.ts/i;function q(a){let b=[],c=null;for(let d of a.split("\n")){if(""===d)continue;let a=d[0],e=d.slice(1);if("p"===a){let a=Number(e);if(!Number.isInteger(a)){c=null;continue}c={pid:a,fields:new Map},b.push(c);continue}if(!c)continue;let f=c.fields.get(a);f?f.push(e):c.fields.set(a,[e])}return b}function r(a){return{status:"unavailable",entries:[],reason:a}}function s(a){let b=new Map;for(let c of a)b.has(c.key)||b.set(c.key,c);return{status:"ok",entries:[...b.values()].sort((a,b)=>a.key<b.key?-1:+(a.key>b.key)),reason:null}}async function t(a){let b=await a.run("lsof",["-nP","-iTCP","-sTCP:LISTEN","-F","pcn"]);if(null!==b.failure)return r(b.failure);if(0!==b.code&&1!==b.code)return r(`lsof exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`);let c=q(b.stdout);if(0===c.length)return s([]);let d=await a.run("ps",["-A","-o","pid=,command="]);if(null!==d.failure||0!==d.code)return r(d.failure??`ps exited ${d.code}: ${d.stderr.trim()||"no diagnostic output"}`);let e=function(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(.*)$/.exec(c);a&&b.set(Number(a[1]),a[2].trim())}return b}(d.stdout),f=c.filter(a=>{let b=e.get(a.pid);return void 0!==b&&p.test(b)});if(0===f.length)return s([]);let g=new Map,h=f.map(a=>String(a.pid)),i=await a.run("lsof",["-a","-d","cwd","-p",h.join(","),"-F","pn"]);if(null===i.failure&&(0===i.code||1===i.code))for(let a of q(i.stdout)){let[b]=a.fields.get("n")??[];b&&g.set(a.pid,b)}let j=[];for(let a of f){let b=a.fields.get("c")?.[0]??"unknown";for(let c of a.fields.get("n")??[]){let d=function(a){let b=a.lastIndexOf(":");if(b<0)return null;let c=a.slice(b+1);return/^\d+$/.test(c)?c:null}(c);d&&j.push({key:`tcp/${d}`,detail:`${b} pid=${a.pid}`,anchor:g.get(a.pid)??null})}}return s(j)}let u="mcbd-";async function v(a){let b=await a.run("tmux",["list-sessions","-F","#{session_name}"]);return null!==b.failure?r(b.failure):0!==b.code?/no server running|error connecting to|no sessions/i.test(b.stderr)?s([]):r(`tmux list-sessions exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`):s(b.stdout.split("\n").map(a=>a.trim()).filter(a=>a.startsWith(u)).map(a=>({key:a,detail:null,anchor:null})))}let w=[/-wal$/,/-shm$/,/-journal$/,/^\.DS_Store$/],x="env-snapshots",y=[j.Iq,k.L8];function z(a,b,{missingIsEmpty:c,alsoIgnored:d=[]}){let e;try{e=a.readDir(b)}catch(d){let a=d.code;if(c&&"ENOENT"===a)return s([]);return r(`could not list ${b}: ${d.message}`)}return s(e.filter(a=>!(a===x||w.some(b=>b.test(a)))&&!d.includes(a)).map(a=>({key:a,detail:null,anchor:null})))}async function A(a){let b=a.deps??o,[c,d]=await Promise.all([t(b).catch(a=>r(`listeners probe threw: ${a.message}`)),v(b).catch(a=>r(`tmux probe threw: ${a.message}`))]);return{version:1,capturedAt:a.now??Date.now(),worktreeId:a.worktreeId,probes:{listeners:c,"tmux-sessions":d,"home-entries":z(b,b.homeDir(),{missingIsEmpty:!1}),"commandmate-entries":z(b,(0,g.join)(b.homeDir(),".commandmate"),{missingIsEmpty:!0,alsoIgnored:y})}}}function B(){return(0,g.join)((0,g.dirname)((0,h._$)().CM_DB_PATH),x)}let C=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function D(a,b){return C.test(b)?(0,g.join)(a,`${b}.json`):null}function E(a,b,c=B()){let d=D(c,a);if(!d)return l.warn("env-snapshot-rejected-task-id",{taskId:a}),!1;try{return(0,e.mkdirSync)(c,{recursive:!0,mode:448}),(0,e.writeFileSync)(d,JSON.stringify(b),{encoding:"utf8",mode:384}),!function(a,b){let c;try{c=(0,e.readdirSync)(a)}catch{return}for(let d of c){if(!d.endsWith(".json"))continue;let c=(0,g.join)(a,d);try{b-(0,e.statSync)(c).mtimeMs>2592e6&&(0,e.rmSync)(c,{force:!0})}catch{}}}(c,b.capturedAt),!0}catch(b){return l.warn("env-snapshot-write-failed",{taskId:a,error:b instanceof Error?b.message:String(b)}),!1}}function F(a,b=B()){let c=D(b,a);if(!c)return null;try{let a=JSON.parse((0,e.readFileSync)(c,"utf8"));if(!function(a){if("object"!=typeof a||null===a||1!==a.version||"number"!=typeof a.capturedAt)return!1;let b=a.probes;return"object"==typeof b&&null!==b&&m.every(a=>{var c;return"object"==typeof(c=b[a])&&null!==c&&("ok"===c.status||"unavailable"===c.status)&&Array.isArray(c.entries)})}(a))return null;return a}catch{return null}}}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6022],{17683:(e,t,a)=>{a.d(t,{$2:()=>d,B1:()=>p,Dq:()=>u,If:()=>c,NP:()=>i,TR:()=>f,wp:()=>l});var s=a(75676);let n="commandmate.worktree.surfaceMode-",r="commandmate.settings.defaultSurfaceMode",l="/api/settings/default-surface-mode";function d(e,t){return"".concat(n).concat(e,"-split-").concat(t)}function i(e){return"".concat(n).concat(e,"-mobile")}function o(e){try{let t=window.localStorage.getItem(e);return(0,s.jg)(t)?t:null}catch(e){return null}}function u(e){var t;return j||(j=!0,b()),null!=(t=o(e))?t:x()}function c(e,t){try{window.localStorage.setItem(e,t)}catch(e){}}function f(e,t){let a=void 0===t?function(){try{var e=window.location.search;if(!e)return null;try{let t=new URLSearchParams(e).get("view");return(0,s.jg)(t)?t:null}catch(e){return null}}catch(e){return null}}():t;return a?(c(e,a),a):u(e)}let g=s.wf,m=new Set;function x(){var e;return null!=(e=o(r))?e:g}function p(e){if(!(0,s.jg)(e))return!1;let t=x()!==e;if(g=e,c(r,e),t)for(let e of m)e();return t}let h=null,v=!1,j=!1;async function b(){return v?x():h||("function"!=typeof fetch?x():h=(async()=>{try{let e=await fetch(l);if(e.ok){let t=await e.json();p(null==t?void 0:t.defaultSurfaceMode),v=!0}}catch(e){}finally{h=null}return x()})())}},46022:(e,t,a)=>{a.d(t,{uN:()=>S,he:()=>x,$8:()=>j});var s=a(95155),n=a(12115),r=a(18955),l=a(5917),d=a(20562),i=a(8803),o=a(65229),u=a(6191),c=a(28019),f=a(54014),g=a(55449);function m(e){return!!e&&"object"==typeof e&&Array.isArray(e.defaultSelectedAgents)&&e.defaultSelectedAgents.length>0&&Array.isArray(e.available)&&e.available.length>0&&"number"==typeof e.minAgents&&"number"==typeof e.maxAgents}function x(){var e;let t=(0,r.c)("common"),[a,x]=(0,n.useState)(null),[p,h]=(0,n.useState)([]),[v,j]=(0,n.useState)(!0),[b,y]=(0,n.useState)("idle"),[N,w]=(0,n.useState)(null),S=(0,n.useCallback)(async()=>{try{let e=await fetch("".concat(g.zk,"?include=installed"));if(!e.ok)throw Error(String(e.status));let t=await e.json();if(!m(t))throw Error("unexpected body");x(t),h(t.defaultSelectedAgents),(0,g.IK)(t.defaultSelectedAgents)}catch(e){w(t("settings.defaultAgents.loadError"))}finally{j(!1)}},[t]);(0,n.useEffect)(()=>{S()},[S]);let A=(0,n.useCallback)(e=>{h(e),y("idle"),w(null)},[]),k=(0,n.useCallback)((e,t)=>{let a=e+t;if(a<0||a>=p.length)return;let s=[...p];[s[e],s[a]]=[s[a],s[e]],A(s)},[p,A]),C=(0,n.useCallback)(async e=>{y("saving"),w(null);try{let s=await fetch(g.zk,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:e})}),n=await s.json().catch(()=>null);if(!s.ok||!m(n)){var a;y("error"),w(null!=(a=null==n?void 0:n.error)?a:t("settings.defaultAgents.saveError"));return}x(e=>({...n,installed:null==e?void 0:e.installed})),h(n.defaultSelectedAgents),(0,g.IK)(n.defaultSelectedAgents),y("saved")}catch(e){y("error"),w(t("settings.defaultAgents.saveError"))}},[t]);if(v)return(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),t("loadingPage")]})});if(!a)return(0,s.jsx)(c.Zp,{children:(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-agents-load-error",children:null!=N?N:t("settings.defaultAgents.loadError")})});let E=null!=(e=a.installed)?e:[],M=a.available.filter(e=>!p.includes(e)),U=p.length<a.minAgents,T=p.length>a.maxAgents,P=!U&&!T&&"saving"!==b,I=e=>E.includes(e)?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-success-subtle px-1.5 py-0.5 text-xs text-success-foreground","data-testid":"default-agents-installed-".concat(e),children:[(0,s.jsx)(l.A,{className:"h-3 w-3","aria-hidden":"true"}),t("settings.defaultAgents.installed")]}):(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:t("settings.defaultAgents.notInstalled")});return(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"space-y-4","data-testid":"default-agents-settings",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:t("settings.defaultAgents.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultAgents.description")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultAgents.appliesToNew")})]}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-selected",children:p.map((e,n)=>(0,s.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":"default-agents-row-".concat(e),children:[(0,s.jsx)("span",{className:"w-6 text-xs text-muted-foreground",children:n+1}),(0,s.jsx)("span",{className:"text-sm text-foreground",children:(0,f.oo)(e)}),0===n&&(0,s.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"default-agents-primary-badge",children:t("settings.defaultAgents.primary")}),(0,s.jsx)("span",{className:"ml-auto",children:I(e)}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>k(n,-1),disabled:0===n,"aria-label":t("settings.defaultAgents.moveUp"),"data-testid":"default-agents-up-".concat(e),children:(0,s.jsx)(d.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>k(n,1),disabled:n===p.length-1,"aria-label":t("settings.defaultAgents.moveDown"),"data-testid":"default-agents-down-".concat(e),children:(0,s.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>A(p.filter(t=>t!==e)),disabled:p.length<=a.minAgents,"aria-label":t("settings.defaultAgents.remove"),"data-testid":"default-agents-remove-".concat(e),children:(0,s.jsx)(o.A,{className:"h-4 w-4","aria-hidden":"true"})})]},e))}),M.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"mb-2 text-xs text-muted-foreground",children:t("settings.defaultAgents.addLabel")}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-available",children:M.map(e=>(0,s.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border px-3 py-2",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:(0,f.oo)(e)}),(0,s.jsx)("span",{className:"ml-auto",children:I(e)}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>A([...p,e]),disabled:p.length>=a.maxAgents,"aria-label":t("settings.defaultAgents.add"),"data-testid":"default-agents-add-".concat(e),children:(0,s.jsx)(u.A,{className:"h-4 w-4","aria-hidden":"true"})})]},e))})]}),(U||T)&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-range-error",children:t("settings.defaultAgents.range",{min:a.minAgents,max:a.maxAgents})}),N&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-error",children:N}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(c.$n,{size:"sm",onClick:()=>void C(p),disabled:!P,"data-testid":"default-agents-save",children:"saving"===b?t("settings.defaultAgents.saving"):t("settings.defaultAgents.save")}),(0,s.jsx)(c.$n,{size:"sm",variant:"ghost",onClick:()=>void C(null),disabled:!a.configured||"saving"===b,"data-testid":"default-agents-reset",children:t("settings.defaultAgents.reset")}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"default-agents-state",children:"saved"===b?t("settings.defaultAgents.saved"):a.configured?t("settings.defaultAgents.configured"):t("settings.defaultAgents.usingBuiltIn")})]}),a.configured&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-agents-builtin",children:t("settings.defaultAgents.builtIn",{agents:a.constantDefault.map(f.oo).join(", ")})})]})})}var p=a(17683),h=a(75676);function v(e){return!!e&&"object"==typeof e&&(0,h.jg)(e.defaultSurfaceMode)&&(0,h.jg)(e.constantDefault)&&Array.isArray(e.available)&&e.available.length>0&&e.available.every(h.jg)}function j(){var e;let t=(0,r.c)("common"),[a,l]=(0,n.useState)(null),[d,i]=(0,n.useState)(!0),[o,u]=(0,n.useState)("idle"),[f,g]=(0,n.useState)(null),m=(0,n.useCallback)(async()=>{try{let e=await fetch(p.wp);if(!e.ok)throw Error(String(e.status));let t=await e.json();if(!v(t))throw Error("unexpected body");l(t),(0,p.B1)(t.defaultSurfaceMode)}catch(e){g({kind:"load"})}finally{i(!1)}},[]);(0,n.useEffect)(()=>{m()},[m]);let x=(0,n.useCallback)(async e=>{u("saving"),g(null),l(t=>t?{...t,defaultSurfaceMode:e}:t);try{let t=await fetch(p.wp,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:e})}),a=await t.json().catch(()=>null);if(!t.ok||!v(a)){u("error"),g({kind:"save",detail:null==a?void 0:a.error}),m();return}l(a),(0,p.B1)(a.defaultSurfaceMode),u("saved")}catch(e){u("error"),g({kind:"save"}),m()}},[m]),h=f?null!=(e=f.detail)?e:t("load"===f.kind?"settings.defaultSurfaceMode.loadError":"settings.defaultSurfaceMode.saveError"):null;return d?(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),t("loadingPage")]})}):a?(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"space-y-4","data-testid":"default-surface-mode-settings",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:t("settings.defaultSurfaceMode.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.description")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.appliesToNew")})]}),(0,s.jsx)("div",{role:"radiogroup","aria-label":t("settings.defaultSurfaceMode.title"),className:"space-y-2","data-selected":a.defaultSurfaceMode,children:a.available.map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":"default-surface-mode-option-".concat(e),children:[(0,s.jsx)("input",{type:"radio",name:"default-surface-mode",value:e,className:"mt-0.5",checked:a.defaultSurfaceMode===e,disabled:"saving"===o,onChange:()=>void x(e),"data-testid":"default-surface-mode-radio-".concat(e)}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"block text-sm text-foreground",children:t("settings.defaultSurfaceMode.mode.".concat(e))}),(0,s.jsx)("span",{className:"block text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.hint.".concat(e))})]})]},e))}),h&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-surface-mode-error",children:h}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-surface-mode-state",children:"saving"===o?t("settings.defaultSurfaceMode.saving"):"saved"===o?t("settings.defaultSurfaceMode.saved"):a.configured?t("settings.defaultSurfaceMode.configured"):t("settings.defaultSurfaceMode.usingBuiltIn")})]})}):(0,s.jsx)(c.Zp,{children:(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-surface-mode-load-error",children:null!=h?h:t("settings.defaultSurfaceMode.loadError")})})}var b=a(68695),y=a(52056),N=a(48314);function w(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(!e||"object"!=typeof e)return null;let a=e.type;if("plan"!==a&&"output"!==a&&"done"!==a)return null;return e}catch(e){return null}}function S(e){var t,a,l;let{worktreeId:d,instances:i,variant:o="card"}=e,u=(0,r.c)("common"),{versions:g,isLoading:m,loadError:x,run:p,isUpdating:h,update:v}=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,a]=(0,n.useState)(null),[s,r]=(0,n.useState)(!1),[l,d]=(0,n.useState)(e),[i,o]=(0,n.useState)(null),[u,c]=(0,n.useState)(!1),f=(0,n.useRef)(!0);(0,n.useEffect)(()=>(f.current=!0,()=>{f.current=!1}),[]);let g=(0,n.useCallback)(async function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e){d(!0);try{let e=await fetch("/api/agents/versions".concat(t?"?refresh=1":""));if(!e.ok)throw Error(String(e.status));let s=await e.json();if(!(s&&"object"==typeof s&&Array.isArray(s.tools)&&Array.isArray(s.updatable)))throw Error("unexpected body");if(!f.current)return;a(s.tools),r(!1)}catch(e){if(!f.current)return;r(!0)}finally{f.current&&d(!1)}}},[e]);(0,n.useEffect)(()=>{g(!1)},[g]);let m=(0,n.useCallback)(async e=>{if(u)return;c(!0),o({tool:e,command:null,output:"",ok:null,previousVersion:null,installed:null,error:null});let t=e=>{f.current&&o(t=>t?{...t,ok:!1,error:e}:t)};try{var a,s;let n=await fetch("/api/agents/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e})});if(!n.ok||!n.body){let e=await n.json().catch(()=>null);t(null!=(a=null==e?void 0:e.error)?a:"Request failed (".concat(n.status,")"));return}let r=n.body.getReader(),l=new TextDecoder,d="",i=e=>{f.current&&o(t=>{var a;return t?"plan"===e.type?{...t,command:e.command}:"output"===e.type?{...t,output:t.output+e.text}:{...t,ok:e.ok,previousVersion:e.previousVersion,installed:e.installed,error:null!=(a=e.error)?a:null}:t})};for(;;){let{done:e,value:t}=await r.read();if(e)break;let a=(d+=l.decode(t,{stream:!0})).split("\n");for(let e of(d=null!=(s=a.pop())?s:"",a)){let t=w(e);t&&i(t)}}let u=w(d);u&&i(u)}catch(e){t(e instanceof Error?e.message:String(e))}finally{f.current&&c(!1),await g(!0)}},[u,g]);return{versions:t,isLoading:l,loadError:s,run:i,isUpdating:u,reload:g,update:m}}(!0),[j,S]=(0,n.useState)(0),A=function(e,t,a){let[s,r]=(0,n.useState)({});return(0,n.useEffect)(()=>{if(!e||!t||0===t.length)return void r({});let a=!1;return(async()=>{try{let t=await fetch("/api/worktrees/".concat(e));if(!t.ok)return;let s=await t.json();if(a)return;let n=s.sessionStatusByInstance,l={};for(let[e,t]of Object.entries(null!=n?n:{}))(null==t?void 0:t.isRunning)&&(l[e]=!0);r(l)}catch(e){}})(),()=>{a=!0}},[e,t,a]),s}(d,i,j),[k,C]=(0,n.useState)({}),[E,M]=(0,n.useState)(null),U=(0,n.useRef)(null);(0,n.useEffect)(()=>{U.current&&(U.current.scrollTop=U.current.scrollHeight)},[null==p?void 0:p.output]);let T=(null==p?void 0:p.ok)===!0;(0,n.useEffect)(()=>{T&&S(e=>e+1)},[T]);let P=(0,n.useCallback)(e=>(null!=i?i:[]).filter(t=>t.cliTool===e&&A[t.id]),[i,A]),I=(0,n.useCallback)(async e=>{if(d){M(null);try{let t=new URLSearchParams({cliTool:e.cliTool,instance:e.id}),a=await fetch("/api/worktrees/".concat(d,"/kill-session?").concat(t.toString()),{method:"POST"});if(!a.ok&&404!==a.status)throw Error(String(a.status));C(t=>({...t,[e.id]:!0})),S(e=>e+1)}catch(e){M(u("agentUpdates.restartError"))}}},[d,u]),R=m&&!g?(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),u("loadingPage")]}):x&&!g?(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"agent-updates-load-error",children:u("agentUpdates.loadError")}):(0,s.jsxs)("div",{className:"space-y-3","data-testid":"agent-updates",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:u("agentUpdates.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:u("agentUpdates.description")})]}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"agent-updates-rows",children:(null!=g?g:[]).map(e=>{var t,a;let n=P(e.tool),r=e.updatable&&null!==e.installed;return(0,s.jsxs)("li",{className:"rounded-md border border-border bg-surface px-3 py-2","data-testid":"agent-updates-row-".concat(e.tool),children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:(a=e.tool,(0,f.oo)(a)||a)}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-installed-".concat(e.tool),children:e.installed?u("agentUpdates.installed",{version:e.installed}):u("agentUpdates.notInstalled")}),e.updateAvailable&&(0,s.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"agent-updates-available-".concat(e.tool),children:u("agentUpdates.available",{version:null!=(t=e.latestVersion)?t:""})}),e.dismissedInCodex&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-dismissed-".concat(e.tool),children:u("agentUpdates.dismissed")}),r&&(0,s.jsxs)(c.$n,{size:"sm",className:"ml-auto",disabled:h,onClick:()=>void v(e.tool),"data-testid":"agent-updates-update-".concat(e.tool),children:[(0,s.jsx)(b.A,{className:"h-4 w-4","aria-hidden":"true"}),h&&(null==p?void 0:p.tool)===e.tool?u("agentUpdates.updating"):u("agentUpdates.update")]})]}),r&&n.length>0&&(0,s.jsxs)("div",{className:"mt-2 flex items-start gap-1 text-xs text-warning-foreground","data-testid":"agent-updates-restart-warning-".concat(e.tool),children:[(0,s.jsx)(y.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":"true"}),(0,s.jsx)("span",{children:u("agentUpdates.restartWarning",{sessions:n.map(e=>e.alias).join(", ")})})]}),r&&0===n.length&&void 0===d&&(0,s.jsx)("p",{className:"mt-2 text-xs text-muted-foreground","data-testid":"agent-updates-restart-notice-".concat(e.tool),children:u("agentUpdates.restartNotice")}),T&&(null==p?void 0:p.tool)===e.tool&&n.map(e=>(0,s.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,s.jsxs)(c.$n,{size:"sm",variant:"ghost",disabled:k[e.id],onClick:()=>void I(e),"data-testid":"agent-updates-restart-".concat(e.id),children:[(0,s.jsx)(N.A,{className:"h-4 w-4","aria-hidden":"true"}),u("agentUpdates.restart",{alias:e.alias})]}),k[e.id]&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:u("agentUpdates.restarted")})]},e.id))]},e.tool)})}),p&&(0,s.jsxs)("div",{className:"space-y-2","data-testid":"agent-updates-run",children:[p.command&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-command",children:u("agentUpdates.running",{command:p.command})}),p.output&&(0,s.jsx)("pre",{ref:U,"data-testid":"agent-updates-output",className:"max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-terminal-surface p-2 text-xs text-terminal-foreground",children:p.output}),!0===p.ok&&(0,s.jsx)("div",{className:"text-xs text-success-foreground","data-testid":"agent-updates-success",children:u("agentUpdates.succeeded",{from:null!=(t=p.previousVersion)?t:"?",to:null!=(a=p.installed)?a:"?"})}),!1===p.ok&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-failure",children:u("agentUpdates.failed",{error:null!=(l=p.error)?l:""})})]}),E&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-restart-error",children:E})]});return"plain"===o?R:(0,s.jsx)(c.Zp,{children:R})}},75676:(e,t,a)=>{a.d(t,{jg:()=>r,kQ:()=>l,mR:()=>o,mS:()=>i,wf:()=>s});let s="terminal",n=new Set(["terminal","chat"]);function r(e){return"string"==typeof e&&n.has(e)}let l={data:null,messageId:null,visible:!1,answering:!1},d={mode:"split",mobileActivePane:"terminal",leftPaneTab:"history",splitRatio:.5,leftPaneCollapsed:!1,activityBar:{active:"files"},historyPane:{visible:!0,width:25,collapsed:!1}},i={type:null,message:null,retryable:!1,retryCount:0};function o(){return{phase:"idle",prompt:{...l},layout:{...d},error:{...i},messages:[],wsConnected:!1}}}}]);