commandmate 0.29.0 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (907) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +444 -400
  3. package/.next/app-path-routes-manifest.json +31 -25
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +3 -3
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +17 -0
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/update/route.js +2 -0
  12. package/.next/server/app/api/agents/update/route.js.nft.json +1 -0
  13. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -0
  14. package/.next/server/app/api/agents/versions/route.js +1 -0
  15. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -0
  16. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -0
  17. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/app/update-check/route.js +1 -1
  19. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  21. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  24. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/messages/route.js +1 -1
  27. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/session/route.js +1 -1
  30. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/start/route.js +2 -2
  33. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  36. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  37. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/assistant/tools/route.js +1 -1
  39. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  40. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/capabilities/route.js +1 -1
  45. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/daily-summary/route.js +1 -1
  47. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  48. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  50. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  51. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  53. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  54. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  56. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/external-apps/route.js +1 -1
  59. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  60. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/fs/browse/route.js +1 -7
  62. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  63. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/fs/recent-paths/route.js +1 -7
  65. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  66. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  68. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  71. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  72. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  74. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/metrics/vibe/route.js +2 -2
  77. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  78. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/push/escalation/route.js +7 -1
  81. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  82. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  84. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  85. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/push/vapid/route.js +7 -1
  87. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  88. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  97. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/clone/route.js +1 -1
  103. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  106. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/restore/route.js +1 -1
  109. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/route.js +1 -1
  112. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/scan/route.js +1 -1
  115. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/repositories/sync/route.js +1 -1
  118. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  119. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  122. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/settings/default-agents/route.js +1 -0
  124. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -0
  125. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -0
  126. package/.next/server/app/api/sidebar/group-order/route.js +1 -7
  127. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  128. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/skills/[id]/route.js +1 -1
  130. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/installations/route.js +2 -2
  133. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/operations/route.js +2 -2
  136. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/reindex/route.js +1 -1
  139. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  140. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/skills/route.js +1 -1
  142. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  143. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/slash-commands/route.js +1 -1
  145. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  146. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  148. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  149. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/templates/[id]/route.js +2 -2
  154. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/templates/route.js +2 -2
  157. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  158. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/todos/route.js +1 -1
  160. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  161. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  163. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  164. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/verification/runs/route.js +1 -1
  166. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  167. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  181. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -2
  184. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  193. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  280. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  283. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  316. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  322. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -7
  328. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -0
  391. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -0
  392. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -0
  393. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  394. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  395. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  396. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -0
  397. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -0
  398. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -0
  399. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  400. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  401. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  402. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  406. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  407. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  408. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -0
  409. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -0
  410. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -0
  411. package/.next/server/app/api/worktrees/route.js +1 -1
  412. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  413. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  414. package/.next/server/app/chat/page.js +2 -2
  415. package/.next/server/app/chat/page.js.nft.json +1 -1
  416. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  417. package/.next/server/app/login/page.js +2 -2
  418. package/.next/server/app/login/page.js.nft.json +1 -1
  419. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  421. package/.next/server/app/more/page.js +2 -2
  422. package/.next/server/app/more/page.js.nft.json +1 -1
  423. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  424. package/.next/server/app/offline/page.js.nft.json +1 -1
  425. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  426. package/.next/server/app/page.js +1 -1
  427. package/.next/server/app/page.js.nft.json +1 -1
  428. package/.next/server/app/page_client-reference-manifest.js +1 -1
  429. package/.next/server/app/proxy/[...path]/route.js +1 -1
  430. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  431. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  432. package/.next/server/app/repositories/page.js +2 -2
  433. package/.next/server/app/repositories/page.js.nft.json +1 -1
  434. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  435. package/.next/server/app/review/page.js +1 -1
  436. package/.next/server/app/review/page.js.nft.json +1 -1
  437. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  438. package/.next/server/app/sessions/page.js +1 -1
  439. package/.next/server/app/sessions/page.js.nft.json +1 -1
  440. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  441. package/.next/server/app/skills/[skillId]/page.js +2 -2
  442. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  443. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/skills/installed/page.js +2 -2
  445. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  446. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  447. package/.next/server/app/skills/page.js +2 -2
  448. package/.next/server/app/skills/page.js.nft.json +1 -1
  449. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  450. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  451. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  452. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  453. package/.next/server/app/worktrees/[id]/page.js +12 -12
  454. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  455. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  456. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  457. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  458. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  459. package/.next/server/app-paths-manifest.json +31 -25
  460. package/.next/server/chunks/1058.js +1 -1
  461. package/.next/server/chunks/1068.js +1 -1
  462. package/.next/server/chunks/1341.js +1 -0
  463. package/.next/server/chunks/1501.js +5 -0
  464. package/.next/server/chunks/1886.js +3 -4
  465. package/.next/server/chunks/2119.js +1 -1
  466. package/.next/server/chunks/2198.js +1 -0
  467. package/.next/server/chunks/221.js +7 -1
  468. package/.next/server/chunks/2404.js +1 -1
  469. package/.next/server/chunks/2445.js +1 -1
  470. package/.next/server/chunks/2759.js +1 -1
  471. package/.next/server/chunks/3543.js +1 -1
  472. package/.next/server/chunks/3558.js +1 -1
  473. package/.next/server/chunks/3707.js +15 -0
  474. package/.next/server/chunks/3722.js +25 -1
  475. package/.next/server/chunks/3869.js +1 -0
  476. package/.next/server/chunks/3945.js +1 -1
  477. package/.next/server/chunks/4299.js +1 -1
  478. package/.next/server/chunks/4390.js +1 -0
  479. package/.next/server/chunks/4393.js +1 -1
  480. package/.next/server/chunks/5017.js +1 -1
  481. package/.next/server/chunks/5164.js +1 -1
  482. package/.next/server/chunks/5571.js +1 -1
  483. package/.next/server/chunks/6130.js +1 -1
  484. package/.next/server/chunks/6285.js +1 -1
  485. package/.next/server/chunks/6781.js +1 -1
  486. package/.next/server/chunks/7366.js +5 -0
  487. package/.next/server/chunks/7824.js +1 -1
  488. package/.next/server/chunks/7905.js +1 -1
  489. package/.next/server/chunks/8118.js +1 -0
  490. package/.next/server/chunks/848.js +1 -1
  491. package/.next/server/chunks/880.js +3 -3
  492. package/.next/server/chunks/8800.js +3 -0
  493. package/.next/server/chunks/9123.js +2 -2
  494. package/.next/server/chunks/9508.js +1 -1
  495. package/.next/server/chunks/9627.js +30 -24
  496. package/.next/server/middleware-build-manifest.js +1 -1
  497. package/.next/server/middleware-manifest.json +5 -5
  498. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  499. package/.next/server/pages/500.html +1 -1
  500. package/.next/server/server-reference-manifest.json +1 -1
  501. package/.next/static/0YoRrahue4Vchxg1z83IQ/_buildManifest.js +1 -0
  502. package/.next/static/chunks/1379-af7af9e08f47c979.js +1 -0
  503. package/.next/static/chunks/{2053-c0e931eb4391baa1.js → 2053-3f299a7a2c7d6767.js} +1 -1
  504. package/.next/static/chunks/3922.9c1ec01fff819c88.js +1 -0
  505. package/.next/static/chunks/{3968-8d8ca15657748bfb.js → 4882-388e94fe0a03c2ba.js} +1 -1
  506. package/.next/static/chunks/5229-b2a81bb8fb5c19e9.js +1 -0
  507. package/.next/static/chunks/6381-9ba5198c0a6ff197.js +1 -0
  508. package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +1 -0
  509. package/.next/static/chunks/{1188-8567ee5ecfef02ee.js → 8593-fa0eb2802e0ce68a.js} +1 -1
  510. package/.next/static/chunks/app/api/agents/update/route-1c30fb8d4d6fa6ef.js +1 -0
  511. package/.next/static/chunks/app/api/agents/versions/route-1c30fb8d4d6fa6ef.js +1 -0
  512. package/.next/static/chunks/app/api/app/update/route-1c30fb8d4d6fa6ef.js +1 -0
  513. package/.next/static/chunks/app/api/app/update-check/route-1c30fb8d4d6fa6ef.js +1 -0
  514. package/.next/static/chunks/app/api/assistant/conversation/route-1c30fb8d4d6fa6ef.js +1 -0
  515. package/.next/static/chunks/app/api/assistant/current-output/route-1c30fb8d4d6fa6ef.js +1 -0
  516. package/.next/static/chunks/app/api/assistant/messages/route-1c30fb8d4d6fa6ef.js +1 -0
  517. package/.next/static/chunks/app/api/assistant/session/route-1c30fb8d4d6fa6ef.js +1 -0
  518. package/.next/static/chunks/app/api/assistant/start/route-1c30fb8d4d6fa6ef.js +1 -0
  519. package/.next/static/chunks/app/api/assistant/terminal/route-1c30fb8d4d6fa6ef.js +1 -0
  520. package/.next/static/chunks/app/api/assistant/tools/route-1c30fb8d4d6fa6ef.js +1 -0
  521. package/.next/static/chunks/app/api/auth/login/route-1c30fb8d4d6fa6ef.js +1 -0
  522. package/.next/static/chunks/app/api/auth/logout/route-1c30fb8d4d6fa6ef.js +1 -0
  523. package/.next/static/chunks/app/api/auth/status/route-1c30fb8d4d6fa6ef.js +1 -0
  524. package/.next/static/chunks/app/api/capabilities/route-1c30fb8d4d6fa6ef.js +1 -0
  525. package/.next/static/chunks/app/api/daily-summary/route-1c30fb8d4d6fa6ef.js +1 -0
  526. package/.next/static/chunks/app/api/daily-summary/status/route-1c30fb8d4d6fa6ef.js +1 -0
  527. package/.next/static/chunks/app/api/external-apps/[id]/health/route-1c30fb8d4d6fa6ef.js +1 -0
  528. package/.next/static/chunks/app/api/external-apps/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  529. package/.next/static/chunks/app/api/external-apps/route-1c30fb8d4d6fa6ef.js +1 -0
  530. package/.next/static/chunks/app/api/fs/browse/route-1c30fb8d4d6fa6ef.js +1 -0
  531. package/.next/static/chunks/app/api/fs/recent-paths/route-1c30fb8d4d6fa6ef.js +1 -0
  532. package/.next/static/chunks/app/api/hooks/agent-event/route-1c30fb8d4d6fa6ef.js +1 -0
  533. package/.next/static/chunks/app/api/hooks/claude-done/route-1c30fb8d4d6fa6ef.js +1 -0
  534. package/.next/static/chunks/app/api/hooks/permission-request/route-1c30fb8d4d6fa6ef.js +1 -0
  535. package/.next/static/chunks/app/api/metrics/vibe/route-1c30fb8d4d6fa6ef.js +1 -0
  536. package/.next/static/chunks/app/api/ollama/models/route-1c30fb8d4d6fa6ef.js +1 -0
  537. package/.next/static/chunks/app/api/push/escalation/route-1c30fb8d4d6fa6ef.js +1 -0
  538. package/.next/static/chunks/app/api/push/subscriptions/route-1c30fb8d4d6fa6ef.js +1 -0
  539. package/.next/static/chunks/app/api/push/vapid/route-1c30fb8d4d6fa6ef.js +1 -0
  540. package/.next/static/chunks/app/api/remote/pair/route-1c30fb8d4d6fa6ef.js +1 -0
  541. package/.next/static/chunks/app/api/repositories/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  542. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  543. package/.next/static/chunks/app/api/repositories/[id]/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  544. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-1c30fb8d4d6fa6ef.js +1 -0
  545. package/.next/static/chunks/app/api/repositories/clone/route-1c30fb8d4d6fa6ef.js +1 -0
  546. package/.next/static/chunks/app/api/repositories/excluded/route-1c30fb8d4d6fa6ef.js +1 -0
  547. package/.next/static/chunks/app/api/repositories/restore/route-1c30fb8d4d6fa6ef.js +1 -0
  548. package/.next/static/chunks/app/api/repositories/route-1c30fb8d4d6fa6ef.js +1 -0
  549. package/.next/static/chunks/app/api/repositories/scan/route-1c30fb8d4d6fa6ef.js +1 -0
  550. package/.next/static/chunks/app/api/repositories/sync/route-1c30fb8d4d6fa6ef.js +1 -0
  551. package/.next/static/chunks/app/api/repositories/validate-path/route-1c30fb8d4d6fa6ef.js +1 -0
  552. package/.next/static/chunks/app/api/settings/default-agents/route-1c30fb8d4d6fa6ef.js +1 -0
  553. package/.next/static/chunks/app/api/sidebar/group-order/route-1c30fb8d4d6fa6ef.js +1 -0
  554. package/.next/static/chunks/app/api/skills/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  555. package/.next/static/chunks/app/api/skills/installations/route-1c30fb8d4d6fa6ef.js +1 -0
  556. package/.next/static/chunks/app/api/skills/operations/route-1c30fb8d4d6fa6ef.js +1 -0
  557. package/.next/static/chunks/app/api/skills/reindex/route-1c30fb8d4d6fa6ef.js +1 -0
  558. package/.next/static/chunks/app/api/skills/route-1c30fb8d4d6fa6ef.js +1 -0
  559. package/.next/static/chunks/app/api/slash-commands/route-1c30fb8d4d6fa6ef.js +1 -0
  560. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-1c30fb8d4d6fa6ef.js +1 -0
  561. package/.next/static/chunks/app/api/tasks/[taskId]/route-1c30fb8d4d6fa6ef.js +1 -0
  562. package/.next/static/chunks/app/api/templates/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  563. package/.next/static/chunks/app/api/templates/route-1c30fb8d4d6fa6ef.js +1 -0
  564. package/.next/static/chunks/app/api/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  565. package/.next/static/chunks/app/api/verification/runs/[runId]/route-1c30fb8d4d6fa6ef.js +1 -0
  566. package/.next/static/chunks/app/api/verification/runs/route-1c30fb8d4d6fa6ef.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-1c30fb8d4d6fa6ef.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-1c30fb8d4d6fa6ef.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-1c30fb8d4d6fa6ef.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-1c30fb8d4d6fa6ef.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-1c30fb8d4d6fa6ef.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-1c30fb8d4d6fa6ef.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/env/route-1c30fb8d4d6fa6ef.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-1c30fb8d4d6fa6ef.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-1c30fb8d4d6fa6ef.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-1c30fb8d4d6fa6ef.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-1c30fb8d4d6fa6ef.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-1c30fb8d4d6fa6ef.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-1c30fb8d4d6fa6ef.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-1c30fb8d4d6fa6ef.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-1c30fb8d4d6fa6ef.js +1 -0
  583. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-1c30fb8d4d6fa6ef.js +1 -0
  584. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-1c30fb8d4d6fa6ef.js +1 -0
  585. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-1c30fb8d4d6fa6ef.js +1 -0
  586. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-1c30fb8d4d6fa6ef.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-1c30fb8d4d6fa6ef.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-1c30fb8d4d6fa6ef.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-1c30fb8d4d6fa6ef.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-1c30fb8d4d6fa6ef.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-1c30fb8d4d6fa6ef.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-1c30fb8d4d6fa6ef.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-1c30fb8d4d6fa6ef.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-1c30fb8d4d6fa6ef.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-1c30fb8d4d6fa6ef.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-1c30fb8d4d6fa6ef.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-1c30fb8d4d6fa6ef.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-1c30fb8d4d6fa6ef.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-1c30fb8d4d6fa6ef.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-1c30fb8d4d6fa6ef.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-1c30fb8d4d6fa6ef.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-1c30fb8d4d6fa6ef.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-1c30fb8d4d6fa6ef.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-1c30fb8d4d6fa6ef.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-1c30fb8d4d6fa6ef.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-1c30fb8d4d6fa6ef.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-1c30fb8d4d6fa6ef.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-1c30fb8d4d6fa6ef.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-1c30fb8d4d6fa6ef.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-1c30fb8d4d6fa6ef.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-1c30fb8d4d6fa6ef.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-1c30fb8d4d6fa6ef.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-1c30fb8d4d6fa6ef.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/route-1c30fb8d4d6fa6ef.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-1c30fb8d4d6fa6ef.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-1c30fb8d4d6fa6ef.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-1c30fb8d4d6fa6ef.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/search/route-1c30fb8d4d6fa6ef.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/send/route-1c30fb8d4d6fa6ef.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-1c30fb8d4d6fa6ef.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-1c30fb8d4d6fa6ef.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-1c30fb8d4d6fa6ef.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-1c30fb8d4d6fa6ef.js +1 -0
  625. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-1c30fb8d4d6fa6ef.js +1 -0
  626. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-1c30fb8d4d6fa6ef.js +1 -0
  627. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-1c30fb8d4d6fa6ef.js +1 -0
  628. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-1c30fb8d4d6fa6ef.js +1 -0
  629. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-1c30fb8d4d6fa6ef.js +1 -0
  630. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-1c30fb8d4d6fa6ef.js +1 -0
  631. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-1c30fb8d4d6fa6ef.js +1 -0
  632. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-1c30fb8d4d6fa6ef.js +1 -0
  633. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-1c30fb8d4d6fa6ef.js +1 -0
  634. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-1c30fb8d4d6fa6ef.js +1 -0
  635. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-1c30fb8d4d6fa6ef.js +1 -0
  636. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +1 -0
  637. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-1c30fb8d4d6fa6ef.js +1 -0
  638. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  639. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-1c30fb8d4d6fa6ef.js +1 -0
  640. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  641. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-1c30fb8d4d6fa6ef.js +1 -0
  642. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-1c30fb8d4d6fa6ef.js +1 -0
  643. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-1c30fb8d4d6fa6ef.js +1 -0
  644. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-1c30fb8d4d6fa6ef.js +1 -0
  645. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-1c30fb8d4d6fa6ef.js +1 -0
  646. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-1c30fb8d4d6fa6ef.js +1 -0
  647. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-1c30fb8d4d6fa6ef.js +1 -0
  648. package/.next/static/chunks/app/api/worktrees/route-1c30fb8d4d6fa6ef.js +1 -0
  649. package/.next/static/chunks/app/chat/{page-231df45127e876c2.js → page-9aa2011410895b0d.js} +1 -1
  650. package/.next/static/chunks/app/login/{page-03659dded846ef1d.js → page-af7241bb4c4a8e59.js} +1 -1
  651. package/.next/static/chunks/app/manifest.webmanifest/route-1c30fb8d4d6fa6ef.js +1 -0
  652. package/.next/static/chunks/app/more/page-75d3783da0d49a25.js +1 -0
  653. package/.next/static/chunks/app/{page-0305431f43195431.js → page-214f7ffa13a0cf10.js} +1 -1
  654. package/.next/static/chunks/app/proxy/[...path]/route-1c30fb8d4d6fa6ef.js +1 -0
  655. package/.next/static/chunks/app/repositories/{page-ae8fa55749976f79.js → page-4951cac905e50224.js} +1 -1
  656. package/.next/static/chunks/app/review/page-a0899b2d285318c3.js +1 -0
  657. package/.next/static/chunks/app/sessions/page-fb36145ec732092a.js +1 -0
  658. package/.next/static/chunks/app/skills/[skillId]/{page-aaf0bcb1dfb558b9.js → page-9099e26b60442873.js} +1 -1
  659. package/.next/static/chunks/app/skills/installed/{page-dafc486410e839b7.js → page-182e32368696d824.js} +1 -1
  660. package/.next/static/chunks/app/skills/{page-9e3c91da31514893.js → page-d3fdc88239ebe0ab.js} +1 -1
  661. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-90f96977c741bbf8.js → page-f3361237420719b4.js} +1 -1
  662. package/.next/static/chunks/app/worktrees/[id]/layout-1c30fb8d4d6fa6ef.js +1 -0
  663. package/.next/static/chunks/app/worktrees/[id]/page-ce6279d581d1df95.js +1 -0
  664. package/.next/static/chunks/{webpack-7e79064bfce988d7.js → webpack-9f75198882fdaf08.js} +1 -1
  665. package/.next/static/css/b326c8a734e1928e.css +1 -0
  666. package/.next/trace +13 -13
  667. package/.next/types/app/api/agents/update/route.ts +347 -0
  668. package/.next/types/app/api/agents/versions/route.ts +347 -0
  669. package/.next/types/app/api/settings/default-agents/route.ts +347 -0
  670. package/.next/types/app/api/worktrees/[id]/verify/config/route.ts +347 -0
  671. package/.next/types/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.ts +347 -0
  672. package/.next/types/app/api/worktrees/apply-default-agents/route.ts +347 -0
  673. package/.next/types/routes.d.ts +7 -1
  674. package/.next/types/validator.ts +54 -0
  675. package/dist/cli/commands/agents.d.ts +35 -0
  676. package/dist/cli/commands/agents.d.ts.map +1 -0
  677. package/dist/cli/commands/agents.js +212 -0
  678. package/dist/cli/commands/ls.d.ts.map +1 -1
  679. package/dist/cli/commands/ls.js +18 -0
  680. package/dist/cli/commands/verify.d.ts.map +1 -1
  681. package/dist/cli/commands/verify.js +111 -0
  682. package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
  683. package/dist/cli/config/cli-dependencies.js +11 -0
  684. package/dist/cli/docs/agent-operations.d.ts +1 -1
  685. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  686. package/dist/cli/docs/agent-operations.js +30 -0
  687. package/dist/cli/program.d.ts.map +1 -1
  688. package/dist/cli/program.js +6 -0
  689. package/dist/cli/types/api-responses.d.ts +58 -0
  690. package/dist/cli/types/api-responses.d.ts.map +1 -1
  691. package/dist/cli/types/index.d.ts +8 -0
  692. package/dist/cli/types/index.d.ts.map +1 -1
  693. package/dist/cli/utils/preflight.d.ts.map +1 -1
  694. package/dist/cli/utils/preflight.js +6 -0
  695. package/dist/config/system-directories.d.ts +101 -0
  696. package/dist/config/system-directories.d.ts.map +1 -0
  697. package/dist/config/system-directories.js +211 -0
  698. package/dist/lib/cli-tools/types.d.ts +15 -1
  699. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  700. package/dist/lib/detection/status-reason.d.ts +92 -0
  701. package/dist/lib/detection/status-reason.d.ts.map +1 -0
  702. package/dist/lib/detection/status-reason.js +94 -0
  703. package/dist/lib/updates/agent-updater.d.ts +247 -0
  704. package/dist/lib/updates/agent-updater.d.ts.map +1 -0
  705. package/dist/lib/updates/agent-updater.js +373 -0
  706. package/dist/lib/updates/agent-versions.d.ts +77 -0
  707. package/dist/lib/updates/agent-versions.d.ts.map +1 -0
  708. package/dist/lib/updates/agent-versions.js +138 -0
  709. package/dist/lib/updates/codex-version.d.ts +184 -0
  710. package/dist/lib/updates/codex-version.d.ts.map +1 -0
  711. package/dist/lib/updates/codex-version.js +215 -0
  712. package/dist/lib/verification/verify-config.d.ts +202 -0
  713. package/dist/lib/verification/verify-config.d.ts.map +1 -0
  714. package/dist/lib/verification/verify-config.js +429 -0
  715. package/dist/lib/verification/verify-draft.d.ts +182 -0
  716. package/dist/lib/verification/verify-draft.d.ts.map +1 -0
  717. package/dist/lib/verification/verify-draft.js +570 -0
  718. package/dist/server/src/cli/types/api-responses.js +9 -0
  719. package/dist/server/src/config/cli-tool-timing-config.js +15 -1
  720. package/dist/server/src/config/codex-update-dialog-config.js +154 -0
  721. package/dist/server/src/config/default-agents.js +138 -0
  722. package/dist/server/src/lib/cli-tools/antigravity.js +36 -12
  723. package/dist/server/src/lib/cli-tools/base.js +131 -0
  724. package/dist/server/src/lib/cli-tools/codex.js +350 -100
  725. package/dist/server/src/lib/cli-tools/copilot.js +34 -10
  726. package/dist/server/src/lib/cli-tools/gemini.js +34 -10
  727. package/dist/server/src/lib/cli-tools/liveness-spec.js +214 -0
  728. package/dist/server/src/lib/cli-tools/opencode.js +72 -19
  729. package/dist/server/src/lib/cli-tools/session-liveness.js +64 -0
  730. package/dist/server/src/lib/cli-tools/vibe-local.js +30 -10
  731. package/dist/server/src/lib/db/app-settings-db.js +142 -0
  732. package/dist/server/src/lib/db/worktree-db.js +178 -3
  733. package/dist/server/src/lib/detection/status-reason.js +17 -0
  734. package/dist/server/src/lib/detection/tool-liveness.js +233 -0
  735. package/dist/server/src/lib/detection/version-probes.js +290 -0
  736. package/dist/server/src/lib/git/worktrees.js +10 -0
  737. package/dist/server/src/lib/repo-config/agents-config.js +298 -0
  738. package/dist/server/src/lib/selected-agents-validator.js +93 -23
  739. package/dist/server/src/lib/session/claude-session.js +39 -108
  740. package/dist/server/src/lib/tmux/tmux.js +29 -0
  741. package/dist/server/src/lib/updates/agent-updater.js +373 -0
  742. package/dist/server/src/lib/updates/agent-versions.js +138 -0
  743. package/dist/server/src/lib/updates/codex-version.js +215 -0
  744. package/dist/server/src/lib/updates/index.js +42 -0
  745. package/dist/server/src/lib/verification/gate-runner.js +298 -37
  746. package/dist/server/src/lib/verification/machine-lock.js +11 -0
  747. package/dist/server/src/lib/verification/run-verdict-vocabulary.js +151 -0
  748. package/dist/server/src/lib/verification/verify-config.js +33 -0
  749. package/dist/server/src/types/sidebar.js +40 -9
  750. package/dist/types/cli-tool-contracts.d.ts +119 -0
  751. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  752. package/package.json +1 -1
  753. package/.next/server/chunks/1601.js +0 -7
  754. package/.next/server/chunks/222.js +0 -1
  755. package/.next/server/chunks/2366.js +0 -1
  756. package/.next/server/chunks/4689.js +0 -25
  757. package/.next/server/chunks/5089.js +0 -1
  758. package/.next/server/chunks/6274.js +0 -14
  759. package/.next/server/chunks/9067.js +0 -1
  760. package/.next/server/chunks/9373.js +0 -9
  761. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +0 -1
  762. package/.next/static/chunks/3922.0d2e64daf9f187da.js +0 -1
  763. package/.next/static/chunks/5229-580b581fce5aeb52.js +0 -1
  764. package/.next/static/chunks/6381-c8d93ec301dbc380.js +0 -1
  765. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +0 -1
  766. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +0 -1
  767. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +0 -1
  768. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +0 -1
  769. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +0 -1
  770. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +0 -1
  771. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +0 -1
  772. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +0 -1
  773. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +0 -1
  774. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +0 -1
  775. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +0 -1
  776. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +0 -1
  777. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +0 -1
  778. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +0 -1
  779. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +0 -1
  780. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +0 -1
  781. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +0 -1
  782. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +0 -1
  783. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +0 -1
  784. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +0 -1
  785. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +0 -1
  786. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +0 -1
  787. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +0 -1
  788. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +0 -1
  789. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +0 -1
  790. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +0 -1
  791. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +0 -1
  792. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +0 -1
  793. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +0 -1
  794. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +0 -1
  795. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  796. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +0 -1
  797. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +0 -1
  798. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +0 -1
  799. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +0 -1
  800. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +0 -1
  801. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +0 -1
  802. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +0 -1
  803. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +0 -1
  804. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +0 -1
  805. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +0 -1
  806. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +0 -1
  807. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +0 -1
  808. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +0 -1
  809. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +0 -1
  810. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +0 -1
  811. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +0 -1
  812. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +0 -1
  813. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +0 -1
  814. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +0 -1
  815. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +0 -1
  816. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +0 -1
  817. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +0 -1
  818. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +0 -1
  819. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +0 -1
  820. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +0 -1
  821. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +0 -1
  822. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +0 -1
  823. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +0 -1
  824. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +0 -1
  825. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +0 -1
  826. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +0 -1
  827. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +0 -1
  828. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +0 -1
  829. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +0 -1
  830. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +0 -1
  831. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +0 -1
  832. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +0 -1
  833. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +0 -1
  834. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +0 -1
  835. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +0 -1
  836. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +0 -1
  837. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +0 -1
  838. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +0 -1
  839. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +0 -1
  840. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +0 -1
  841. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +0 -1
  842. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +0 -1
  843. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +0 -1
  844. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +0 -1
  845. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +0 -1
  846. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +0 -1
  847. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +0 -1
  848. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +0 -1
  849. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +0 -1
  850. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +0 -1
  851. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +0 -1
  852. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +0 -1
  853. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +0 -1
  854. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +0 -1
  855. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +0 -1
  856. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +0 -1
  857. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +0 -1
  858. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +0 -1
  859. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +0 -1
  860. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +0 -1
  861. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +0 -1
  862. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +0 -1
  863. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +0 -1
  864. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +0 -1
  865. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +0 -1
  866. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +0 -1
  867. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +0 -1
  868. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +0 -1
  869. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +0 -1
  870. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +0 -1
  871. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +0 -1
  872. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +0 -1
  873. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +0 -1
  874. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +0 -1
  875. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +0 -1
  876. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +0 -1
  877. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +0 -1
  878. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +0 -1
  879. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +0 -1
  880. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +0 -1
  881. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +0 -1
  882. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +0 -1
  883. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +0 -1
  884. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +0 -1
  885. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +0 -1
  886. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +0 -1
  887. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +0 -1
  888. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  889. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +0 -1
  890. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +0 -1
  898. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +0 -1
  899. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +0 -1
  900. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +0 -1
  901. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +0 -1
  902. package/.next/static/chunks/app/sessions/page-4d5382b257077c14.js +0 -1
  903. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +0 -1
  904. package/.next/static/chunks/app/worktrees/[id]/page-c07b23b6ca58091c.js +0 -1
  905. package/.next/static/css/b6990f889f4f9515.css +0 -1
  906. package/.next/static/uulKcSOgyxChTo4SipUSF/_buildManifest.js +0 -1
  907. /package/.next/static/{uulKcSOgyxChTo4SipUSF → 0YoRrahue4Vchxg1z83IQ}/_ssgManifest.js +0 -0
@@ -5,12 +5,14 @@
5
5
  *
6
6
  * Provides:
7
7
  * - validateAgentsPair(): Core validation logic (R1-001)
8
+ * - resolveSelectedAgents(): the ONE place the fallback order lives (Issue #2065)
8
9
  * - parseSelectedAgents(): DB read with fallback + console.warn (R4-005 log sanitization)
9
10
  * - validateSelectedAgentsInput(): API input validation
10
11
  */
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DEFAULT_SELECTED_AGENTS = exports.MAX_SELECTED_AGENTS = exports.MIN_SELECTED_AGENTS = void 0;
13
+ exports.SELECTED_AGENTS_LAYERS = exports.DEFAULT_SELECTED_AGENTS = exports.MAX_SELECTED_AGENTS = exports.MIN_SELECTED_AGENTS = void 0;
13
14
  exports.validateAgentsPair = validateAgentsPair;
15
+ exports.resolveSelectedAgents = resolveSelectedAgents;
14
16
  exports.parseSelectedAgents = parseSelectedAgents;
15
17
  exports.validateSelectedAgentsInput = validateSelectedAgentsInput;
16
18
  const types_1 = require("./cli-tools/types");
@@ -19,14 +21,19 @@ exports.MIN_SELECTED_AGENTS = 2;
19
21
  /** Maximum number of selected agents (PC can select up to 6, Issue #989) */
20
22
  exports.MAX_SELECTED_AGENTS = 6;
21
23
  /**
22
- * Default selected agents when DB value is missing or invalid.
24
+ * Compiled-in last resort for a worktree's agent list.
23
25
  * Issue #1516: narrowed to the 3 agents in routine use (claude/codex/antigravity).
24
26
  * The others stay selectable via CLI_TOOL_IDS — they are just not preselected.
27
+ *
28
+ * Issue #2065: this is no longer the only answer. It is the LOWEST layer of
29
+ * `resolveSelectedAgents()` — the value a fresh install with no `app_settings`
30
+ * row still gets, which is why the acceptance criterion "an environment with no
31
+ * setting behaves exactly as before" reduces to "this constant is unchanged".
25
32
  */
26
33
  exports.DEFAULT_SELECTED_AGENTS = ['claude', 'codex', 'antigravity'];
27
34
  /**
28
35
  * Core validation function for CLI tool ID arrays (R1-001)
29
- * Accepts 2-5 unique valid CLI tool IDs (Issue #836).
36
+ * Accepts 2-6 unique valid CLI tool IDs (Issue #836 raised it to 5, #989 to 6).
30
37
  * Shared between parseSelectedAgents() and validateSelectedAgentsInput()
31
38
  *
32
39
  * @param input - Array of values to validate
@@ -44,36 +51,99 @@ function validateAgentsPair(input) {
44
51
  }
45
52
  return { valid: true, value: input };
46
53
  }
54
+ /**
55
+ * The layers that can answer "which agents does this worktree show", highest
56
+ * priority first (Issue #2065).
57
+ *
58
+ * This array IS the priority order — `resolveSelectedAgents()` walks it in
59
+ * sequence and nothing else encodes it. The final shape the Epic is heading for
60
+ * is `worktree -> repo file -> app_settings -> constant`; #2065 populated the
61
+ * `worktree` and `appSettings` layers and declared `repo` without ever passing
62
+ * it a value.
63
+ *
64
+ * Issue #2066 filled `repo` in, exactly as that comment foresaw: by supplying a
65
+ * value at the call sites, and NOT by re-deriving an order. This array is still
66
+ * the only place the order is written down, and the function below is unchanged.
67
+ *
68
+ * There are exactly TWO such call sites, both in `@/lib/db/worktree-db`:
69
+ * `getWorktrees()` and `getWorktreeById()`, each reading
70
+ * `getRepoDefaultSelectedAgents()` from `@/lib/repo-config/agents-config`.
71
+ * `resolveAgentInstances()` is NOT one of them — it receives the already
72
+ * resolved value as its `selectedAgents` argument, and giving it a second entry
73
+ * point would have been an argument no production caller passes.
74
+ *
75
+ * A layer whose value is absent, malformed, or fails `validateAgentsPair()` is
76
+ * skipped rather than fatal: a hand-edited `app_settings` row must not be able
77
+ * to make every worktree in the sidebar render an empty tab strip.
78
+ */
79
+ exports.SELECTED_AGENTS_LAYERS = ['worktree', 'repo', 'appSettings'];
80
+ /**
81
+ * Resolve a worktree's agent list from the layers, in priority order.
82
+ *
83
+ * The ONE place the fallback order lives (Issue #2065). Every fallback — server
84
+ * or client, roster seed or tab seed — goes through this function so a new layer
85
+ * is a change to `SELECTED_AGENTS_LAYERS` plus a value at the call sites, and
86
+ * never a second copy of the order.
87
+ *
88
+ * @param layers - Candidate values keyed by layer; omit a layer you cannot answer for
89
+ * @returns The first layer that validates, else {@link DEFAULT_SELECTED_AGENTS}
90
+ */
91
+ function resolveSelectedAgents(layers = {}) {
92
+ for (const layer of exports.SELECTED_AGENTS_LAYERS) {
93
+ const candidate = layers[layer];
94
+ if (candidate == null)
95
+ continue;
96
+ const result = validateAgentsPair([...candidate]);
97
+ if (result.valid)
98
+ return result.value;
99
+ }
100
+ return exports.DEFAULT_SELECTED_AGENTS;
101
+ }
47
102
  /**
48
103
  * Parse selected_agents JSON from DB with safe fallback
49
- * Returns default value for any invalid input (never throws)
104
+ * Returns the resolved default for any invalid input (never throws)
50
105
  *
51
- * Logs a warning when fallback is triggered to help detect DB data issues.
52
106
  * Log output is sanitized (R4-005): ANSI stripped, newlines removed, truncated.
53
107
  *
108
+ * Issue #2065: the fallback is no longer the constant but
109
+ * `resolveSelectedAgents()`, so a row with no `selected_agents` (every worktree
110
+ * created by scan/sync — `upsertWorktree` never writes the column) picks up the
111
+ * `app_settings` default. Callers that have a `db` handle pass
112
+ * `appSettingsDefault`; callers that do not (unit fixtures, pure helpers) omit
113
+ * it and get exactly the pre-#2065 behaviour.
114
+ *
115
+ * Issue #2066 adds `repoDefault`, the repository's own `.commandmate/agents.yaml`
116
+ * declaration. It is LAST in the parameter list and SECOND in priority — the
117
+ * order the layers resolve in lives in {@link SELECTED_AGENTS_LAYERS} and
118
+ * nowhere else, so an argument position is free to be chosen for what it is
119
+ * good for: every existing two-argument call keeps its meaning unchanged, which
120
+ * is what makes "an environment with no file behaves exactly as before" a
121
+ * property of the signature rather than of a review.
122
+ *
54
123
  * @param raw - Raw JSON string from DB (or null)
55
- * @returns Validated array of 2-5 CLIToolType values
124
+ * @param appSettingsDefault - Server-wide default from `app_settings`, or null/undefined when unset
125
+ * @param repoDefault - Repository declaration from `.commandmate/agents.yaml`, or null/undefined when absent/invalid
126
+ * @returns Validated array of 2-6 CLIToolType values
56
127
  */
57
- function parseSelectedAgents(raw) {
58
- if (!raw)
59
- return exports.DEFAULT_SELECTED_AGENTS;
60
- try {
61
- const parsed = JSON.parse(raw);
62
- if (!Array.isArray(parsed)) {
63
- // invalid format - return default silently
64
- return exports.DEFAULT_SELECTED_AGENTS;
128
+ function parseSelectedAgents(raw, appSettingsDefault, repoDefault) {
129
+ let fromRow = null;
130
+ if (raw) {
131
+ try {
132
+ const parsed = JSON.parse(raw);
133
+ // A non-array (or a JSON parse error) is treated the same as an absent
134
+ // column: skip the layer silently and let the lower ones answer.
135
+ if (Array.isArray(parsed))
136
+ fromRow = parsed;
65
137
  }
66
- const result = validateAgentsPair(parsed);
67
- if (!result.valid) {
68
- // validation failed - return default silently
69
- return exports.DEFAULT_SELECTED_AGENTS;
138
+ catch {
139
+ // JSON parse error - fall through to the lower layers
70
140
  }
71
- return result.value;
72
- }
73
- catch {
74
- // JSON parse error - return default silently
75
- return exports.DEFAULT_SELECTED_AGENTS;
76
141
  }
142
+ return resolveSelectedAgents({
143
+ worktree: fromRow,
144
+ repo: repoDefault,
145
+ appSettings: appSettingsDefault,
146
+ });
77
147
  }
78
148
  /**
79
149
  * Validate selectedAgents input from API request body
@@ -19,6 +19,9 @@ exports.stopClaudeSession = stopClaudeSession;
19
19
  exports.restartClaudeSession = restartClaudeSession;
20
20
  const tmux_1 = require("../../lib/tmux/tmux");
21
21
  const cli_patterns_1 = require("../../lib/detection/cli-patterns");
22
+ const tool_liveness_1 = require("../../lib/detection/tool-liveness");
23
+ const liveness_spec_1 = require("../../lib/cli-tools/liveness-spec");
24
+ const session_liveness_1 = require("../../lib/cli-tools/session-liveness");
22
25
  const session_key_sender_1 = require("../../lib/session-key-sender");
23
26
  const child_process_1 = require("child_process");
24
27
  const util_1 = require("util");
@@ -45,22 +48,20 @@ function getErrorMessage(error) {
45
48
  }
46
49
  // ----- Shell Prompt Detection Constants -----
47
50
  /**
48
- * Shell prompt ending characters for detecting shell-only tmux sessions
49
- * Extensible array to support multiple shell types (MF-002: OCP)
50
- * Placed in claude-session.ts as private constant (SF-S2-002: ISP - used only by isSessionHealthy())
51
- * - '$': bash/sh default prompt
52
- * - '%': zsh default prompt
53
- * - '#': root prompt (bash/zsh)
54
- *
55
- * C-S2-002: False positive risk assessment:
56
- * These characters are checked only at the END of trimmed output. This limits false
57
- * positives to cases where Claude CLI output ends with one of these characters
58
- * (e.g., output containing "$" at end of a code block). The risk is acceptable because:
59
- * (1) Claude CLI output typically ends with a prompt (❯) or thinking indicator, not shell chars
60
- * (2) A false positive triggers session recreation, which is a safe recovery action
61
- * (3) The check is combined with error pattern detection for multiple signals
51
+ * Issue #2070: the shell-prompt endings, the 40-character gate and the
52
+ * error-pattern tail this module used to declare privately are now
53
+ * `SHELL_PROMPT_ENDINGS` / `MAX_SHELL_PROMPT_LENGTH` / `FATAL_PATTERN_TAIL_LINES`
54
+ * in `lib/detection/tool-liveness`, and claude's use of them is
55
+ * `resolveLivenessSpec('claude')`.
56
+ *
57
+ * They moved because the rule they describe was never claude-specific — only
58
+ * these values were. A tmux session that outlives its agent looks the same for
59
+ * codex, copilot, opencode and gemini, and every one of them reported `running`
60
+ * for a pane that had fallen back to the shell, because the only check for it
61
+ * sat behind `cliToolId === 'claude'`. The values themselves are unchanged, and
62
+ * `tests/unit/lib/claude-session.test.ts` still pins every verdict this
63
+ * function reaches.
62
64
  */
63
- const SHELL_PROMPT_ENDINGS = ['$', '%', '#'];
64
65
  // ----- Timeout and Polling Constants (OCP-001) -----
65
66
  // These constants are exported to allow configuration and testing.
66
67
  // Changing these values affects Claude CLI session startup behavior.
@@ -160,27 +161,12 @@ exports.CLAUDE_SEND_PROMPT_WAIT_TIMEOUT = 10000;
160
161
  */
161
162
  exports.CLAUDE_PROMPT_POLL_INTERVAL = 200;
162
163
  /**
163
- * Maximum expected length of a shell prompt line (characters)
164
- *
165
- * Shell prompts are typically under 40 characters (e.g., "user@host:~/project$" ~30 chars).
166
- * Lines at or above this threshold are not considered shell prompts, preventing
167
- * false positives from Claude CLI output that happens to end with $, %, or #.
168
- *
169
- * Used by isSessionHealthy() to distinguish shell prompts from CLI output.
170
- * 40 is an empirical threshold with safety margin.
171
- */
172
- const MAX_SHELL_PROMPT_LENGTH = 40;
173
- /**
174
- * Number of tail lines used for error pattern detection in isSessionHealthy()
175
- *
176
- * Error patterns are only searched within the last N lines of pane output,
177
- * not the entire buffer. This prevents false negatives where historical
178
- * (already recovered) errors in the scrollback trigger unhealthy detection.
179
- *
180
- * 10 lines provides sufficient window to catch recent errors while ignoring
181
- * historical ones that have scrolled up.
164
+ * Issue #2070: `MAX_SHELL_PROMPT_LENGTH` and `HEALTH_CHECK_ERROR_TAIL_LINES`
165
+ * moved to `lib/detection/tool-liveness` with the rule that reads them. Their
166
+ * values are unchanged and claude reaches them through
167
+ * `resolveLivenessSpec('claude')`.
182
168
  */
183
- const HEALTH_CHECK_ERROR_TAIL_LINES = 10;
169
+ const CLAUDE_LIVENESS_SPEC = (0, liveness_spec_1.resolveLivenessSpec)('claude');
184
170
  /**
185
171
  * Cached Claude CLI path
186
172
  */
@@ -294,30 +280,17 @@ async function getCleanPaneOutput(sessionName, lines = 50) {
294
280
  * already printed "Claude Code cannot be launched inside another Claude Code
295
281
  * session" must not sit there burning the whole budget before saying so.
296
282
  *
297
- * Only the last {@link HEALTH_CHECK_ERROR_TAIL_LINES} lines are searched, so a
298
- * historical error that has scrolled up cannot condemn a session that recovered.
283
+ * Only the last `FATAL_PATTERN_TAIL_LINES` lines are searched, so a historical
284
+ * error that has scrolled up cannot condemn a session that recovered.
285
+ *
286
+ * Issue #2070: the search itself is `findFatalPattern`, shared with every other
287
+ * tool's liveness probe; claude's patterns ride in its `ToolLivenessSpec`.
299
288
  *
300
289
  * @param cleanOutput - ANSI-stripped pane output
301
290
  * @returns The matched pattern (or regex source) for the log, or null
302
291
  */
303
292
  function findSessionErrorPattern(cleanOutput) {
304
- const allLines = cleanOutput
305
- .trim()
306
- .split('\n')
307
- .filter((line) => line.trim() !== '');
308
- const tailText = allLines.slice(-HEALTH_CHECK_ERROR_TAIL_LINES).join('\n');
309
- // MF-001: Check error patterns from cli-patterns.ts (SRP - pattern management centralized)
310
- for (const pattern of cli_patterns_1.CLAUDE_SESSION_ERROR_PATTERNS) {
311
- if (tailText.includes(pattern)) {
312
- return pattern;
313
- }
314
- }
315
- for (const regex of cli_patterns_1.CLAUDE_SESSION_ERROR_REGEX_PATTERNS) {
316
- if (regex.test(tailText)) {
317
- return regex.source;
318
- }
319
- }
320
- return null;
293
+ return (0, tool_liveness_1.findFatalPattern)(cleanOutput, CLAUDE_LIVENESS_SPEC);
321
294
  }
322
295
  /**
323
296
  * Verify that Claude CLI is actually running inside a tmux session
@@ -327,64 +300,22 @@ function findSessionErrorPattern(cleanOutput) {
327
300
  * Used by worktrees/route.ts and worktrees/[id]/route.ts for
328
301
  * health-aware session status with listSessions() batch optimization.
329
302
  *
303
+ * Issue #2070: the algorithm moved to `judgeToolLiveness`, which is the same
304
+ * rule read through claude's `ToolLivenessSpec`. Every branch, every reason
305
+ * string and every ordering decision this function used to spell inline is
306
+ * preserved there — the empty-output verdict, the whole-frame
307
+ * `CLAUDE_PROMPT_PATTERN` check BEFORE the error patterns (so a recovered
308
+ * session is not condemned by scrollback), the 40-character gate, and the
309
+ * `\d+%$` carve-out that keeps `Context left until auto-compact: 7%` from
310
+ * reading as a zsh prompt. What changed is that six other tools can now be
311
+ * asked the same question; see `lib/cli-tools/liveness-spec`.
312
+ *
330
313
  * @param sessionName - tmux session name
331
314
  * @returns HealthCheckResult with healthy status and optional reason
332
315
  */
333
316
  async function isSessionHealthy(sessionName) {
334
- try {
335
- // SF-001: Use shared helper instead of inline capturePane + stripAnsi
336
- const cleanOutput = await getCleanPaneOutput(sessionName);
337
- // MF-002: Check shell prompt endings from extensible array (OCP)
338
- const trimmed = cleanOutput.trim();
339
- // S2-F010: Empty output judgment (HealthCheckResult format)
340
- // C-S2-001: Empty output means tmux session exists but Claude CLI has no output.
341
- // This is treated as unhealthy because a properly running Claude CLI always
342
- // produces output (prompt, spinner, or response). An empty pane indicates
343
- // the CLI process has exited or failed to start.
344
- if (trimmed === '') {
345
- return { healthy: false, reason: 'empty output' };
346
- }
347
- // Active state detection: check for Claude prompt BEFORE error patterns.
348
- // This prevents false negatives where historical (recovered) errors in
349
- // the pane scrollback cause a currently-active session to be marked unhealthy.
350
- if (cli_patterns_1.CLAUDE_PROMPT_PATTERN.test(trimmed)) {
351
- return { healthy: true };
352
- }
353
- // S2-F010: Error pattern detection - limited to tail lines only.
354
- // Only the last HEALTH_CHECK_ERROR_TAIL_LINES lines are searched, so
355
- // historical errors that have scrolled up do not trigger false negatives.
356
- const allLines = trimmed.split('\n').filter(line => line.trim() !== '');
357
- const errorPattern = findSessionErrorPattern(trimmed);
358
- if (errorPattern !== null) {
359
- return { healthy: false, reason: `error pattern: ${errorPattern}` };
360
- }
361
- // S2-F002: Extract last line after empty line filtering
362
- const lastLine = allLines[allLines.length - 1]?.trim() ?? '';
363
- // F006: Line length check BEFORE SHELL_PROMPT_ENDINGS check (early return)
364
- if (lastLine.length >= MAX_SHELL_PROMPT_LENGTH) {
365
- // Long lines are not shell prompts -> treat as healthy (early return)
366
- return { healthy: true };
367
- }
368
- // F003: Individual pattern exclusions for SHELL_PROMPT_ENDINGS
369
- // NOTE(F003): If new false positive patterns are found in the future,
370
- // consider refactoring to a structure that associates exclusionPattern
371
- // with each SHELL_PROMPT_ENDINGS entry. Currently only % needs exclusion (YAGNI).
372
- if (SHELL_PROMPT_ENDINGS.some(ending => {
373
- if (!lastLine.endsWith(ending))
374
- return false;
375
- // Exclude N% pattern (e.g., "Context left until auto-compact: 7%")
376
- if (ending === '%' && /\d+%$/.test(lastLine))
377
- return false;
378
- return true;
379
- })) {
380
- return { healthy: false, reason: `shell prompt ending detected: ${lastLine}` };
381
- }
382
- return { healthy: true };
383
- }
384
- catch {
385
- // S3-F001: Catch block also returns HealthCheckResult format
386
- return { healthy: false, reason: 'capture error' };
387
- }
317
+ const verdict = await (0, session_liveness_1.probeSessionLiveness)(sessionName, CLAUDE_LIVENESS_SPEC);
318
+ return verdict.alive ? { healthy: true } : { healthy: false, reason: verdict.reason };
388
319
  }
389
320
  /**
390
321
  * Ensure the existing tmux session has a healthy Claude CLI process
@@ -9,6 +9,7 @@ exports.exactTarget = exactTarget;
9
9
  exports.reconcileSessionGeometry = reconcileSessionGeometry;
10
10
  exports.isTmuxAvailable = isTmuxAvailable;
11
11
  exports.hasSession = hasSession;
12
+ exports.getSessionWorkingDirectory = getSessionWorkingDirectory;
12
13
  exports.listSessions = listSessions;
13
14
  exports.createSession = createSession;
14
15
  exports.sendKeys = sendKeys;
@@ -155,6 +156,34 @@ async function hasSession(sessionName) {
155
156
  return false;
156
157
  }
157
158
  }
159
+ /**
160
+ * The directory a session was created in, or null (Issue #2070).
161
+ *
162
+ * `#{session_path}` rather than `#{pane_current_path}`: the two differ as soon
163
+ * as anything types `cd`, and only the first one is still the worktree root the
164
+ * session was opened on. Measured on tmux 3.5a — a session created with
165
+ * `-c /private/tmp` whose shell then `cd /usr`'d reported
166
+ * `session_path=/private/tmp`, `pane_current_path=/usr`.
167
+ *
168
+ * Read by `BaseCLITool.relaunchIfToolExited`, which needs the worktree path to
169
+ * rebuild a launch line for a pane whose agent has died. The pane itself is the
170
+ * right source for it: a worktree row could have been moved or deleted since,
171
+ * while the directory the pane is actually sitting in is the directory the
172
+ * relaunched agent will actually run in.
173
+ *
174
+ * @param sessionName - Target session name
175
+ * @returns The session's working directory, or null when tmux cannot say
176
+ */
177
+ async function getSessionWorkingDirectory(sessionName) {
178
+ try {
179
+ const { stdout } = await execFileAsync('tmux', ['display-message', '-p', '-t', exactTarget(sessionName), '#{session_path}'], { timeout: DEFAULT_TIMEOUT });
180
+ const dir = stdout.trim();
181
+ return dir === '' ? null : dir;
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
158
187
  /**
159
188
  * List all tmux sessions
160
189
  *