commandmate 0.29.1 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (979) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +468 -417
  3. package/.next/app-path-routes-manifest.json +30 -23
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/react-loadable-manifest.json +3 -3
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +25 -8
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/update/route.js +2 -0
  12. package/.next/server/app/api/agents/update/route.js.nft.json +1 -0
  13. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -0
  14. package/.next/server/app/api/agents/versions/route.js +1 -0
  15. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -0
  16. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -0
  17. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/app/update-check/route.js +1 -1
  19. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  21. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  24. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/messages/route.js +1 -1
  27. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/session/route.js +1 -1
  30. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/start/route.js +18 -18
  33. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/assistant/terminal/route.js +19 -19
  36. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  37. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/assistant/tools/route.js +1 -1
  39. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  40. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/capabilities/route.js +1 -1
  45. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/daily-summary/route.js +1 -1
  47. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  48. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  50. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  51. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  53. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  54. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  56. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/external-apps/route.js +1 -1
  59. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  60. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/fs/browse/route.js +1 -7
  62. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  63. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/fs/recent-paths/route.js +1 -7
  65. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  66. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  68. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  71. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  72. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  74. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/metrics/vibe/route.js +2 -2
  77. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  78. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/push/escalation/route.js +7 -1
  81. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  82. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  84. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  85. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/push/vapid/route.js +7 -1
  87. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  88. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  91. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  94. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  97. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/clone/route.js +1 -1
  103. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  106. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/repositories/restore/route.js +1 -1
  109. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  110. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/repositories/route.js +1 -1
  112. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  113. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/repositories/scan/route.js +1 -1
  115. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  116. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/repositories/sync/route.js +1 -1
  118. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  119. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  122. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/settings/default-agents/route.js +1 -0
  124. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -0
  125. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -0
  126. package/.next/server/app/api/settings/default-surface-mode/route.js +1 -0
  127. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -0
  128. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -0
  129. package/.next/server/app/api/sidebar/group-order/route.js +1 -7
  130. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  131. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/skills/[id]/route.js +1 -1
  133. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  134. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/skills/installations/route.js +2 -2
  136. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  137. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/skills/operations/route.js +2 -2
  139. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  140. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/skills/reindex/route.js +1 -1
  142. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  143. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/skills/route.js +1 -1
  145. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  146. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/slash-commands/route.js +1 -1
  148. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  149. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  154. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/templates/[id]/route.js +2 -2
  157. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  158. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/templates/route.js +2 -2
  160. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  161. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/todos/route.js +1 -1
  163. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  164. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  166. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  167. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/verification/runs/route.js +1 -1
  169. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  170. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -0
  181. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -0
  182. package/.next/server/app/api/worktrees/[id]/{start-polling → cli-reference}/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  187. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -2
  190. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  199. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
  286. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  289. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  316. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  322. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  328. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -7
  334. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  358. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  361. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  362. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  364. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  365. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  367. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  368. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  370. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  371. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  372. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  373. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  374. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  375. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  376. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  377. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  379. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  380. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  382. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  383. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  385. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  386. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  388. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  389. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  391. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  392. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  393. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -0
  394. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -0
  395. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -0
  396. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  397. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  398. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  399. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -0
  400. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -0
  401. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -0
  402. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  406. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  407. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  408. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  409. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  410. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  411. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -0
  412. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -0
  413. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -0
  414. package/.next/server/app/api/worktrees/route.js +1 -1
  415. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  416. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  417. package/.next/server/app/chat/page.js +2 -2
  418. package/.next/server/app/chat/page.js.nft.json +1 -1
  419. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/login/page.js +2 -2
  421. package/.next/server/app/login/page.js.nft.json +1 -1
  422. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  423. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  424. package/.next/server/app/more/page.js +2 -2
  425. package/.next/server/app/more/page.js.nft.json +1 -1
  426. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  427. package/.next/server/app/offline/page.js.nft.json +1 -1
  428. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  429. package/.next/server/app/page.js +1 -1
  430. package/.next/server/app/page.js.nft.json +1 -1
  431. package/.next/server/app/page_client-reference-manifest.js +1 -1
  432. package/.next/server/app/proxy/[...path]/route.js +1 -1
  433. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  434. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  435. package/.next/server/app/repositories/page.js +2 -2
  436. package/.next/server/app/repositories/page.js.nft.json +1 -1
  437. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  438. package/.next/server/app/review/page.js +1 -1
  439. package/.next/server/app/review/page.js.nft.json +1 -1
  440. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  441. package/.next/server/app/sessions/page.js +1 -1
  442. package/.next/server/app/sessions/page.js.nft.json +1 -1
  443. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/skills/[skillId]/page.js +2 -2
  445. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  446. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  447. package/.next/server/app/skills/installed/page.js +2 -2
  448. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  449. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  450. package/.next/server/app/skills/page.js +2 -2
  451. package/.next/server/app/skills/page.js.nft.json +1 -1
  452. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  453. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  454. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  455. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  456. package/.next/server/app/worktrees/[id]/page.js +12 -12
  457. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  458. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  459. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  460. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  461. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  462. package/.next/server/app-paths-manifest.json +30 -23
  463. package/.next/server/chunks/1058.js +1 -1
  464. package/.next/server/chunks/1068.js +1 -1
  465. package/.next/server/chunks/1191.js +1 -1
  466. package/.next/server/chunks/1341.js +1 -0
  467. package/.next/server/chunks/1501.js +5 -0
  468. package/.next/server/chunks/1886.js +3 -4
  469. package/.next/server/chunks/2119.js +1 -1
  470. package/.next/server/chunks/2445.js +1 -1
  471. package/.next/server/chunks/261.js +1 -0
  472. package/.next/server/chunks/2739.js +1 -0
  473. package/.next/server/chunks/2816.js +1 -1
  474. package/.next/server/chunks/2827.js +29 -0
  475. package/.next/server/chunks/3123.js +1 -0
  476. package/.next/server/chunks/3241.js +1 -1
  477. package/.next/server/chunks/3543.js +1 -1
  478. package/.next/server/chunks/3707.js +15 -0
  479. package/.next/server/chunks/3722.js +25 -1
  480. package/.next/server/chunks/3869.js +1 -0
  481. package/.next/server/chunks/3945.js +1 -1
  482. package/.next/server/chunks/4299.js +1 -1
  483. package/.next/server/chunks/4325.js +1 -0
  484. package/.next/server/chunks/4390.js +1 -0
  485. package/.next/server/chunks/4393.js +1 -1
  486. package/.next/server/chunks/4443.js +6 -0
  487. package/.next/server/chunks/5017.js +1 -1
  488. package/.next/server/chunks/5120.js +1 -0
  489. package/.next/server/chunks/5164.js +1 -1
  490. package/.next/server/chunks/5571.js +1 -1
  491. package/.next/server/chunks/6130.js +1 -1
  492. package/.next/server/chunks/6285.js +1 -1
  493. package/.next/server/chunks/6337.js +1 -1
  494. package/.next/server/chunks/663.js +1 -1
  495. package/.next/server/chunks/6781.js +1 -1
  496. package/.next/server/chunks/6894.js +8 -0
  497. package/.next/server/chunks/7366.js +5 -0
  498. package/.next/server/chunks/7685.js +1 -1
  499. package/.next/server/chunks/7824.js +1 -1
  500. package/.next/server/chunks/7836.js +1 -0
  501. package/.next/server/chunks/7905.js +1 -1
  502. package/.next/server/chunks/8118.js +1 -0
  503. package/.next/server/chunks/8356.js +1 -1
  504. package/.next/server/chunks/848.js +1 -1
  505. package/.next/server/chunks/880.js +3 -3
  506. package/.next/server/chunks/8800.js +3 -0
  507. package/.next/server/chunks/8807.js +1 -1
  508. package/.next/server/chunks/9123.js +2 -2
  509. package/.next/server/chunks/9130.js +3 -3
  510. package/.next/server/chunks/9627.js +71 -43
  511. package/.next/server/chunks/9696.js +3 -0
  512. package/.next/server/chunks/9798.js +1 -1
  513. package/.next/server/middleware-build-manifest.js +1 -1
  514. package/.next/server/middleware-manifest.json +5 -5
  515. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  516. package/.next/server/pages/500.html +1 -1
  517. package/.next/server/server-reference-manifest.json +1 -1
  518. package/.next/server/src/middleware.js +1 -1
  519. package/.next/server/src/middleware.js.map +1 -1
  520. package/.next/static/7K0XXFu_ty4wRSkl4X21E/_buildManifest.js +1 -0
  521. package/.next/static/chunks/{2053-c0e931eb4391baa1.js → 2053-3f299a7a2c7d6767.js} +1 -1
  522. package/.next/static/chunks/{3968-8d8ca15657748bfb.js → 3916-0e929d089282dc5d.js} +1 -1
  523. package/.next/static/chunks/3922.9c1ec01fff819c88.js +1 -0
  524. package/.next/static/chunks/5229-6c89475b61bd2c8b.js +1 -0
  525. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  526. package/.next/static/chunks/6381-28d0e95620aa018e.js +1 -0
  527. package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +1 -0
  528. package/.next/static/chunks/{1188-8567ee5ecfef02ee.js → 8593-fa0eb2802e0ce68a.js} +1 -1
  529. package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +1 -0
  530. package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +1 -0
  531. package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +1 -0
  532. package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +1 -0
  533. package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +1 -0
  534. package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +1 -0
  535. package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +1 -0
  536. package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +1 -0
  537. package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +1 -0
  538. package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +1 -0
  539. package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +1 -0
  540. package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +1 -0
  541. package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +1 -0
  542. package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +1 -0
  543. package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +1 -0
  544. package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +1 -0
  545. package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +1 -0
  546. package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +1 -0
  547. package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +1 -0
  548. package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +1 -0
  549. package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +1 -0
  550. package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +1 -0
  551. package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +1 -0
  552. package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +1 -0
  553. package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +1 -0
  554. package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +1 -0
  555. package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +1 -0
  556. package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +1 -0
  557. package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +1 -0
  558. package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +1 -0
  559. package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +1 -0
  560. package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +1 -0
  561. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  562. package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  563. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +1 -0
  564. package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +1 -0
  565. package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +1 -0
  566. package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +1 -0
  567. package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +1 -0
  568. package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +1 -0
  569. package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +1 -0
  570. package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +1 -0
  571. package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +1 -0
  572. package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +1 -0
  573. package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +1 -0
  574. package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +1 -0
  575. package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +1 -0
  576. package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +1 -0
  577. package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +1 -0
  578. package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +1 -0
  579. package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  580. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  581. package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +1 -0
  582. package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +1 -0
  583. package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +1 -0
  584. package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +1 -0
  585. package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  586. package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +1 -0
  587. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +1 -0
  588. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +1 -0
  589. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +1 -0
  590. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +1 -0
  591. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +1 -0
  592. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +1 -0
  593. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +1 -0
  594. package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +1 -0
  595. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +1 -0
  596. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +1 -0
  597. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  598. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +1 -0
  599. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +1 -0
  600. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +1 -0
  601. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +1 -0
  602. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +1 -0
  603. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +1 -0
  604. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +1 -0
  605. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +1 -0
  606. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +1 -0
  607. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +1 -0
  608. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +1 -0
  609. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +1 -0
  610. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +1 -0
  611. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +1 -0
  612. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +1 -0
  613. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +1 -0
  614. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +1 -0
  615. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +1 -0
  616. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +1 -0
  617. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +1 -0
  618. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +1 -0
  619. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +1 -0
  620. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +1 -0
  621. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +1 -0
  622. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +1 -0
  623. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +1 -0
  624. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +1 -0
  625. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +1 -0
  626. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +1 -0
  627. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +1 -0
  628. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +1 -0
  629. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +1 -0
  630. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +1 -0
  631. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +1 -0
  632. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +1 -0
  633. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +1 -0
  634. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +1 -0
  635. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +1 -0
  636. package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +1 -0
  637. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +1 -0
  638. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +1 -0
  639. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +1 -0
  640. package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +1 -0
  641. package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +1 -0
  642. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +1 -0
  643. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +1 -0
  644. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +1 -0
  645. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +1 -0
  646. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +1 -0
  647. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +1 -0
  648. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +1 -0
  649. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +1 -0
  650. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  651. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +1 -0
  652. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +1 -0
  653. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +1 -0
  654. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +1 -0
  655. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +1 -0
  656. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  657. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  658. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  659. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +1 -0
  660. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  661. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +1 -0
  662. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +1 -0
  663. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  664. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  665. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +1 -0
  666. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +1 -0
  667. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +1 -0
  668. package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +1 -0
  669. package/.next/static/chunks/app/chat/{page-231df45127e876c2.js → page-9aa2011410895b0d.js} +1 -1
  670. package/.next/static/chunks/app/login/{page-03659dded846ef1d.js → page-af7241bb4c4a8e59.js} +1 -1
  671. package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +1 -0
  672. package/.next/static/chunks/app/more/page-333bba1c8bbc9c11.js +1 -0
  673. package/.next/static/chunks/app/{page-0305431f43195431.js → page-214f7ffa13a0cf10.js} +1 -1
  674. package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  675. package/.next/static/chunks/app/repositories/{page-ae8fa55749976f79.js → page-4951cac905e50224.js} +1 -1
  676. package/.next/static/chunks/app/review/page-a0899b2d285318c3.js +1 -0
  677. package/.next/static/chunks/app/sessions/page-fb36145ec732092a.js +1 -0
  678. package/.next/static/chunks/app/skills/[skillId]/{page-aaf0bcb1dfb558b9.js → page-9099e26b60442873.js} +1 -1
  679. package/.next/static/chunks/app/skills/installed/{page-dafc486410e839b7.js → page-182e32368696d824.js} +1 -1
  680. package/.next/static/chunks/app/skills/{page-9e3c91da31514893.js → page-d3fdc88239ebe0ab.js} +1 -1
  681. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-90f96977c741bbf8.js → page-f3361237420719b4.js} +1 -1
  682. package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +1 -0
  683. package/.next/static/chunks/app/worktrees/[id]/page-d48b95ed554bcd13.js +1 -0
  684. package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +1 -0
  685. package/.next/static/chunks/{webpack-7e79064bfce988d7.js → webpack-9f75198882fdaf08.js} +1 -1
  686. package/.next/static/css/61e10d4b1b11b193.css +1 -0
  687. package/.next/trace +13 -13
  688. package/.next/types/app/api/agents/update/route.ts +347 -0
  689. package/.next/types/app/api/agents/versions/route.ts +347 -0
  690. package/.next/types/app/api/settings/default-agents/route.ts +347 -0
  691. package/.next/types/app/api/settings/default-surface-mode/route.ts +347 -0
  692. package/.next/types/app/api/worktrees/[id]/{start-polling → cli-reference}/route.ts +3 -3
  693. package/.next/types/app/api/worktrees/[id]/verify/config/route.ts +347 -0
  694. package/.next/types/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.ts +347 -0
  695. package/.next/types/app/api/worktrees/apply-default-agents/route.ts +347 -0
  696. package/.next/types/routes.d.ts +9 -2
  697. package/.next/types/validator.ts +72 -9
  698. package/dist/cli/commands/agents.d.ts +35 -0
  699. package/dist/cli/commands/agents.d.ts.map +1 -0
  700. package/dist/cli/commands/agents.js +212 -0
  701. package/dist/cli/commands/ls.d.ts.map +1 -1
  702. package/dist/cli/commands/ls.js +18 -0
  703. package/dist/cli/commands/verify.d.ts.map +1 -1
  704. package/dist/cli/commands/verify.js +111 -0
  705. package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
  706. package/dist/cli/config/cli-dependencies.js +11 -0
  707. package/dist/cli/docs/agent-operations.d.ts +1 -1
  708. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  709. package/dist/cli/docs/agent-operations.js +30 -0
  710. package/dist/cli/program.d.ts.map +1 -1
  711. package/dist/cli/program.js +6 -0
  712. package/dist/cli/types/api-responses.d.ts +58 -0
  713. package/dist/cli/types/api-responses.d.ts.map +1 -1
  714. package/dist/cli/types/index.d.ts +8 -0
  715. package/dist/cli/types/index.d.ts.map +1 -1
  716. package/dist/cli/utils/preflight.d.ts.map +1 -1
  717. package/dist/cli/utils/preflight.js +6 -0
  718. package/dist/config/system-directories.d.ts +101 -0
  719. package/dist/config/system-directories.d.ts.map +1 -0
  720. package/dist/config/system-directories.js +211 -0
  721. package/dist/lib/cli-tools/types.d.ts +15 -1
  722. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  723. package/dist/lib/detection/status-reason.d.ts +92 -0
  724. package/dist/lib/detection/status-reason.d.ts.map +1 -0
  725. package/dist/lib/detection/status-reason.js +94 -0
  726. package/dist/lib/updates/agent-updater.d.ts +247 -0
  727. package/dist/lib/updates/agent-updater.d.ts.map +1 -0
  728. package/dist/lib/updates/agent-updater.js +373 -0
  729. package/dist/lib/updates/agent-versions.d.ts +77 -0
  730. package/dist/lib/updates/agent-versions.d.ts.map +1 -0
  731. package/dist/lib/updates/agent-versions.js +138 -0
  732. package/dist/lib/updates/codex-version.d.ts +184 -0
  733. package/dist/lib/updates/codex-version.d.ts.map +1 -0
  734. package/dist/lib/updates/codex-version.js +215 -0
  735. package/dist/lib/verification/verify-config.d.ts +202 -0
  736. package/dist/lib/verification/verify-config.d.ts.map +1 -0
  737. package/dist/lib/verification/verify-config.js +429 -0
  738. package/dist/lib/verification/verify-draft.d.ts +182 -0
  739. package/dist/lib/verification/verify-draft.d.ts.map +1 -0
  740. package/dist/lib/verification/verify-draft.js +570 -0
  741. package/dist/server/server.js +58 -0
  742. package/dist/server/src/cli/types/api-responses.js +9 -0
  743. package/dist/server/src/config/cli-tool-timing-config.js +15 -1
  744. package/dist/server/src/config/codex-update-dialog-config.js +154 -0
  745. package/dist/server/src/config/default-agents.js +138 -0
  746. package/dist/server/src/lib/claude-output.js +1 -0
  747. package/dist/server/src/lib/cli-tools/antigravity.js +36 -12
  748. package/dist/server/src/lib/cli-tools/base.js +131 -0
  749. package/dist/server/src/lib/cli-tools/codex.js +350 -100
  750. package/dist/server/src/lib/cli-tools/copilot.js +34 -10
  751. package/dist/server/src/lib/cli-tools/gemini.js +34 -10
  752. package/dist/server/src/lib/cli-tools/liveness-spec.js +214 -0
  753. package/dist/server/src/lib/cli-tools/opencode.js +72 -19
  754. package/dist/server/src/lib/cli-tools/session-liveness.js +64 -0
  755. package/dist/server/src/lib/cli-tools/vibe-local.js +30 -10
  756. package/dist/server/src/lib/db/app-settings-db.js +202 -0
  757. package/dist/server/src/lib/db/chat-db.js +120 -7
  758. package/dist/server/src/lib/db/worktree-db.js +178 -3
  759. package/dist/server/src/lib/detection/status-detector.js +3 -2
  760. package/dist/server/src/lib/detection/status-reason.js +17 -0
  761. package/dist/server/src/lib/detection/tool-liveness.js +233 -0
  762. package/dist/server/src/lib/detection/version-probes.js +290 -0
  763. package/dist/server/src/lib/env.js +122 -0
  764. package/dist/server/src/lib/git/worktrees.js +164 -0
  765. package/dist/server/src/lib/history/transcript-tail.js +80 -0
  766. package/dist/server/src/lib/history/user-turn-recorder.js +247 -0
  767. package/dist/server/src/lib/hooks/permission-decision-service.js +85 -1
  768. package/dist/server/src/lib/hooks/sources/antigravity/history.js +519 -0
  769. package/dist/server/src/lib/hooks/sources/antigravity/source.js +7 -0
  770. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +407 -0
  771. package/dist/server/src/lib/hooks/sources/claude/history.js +654 -0
  772. package/dist/server/src/lib/hooks/sources/claude/source.js +4 -0
  773. package/dist/server/src/lib/hooks/sources/claude/transcript.js +518 -0
  774. package/dist/server/src/lib/hooks/sources/codex/history.js +576 -0
  775. package/dist/server/src/lib/hooks/sources/codex/source.js +4 -0
  776. package/dist/server/src/lib/hooks/sources/codex/transcript.js +448 -0
  777. package/dist/server/src/lib/hooks/sources/copilot/source.js +2 -0
  778. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  779. package/dist/server/src/lib/hooks/sources/legacy-relay.js +3 -0
  780. package/dist/server/src/lib/hooks/sources/opencode/history.js +57 -0
  781. package/dist/server/src/lib/hooks/sources/opencode/source.js +4 -0
  782. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +10 -28
  783. package/dist/server/src/lib/hooks/sources/turn-body.js +118 -0
  784. package/dist/server/src/lib/polling/prompt-dedup.js +2 -4
  785. package/dist/server/src/lib/polling/response-checker.js +44 -3
  786. package/dist/server/src/lib/polling/response-dedup.js +2 -4
  787. package/dist/server/src/lib/polling/response-poller-core.js +191 -29
  788. package/dist/server/src/lib/polling/structured-history-gate.js +147 -16
  789. package/dist/server/src/lib/push/push-sender.js +21 -1
  790. package/dist/server/src/lib/push/waiting-push-notifier.js +126 -8
  791. package/dist/server/src/lib/realtime/publisher-registry.js +171 -0
  792. package/dist/server/src/lib/realtime/terminal-broadcast.js +14 -1
  793. package/dist/server/src/lib/realtime/types.js +96 -1
  794. package/dist/server/src/lib/repo-config/agents-config.js +298 -0
  795. package/dist/server/src/lib/selected-agents-validator.js +93 -23
  796. package/dist/server/src/lib/session/claude-session.js +39 -108
  797. package/dist/server/src/lib/session/current-output-builder.js +263 -4
  798. package/dist/server/src/lib/session/send-user-message.js +90 -2
  799. package/dist/server/src/lib/tmux/tmux.js +29 -0
  800. package/dist/server/src/lib/tui-accumulator.js +2 -8
  801. package/dist/server/src/lib/updates/agent-updater.js +373 -0
  802. package/dist/server/src/lib/updates/agent-versions.js +138 -0
  803. package/dist/server/src/lib/updates/codex-version.js +215 -0
  804. package/dist/server/src/lib/updates/index.js +42 -0
  805. package/dist/server/src/lib/verification/gate-runner.js +298 -37
  806. package/dist/server/src/lib/verification/machine-lock.js +11 -0
  807. package/dist/server/src/lib/verification/run-verdict-vocabulary.js +151 -0
  808. package/dist/server/src/lib/verification/verify-config.js +33 -0
  809. package/dist/server/src/lib/ws-server.js +143 -6
  810. package/dist/server/src/types/agent-transcript.js +241 -5
  811. package/dist/server/src/types/sidebar.js +40 -9
  812. package/dist/server/src/types/ui-state.js +24 -1
  813. package/dist/types/cli-tool-contracts.d.ts +119 -0
  814. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  815. package/package.json +1 -1
  816. package/public/sw.js +15 -1
  817. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +0 -1
  818. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +0 -1
  819. package/.next/server/chunks/1601.js +0 -7
  820. package/.next/server/chunks/1714.js +0 -7
  821. package/.next/server/chunks/221.js +0 -19
  822. package/.next/server/chunks/222.js +0 -1
  823. package/.next/server/chunks/2366.js +0 -1
  824. package/.next/server/chunks/2759.js +0 -8
  825. package/.next/server/chunks/3558.js +0 -1
  826. package/.next/server/chunks/4689.js +0 -25
  827. package/.next/server/chunks/5089.js +0 -1
  828. package/.next/server/chunks/6274.js +0 -14
  829. package/.next/server/chunks/9067.js +0 -1
  830. package/.next/server/chunks/9373.js +0 -9
  831. package/.next/server/chunks/9508.js +0 -1
  832. package/.next/static/Dvfs4ZThl5vBhJGP-ZQuJ/_buildManifest.js +0 -1
  833. package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +0 -1
  834. package/.next/static/chunks/3922.0d2e64daf9f187da.js +0 -1
  835. package/.next/static/chunks/5229-580b581fce5aeb52.js +0 -1
  836. package/.next/static/chunks/6381-9a929249196a0e77.js +0 -1
  837. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +0 -1
  838. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +0 -1
  839. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +0 -1
  840. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +0 -1
  841. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +0 -1
  842. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +0 -1
  843. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +0 -1
  844. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +0 -1
  845. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +0 -1
  846. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +0 -1
  847. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +0 -1
  848. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +0 -1
  849. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +0 -1
  850. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +0 -1
  851. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +0 -1
  852. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +0 -1
  853. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +0 -1
  854. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +0 -1
  855. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +0 -1
  856. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +0 -1
  857. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +0 -1
  858. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +0 -1
  859. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +0 -1
  860. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +0 -1
  861. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +0 -1
  862. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +0 -1
  863. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +0 -1
  864. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +0 -1
  865. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +0 -1
  866. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +0 -1
  867. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  868. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +0 -1
  869. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +0 -1
  870. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +0 -1
  871. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +0 -1
  872. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +0 -1
  873. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +0 -1
  874. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +0 -1
  875. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +0 -1
  876. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +0 -1
  877. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +0 -1
  878. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +0 -1
  879. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +0 -1
  880. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +0 -1
  881. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +0 -1
  882. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +0 -1
  883. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +0 -1
  884. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +0 -1
  885. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +0 -1
  886. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +0 -1
  887. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +0 -1
  888. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +0 -1
  889. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +0 -1
  890. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +0 -1
  909. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +0 -1
  910. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +0 -1
  911. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +0 -1
  912. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +0 -1
  913. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +0 -1
  914. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +0 -1
  915. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +0 -1
  916. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +0 -1
  917. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +0 -1
  918. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +0 -1
  919. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +0 -1
  920. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +0 -1
  921. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +0 -1
  922. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +0 -1
  923. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +0 -1
  924. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +0 -1
  925. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +0 -1
  926. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +0 -1
  927. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +0 -1
  928. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +0 -1
  929. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +0 -1
  930. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +0 -1
  931. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +0 -1
  932. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +0 -1
  933. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +0 -1
  934. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +0 -1
  935. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +0 -1
  936. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +0 -1
  937. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +0 -1
  938. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +0 -1
  939. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +0 -1
  940. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +0 -1
  941. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +0 -1
  942. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +0 -1
  943. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +0 -1
  944. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +0 -1
  945. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +0 -1
  946. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +0 -1
  947. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +0 -1
  948. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +0 -1
  949. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +0 -1
  950. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +0 -1
  951. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +0 -1
  952. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +0 -1
  953. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +0 -1
  954. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +0 -1
  955. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +0 -1
  956. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +0 -1
  957. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +0 -1
  958. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +0 -1
  959. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +0 -1
  960. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +0 -1
  961. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +0 -1
  962. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +0 -1
  963. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +0 -1
  964. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +0 -1
  965. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +0 -1
  966. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +0 -1
  967. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +0 -1
  968. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +0 -1
  969. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +0 -1
  970. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +0 -1
  971. package/.next/static/chunks/app/more/page-03867ab635d197c7.js +0 -1
  972. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +0 -1
  973. package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +0 -1
  974. package/.next/static/chunks/app/sessions/page-4d5382b257077c14.js +0 -1
  975. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +0 -1
  976. package/.next/static/chunks/app/worktrees/[id]/page-817378dd7c580774.js +0 -1
  977. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +0 -1
  978. package/.next/static/css/6266bde3bce465a2.css +0 -1
  979. /package/.next/static/{Dvfs4ZThl5vBhJGP-ZQuJ → 7K0XXFu_ty4wRSkl4X21E}/_ssgManifest.js +0 -0
@@ -0,0 +1,519 @@
1
+ "use strict";
2
+ /**
3
+ * Writing antigravity's own words into conversation history (Issue #2198).
4
+ *
5
+ * The antigravity half of the stand-down `lib/polling/structured-history-gate`
6
+ * arbitrates, on the terms `../claude/history` established in #2121 and
7
+ * `../codex/history` repeated in #2197: the poller captures the pane and cleans
8
+ * it, this reads the agent's own transcript, and the two are mutually exclusive
9
+ * because {@link captureAntigravityTranscriptTurn} answers whether it wrote the
10
+ * turn.
11
+ *
12
+ * ## Pull, with a pointer that names the *directory* rather than the file
13
+ *
14
+ * There is no connection to subscribe to. agy appends every step of a
15
+ * conversation to
16
+ * `<agyHome>/brain/<conversationId>/.system_generated/logs/transcript_full.jsonl`
17
+ * as it goes, and the trigger to read it has to come from whatever already knows
18
+ * a turn just ended — the poller, on agy's `Stop` hook.
19
+ *
20
+ * This is the easiest of the three pull readers to point at its file, and the
21
+ * measurement in `docs/design/antigravity-transcript-reader.md` §2 is why:
22
+ *
23
+ * - **The hook's `conversationId` is the transcript's directory name.** agy
24
+ * puts `conversationId` on every event it sends — `SessionStart`, `Stop`,
25
+ * `PostToolUse`, and the `PreToolUse` that goes to the permission receiver —
26
+ * and that same uuid names the `brain/` directory and the `conversations/*.db`
27
+ * beside it. So the path is *computed*, not searched for: no directory scan
28
+ * of codex's kind, and no `cwd`-derived slug of claude's.
29
+ * - **`--continue` does not change it.** All three turns of the captured
30
+ * session carried one value, so the pointer is stable for the life of the
31
+ * conversation rather than per invocation.
32
+ * - **`cwd` is not usable and is not used.** agy runs its hook handlers with
33
+ * `cwd` set to `~/.gemini/config` — its own configuration directory, on 10 of
34
+ * 10 captured payloads — and `workspacePaths` is empty in CLI mode (#1757).
35
+ * A cwd-based guess here would not merely be ambiguous between two instances
36
+ * the way codex's would be; it would point at the wrong directory every time.
37
+ * - **A session with no pointer is left to the scraper.** No hooks configured,
38
+ * a server restarted mid-session: both produce no pointer, and this module
39
+ * answers false for them. That is the fail-open the acceptance criteria ask
40
+ * for.
41
+ *
42
+ * ## The IDE cannot contaminate this
43
+ *
44
+ * agy's whole reason to be a go/no-go was that the CLI and an IDE backend share
45
+ * state. Measured, they share a parent and nothing else: the CLI writes under
46
+ * `~/.gemini/antigravity-cli/` and the IDE under `~/.gemini/antigravity/`. This
47
+ * module reads only the former — see {@link ANTIGRAVITY_CLI_HOME_SEGMENTS} — and
48
+ * the conversation ids are uuids in any case.
49
+ *
50
+ * ## Nothing here throws
51
+ *
52
+ * Same contract as the other three readers, for the same reason: this runs
53
+ * inside the poller's save path, and an exception would cost the scraped reply
54
+ * *as well as* the structured one. The database imports are dynamic so that
55
+ * `better-sqlite3` does not enter the module graph of everything that imports
56
+ * `@/lib/hooks/sources`.
57
+ *
58
+ * @module lib/hooks/sources/antigravity/history
59
+ */
60
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
61
+ if (k2 === undefined) k2 = k;
62
+ var desc = Object.getOwnPropertyDescriptor(m, k);
63
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
64
+ desc = { enumerable: true, get: function() { return m[k]; } };
65
+ }
66
+ Object.defineProperty(o, k2, desc);
67
+ }) : (function(o, m, k, k2) {
68
+ if (k2 === undefined) k2 = k;
69
+ o[k2] = m[k];
70
+ }));
71
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
72
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
73
+ }) : function(o, v) {
74
+ o["default"] = v;
75
+ });
76
+ var __importStar = (this && this.__importStar) || (function () {
77
+ var ownKeys = function(o) {
78
+ ownKeys = Object.getOwnPropertyNames || function (o) {
79
+ var ar = [];
80
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
81
+ return ar;
82
+ };
83
+ return ownKeys(o);
84
+ };
85
+ return function (mod) {
86
+ if (mod && mod.__esModule) return mod;
87
+ var result = {};
88
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
89
+ __setModuleDefault(result, mod);
90
+ return result;
91
+ };
92
+ })();
93
+ Object.defineProperty(exports, "__esModule", { value: true });
94
+ exports.ANTIGRAVITY_CLI_HOME_SEGMENTS = exports.ANTIGRAVITY_TRANSCRIPT_TAIL_BYTES = void 0;
95
+ exports.resetAntigravityTranscriptConversations = resetAntigravityTranscriptConversations;
96
+ exports.resolveAntigravityConversationId = resolveAntigravityConversationId;
97
+ exports.resolveAntigravityHome = resolveAntigravityHome;
98
+ exports.antigravityBrainRoot = antigravityBrainRoot;
99
+ exports.antigravityTranscriptPath = antigravityTranscriptPath;
100
+ exports.acceptAntigravityTranscriptPath = acceptAntigravityTranscriptPath;
101
+ exports.captureAntigravityTranscriptTurn = captureAntigravityTranscriptTurn;
102
+ const promises_1 = require("fs/promises");
103
+ const os_1 = require("os");
104
+ const path_1 = require("path");
105
+ const auto_yes_state_1 = require("../../../../lib/auto-yes-state");
106
+ const transcript_tail_1 = require("../../../../lib/history/transcript-tail");
107
+ const user_turn_recorder_1 = require("../../../../lib/history/user-turn-recorder");
108
+ const logger_1 = require("../../../../lib/logger");
109
+ const agent_transcript_1 = require("../../../../types/agent-transcript");
110
+ const transcript_1 = require("./transcript");
111
+ const logger = (0, logger_1.createLogger)('lib/hooks/sources/antigravity/history');
112
+ /**
113
+ * How much of the transcript's tail is read.
114
+ *
115
+ * The shared bound, named here so antigravity's reader states it the way the
116
+ * other two do. agy's transcripts are the smallest of the three — the largest on
117
+ * the capture machine was 86 KB — so the window is never the binding constraint;
118
+ * it is here so that a pathological session cannot make the poller read an
119
+ * unbounded file.
120
+ */
121
+ exports.ANTIGRAVITY_TRANSCRIPT_TAIL_BYTES = transcript_tail_1.TRANSCRIPT_TAIL_BYTES;
122
+ /**
123
+ * `~/.gemini/antigravity-cli` — where the `agy` CLI keeps its state.
124
+ *
125
+ * **Not `~/.gemini/antigravity`**, which is the same layout written by the
126
+ * Antigravity IDE. CommandMate launches the CLI (`src/lib/cli-tools/antigravity.ts`),
127
+ * so the CLI's directory is the one that holds its conversations; reading the
128
+ * IDE's would be reading somebody else's session.
129
+ *
130
+ * There is no environment override, and that is a measurement rather than an
131
+ * omission: a scan of the `agy` 1.1.18 binary for `AGY_*`, `ANTIGRAVITY_*` and
132
+ * every `*_DIR` / `*_HOME` / `*_ROOT` name found nothing that relocates the
133
+ * state directory. `$HOME` is the only lever, which is why the seam below is a
134
+ * parameter rather than an env var.
135
+ */
136
+ exports.ANTIGRAVITY_CLI_HOME_SEGMENTS = ['.gemini', 'antigravity-cli'];
137
+ /**
138
+ * The shape an antigravity conversation id has, and the only shape this reader
139
+ * will look up.
140
+ *
141
+ * A UUID, which is what agy mints. The check is not cosmetic: the value reaches
142
+ * a path join, and an id carrying `/` or `..` would otherwise be a path
143
+ * expression. Everything that fails it is treated as "no pointer", which falls
144
+ * through to the scraper.
145
+ */
146
+ const ANTIGRAVITY_CONVERSATION_ID_PATTERN = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
147
+ /**
148
+ * The last conversation id seen for each instance.
149
+ *
150
+ * On `globalThis` for the reason every shared map in this subsystem is (#1736):
151
+ * under `next dev` the poller's bundle and the hook receiver's bundle would each
152
+ * get a private copy of a module-scoped map, one would write and the other would
153
+ * read, and every lookup would answer null with no error at all.
154
+ *
155
+ * A latch and not a cache: `getLastAgentEvent` holds only the newest event, and
156
+ * agy sends `conversationId` on every event it delivers — but a future one that
157
+ * did not would otherwise blank the pointer mid-session.
158
+ */
159
+ const conversationPointers = (globalThis.__antigravityTranscriptConversations ??= new Map());
160
+ function keyOf(target) {
161
+ return (0, auto_yes_state_1.buildCompositeKey)(target.worktreeId, target.cliToolId, target.instanceId);
162
+ }
163
+ /** Forget every instance's pointer. Test seam. */
164
+ function resetAntigravityTranscriptConversations() {
165
+ conversationPointers.clear();
166
+ }
167
+ /**
168
+ * The conversation id this instance's transcript is under, or null.
169
+ *
170
+ * Reads the structured event state first and falls back to the latched value.
171
+ * The import is dynamic so that `agent-event-state`'s module graph does not
172
+ * become a static dependency of the poller.
173
+ *
174
+ * `NormalizedAgentEvent.sessionId` is where it arrives: agy's payload spells the
175
+ * field `conversationId`, and `../antigravity/source` maps it through
176
+ * `conversationIdFields`. There is no `session_id` in an agy payload at all.
177
+ *
178
+ * **There is deliberately no fallback below this.** The obvious one — take the
179
+ * newest conversation directory — is wrong for the case the feature exists for:
180
+ * an IDE agy and a CLI agy running at once, or two CommandMate instances in two
181
+ * worktrees, each write their own, and "newest" is whichever answered last. No
182
+ * pointer means the scraper keeps being the only record, which is merely the
183
+ * status quo.
184
+ */
185
+ async function resolveAntigravityConversationId(target) {
186
+ const key = keyOf(target);
187
+ try {
188
+ const { getLastAgentEvent } = await Promise.resolve().then(() => __importStar(require('../../../../lib/session/agent-event-state')));
189
+ const conversationId = getLastAgentEvent(target.worktreeId, target.cliToolId, target.instanceId)?.sessionId;
190
+ if (typeof conversationId === 'string' && conversationId.length > 0) {
191
+ conversationPointers.set(key, conversationId);
192
+ return conversationId;
193
+ }
194
+ }
195
+ catch (error) {
196
+ // A state module that cannot be reached is one that knows no conversation.
197
+ logger.debug('antigravity-transcript-conversation-lookup-failed', {
198
+ worktreeId: target.worktreeId,
199
+ instanceId: target.instanceId ?? target.cliToolId,
200
+ error: error instanceof Error ? error.message : String(error),
201
+ });
202
+ }
203
+ return conversationPointers.get(key) ?? null;
204
+ }
205
+ /**
206
+ * `~/.gemini/antigravity-cli`.
207
+ *
208
+ * @param home - The user's home directory; a seam so a test never reads the
209
+ * real one
210
+ */
211
+ function resolveAntigravityHome(home = (0, os_1.homedir)()) {
212
+ return (0, path_1.join)(home, ...exports.ANTIGRAVITY_CLI_HOME_SEGMENTS);
213
+ }
214
+ /** `<agyHome>/brain`. */
215
+ function antigravityBrainRoot(agyHome) {
216
+ return (0, path_1.join)(agyHome, transcript_1.ANTIGRAVITY_BRAIN_DIR_SEGMENT);
217
+ }
218
+ /**
219
+ * Where this conversation's transcript is, or null.
220
+ *
221
+ * Computed rather than searched for: agy names the directory after the
222
+ * conversation id the hook already handed over. The id is validated first
223
+ * because it is about to become a path segment.
224
+ *
225
+ * @returns The absolute path, or null when the id is not one agy could have minted
226
+ */
227
+ function antigravityTranscriptPath(agyHome, conversationId) {
228
+ if (!ANTIGRAVITY_CONVERSATION_ID_PATTERN.test(conversationId))
229
+ return null;
230
+ return (0, path_1.join)(antigravityBrainRoot(agyHome), conversationId, ...transcript_1.ANTIGRAVITY_TRANSCRIPT_PATH_SEGMENTS);
231
+ }
232
+ /**
233
+ * A transcript path, accepted only if it really is one.
234
+ *
235
+ * The same three conditions `acceptCodexRolloutPath` applies, for the same
236
+ * reasons: it must be under `<agyHome>/brain`, so nothing can make this open
237
+ * `/etc/passwd`; it must end in `.jsonl`; and it must carry no NUL. Containment
238
+ * is checked on the *resolved* path so that `..` cannot climb out.
239
+ *
240
+ * It guards a path this module computed itself, which is not redundant: the
241
+ * conversation id inside it came off the wire, and the pattern check above and
242
+ * this containment check are two independent reasons the same value cannot
243
+ * escape the directory.
244
+ *
245
+ * @returns The resolved path, or null when it is not acceptable
246
+ */
247
+ function acceptAntigravityTranscriptPath(agyHome, candidate) {
248
+ if (!candidate.endsWith(transcript_1.ANTIGRAVITY_TRANSCRIPT_EXTENSION))
249
+ return null;
250
+ if (candidate.includes('\0'))
251
+ return null;
252
+ const root = (0, path_1.resolve)(antigravityBrainRoot(agyHome));
253
+ const resolved = (0, path_1.resolve)(candidate);
254
+ if (resolved !== root && !resolved.startsWith(root + path_1.sep))
255
+ return null;
256
+ return resolved;
257
+ }
258
+ /**
259
+ * Read the newest turn out of this instance's transcript and write it.
260
+ *
261
+ * **Only the newest turn**, and that is the same deliberate difference from
262
+ * opencode's backfill that #2121 documents: every earlier turn already has a
263
+ * `chat_messages` row the *scraper* wrote, and writing a Markdown row for it too
264
+ * would put the same reply in History twice. One row per turn from the scraper,
265
+ * one row per turn from here, so the swap is one-for-one.
266
+ *
267
+ * The return value is the poller's instruction. **True** means History holds
268
+ * this turn as the agent's own Markdown and the scrape must be dropped. **False**
269
+ * means it does not, for any reason at all — no conversation pointer, no file, an
270
+ * unreadable file, a window with no prompt in it — and the scrape must be saved.
271
+ * Everything that can go wrong answers false: two writers duplicate a reply, no
272
+ * writer loses one.
273
+ *
274
+ * The user row is written even when the assistant row is not, and that is
275
+ * deliberate rather than an oversight. A prompt the operator typed into `tmux
276
+ * attach` is the thing #2196 exists to record, and it is worth recording next to
277
+ * a *scraped* reply just as much as next to a Markdown one. agy makes that case
278
+ * more common than the other tools do rather than less: it has no
279
+ * `UserPromptSubmit` hook at all (`./source.ts`), so the transcript is the only
280
+ * place its prompts are written down.
281
+ *
282
+ * Never throws.
283
+ *
284
+ * @param target - The instance whose turn just ended
285
+ * @param capture - See {@link AntigravityTranscriptCapture}
286
+ * @returns Whether History now holds this turn as the agent's own Markdown
287
+ */
288
+ async function captureAntigravityTranscriptTurn(target, capture = {}) {
289
+ const instanceId = target.instanceId ?? target.cliToolId;
290
+ try {
291
+ const agyHome = capture.antigravityHome ?? resolveAntigravityHome();
292
+ const conversationId = await resolveAntigravityConversationId(target);
293
+ if (!conversationId) {
294
+ logger.debug('antigravity-transcript-unavailable', {
295
+ worktreeId: target.worktreeId,
296
+ instanceId,
297
+ reason: 'no-conversation-pointer',
298
+ });
299
+ return false;
300
+ }
301
+ const path = await locateAntigravityTranscript(agyHome, conversationId);
302
+ if (!path) {
303
+ logger.debug('antigravity-transcript-unavailable', {
304
+ worktreeId: target.worktreeId,
305
+ instanceId,
306
+ conversationId,
307
+ reason: 'no-file',
308
+ });
309
+ return false;
310
+ }
311
+ const text = await (0, transcript_tail_1.readTranscriptTail)(path);
312
+ if (text === null)
313
+ return false;
314
+ const parsed = (0, transcript_1.parseAntigravityTranscript)(text);
315
+ const built = (0, transcript_1.buildAntigravityTurns)(parsed.records, conversationId);
316
+ const turn = built.turns.at(-1);
317
+ if (!turn) {
318
+ // No `USER_INPUT` in the window. Two ordinary causes, both fail-open: the
319
+ // 4 MiB window cut mid-conversation, and `transcript_full.jsonl` can hold
320
+ // less than the whole history — one of the 41 files in the corpus held a
321
+ // single record. Neither is a reason to lose the scraped reply.
322
+ logger.info('antigravity-transcript-no-turn', {
323
+ worktreeId: target.worktreeId,
324
+ instanceId,
325
+ path,
326
+ records: parsed.records.length,
327
+ malformedLines: parsed.malformedLines,
328
+ preludeRecords: built.preludeRecords,
329
+ });
330
+ return false;
331
+ }
332
+ if (parsed.malformedLines > 0) {
333
+ // Expected in small numbers — a fragment at the tail of a file being
334
+ // appended to — and the kind of thing that must be visible when it stops
335
+ // being small. The corpus has 0 of 1,024, so a number here is worth seeing.
336
+ logger.info('antigravity-transcript-partial-read', {
337
+ worktreeId: target.worktreeId,
338
+ instanceId,
339
+ path,
340
+ malformedLines: parsed.malformedLines,
341
+ preludeRecords: built.preludeRecords,
342
+ });
343
+ }
344
+ const userRow = await recordAntigravityUserTurn(target, turn);
345
+ return await writeAntigravityTurn(target, turn, (0, transcript_1.renderAntigravityTurn)(turn), resolveAssistantTimestampMs(turn, userRow), path);
346
+ }
347
+ catch (error) {
348
+ logger.error('antigravity-transcript-capture-failed', {
349
+ worktreeId: target.worktreeId,
350
+ instanceId,
351
+ error: error instanceof Error ? error.message : String(error),
352
+ });
353
+ return false;
354
+ }
355
+ }
356
+ /**
357
+ * The transcript file for this conversation, or null.
358
+ *
359
+ * No memo, unlike codex's: the path is a pure function of the conversation id,
360
+ * so there is nothing a cache would save. The `stat` stays, because "the path we
361
+ * can compute" and "the file that exists" differ for a conversation agy has not
362
+ * flushed yet or one the operator has cleared.
363
+ */
364
+ async function locateAntigravityTranscript(agyHome, conversationId) {
365
+ const candidate = antigravityTranscriptPath(agyHome, conversationId);
366
+ if (!candidate)
367
+ return null;
368
+ const accepted = acceptAntigravityTranscriptPath(agyHome, candidate);
369
+ if (!accepted)
370
+ return null;
371
+ return (await isReadableFile(accepted)) ? accepted : null;
372
+ }
373
+ async function isReadableFile(path) {
374
+ try {
375
+ return (await (0, promises_1.stat)(path)).isFile();
376
+ }
377
+ catch {
378
+ return false;
379
+ }
380
+ }
381
+ /**
382
+ * Record the prompt this turn answers, before the reply is written (#2196).
383
+ *
384
+ * One row, not codex's list: agy opens a turn with exactly one `USER_INPUT`
385
+ * record — 63 of 63 in the corpus — so there is never a second prompt folded
386
+ * into the same turn.
387
+ *
388
+ * Ordering is why this runs before the assistant row rather than inside
389
+ * {@link writeAntigravityTurn}: the user row has to exist first so that
390
+ * {@link resolveAssistantTimestampMs} can put the reply after it, and so that a
391
+ * browser watching the broadcast sees a prompt appear and then an answer.
392
+ *
393
+ * Never throws; `recordUserTurn` reports its failures in the return value.
394
+ */
395
+ async function recordAntigravityUserTurn(target, turn) {
396
+ const skipped = { outcome: 'skipped', messageId: null, timestampMs: null };
397
+ const prompt = turn.prompt;
398
+ if (!prompt)
399
+ return skipped;
400
+ const recorded = await (0, user_turn_recorder_1.recordUserTurn)(target, (0, agent_transcript_1.antigravityPromptRequestId)(turn.conversationId, prompt.stepIndex), prompt.text, prompt.timestampMs);
401
+ if (recorded.outcome === 'failed') {
402
+ logger.warn('antigravity-transcript-user-turn-failed', {
403
+ worktreeId: target.worktreeId,
404
+ instanceId: target.instanceId ?? target.cliToolId,
405
+ conversationId: turn.conversationId,
406
+ stepIndex: prompt.stepIndex,
407
+ });
408
+ return skipped;
409
+ }
410
+ return recorded;
411
+ }
412
+ /**
413
+ * When the assistant row for this turn is dated.
414
+ *
415
+ * The turn's own clock, from the `USER_INPUT` record that opened it, so a row
416
+ * written a poll late still sorts where the conversation put it.
417
+ *
418
+ * When there is a user row the reply is moved to the first millisecond after it:
419
+ * `groupMessagesIntoPairs` orders by timestamp and nothing else, and agy stamps
420
+ * both the prompt and the first reply of a fast turn with the *same second*
421
+ * (measured — `created_at` is second-resolution, and turn 1 of the captured
422
+ * session has `02:12:41Z` on both). A tie is then decided by whichever row the
423
+ * database returned first, and the losing arrangement — assistant, then user —
424
+ * is exactly the `orphan` pair #2196 exists to remove.
425
+ */
426
+ function resolveAssistantTimestampMs(turn, userRow) {
427
+ if (userRow.timestampMs === null)
428
+ return turn.startedAt;
429
+ return Math.max(turn.startedAt, userRow.timestampMs + 1);
430
+ }
431
+ /**
432
+ * Write one rendered turn, unless it is already there.
433
+ *
434
+ * `findMessageByRequestId` is both the idempotency check and the reason a repeat
435
+ * poll does not duplicate the row: the id is `(conversationId, step_index)`,
436
+ * neither half of which changes between reads of the same file.
437
+ *
438
+ * Answering **true** for a turn that was already saved is deliberate. It means
439
+ * "History holds this turn as Markdown", which is what the poller needs to know
440
+ * — a second poll of the same finished turn must not save the pane's copy on top
441
+ * of the row this path wrote.
442
+ *
443
+ * @returns Whether History holds this turn as the agent's own Markdown
444
+ */
445
+ async function writeAntigravityTurn(target, turn, rendered, timestampMs, path) {
446
+ const instanceId = target.instanceId ?? target.cliToolId;
447
+ if (rendered.body.length === 0) {
448
+ // A turn that said nothing yet. Unlike codex there is no `task_complete` to
449
+ // tell an unfinished turn from a silent one, so the body is the only
450
+ // evidence there is — and answering false is right for both readings: the
451
+ // scraper keeps the reply if there was one, and an empty row that would show
452
+ // as a blank answer forever is never written.
453
+ logger.info('antigravity-transcript-turn-empty', {
454
+ worktreeId: target.worktreeId,
455
+ instanceId,
456
+ conversationId: rendered.conversationId,
457
+ stepIndex: rendered.stepIndex,
458
+ records: turn.records.length,
459
+ });
460
+ return false;
461
+ }
462
+ if (rendered.unknownRecordTypes.length > 0) {
463
+ // Never dropped in silence: a record type this reader has no rule for is an
464
+ // agy release that has grown one, and the tally is how that becomes visible
465
+ // before somebody notices a missing paragraph.
466
+ logger.info('antigravity-transcript-unknown-records', {
467
+ worktreeId: target.worktreeId,
468
+ instanceId,
469
+ conversationId: rendered.conversationId,
470
+ stepIndex: rendered.stepIndex,
471
+ recordTypes: rendered.unknownRecordTypes,
472
+ });
473
+ }
474
+ if (turn.overflowed) {
475
+ logger.info('antigravity-transcript-turn-overflowed', {
476
+ worktreeId: target.worktreeId,
477
+ instanceId,
478
+ conversationId: rendered.conversationId,
479
+ stepIndex: rendered.stepIndex,
480
+ });
481
+ }
482
+ const requestId = (0, agent_transcript_1.antigravityTurnRequestId)(rendered.conversationId, rendered.stepIndex);
483
+ const [{ getDbInstance }, { createMessage, findMessageByRequestId }, { broadcastMessage }] = await Promise.all([
484
+ Promise.resolve().then(() => __importStar(require('../../../../lib/db/db-instance'))),
485
+ Promise.resolve().then(() => __importStar(require('../../../../lib/db'))),
486
+ Promise.resolve().then(() => __importStar(require('../../../../lib/ws-server'))),
487
+ ]);
488
+ const db = getDbInstance();
489
+ if (findMessageByRequestId(db, target.worktreeId, requestId)) {
490
+ logger.debug('antigravity-transcript-turn-already-saved', {
491
+ worktreeId: target.worktreeId,
492
+ instanceId,
493
+ requestId,
494
+ });
495
+ return true;
496
+ }
497
+ const message = createMessage(db, {
498
+ worktreeId: target.worktreeId,
499
+ role: 'assistant',
500
+ content: rendered.body,
501
+ messageType: 'normal',
502
+ timestamp: new Date(timestampMs > 0 ? timestampMs : Date.now()),
503
+ cliToolId: target.cliToolId,
504
+ instanceId,
505
+ requestId,
506
+ });
507
+ broadcastMessage('message', { worktreeId: target.worktreeId, message });
508
+ logger.info('antigravity-transcript-turn-saved', {
509
+ worktreeId: target.worktreeId,
510
+ instanceId,
511
+ conversationId: rendered.conversationId,
512
+ requestId,
513
+ path,
514
+ bodyLength: rendered.body.length,
515
+ textBlocks: rendered.textBlocks,
516
+ toolBlocks: rendered.toolBlocks,
517
+ });
518
+ return true;
519
+ }
@@ -193,6 +193,13 @@ exports.antigravityAgentEventSource = (0, define_source_1.definePushHookSource)(
193
193
  permissionReplyReleasesPrompt: false,
194
194
  eventIdentity: null,
195
195
  resync: 'none',
196
+ // Issue #2198. agy keeps a plain-JSONL transcript per conversation at
197
+ // `brain/<conversationId>/.system_generated/logs/transcript_full.jsonl`, and
198
+ // the `conversationId` above is the directory name — so the file is computed
199
+ // from the pointer rather than searched for. `'pull'` and not `'push'`:
200
+ // nothing streams it, `../../../polling/structured-history-gate` reads it
201
+ // when the `Stop` hook says a turn ended. See `./history`.
202
+ transcriptHistory: 'pull',
196
203
  },
197
204
  // Empty on purpose, and the only empty mapper list in the codebase. There is
198
205
  // nothing in an agy payload to map *from*: no `hook_event_name`, no `type`,