commandmate 0.27.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/.env.example +28 -0
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +441 -404
  4. package/.next/app-path-routes-manifest.json +34 -29
  5. package/.next/build-manifest.json +5 -5
  6. package/.next/prerender-manifest.json +9 -9
  7. package/.next/react-loadable-manifest.json +0 -6
  8. package/.next/required-server-files.json +1 -1
  9. package/.next/routes-manifest.json +32 -0
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route.js +1 -1
  12. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  13. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/update-check/route.js +1 -1
  15. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  17. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  18. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  20. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  21. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/assistant/messages/route.js +1 -1
  23. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  24. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/assistant/session/route.js +1 -1
  26. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  27. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/assistant/start/route.js +32 -1
  29. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  30. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/assistant/terminal/route.js +34 -3
  32. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  33. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/assistant/tools/route.js +1 -1
  35. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  36. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/login/route.js +1 -1
  38. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/auth/logout/route.js +1 -1
  40. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/auth/status/route.js +1 -1
  42. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/capabilities/route.js +1 -1
  44. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/daily-summary/route.js +1 -1
  46. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  47. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  49. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  50. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  53. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  55. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  56. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/external-apps/route.js +1 -1
  58. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  59. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/fs/browse/route.js +1 -1
  61. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  62. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  64. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  65. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  67. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  68. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  70. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  73. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  74. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/metrics/vibe/route.js +1 -1
  76. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  77. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/push/escalation/route.js +1 -1
  80. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  81. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/push/subscriptions/route.js +7 -1
  83. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  84. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/push/vapid/route.js +1 -1
  86. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  87. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/remote/pair/route.js +2 -0
  89. package/.next/server/app/api/remote/pair/route.js.nft.json +1 -0
  90. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  92. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  93. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  95. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  98. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  99. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  101. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  102. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/repositories/clone/route.js +1 -1
  104. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  105. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  107. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  108. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/repositories/restore/route.js +1 -1
  110. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  111. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/repositories/route.js +1 -1
  113. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  114. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/repositories/scan/route.js +1 -1
  116. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  117. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/repositories/sync/route.js +1 -1
  119. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  120. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  122. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  123. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  125. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  126. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  128. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/skills/installations/route.js +1 -1
  130. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  131. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/operations/route.js +1 -1
  133. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/reindex/route.js +1 -1
  136. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  139. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  141. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  143. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  144. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  146. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  147. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/templates/[id]/route.js +2 -2
  149. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  150. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/templates/route.js +2 -2
  152. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  153. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/todos/route.js +1 -1
  155. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  156. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  158. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  159. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/verification/runs/route.js +1 -1
  161. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  162. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  165. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  168. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  171. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  174. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  176. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  177. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/current-output/route.js +2 -2
  179. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  183. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  188. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -0
  263. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -0
  264. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -0
  265. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  267. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  270. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  273. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  275. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  276. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +4 -4
  278. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  279. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  281. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  282. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  284. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  285. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  288. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -0
  290. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -0
  291. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -0
  292. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -0
  293. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -0
  294. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -0
  295. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -0
  296. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -0
  297. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -0
  298. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  299. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  300. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  302. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  303. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  305. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  306. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  308. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  309. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +5 -1
  311. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  312. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  314. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  315. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  316. package/.next/server/app/api/worktrees/[id]/schedules/route.js +6 -2
  317. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  318. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  320. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  321. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/send/route.js +7 -3
  323. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  324. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  326. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  327. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  328. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  329. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  330. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  332. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  333. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  335. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  350. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  351. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  353. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  354. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  356. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  357. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  359. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  360. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  362. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  363. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  365. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  366. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -3
  368. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  369. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  371. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  372. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  374. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  375. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  377. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  378. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  380. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  381. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  383. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  384. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  386. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  387. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  389. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  390. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  391. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  392. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  393. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  394. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  395. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  396. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  397. package/.next/server/app/api/worktrees/route.js +1 -1
  398. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  399. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  400. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  401. package/.next/server/app/login/page.js +2 -2
  402. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  403. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  404. package/.next/server/app/more/page.js +1 -1
  405. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  406. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  407. package/.next/server/app/page_client-reference-manifest.js +1 -1
  408. package/.next/server/app/proxy/[...path]/route.js +1 -1
  409. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  410. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  411. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  412. package/.next/server/app/review/page.js +1 -1
  413. package/.next/server/app/review/page.js.nft.json +1 -1
  414. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  415. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  416. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  417. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  418. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  419. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  420. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  421. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  422. package/.next/server/app/worktrees/[id]/page.js +15 -10
  423. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  424. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  425. package/.next/server/app/worktrees/[id]/terminal/page.js +2 -2
  426. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  427. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  428. package/.next/server/app-paths-manifest.json +34 -29
  429. package/.next/server/chunks/1058.js +1 -0
  430. package/.next/server/chunks/1068.js +1 -3
  431. package/.next/server/chunks/1162.js +1 -1
  432. package/.next/server/chunks/1191.js +13 -0
  433. package/.next/server/chunks/1296.js +1 -1
  434. package/.next/server/chunks/1601.js +2 -2
  435. package/.next/server/chunks/1714.js +7 -0
  436. package/.next/server/chunks/1886.js +5 -0
  437. package/.next/server/chunks/1944.js +1 -0
  438. package/.next/server/chunks/2119.js +1 -1
  439. package/.next/server/chunks/221.js +19 -0
  440. package/.next/server/chunks/222.js +1 -0
  441. package/.next/server/chunks/2328.js +1 -1
  442. package/.next/server/chunks/2366.js +1 -0
  443. package/.next/server/chunks/2404.js +1 -1
  444. package/.next/server/chunks/243.js +1 -0
  445. package/.next/server/chunks/2445.js +1 -1
  446. package/.next/server/chunks/2759.js +1 -1
  447. package/.next/server/chunks/3346.js +1 -1
  448. package/.next/server/chunks/3440.js +1 -1
  449. package/.next/server/chunks/3480.js +17 -1
  450. package/.next/server/chunks/3543.js +1 -1
  451. package/.next/server/chunks/3558.js +1 -0
  452. package/.next/server/chunks/3945.js +1 -1
  453. package/.next/server/chunks/4299.js +1 -0
  454. package/.next/server/chunks/4393.js +1 -1
  455. package/.next/server/chunks/5017.js +1 -1
  456. package/.next/server/chunks/5089.js +1 -1
  457. package/.next/server/chunks/5354.js +1 -1
  458. package/.next/server/chunks/5571.js +1 -1
  459. package/.next/server/chunks/6130.js +1 -1
  460. package/.next/server/chunks/6274.js +11 -10
  461. package/.next/server/chunks/6285.js +1 -1
  462. package/.next/server/chunks/6337.js +1 -0
  463. package/.next/server/chunks/6401.js +1 -1
  464. package/.next/server/chunks/663.js +78 -0
  465. package/.next/server/chunks/7472.js +1 -1
  466. package/.next/server/chunks/7824.js +1 -0
  467. package/.next/server/chunks/7905.js +1 -0
  468. package/.next/server/chunks/880.js +6 -6
  469. package/.next/server/chunks/8807.js +84 -18
  470. package/.next/server/chunks/9123.js +2 -2
  471. package/.next/server/chunks/9130.js +5 -0
  472. package/.next/server/chunks/9328.js +1 -1
  473. package/.next/server/chunks/9358.js +1 -1
  474. package/.next/server/chunks/9508.js +1 -1
  475. package/.next/server/chunks/9584.js +1 -0
  476. package/.next/server/chunks/9627.js +274 -0
  477. package/.next/server/chunks/9798.js +2 -0
  478. package/.next/server/chunks/9938.js +1 -1
  479. package/.next/server/functions-config-manifest.json +3 -1
  480. package/.next/server/middleware-build-manifest.js +1 -1
  481. package/.next/server/middleware-manifest.json +5 -5
  482. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  483. package/.next/server/pages/500.html +1 -1
  484. package/.next/server/server-reference-manifest.json +1 -1
  485. package/.next/server/src/middleware.js +1 -1
  486. package/.next/server/src/middleware.js.map +1 -1
  487. package/.next/static/chunks/1188-8567ee5ecfef02ee.js +1 -0
  488. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +1 -0
  489. package/.next/static/chunks/3968-8d8ca15657748bfb.js +1 -0
  490. package/.next/static/chunks/5229-580b581fce5aeb52.js +1 -0
  491. package/.next/static/chunks/6381-c8d93ec301dbc380.js +1 -0
  492. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +1 -0
  493. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +1 -0
  494. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +1 -0
  495. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +1 -0
  496. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +1 -0
  497. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +1 -0
  498. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +1 -0
  499. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +1 -0
  500. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +1 -0
  501. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +1 -0
  502. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +1 -0
  503. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +1 -0
  504. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +1 -0
  505. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +1 -0
  506. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +1 -0
  507. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +1 -0
  508. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +1 -0
  509. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +1 -0
  510. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +1 -0
  511. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +1 -0
  512. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +1 -0
  513. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +1 -0
  514. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +1 -0
  515. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +1 -0
  516. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +1 -0
  517. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +1 -0
  518. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +1 -0
  519. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +1 -0
  520. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +1 -0
  521. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +1 -0
  522. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +1 -0
  523. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +1 -0
  524. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +1 -0
  525. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +1 -0
  526. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +1 -0
  527. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +1 -0
  528. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +1 -0
  529. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +1 -0
  530. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +1 -0
  531. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +1 -0
  532. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +1 -0
  533. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +1 -0
  534. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +1 -0
  535. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +1 -0
  536. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +1 -0
  537. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +1 -0
  538. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +1 -0
  539. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +1 -0
  540. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +1 -0
  541. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +1 -0
  542. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +1 -0
  543. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +1 -0
  544. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +1 -0
  545. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +1 -0
  546. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +1 -0
  547. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +1 -0
  548. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +1 -0
  549. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +1 -0
  550. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +1 -0
  551. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +1 -0
  552. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +1 -0
  553. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +1 -0
  554. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +1 -0
  555. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +1 -0
  556. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +1 -0
  557. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +1 -0
  558. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +1 -0
  559. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +1 -0
  560. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +1 -0
  561. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +1 -0
  562. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +1 -0
  563. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +1 -0
  564. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +1 -0
  565. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +1 -0
  566. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +1 -0
  567. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +1 -0
  568. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +1 -0
  569. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +1 -0
  570. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +1 -0
  571. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +1 -0
  572. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +1 -0
  573. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +1 -0
  574. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +1 -0
  575. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +1 -0
  576. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +1 -0
  577. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +1 -0
  578. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +1 -0
  579. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +1 -0
  580. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +1 -0
  581. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +1 -0
  582. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +1 -0
  583. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +1 -0
  584. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +1 -0
  585. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +1 -0
  586. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +1 -0
  625. package/.next/static/chunks/app/login/page-03659dded846ef1d.js +1 -0
  626. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +1 -0
  627. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +1 -0
  628. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +1 -0
  629. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +1 -0
  630. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +1 -0
  631. package/.next/static/chunks/app/worktrees/[id]/page-c07b23b6ca58091c.js +1 -0
  632. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +1 -0
  633. package/.next/static/chunks/webpack-7e79064bfce988d7.js +1 -0
  634. package/.next/static/css/b6990f889f4f9515.css +1 -0
  635. package/.next/static/uulKcSOgyxChTo4SipUSF/_buildManifest.js +1 -0
  636. package/.next/trace +13 -13
  637. package/.next/types/app/api/remote/pair/route.ts +347 -0
  638. package/.next/types/app/api/worktrees/[id]/instances/opencode/route.ts +347 -0
  639. package/.next/types/app/api/worktrees/[id]/opencode/diff/route.ts +347 -0
  640. package/.next/types/app/api/worktrees/[id]/opencode/session/route.ts +347 -0
  641. package/.next/types/app/api/worktrees/[id]/opencode/share/route.ts +347 -0
  642. package/.next/types/routes.d.ts +6 -1
  643. package/.next/types/validator.ts +45 -0
  644. package/README.md +24 -4
  645. package/dist/cli/commands/init.d.ts.map +1 -1
  646. package/dist/cli/commands/init.js +66 -0
  647. package/dist/cli/commands/instances.d.ts.map +1 -1
  648. package/dist/cli/commands/instances.js +46 -1
  649. package/dist/cli/commands/interrupt.d.ts +25 -0
  650. package/dist/cli/commands/interrupt.d.ts.map +1 -0
  651. package/dist/cli/commands/interrupt.js +146 -0
  652. package/dist/cli/commands/remote.d.ts +248 -0
  653. package/dist/cli/commands/remote.d.ts.map +1 -0
  654. package/dist/cli/commands/remote.js +849 -0
  655. package/dist/cli/commands/report.d.ts.map +1 -1
  656. package/dist/cli/commands/report.js +11 -4
  657. package/dist/cli/commands/respond.d.ts.map +1 -1
  658. package/dist/cli/commands/respond.js +146 -1
  659. package/dist/cli/commands/status.d.ts.map +1 -1
  660. package/dist/cli/commands/status.js +104 -0
  661. package/dist/cli/commands/wait.d.ts.map +1 -1
  662. package/dist/cli/commands/wait.js +39 -1
  663. package/dist/cli/config/agent-target-options.d.ts +12 -0
  664. package/dist/cli/config/agent-target-options.d.ts.map +1 -1
  665. package/dist/cli/config/agent-target-options.js +15 -1
  666. package/dist/cli/config/security-messages.d.ts +25 -0
  667. package/dist/cli/config/security-messages.d.ts.map +1 -1
  668. package/dist/cli/config/security-messages.js +43 -1
  669. package/dist/cli/docs/agent-operations.d.ts +1 -1
  670. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  671. package/dist/cli/docs/agent-operations.js +34 -0
  672. package/dist/cli/program.d.ts.map +1 -1
  673. package/dist/cli/program.js +12 -0
  674. package/dist/cli/types/api-responses.d.ts +375 -0
  675. package/dist/cli/types/api-responses.d.ts.map +1 -1
  676. package/dist/cli/types/index.d.ts +83 -0
  677. package/dist/cli/types/index.d.ts.map +1 -1
  678. package/dist/cli/types/index.js +31 -1
  679. package/dist/cli/utils/daemon.d.ts.map +1 -1
  680. package/dist/cli/utils/daemon.js +3 -0
  681. package/dist/cli/utils/env-setup.d.ts +24 -0
  682. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  683. package/dist/cli/utils/env-setup.js +70 -0
  684. package/dist/cli/utils/qr-terminal.d.ts +54 -0
  685. package/dist/cli/utils/qr-terminal.d.ts.map +1 -0
  686. package/dist/cli/utils/qr-terminal.js +181 -0
  687. package/dist/cli/utils/remote-state.d.ts +123 -0
  688. package/dist/cli/utils/remote-state.d.ts.map +1 -0
  689. package/dist/cli/utils/remote-state.js +193 -0
  690. package/dist/cli/utils/vapid-keygen.d.ts +74 -0
  691. package/dist/cli/utils/vapid-keygen.d.ts.map +1 -0
  692. package/dist/cli/utils/vapid-keygen.js +111 -0
  693. package/dist/config/auth-config.d.ts +1 -1
  694. package/dist/config/auth-config.d.ts.map +1 -1
  695. package/dist/config/auth-config.js +5 -0
  696. package/dist/lib/cli-tools/types.d.ts +11 -1
  697. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  698. package/dist/lib/detection/tools/verified-against.d.ts +14 -3
  699. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
  700. package/dist/lib/detection/tools/verified-against.js +14 -3
  701. package/dist/lib/push/vapid.d.ts +178 -0
  702. package/dist/lib/push/vapid.d.ts.map +1 -0
  703. package/dist/lib/push/vapid.js +293 -0
  704. package/dist/lib/remote/cloudflare.d.ts +285 -0
  705. package/dist/lib/remote/cloudflare.d.ts.map +1 -0
  706. package/dist/lib/remote/cloudflare.js +619 -0
  707. package/dist/lib/remote/index.d.ts +17 -0
  708. package/dist/lib/remote/index.d.ts.map +1 -0
  709. package/dist/lib/remote/index.js +64 -0
  710. package/dist/lib/remote/provider-registry.d.ts +29 -0
  711. package/dist/lib/remote/provider-registry.d.ts.map +1 -0
  712. package/dist/lib/remote/provider-registry.js +73 -0
  713. package/dist/lib/remote/tailscale.d.ts +268 -0
  714. package/dist/lib/remote/tailscale.d.ts.map +1 -0
  715. package/dist/lib/remote/tailscale.js +546 -0
  716. package/dist/lib/remote/types.d.ts +127 -0
  717. package/dist/lib/remote/types.d.ts.map +1 -0
  718. package/dist/lib/remote/types.js +53 -0
  719. package/dist/lib/security/pairing-code.d.ts +182 -0
  720. package/dist/lib/security/pairing-code.d.ts.map +1 -0
  721. package/dist/lib/security/pairing-code.js +265 -0
  722. package/dist/lib/server/localhost-self-check.d.ts +203 -0
  723. package/dist/lib/server/localhost-self-check.d.ts.map +1 -0
  724. package/dist/lib/server/localhost-self-check.js +333 -0
  725. package/dist/server/locales/en/notifications.json +23 -1
  726. package/dist/server/locales/ja/notifications.json +23 -1
  727. package/dist/server/server.js +103 -0
  728. package/dist/server/src/config/auth-config.js +5 -0
  729. package/dist/server/src/config/image-extensions.js +244 -0
  730. package/dist/server/src/config/opencode-constants.js +69 -0
  731. package/dist/server/src/config/tmux-pane-config.js +100 -1
  732. package/dist/server/src/lib/cli-tools/base.js +33 -48
  733. package/dist/server/src/lib/cli-tools/opencode-config.js +12 -0
  734. package/dist/server/src/lib/cli-tools/opencode.js +435 -7
  735. package/dist/server/src/lib/cli-tools/start-availability.js +160 -0
  736. package/dist/server/src/lib/cmate-cli-tool-parser.js +328 -7
  737. package/dist/server/src/lib/cmate-parser.js +12 -0
  738. package/dist/server/src/lib/db/agent-instances-db.js +129 -0
  739. package/dist/server/src/lib/db/agent-session-cost-db.js +204 -0
  740. package/dist/server/src/lib/db/agent-session-cost-sampler.js +194 -0
  741. package/dist/server/src/lib/db/chat-db.js +33 -0
  742. package/dist/server/src/lib/db/db-instance.js +11 -0
  743. package/dist/server/src/lib/db/db.js +8 -3
  744. package/dist/server/src/lib/db/migrations/index.js +6 -0
  745. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  746. package/dist/server/src/lib/db/migrations/v57-push-subscription-defaults-notice.js +54 -0
  747. package/dist/server/src/lib/db/migrations/v58-agent-session-costs.js +100 -0
  748. package/dist/server/src/lib/db/migrations/v59-opencode-instance-settings.js +71 -0
  749. package/dist/server/src/lib/db/push-subscriptions-db.js +56 -5
  750. package/dist/server/src/lib/detection/cli-patterns.js +17 -6
  751. package/dist/server/src/lib/detection/excerpt.js +48 -0
  752. package/dist/server/src/lib/detection/model-info-extractor.js +26 -3
  753. package/dist/server/src/lib/detection/opencode-modal-overlay.js +400 -0
  754. package/dist/server/src/lib/detection/opencode-pane-obstruction.js +181 -0
  755. package/dist/server/src/lib/detection/status-detector.js +7 -0
  756. package/dist/server/src/lib/detection/status-reason.js +20 -0
  757. package/dist/server/src/lib/detection/terminal-columns.js +94 -0
  758. package/dist/server/src/lib/detection/tools/opencode/detect.js +43 -0
  759. package/dist/server/src/lib/detection/tools/opencode/prompt.js +20 -0
  760. package/dist/server/src/lib/detection/tools/verified-against.js +14 -3
  761. package/dist/server/src/lib/detection/upstream-faults.js +7 -22
  762. package/dist/server/src/lib/hooks/agent-session-telemetry.js +324 -0
  763. package/dist/server/src/lib/hooks/pending-decision-kind.js +72 -0
  764. package/dist/server/src/lib/hooks/sources/define-source.js +88 -0
  765. package/dist/server/src/lib/hooks/sources/opencode/client.js +907 -2
  766. package/dist/server/src/lib/hooks/sources/opencode/diff.js +336 -0
  767. package/dist/server/src/lib/hooks/sources/opencode/history.js +480 -0
  768. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +76 -7
  769. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +222 -0
  770. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +31 -0
  771. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +45 -0
  772. package/dist/server/src/lib/hooks/sources/opencode/ports.js +16 -0
  773. package/dist/server/src/lib/hooks/sources/opencode/push.js +307 -0
  774. package/dist/server/src/lib/hooks/sources/opencode/reattach.js +284 -0
  775. package/dist/server/src/lib/hooks/sources/opencode/runtime.js +165 -2
  776. package/dist/server/src/lib/hooks/sources/opencode/source.js +46 -2
  777. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +407 -4
  778. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +383 -0
  779. package/dist/server/src/lib/hooks/structured-decision-response.js +460 -0
  780. package/dist/server/src/lib/job-executor.js +43 -20
  781. package/dist/server/src/lib/polling/response-checker.js +43 -16
  782. package/dist/server/src/lib/polling/structured-history-gate.js +75 -0
  783. package/dist/server/src/lib/prompt-answer-sender.js +153 -2
  784. package/dist/server/src/lib/push/delivery-health.js +237 -0
  785. package/dist/server/src/lib/push/failure-push-notifier.js +109 -7
  786. package/dist/server/src/lib/push/index.js +25 -1
  787. package/dist/server/src/lib/push/prompt-card-state.js +254 -14
  788. package/dist/server/src/lib/push/push-sender.js +63 -12
  789. package/dist/server/src/lib/push/resolution-push-notifier.js +15 -3
  790. package/dist/server/src/lib/push/vapid.js +264 -5
  791. package/dist/server/src/lib/push/waiting-push-notifier.js +7 -0
  792. package/dist/server/src/lib/server/localhost-self-check.js +333 -0
  793. package/dist/server/src/lib/session/agent-event-state.js +169 -4
  794. package/dist/server/src/lib/session/claude-executor.js +152 -15
  795. package/dist/server/src/lib/session/current-output-builder.js +182 -15
  796. package/dist/server/src/lib/session/opencode-session-api.js +214 -0
  797. package/dist/server/src/lib/session/opencode-session-recall.js +168 -0
  798. package/dist/server/src/lib/session/opencode-session-store.js +274 -0
  799. package/dist/server/src/lib/session/provisional-turn.js +54 -1
  800. package/dist/server/src/lib/session/send-user-message.js +6 -5
  801. package/dist/server/src/lib/session/structured-prompt.js +53 -2
  802. package/dist/server/src/lib/skills/compatibility-matrix.js +50 -1
  803. package/dist/server/src/lib/tmux/tmux.js +74 -4
  804. package/dist/server/src/lib/verification/gate-runner.js +71 -8
  805. package/dist/server/src/types/agent-session.js +63 -0
  806. package/dist/server/src/types/agent-transcript.js +80 -0
  807. package/dist/server/src/types/opencode-export.js +228 -0
  808. package/dist/server/src/types/opencode-instance-settings.js +140 -0
  809. package/dist/server/src/types/opencode-share.js +111 -0
  810. package/dist/server/src/types/terminal-keys.js +69 -1
  811. package/dist/types/cli-tool-contracts.d.ts +48 -0
  812. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  813. package/dist/types/terminal-keys.d.ts +89 -0
  814. package/dist/types/terminal-keys.d.ts.map +1 -0
  815. package/dist/types/terminal-keys.js +105 -0
  816. package/package.json +2 -1
  817. package/.next/server/chunks/1029.js +0 -1
  818. package/.next/server/chunks/1239.js +0 -1
  819. package/.next/server/chunks/1538.js +0 -7
  820. package/.next/server/chunks/2546.js +0 -1
  821. package/.next/server/chunks/2689.js +0 -13
  822. package/.next/server/chunks/3292.js +0 -1
  823. package/.next/server/chunks/3417.js +0 -1
  824. package/.next/server/chunks/3736.js +0 -1
  825. package/.next/server/chunks/4423.js +0 -1
  826. package/.next/server/chunks/4444.js +0 -32
  827. package/.next/server/chunks/4565.js +0 -3
  828. package/.next/server/chunks/467.js +0 -1
  829. package/.next/server/chunks/4905.js +0 -5
  830. package/.next/server/chunks/552.js +0 -19
  831. package/.next/server/chunks/5998.js +0 -74
  832. package/.next/server/chunks/6919.js +0 -1
  833. package/.next/server/chunks/7970.js +0 -229
  834. package/.next/server/chunks/8536.js +0 -1
  835. package/.next/server/chunks/9284.js +0 -1
  836. package/.next/static/9IXgWfBUtnEnRqnbmErTp/_buildManifest.js +0 -1
  837. package/.next/static/chunks/3361-5d6e93fba8a92bc1.js +0 -1
  838. package/.next/static/chunks/5229-1f5f19740a8d6c11.js +0 -1
  839. package/.next/static/chunks/6271.295ced91b6335f18.js +0 -1
  840. package/.next/static/chunks/6381-8cfe50a5ca5425b1.js +0 -1
  841. package/.next/static/chunks/8521-c43994fb58501d13.js +0 -1
  842. package/.next/static/chunks/app/api/app/update/route-6add0d88e2828c23.js +0 -1
  843. package/.next/static/chunks/app/api/app/update-check/route-6add0d88e2828c23.js +0 -1
  844. package/.next/static/chunks/app/api/assistant/conversation/route-6add0d88e2828c23.js +0 -1
  845. package/.next/static/chunks/app/api/assistant/current-output/route-6add0d88e2828c23.js +0 -1
  846. package/.next/static/chunks/app/api/assistant/messages/route-6add0d88e2828c23.js +0 -1
  847. package/.next/static/chunks/app/api/assistant/session/route-6add0d88e2828c23.js +0 -1
  848. package/.next/static/chunks/app/api/assistant/start/route-6add0d88e2828c23.js +0 -1
  849. package/.next/static/chunks/app/api/assistant/terminal/route-6add0d88e2828c23.js +0 -1
  850. package/.next/static/chunks/app/api/assistant/tools/route-6add0d88e2828c23.js +0 -1
  851. package/.next/static/chunks/app/api/auth/login/route-6add0d88e2828c23.js +0 -1
  852. package/.next/static/chunks/app/api/auth/logout/route-6add0d88e2828c23.js +0 -1
  853. package/.next/static/chunks/app/api/auth/status/route-6add0d88e2828c23.js +0 -1
  854. package/.next/static/chunks/app/api/capabilities/route-6add0d88e2828c23.js +0 -1
  855. package/.next/static/chunks/app/api/daily-summary/route-6add0d88e2828c23.js +0 -1
  856. package/.next/static/chunks/app/api/daily-summary/status/route-6add0d88e2828c23.js +0 -1
  857. package/.next/static/chunks/app/api/external-apps/[id]/health/route-6add0d88e2828c23.js +0 -1
  858. package/.next/static/chunks/app/api/external-apps/[id]/route-6add0d88e2828c23.js +0 -1
  859. package/.next/static/chunks/app/api/external-apps/route-6add0d88e2828c23.js +0 -1
  860. package/.next/static/chunks/app/api/fs/browse/route-6add0d88e2828c23.js +0 -1
  861. package/.next/static/chunks/app/api/fs/recent-paths/route-6add0d88e2828c23.js +0 -1
  862. package/.next/static/chunks/app/api/hooks/agent-event/route-6add0d88e2828c23.js +0 -1
  863. package/.next/static/chunks/app/api/hooks/claude-done/route-6add0d88e2828c23.js +0 -1
  864. package/.next/static/chunks/app/api/hooks/permission-request/route-6add0d88e2828c23.js +0 -1
  865. package/.next/static/chunks/app/api/metrics/vibe/route-6add0d88e2828c23.js +0 -1
  866. package/.next/static/chunks/app/api/ollama/models/route-6add0d88e2828c23.js +0 -1
  867. package/.next/static/chunks/app/api/push/escalation/route-6add0d88e2828c23.js +0 -1
  868. package/.next/static/chunks/app/api/push/subscriptions/route-6add0d88e2828c23.js +0 -1
  869. package/.next/static/chunks/app/api/push/vapid/route-6add0d88e2828c23.js +0 -1
  870. package/.next/static/chunks/app/api/repositories/[id]/route-6add0d88e2828c23.js +0 -1
  871. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  872. package/.next/static/chunks/app/api/repositories/[id]/todos/route-6add0d88e2828c23.js +0 -1
  873. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-6add0d88e2828c23.js +0 -1
  874. package/.next/static/chunks/app/api/repositories/clone/route-6add0d88e2828c23.js +0 -1
  875. package/.next/static/chunks/app/api/repositories/excluded/route-6add0d88e2828c23.js +0 -1
  876. package/.next/static/chunks/app/api/repositories/restore/route-6add0d88e2828c23.js +0 -1
  877. package/.next/static/chunks/app/api/repositories/route-6add0d88e2828c23.js +0 -1
  878. package/.next/static/chunks/app/api/repositories/scan/route-6add0d88e2828c23.js +0 -1
  879. package/.next/static/chunks/app/api/repositories/sync/route-6add0d88e2828c23.js +0 -1
  880. package/.next/static/chunks/app/api/repositories/validate-path/route-6add0d88e2828c23.js +0 -1
  881. package/.next/static/chunks/app/api/sidebar/group-order/route-6add0d88e2828c23.js +0 -1
  882. package/.next/static/chunks/app/api/skills/[id]/route-6add0d88e2828c23.js +0 -1
  883. package/.next/static/chunks/app/api/skills/installations/route-6add0d88e2828c23.js +0 -1
  884. package/.next/static/chunks/app/api/skills/operations/route-6add0d88e2828c23.js +0 -1
  885. package/.next/static/chunks/app/api/skills/reindex/route-6add0d88e2828c23.js +0 -1
  886. package/.next/static/chunks/app/api/skills/route-6add0d88e2828c23.js +0 -1
  887. package/.next/static/chunks/app/api/slash-commands/route-6add0d88e2828c23.js +0 -1
  888. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-6add0d88e2828c23.js +0 -1
  889. package/.next/static/chunks/app/api/tasks/[taskId]/route-6add0d88e2828c23.js +0 -1
  890. package/.next/static/chunks/app/api/templates/[id]/route-6add0d88e2828c23.js +0 -1
  891. package/.next/static/chunks/app/api/templates/route-6add0d88e2828c23.js +0 -1
  892. package/.next/static/chunks/app/api/todos/route-6add0d88e2828c23.js +0 -1
  893. package/.next/static/chunks/app/api/verification/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  894. package/.next/static/chunks/app/api/verification/runs/route-6add0d88e2828c23.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-6add0d88e2828c23.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-6add0d88e2828c23.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-6add0d88e2828c23.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-6add0d88e2828c23.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-6add0d88e2828c23.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-6add0d88e2828c23.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/env/route-6add0d88e2828c23.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-6add0d88e2828c23.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-6add0d88e2828c23.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-6add0d88e2828c23.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-6add0d88e2828c23.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-6add0d88e2828c23.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-6add0d88e2828c23.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-6add0d88e2828c23.js +0 -1
  909. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-6add0d88e2828c23.js +0 -1
  910. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-6add0d88e2828c23.js +0 -1
  911. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-6add0d88e2828c23.js +0 -1
  912. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-6add0d88e2828c23.js +0 -1
  913. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-6add0d88e2828c23.js +0 -1
  914. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-6add0d88e2828c23.js +0 -1
  915. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-6add0d88e2828c23.js +0 -1
  916. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-6add0d88e2828c23.js +0 -1
  917. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-6add0d88e2828c23.js +0 -1
  918. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-6add0d88e2828c23.js +0 -1
  919. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-6add0d88e2828c23.js +0 -1
  920. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-6add0d88e2828c23.js +0 -1
  921. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-6add0d88e2828c23.js +0 -1
  922. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-6add0d88e2828c23.js +0 -1
  923. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-6add0d88e2828c23.js +0 -1
  924. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-6add0d88e2828c23.js +0 -1
  925. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-6add0d88e2828c23.js +0 -1
  926. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-6add0d88e2828c23.js +0 -1
  927. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-6add0d88e2828c23.js +0 -1
  928. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-6add0d88e2828c23.js +0 -1
  929. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-6add0d88e2828c23.js +0 -1
  930. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-6add0d88e2828c23.js +0 -1
  931. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-6add0d88e2828c23.js +0 -1
  932. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-6add0d88e2828c23.js +0 -1
  933. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-6add0d88e2828c23.js +0 -1
  934. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-6add0d88e2828c23.js +0 -1
  935. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-6add0d88e2828c23.js +0 -1
  936. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-6add0d88e2828c23.js +0 -1
  937. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-6add0d88e2828c23.js +0 -1
  938. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-6add0d88e2828c23.js +0 -1
  939. package/.next/static/chunks/app/api/worktrees/[id]/route-6add0d88e2828c23.js +0 -1
  940. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-6add0d88e2828c23.js +0 -1
  941. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-6add0d88e2828c23.js +0 -1
  942. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-6add0d88e2828c23.js +0 -1
  943. package/.next/static/chunks/app/api/worktrees/[id]/search/route-6add0d88e2828c23.js +0 -1
  944. package/.next/static/chunks/app/api/worktrees/[id]/send/route-6add0d88e2828c23.js +0 -1
  945. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-6add0d88e2828c23.js +0 -1
  946. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-6add0d88e2828c23.js +0 -1
  947. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-6add0d88e2828c23.js +0 -1
  948. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-6add0d88e2828c23.js +0 -1
  949. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-6add0d88e2828c23.js +0 -1
  950. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-6add0d88e2828c23.js +0 -1
  951. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-6add0d88e2828c23.js +0 -1
  952. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-6add0d88e2828c23.js +0 -1
  953. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-6add0d88e2828c23.js +0 -1
  954. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-6add0d88e2828c23.js +0 -1
  955. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-6add0d88e2828c23.js +0 -1
  956. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-6add0d88e2828c23.js +0 -1
  957. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-6add0d88e2828c23.js +0 -1
  958. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-6add0d88e2828c23.js +0 -1
  959. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-6add0d88e2828c23.js +0 -1
  960. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
  961. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-6add0d88e2828c23.js +0 -1
  962. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-6add0d88e2828c23.js +0 -1
  963. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-6add0d88e2828c23.js +0 -1
  964. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-6add0d88e2828c23.js +0 -1
  965. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-6add0d88e2828c23.js +0 -1
  966. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-6add0d88e2828c23.js +0 -1
  967. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-6add0d88e2828c23.js +0 -1
  968. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-6add0d88e2828c23.js +0 -1
  969. package/.next/static/chunks/app/api/worktrees/route-6add0d88e2828c23.js +0 -1
  970. package/.next/static/chunks/app/login/page-adc51f0f7cbb7ac6.js +0 -1
  971. package/.next/static/chunks/app/manifest.webmanifest/route-6add0d88e2828c23.js +0 -1
  972. package/.next/static/chunks/app/more/page-3266dfa945972649.js +0 -1
  973. package/.next/static/chunks/app/proxy/[...path]/route-6add0d88e2828c23.js +0 -1
  974. package/.next/static/chunks/app/review/page-8f63aff862fee421.js +0 -1
  975. package/.next/static/chunks/app/worktrees/[id]/layout-6add0d88e2828c23.js +0 -1
  976. package/.next/static/chunks/app/worktrees/[id]/page-f7b3dfbe757dc6b8.js +0 -1
  977. package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +0 -1
  978. package/.next/static/chunks/webpack-6a9668cf54a26eba.js +0 -1
  979. package/.next/static/css/928e5a8830fbf997.css +0 -1
  980. /package/.next/static/{9IXgWfBUtnEnRqnbmErTp → uulKcSOgyxChTo4SipUSF}/_ssgManifest.js +0 -0
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * VAPID key-pair generation for `commandmate init` (Issue #2123).
4
+ *
5
+ * ## Why the CLI generates keys at all
6
+ *
7
+ * Web Push sends nothing without `CM_VAPID_PUBLIC_KEY` / `CM_VAPID_PRIVATE_KEY`,
8
+ * and before this Issue CommandMate offered no way to produce them: `init` never
9
+ * mentioned VAPID, `env-setup`'s defaults did not carry them, and `scripts/` had
10
+ * no helper. The documented workaround was to know that the bundled `web-push`
11
+ * package exposes `generateVAPIDKeys()` and to type a `node -e` one-liner — which
12
+ * is not a setup step, it is a piece of folklore. `init` now writes a pair, so a
13
+ * fresh install has push available and the reader never sees a raw `node -e`.
14
+ *
15
+ * ## Why the import is lazy
16
+ *
17
+ * `web-push` is a runtime dependency (it is what `push-sender` sends with), but
18
+ * it is a heavy one — it pulls in `https-proxy-agent`, `jws` and their trees. This
19
+ * module is reached from `src/cli/commands/init.ts`, which `program.ts` imports at
20
+ * module scope, so a top-level `import` here would load that graph on EVERY CLI
21
+ * invocation, `commandmate --version` included. The dynamic import keeps the cost
22
+ * on the one command that needs it.
23
+ *
24
+ * ## Why a failure here is not a failure of `init`
25
+ *
26
+ * Push is optional. If `web-push` cannot be loaded (a partial install, a bundler
27
+ * that dropped an optional dependency), `init` must still produce a working `.env`
28
+ * — so this returns a result object rather than throwing, and the caller reports
29
+ * the miss and carries on. Same fail-open direction as every other diagnostic
30
+ * added by #2113 / #2123.
31
+ *
32
+ * @module cli/utils/vapid-keygen
33
+ */
34
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ var desc = Object.getOwnPropertyDescriptor(m, k);
37
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
38
+ desc = { enumerable: true, get: function() { return m[k]; } };
39
+ }
40
+ Object.defineProperty(o, k2, desc);
41
+ }) : (function(o, m, k, k2) {
42
+ if (k2 === undefined) k2 = k;
43
+ o[k2] = m[k];
44
+ }));
45
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
46
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
47
+ }) : function(o, v) {
48
+ o["default"] = v;
49
+ });
50
+ var __importStar = (this && this.__importStar) || (function () {
51
+ var ownKeys = function(o) {
52
+ ownKeys = Object.getOwnPropertyNames || function (o) {
53
+ var ar = [];
54
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
55
+ return ar;
56
+ };
57
+ return ownKeys(o);
58
+ };
59
+ return function (mod) {
60
+ if (mod && mod.__esModule) return mod;
61
+ var result = {};
62
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
63
+ __setModuleDefault(result, mod);
64
+ return result;
65
+ };
66
+ })();
67
+ Object.defineProperty(exports, "__esModule", { value: true });
68
+ exports.isBase64UrlOfLength = isBase64UrlOfLength;
69
+ exports.isVapidKeyPair = isVapidKeyPair;
70
+ exports.generateVapidKeyPair = generateVapidKeyPair;
71
+ /**
72
+ * A base64url string of exactly `bytes` decoded bytes.
73
+ *
74
+ * VAPID keys are a P-256 point: 65 bytes uncompressed for the public key, 32 for
75
+ * the private scalar. Checking the shape here means a `web-push` that ever
76
+ * returned something else is caught at generation rather than at the first push.
77
+ */
78
+ function isBase64UrlOfLength(value, bytes) {
79
+ if (typeof value !== 'string' || value.length === 0)
80
+ return false;
81
+ if (!/^[A-Za-z0-9_-]+$/.test(value))
82
+ return false;
83
+ return Buffer.from(value, 'base64url').length === bytes;
84
+ }
85
+ /** True when both halves look like a usable VAPID application-server key pair. */
86
+ function isVapidKeyPair(value) {
87
+ if (typeof value !== 'object' || value === null)
88
+ return false;
89
+ const pair = value;
90
+ return isBase64UrlOfLength(pair.publicKey, 65) && isBase64UrlOfLength(pair.privateKey, 32);
91
+ }
92
+ /**
93
+ * Generate a VAPID application-server key pair using the bundled `web-push`.
94
+ *
95
+ * @param load - Loader override, injected by tests so the unit suite does not
96
+ * depend on `web-push` being resolvable.
97
+ * @returns The pair, or the reason none could be produced. Never throws.
98
+ */
99
+ async function generateVapidKeyPair(load = () => Promise.resolve().then(() => __importStar(require('web-push'))).then((mod) => (mod.default ?? mod))) {
100
+ try {
101
+ const webpush = await load();
102
+ const keys = webpush.generateVAPIDKeys();
103
+ if (!isVapidKeyPair(keys)) {
104
+ return { ok: false, error: 'web-push returned a key pair of an unexpected shape' };
105
+ }
106
+ return { ok: true, keys };
107
+ }
108
+ catch (error) {
109
+ return { ok: false, error: error instanceof Error ? error.message : String(error) };
110
+ }
111
+ }
@@ -20,7 +20,7 @@ export declare function isValidTokenHash(hash: string | undefined): hash is stri
20
20
  * Paths excluded from authentication check.
21
21
  * S002: Must use === for matching (no startsWith - bypass attack prevention)
22
22
  */
23
- export declare const AUTH_EXCLUDED_PATHS: readonly ["/login", "/api/auth/login", "/api/auth/logout", "/api/auth/status", "/manifest.webmanifest", "/sw.js", "/offline"];
23
+ export declare const AUTH_EXCLUDED_PATHS: readonly ["/login", "/api/auth/login", "/api/auth/logout", "/api/auth/status", "/api/remote/pair", "/manifest.webmanifest", "/sw.js", "/offline"];
24
24
  /** Default token expiration duration (24 hours) */
25
25
  export declare const DEFAULT_EXPIRE_DURATION_MS: number;
26
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AAKzD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,MAAM,CAEzE;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,+HAWtB,CAAC;AAeX,mDAAmD;AACnD,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAQ3D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgC/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAgB/C"}
1
+ {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,EAAG,eAAwB,CAAC;AAKzD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI,MAAM,CAEzE;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,mJAgBtB,CAAC;AAeX,mDAAmD;AACnD,eAAO,MAAM,0BAA0B,QAAmB,CAAC;AAQ3D;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAgC/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAgB/C"}
@@ -35,6 +35,11 @@ exports.AUTH_EXCLUDED_PATHS = [
35
35
  '/api/auth/login',
36
36
  '/api/auth/logout',
37
37
  '/api/auth/status',
38
+ // Issue #1937 (R5): one-shot pairing-code exchange for `commandmate remote`.
39
+ // The pairing SCREEN is '/login' above, driven by a '#code=' fragment, so
40
+ // this is the only entry the remote feature adds. Handler:
41
+ // src/app/api/remote/pair/route.ts (it authenticates the code itself).
42
+ '/api/remote/pair',
38
43
  // Issue #1124 (PWA): non-sensitive resources that must stay reachable before
39
44
  // auth so the app is installable and the offline fallback can be precached.
40
45
  // All carry no user data (app metadata / public SW code / static fallback).
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Type definitions and interfaces for CLI tools
3
3
  */
4
- import type { CaptureSpec, ComposerSpec, GracefulExitSpec } from '../../types/cli-tool-contracts';
4
+ import type { CaptureSpec, ComposerSpec, GracefulExitSpec, NavigationKeySpec } from '../../types/cli-tool-contracts';
5
5
  /**
6
6
  * CLI Tool IDs constant array
7
7
  * T2.1: Single source of truth for CLI tool IDs
@@ -220,6 +220,16 @@ export interface ICLITool {
220
220
  * (Issue #1933, §10.12).
221
221
  */
222
222
  captureSpec(): CaptureSpec;
223
+ /**
224
+ * Declare the keys this tool's terminal UI may send (Issue #2046).
225
+ *
226
+ * `POST /api/worktrees/[id]/special-keys` validates against the answer for
227
+ * the tool it was given, instead of against one global list shared by every
228
+ * tool. See {@link NavigationKeySpec} for why a shared list stopped working
229
+ * once opencode's `ctrl+x`-leader chords arrived, and for the #2032 invariant
230
+ * every declaration has to keep.
231
+ */
232
+ navigationKeys(): NavigationKeySpec;
223
233
  }
224
234
  /**
225
235
  * CLI tool display names for UI rendering
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/cli-tools/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/cli-tools/types.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,21 @@ export declare const COPILOT_VERIFIED_AGAINST: {
42
42
  readonly capturedAt: "2026-08-21";
43
43
  readonly paneGeometry: "200x1000";
44
44
  };
45
- /** opencode these rules were read off (#1883 / #1893 / #1896 fixtures). */
45
+ /**
46
+ * opencode these rules were read off (#1883 / #1893 / #1896 fixtures; re-measured
47
+ * against 1.18.22 by the canary in #2050).
48
+ *
49
+ * Bumped from 1.18.21 because the frames were RE-CAPTURED, not because the
50
+ * version number moved: `npm run canary -- --tool opencode` drove 1.18.22 into
51
+ * all five states branches A0-E read (idle composer / `esc interrupt` /
52
+ * `Allow once Allow always Reject` / `/models` picker / `▣ … · <duration>`)
53
+ * at the production 80x200 geometry and every rule answered as it did on
54
+ * 1.18.21. The frames are `tests/fixtures/canary/opencode-*.ts` and the run is
55
+ * written up in `docs/design/opencode-server-live-verification.md` §18.
56
+ */
46
57
  export declare const OPENCODE_VERIFIED_AGAINST: {
47
- readonly version: "1.18.21";
48
- readonly capturedAt: "2026-08-21";
58
+ readonly version: "1.18.22";
59
+ readonly capturedAt: "2026-08-26";
49
60
  readonly paneGeometry: "80x200";
50
61
  };
51
62
  /** agy these rules were read off (#988 / #995). */
@@ -1 +1 @@
1
- {"version":3,"file":"verified-against.d.ts","sourceRoot":"","sources":["../../../../src/lib/detection/tools/verified-against.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iEAAiE;AACjE,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX,iFAAiF;AACjF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAQpF,CAAC"}
1
+ {"version":3,"file":"verified-against.d.ts","sourceRoot":"","sources":["../../../../src/lib/detection/tools/verified-against.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iEAAiE;AACjE,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,4BAA4B;;;;CAI/B,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX,iFAAiF;AACjF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAQpF,CAAC"}
@@ -45,10 +45,21 @@ exports.COPILOT_VERIFIED_AGAINST = {
45
45
  capturedAt: '2026-08-21',
46
46
  paneGeometry: '200x1000',
47
47
  };
48
- /** opencode these rules were read off (#1883 / #1893 / #1896 fixtures). */
48
+ /**
49
+ * opencode these rules were read off (#1883 / #1893 / #1896 fixtures; re-measured
50
+ * against 1.18.22 by the canary in #2050).
51
+ *
52
+ * Bumped from 1.18.21 because the frames were RE-CAPTURED, not because the
53
+ * version number moved: `npm run canary -- --tool opencode` drove 1.18.22 into
54
+ * all five states branches A0-E read (idle composer / `esc interrupt` /
55
+ * `Allow once Allow always Reject` / `/models` picker / `▣ … · <duration>`)
56
+ * at the production 80x200 geometry and every rule answered as it did on
57
+ * 1.18.21. The frames are `tests/fixtures/canary/opencode-*.ts` and the run is
58
+ * written up in `docs/design/opencode-server-live-verification.md` §18.
59
+ */
49
60
  exports.OPENCODE_VERIFIED_AGAINST = {
50
- version: '1.18.21',
51
- capturedAt: '2026-08-21',
61
+ version: '1.18.22',
62
+ capturedAt: '2026-08-26',
52
63
  paneGeometry: '80x200',
53
64
  };
54
65
  /** agy these rules were read off (#988 / #995). */
@@ -0,0 +1,178 @@
1
+ /**
2
+ * VAPID configuration for Web Push, and the one startup check that reports on it
3
+ * (Issue #1125; the check and the subject rules are Issues #2123 / #2124).
4
+ *
5
+ * Keys are supplied via environment variables and read lazily so tests can vary
6
+ * them and so an unconfigured deployment simply disables push (never crashes).
7
+ * The private key and subject are secrets — never log the returned config.
8
+ *
9
+ * ## Why the default subject is an https: URL (Issue #2124)
10
+ *
11
+ * The VAPID `sub` claim is the sender's contact, and **Apple validates it**. The
12
+ * original default, `mailto:commandmate@localhost`, names a domain that cannot
13
+ * exist, so APNs answered 403 and iOS/iPadOS received nothing while Android kept
14
+ * working — FCM is permissive about `sub`, so testing on Android alone cannot
15
+ * see it. Measured by the orchestrator during the Epic #2002 device UAT
16
+ * (2026-08-27, develop e8d09989), fanning ONE waiting notification to two
17
+ * devices:
18
+ *
19
+ * Android 10 / Chrome 151 -> FCM default subject: delivered
20
+ * iPad / iPadOS 18.7 -> APNs default subject: 403, push-send-failed
21
+ * https://github.com/Kewton/CommandMate: delivered
22
+ *
23
+ * This file's author did NOT reproduce that on hardware; the APNs/FCM behaviour
24
+ * above is quoted from that UAT and is not re-measured here. What IS pinned by
25
+ * the unit suite is the pure part: which subjects this module accepts and which
26
+ * it flags, and that the default is one of the accepted ones.
27
+ *
28
+ * RFC 8292 §2.1 allows both `mailto:` and `https:` for `sub`, so a project URL
29
+ * is a conforming default that needs no per-install mailbox.
30
+ *
31
+ * ## Why an invalid subject is reported and NOT replaced
32
+ *
33
+ * {@link inspectVapidConfig} flags a bad `CM_VAPID_SUBJECT`; {@link getVapidConfig}
34
+ * still returns it verbatim. Silently substituting the default would make the
35
+ * warning describe a value the server does not actually send, and would make
36
+ * `commandmate status` disagree with the wire. The operator set it; they are told
37
+ * it will be rejected, and startup is never blocked (fail-open, exactly as
38
+ * `lib/server/localhost-self-check` is).
39
+ *
40
+ * ## No `@/` imports here, ever
41
+ *
42
+ * `src/cli/commands/status.ts` imports this module so the CLI and the server run
43
+ * the SAME check, and `tsconfig.cli.json` resets `paths` to `{}` — an alias
44
+ * import here would break `npm run build:cli`. Same constraint as
45
+ * `lib/server/localhost-self-check.ts` and `lib/detection/version-probes.ts`.
46
+ * This module must also stay dependency-free for that reason.
47
+ *
48
+ * @module lib/push/vapid
49
+ */
50
+ export interface VapidConfig {
51
+ publicKey: string;
52
+ privateKey: string;
53
+ subject: string;
54
+ }
55
+ /**
56
+ * Default `sub` claim when `CM_VAPID_SUBJECT` is unset.
57
+ *
58
+ * A real, resolvable https: URL — see the module header for the APNs measurement
59
+ * that made `mailto:commandmate@localhost` the wrong answer (Issue #2124).
60
+ */
61
+ export declare const VAPID_DEFAULT_SUBJECT = "https://github.com/Kewton/CommandMate";
62
+ /** The three environment variables that configure Web Push. */
63
+ export declare const VAPID_ENV_KEYS: {
64
+ readonly publicKey: "CM_VAPID_PUBLIC_KEY";
65
+ readonly privateKey: "CM_VAPID_PRIVATE_KEY";
66
+ readonly subject: "CM_VAPID_SUBJECT";
67
+ };
68
+ /** What is wrong with a `CM_VAPID_SUBJECT`, or `null` when nothing is. */
69
+ export type VapidSubjectIssue =
70
+ /** Neither `mailto:` nor `https:` — RFC 8292 §2.1 allows only those two. */
71
+ 'unsupported-scheme'
72
+ /** Parsed as a supported scheme but carries no host at all. */
73
+ | 'missing-host'
74
+ /** A host no push service can resolve: `localhost`, a bare name, a reserved TLD, a loopback literal. */
75
+ | 'non-routable-host';
76
+ /**
77
+ * The host a subject names, lowercased, or `null` when it names none.
78
+ *
79
+ * `mailto:` takes everything after the LAST `@` (a local part may legally contain
80
+ * one when quoted) up to the first `?` (RFC 6068 header separator). `https:` is
81
+ * parsed by `URL`, whose `hostname` already strips the brackets off an IPv6
82
+ * literal.
83
+ */
84
+ export declare function extractVapidSubjectHost(subject: string): string | null;
85
+ /**
86
+ * Decide whether a `sub` claim is one a push service can be expected to accept.
87
+ *
88
+ * Deliberately conservative: it rejects only hosts that provably cannot resolve.
89
+ * A reachable-but-wrong contact (`mailto:nobody@example.com`) is the operator's
90
+ * business, and a check that guessed at it would warn on healthy installs.
91
+ *
92
+ * @param subject - Raw `CM_VAPID_SUBJECT`, or the default.
93
+ * @returns The problem, or `null` when the subject is usable.
94
+ */
95
+ export declare function classifyVapidSubject(subject: string): VapidSubjectIssue | null;
96
+ /** How a deployment's Web Push configuration reads right now. */
97
+ export type VapidStatus =
98
+ /** Neither key is set: push is off, and nothing was half-configured. */
99
+ 'unconfigured'
100
+ /** Exactly one of the two keys is set — almost always a typo or a half-finished edit. */
101
+ | 'partial'
102
+ /** Both keys present, but `CM_VAPID_SUBJECT` will be rejected by at least APNs. */
103
+ | 'invalid-subject'
104
+ /** Both keys present and the subject is usable. Nothing to report. */
105
+ | 'ok';
106
+ /** The single verdict {@link inspectVapidConfig} produces (Issues #2123 / #2124). */
107
+ export interface VapidInspection {
108
+ status: VapidStatus;
109
+ /** True when both keys are present, i.e. when push can send at all. */
110
+ configured: boolean;
111
+ /** The `sub` claim that will actually be sent. */
112
+ subject: string;
113
+ /** Whether {@link subject} came from the environment or from the built-in default. */
114
+ subjectSource: 'env' | 'default';
115
+ /** What is wrong with {@link subject}, or `null`. */
116
+ subjectIssue: VapidSubjectIssue | null;
117
+ /** Names of the VAPID variables that are set — never their values. */
118
+ presentKeys: readonly string[];
119
+ /** Names of the key variables that are missing. */
120
+ missingKeys: readonly string[];
121
+ }
122
+ /** The slice of the environment this module reads. */
123
+ export type VapidEnv = Readonly<Record<string, string | undefined>>;
124
+ /**
125
+ * Read the three variables and say, in one verdict, everything both Issues need
126
+ * reported: whether push is on at all (#2123) and whether the subject will be
127
+ * accepted (#2124).
128
+ *
129
+ * ONE check, two facts — deliberately not two checks. The startup log, the
130
+ * `commandmate status` output and the unit suite all consume this one function,
131
+ * so the two surfaces cannot drift apart.
132
+ *
133
+ * Pure: no I/O, no logging, never throws.
134
+ *
135
+ * @param env - Environment to read (default: `process.env`). `commandmate status`
136
+ * passes the env the *daemon* runs with, which is not this process's own.
137
+ */
138
+ export declare function inspectVapidConfig(env?: VapidEnv): VapidInspection;
139
+ /**
140
+ * The startup / `status` report, as lines — shared by both surfaces so they can
141
+ * never drift apart, exactly as `formatLocalhostConflictWarning` is (#2113).
142
+ *
143
+ * **Returns an empty array when the configuration is healthy.** That silence is
144
+ * the negative control both Issues ask for: a correctly configured server prints
145
+ * nothing about push, so the presence of a line is itself the signal.
146
+ *
147
+ * Never includes a key or a private value. `subject` is printed because it is the
148
+ * value the operator has to fix, and it is a contact address rather than a
149
+ * credential — the module header's "never log the config" rule is about the keys.
150
+ */
151
+ export declare function formatVapidReportLines(inspection: VapidInspection): string[];
152
+ /** Options for {@link runVapidSelfCheck}. */
153
+ export interface RunVapidSelfCheckOptions {
154
+ /** Environment to inspect (default: `process.env`). */
155
+ env?: VapidEnv;
156
+ /** Where the report goes (default: `console.warn`). */
157
+ warn?: (message: string) => void;
158
+ }
159
+ /**
160
+ * Run the startup self-check and print its verdict, or nothing when healthy.
161
+ *
162
+ * Fail-open by construction, the same contract `runLocalhostSelfCheck` carries:
163
+ * it never throws, it never blocks `listen`, and a healthy install is silent.
164
+ *
165
+ * @returns The inspection, or `null` when the check itself could not be carried
166
+ * out (which is reported as nothing at all).
167
+ */
168
+ export declare function runVapidSelfCheck(options?: RunVapidSelfCheckOptions): VapidInspection | null;
169
+ /**
170
+ * Returns the VAPID config, or null when push is not configured (both public
171
+ * and private keys must be present). Read from env on every call.
172
+ */
173
+ export declare function getVapidConfig(): VapidConfig | null;
174
+ /** True when both VAPID keys are configured. */
175
+ export declare function isPushConfigured(): boolean;
176
+ /** The public (application server) key clients need to subscribe, or null. */
177
+ export declare function getVapidPublicKey(): string | null;
178
+ //# sourceMappingURL=vapid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vapid.d.ts","sourceRoot":"","sources":["../../../src/lib/push/vapid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,0CAA0C,CAAC;AAE7E,+DAA+D;AAC/D,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAuBX,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB;AAC3B,4EAA4E;AAC1E,oBAAoB;AACtB,+DAA+D;GAC7D,cAAc;AAChB,wGAAwG;GACtG,mBAAmB,CAAC;AAQxB;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAe9E;AAED,iEAAiE;AACjE,MAAM,MAAM,WAAW;AACrB,wEAAwE;AACtE,cAAc;AAChB,yFAAyF;GACvF,SAAS;AACX,mFAAmF;GACjF,iBAAiB;AACnB,sEAAsE;GACpE,IAAI,CAAC;AAET,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,sEAAsE;IACtE,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,mDAAmD;IACnD,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,sDAAsD;AACtD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,QAAsB,GAAG,eAAe,CAiC/E;AAcD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,EAAE,CAiC5E;AAED,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,uDAAuD;IACvD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,eAAe,GAAG,IAAI,CAahG;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAQnD;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD"}