commandmate 0.44.2 → 0.44.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +149 -149
  3. package/.next/app-path-routes-manifest.json +21 -21
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/react-loadable-manifest.json +0 -6
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/update/route.js +1 -1
  10. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/versions/route.js +1 -1
  12. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/update/route.js +2 -2
  15. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/auth/login/route.js +1 -1
  18. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/capabilities/route.js +1 -1
  22. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/daily-summary/route.js +1 -1
  24. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  25. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  27. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  28. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  31. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/external-apps/route.js +1 -1
  33. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  37. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  38. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  40. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  41. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  43. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  44. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/push/escalation/route.js +1 -1
  48. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/push/subscriptions/route.js +2 -2
  50. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/push/vapid/route.js +1 -1
  52. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  54. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  55. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/relays/route.js +1 -1
  57. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  58. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  61. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  63. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/clone/route.js +1 -1
  66. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  67. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/restore/route.js +1 -1
  70. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  71. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/route.js +1 -1
  73. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  74. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/scan/route.js +1 -1
  76. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/sync/route.js +1 -1
  79. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  83. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  84. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  87. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/skills/[id]/route.js +1 -1
  89. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/skills/route.js +1 -1
  94. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/templates/[id]/route.js +2 -2
  99. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/templates/route.js +2 -2
  101. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  106. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  109. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  112. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
  117. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  118. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  128. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  129. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  208. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
  211. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  214. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
  221. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  240. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/route.js +1 -1
  264. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  265. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  267. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  270. package/.next/server/app/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  272. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  273. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/sessions/page.js +1 -1
  275. package/.next/server/app/sessions/page.js.nft.json +1 -1
  276. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  277. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  278. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  280. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  281. package/.next/server/app/worktrees/[id]/page.js +11 -11
  282. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  283. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  284. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app-paths-manifest.json +21 -21
  286. package/.next/server/chunks/1191.js +2 -2
  287. package/.next/server/chunks/1210.js +1 -1
  288. package/.next/server/chunks/1559.js +2 -0
  289. package/.next/server/chunks/1789.js +1 -0
  290. package/.next/server/chunks/2119.js +1 -1
  291. package/.next/server/chunks/2404.js +1 -1
  292. package/.next/server/chunks/2445.js +1 -1
  293. package/.next/server/chunks/2460.js +1 -1
  294. package/.next/server/chunks/2710.js +1 -1
  295. package/.next/server/chunks/2908.js +1 -1
  296. package/.next/server/chunks/2980.js +1 -1
  297. package/.next/server/chunks/3241.js +1 -1
  298. package/.next/server/chunks/3480.js +1 -1
  299. package/.next/server/chunks/3718.js +1 -1
  300. package/.next/server/chunks/4207.js +2 -2
  301. package/.next/server/chunks/450.js +1 -1
  302. package/.next/server/chunks/4672.js +5 -0
  303. package/.next/server/chunks/{9353.js → 4718.js} +2 -2
  304. package/.next/server/chunks/4837.js +14 -0
  305. package/.next/server/chunks/5048.js +1 -1
  306. package/.next/server/chunks/5209.js +1 -0
  307. package/.next/server/chunks/5595.js +1 -1
  308. package/.next/server/chunks/5625.js +25 -0
  309. package/.next/server/chunks/611.js +1 -1
  310. package/.next/server/chunks/6130.js +1 -1
  311. package/.next/server/chunks/6401.js +1 -1
  312. package/.next/server/chunks/6781.js +1 -1
  313. package/.next/server/chunks/6793.js +3 -3
  314. package/.next/server/chunks/7491.js +2 -2
  315. package/.next/server/chunks/7905.js +1 -1
  316. package/.next/server/chunks/850.js +1 -1
  317. package/.next/server/chunks/8728.js +3 -3
  318. package/.next/server/chunks/8791.js +1 -1
  319. package/.next/server/chunks/8800.js +1 -1
  320. package/.next/server/chunks/8918.js +7 -7
  321. package/.next/server/chunks/9130.js +1 -1
  322. package/.next/server/chunks/9390.js +2 -2
  323. package/.next/server/chunks/9584.js +1 -1
  324. package/.next/server/chunks/9627.js +6 -6
  325. package/.next/server/chunks/9731.js +3 -3
  326. package/.next/server/middleware-manifest.json +5 -5
  327. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  328. package/.next/server/pages/500.html +1 -1
  329. package/.next/server/server-reference-manifest.json +1 -1
  330. package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
  331. package/.next/static/chunks/{2407-051f6f84226a9f2c.js → 2407-06d35bb1aa02de80.js} +1 -1
  332. package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
  333. package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
  334. package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
  335. package/.next/static/chunks/app/{layout-9da1ab602bcb3051.js → layout-0d1750b833f5cc3e.js} +1 -1
  336. package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
  337. package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
  338. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
  339. package/.next/static/css/057f64a65726c439.css +1 -0
  340. package/.next/trace +13 -13
  341. package/dist/cli/commands/ask.d.ts.map +1 -1
  342. package/dist/cli/commands/ask.js +120 -119
  343. package/dist/cli/commands/attach.d.ts +94 -0
  344. package/dist/cli/commands/attach.d.ts.map +1 -1
  345. package/dist/cli/commands/attach.js +145 -7
  346. package/dist/cli/commands/auto-yes.js +1 -1
  347. package/dist/cli/commands/capture.d.ts.map +1 -1
  348. package/dist/cli/commands/capture.js +3 -5
  349. package/dist/cli/commands/command-target.d.ts +23 -0
  350. package/dist/cli/commands/command-target.d.ts.map +1 -0
  351. package/dist/cli/commands/command-target.js +25 -0
  352. package/dist/cli/commands/instances.d.ts.map +1 -1
  353. package/dist/cli/commands/instances.js +41 -2
  354. package/dist/cli/commands/message-dispatch.d.ts +36 -0
  355. package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
  356. package/dist/cli/commands/message-dispatch.js +63 -0
  357. package/dist/cli/commands/reply.d.ts.map +1 -1
  358. package/dist/cli/commands/reply.js +2 -5
  359. package/dist/cli/commands/respond.d.ts.map +1 -1
  360. package/dist/cli/commands/respond.js +3 -6
  361. package/dist/cli/commands/send.d.ts.map +1 -1
  362. package/dist/cli/commands/send.js +149 -146
  363. package/dist/cli/commands/wait.d.ts.map +1 -1
  364. package/dist/cli/commands/wait.js +589 -431
  365. package/dist/cli/types/api-responses.d.ts +159 -27
  366. package/dist/cli/types/api-responses.d.ts.map +1 -1
  367. package/dist/cli/types/api-responses.js +4 -2
  368. package/dist/cli/utils/api-client.d.ts +25 -5
  369. package/dist/cli/utils/api-client.d.ts.map +1 -1
  370. package/dist/cli/utils/api-client.js +87 -55
  371. package/dist/cli/utils/server-url.d.ts +1 -0
  372. package/dist/cli/utils/server-url.d.ts.map +1 -1
  373. package/dist/cli/utils/server-url.js +7 -0
  374. package/dist/config/uat-isolation.d.ts +140 -0
  375. package/dist/config/uat-isolation.d.ts.map +1 -0
  376. package/dist/config/uat-isolation.js +246 -0
  377. package/dist/lib/global-state.d.ts +12 -0
  378. package/dist/lib/global-state.d.ts.map +1 -0
  379. package/dist/lib/global-state.js +16 -0
  380. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
  381. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
  382. package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
  383. package/dist/lib/session/prompt-view.d.ts +26 -3
  384. package/dist/lib/session/prompt-view.d.ts.map +1 -1
  385. package/dist/lib/session/prompt-view.js +26 -3
  386. package/dist/lib/session/status-evidence-type.d.ts +16 -0
  387. package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
  388. package/dist/lib/session/status-evidence-type.js +2 -0
  389. package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
  390. package/dist/lib/tmux/legacy-session-alias.js +2 -1
  391. package/dist/server/locales/en/worktree.json +3 -1
  392. package/dist/server/locales/ja/worktree.json +3 -1
  393. package/dist/server/src/cli/types/api-responses.js +4 -2
  394. package/dist/server/src/config/cli-tool-timing-config.js +1 -6
  395. package/dist/server/src/config/uat-isolation.js +246 -0
  396. package/dist/server/src/lib/assistant-response-saver.js +62 -3
  397. package/dist/server/src/lib/auto-yes-lifecycle.js +6 -0
  398. package/dist/server/src/lib/auto-yes-poller.js +450 -160
  399. package/dist/server/src/lib/auto-yes-state.js +2 -2
  400. package/dist/server/src/lib/cli-tools/antigravity.js +38 -79
  401. package/dist/server/src/lib/cli-tools/base.js +151 -0
  402. package/dist/server/src/lib/cli-tools/codex.js +44 -80
  403. package/dist/server/src/lib/cli-tools/command-code.js +24 -56
  404. package/dist/server/src/lib/cli-tools/copilot.js +25 -67
  405. package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
  406. package/dist/server/src/lib/cli-tools/gemini.js +23 -73
  407. package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
  408. package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
  409. package/dist/server/src/lib/cli-tools/opencode.js +21 -85
  410. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
  411. package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
  412. package/dist/server/src/lib/detection/cli-patterns.js +374 -3065
  413. package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
  414. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
  415. package/dist/server/src/lib/detection/prompt-detector.js +2 -35
  416. package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
  417. package/dist/server/src/lib/detection/selection-shape.js +32 -520
  418. package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
  419. package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
  420. package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
  421. package/dist/server/src/lib/detection/tools/antigravity/detect.js +5 -29
  422. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
  423. package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
  424. package/dist/server/src/lib/detection/tools/claude/detect.js +3 -14
  425. package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
  426. package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
  427. package/dist/server/src/lib/detection/tools/codex/detect.js +46 -85
  428. package/dist/server/src/lib/detection/tools/codex/live-region.js +33 -2
  429. package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
  430. package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
  431. package/dist/server/src/lib/detection/tools/command-code/detect.js +8 -50
  432. package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
  433. package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
  434. package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
  435. package/dist/server/src/lib/detection/tools/context-above.js +20 -0
  436. package/dist/server/src/lib/detection/tools/copilot/detect.js +10 -35
  437. package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
  438. package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
  439. package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
  440. package/dist/server/src/lib/detection/tools/live-region-specs.js +1 -1
  441. package/dist/server/src/lib/detection/tools/opencode/detect.js +8 -49
  442. package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
  443. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +7 -42
  444. package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
  445. package/dist/server/src/lib/detection/tools/run-detection.js +6 -47
  446. package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
  447. package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
  448. package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
  449. package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
  450. package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
  451. package/dist/server/src/lib/global-state.js +16 -0
  452. package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
  453. package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
  454. package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
  455. package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
  456. package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
  457. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
  458. package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
  459. package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
  460. package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
  461. package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
  462. package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
  463. package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
  464. package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
  465. package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
  466. package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
  467. package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
  468. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
  469. package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
  470. package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
  471. package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
  472. package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
  473. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
  474. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
  475. package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
  476. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
  477. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
  478. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
  479. package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
  480. package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
  481. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
  482. package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
  483. package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
  484. package/dist/server/src/lib/hooks/sources/registry.js +3 -2
  485. package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
  486. package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
  487. package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
  488. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
  489. package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
  490. package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
  491. package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
  492. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
  493. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
  494. package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
  495. package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
  496. package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
  497. package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
  498. package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
  499. package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
  500. package/dist/server/src/lib/polling/response-checker.js +641 -1142
  501. package/dist/server/src/lib/polling/response-dedup.js +3 -4
  502. package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
  503. package/dist/server/src/lib/polling/response-poller-core.js +54 -20
  504. package/dist/server/src/lib/polling/startup-screen.js +142 -0
  505. package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
  506. package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
  507. package/dist/server/src/lib/prompt-answer-sender.js +5 -4
  508. package/dist/server/src/lib/push/failure-episode-state.js +2 -2
  509. package/dist/server/src/lib/push/notification-dedup.js +3 -4
  510. package/dist/server/src/lib/push/prompt-card-state.js +2 -2
  511. package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
  512. package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
  513. package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -5
  514. package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
  515. package/dist/server/src/lib/relay/relay-delivery.js +3 -2
  516. package/dist/server/src/lib/relay/relay-readiness.js +38 -1
  517. package/dist/server/src/lib/response-cleaner.js +24 -1
  518. package/dist/server/src/lib/response-extractor.js +16 -0
  519. package/dist/server/src/lib/schedule-manager.js +8 -10
  520. package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
  521. package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
  522. package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
  523. package/dist/server/src/lib/session/agent-event-model.js +562 -0
  524. package/dist/server/src/lib/session/agent-event-record.js +10 -0
  525. package/dist/server/src/lib/session/agent-event-state.js +106 -1854
  526. package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
  527. package/dist/server/src/lib/session/agent-event-turn.js +811 -0
  528. package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
  529. package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
  530. package/dist/server/src/lib/session/claude-executor.js +45 -5
  531. package/dist/server/src/lib/session/claude-session.js +21 -65
  532. package/dist/server/src/lib/session/cli-session.js +17 -0
  533. package/dist/server/src/lib/session/current-output-builder.js +450 -1103
  534. package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
  535. package/dist/server/src/lib/session/current-output-types.js +9 -0
  536. package/dist/server/src/lib/session/detection-divergence.js +55 -0
  537. package/dist/server/src/lib/session/global-session-constants.js +2 -13
  538. package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
  539. package/dist/server/src/lib/session/layer-disagreement.js +2 -2
  540. package/dist/server/src/lib/session/opencode-session-store.js +2 -1
  541. package/dist/server/src/lib/session/prompt-view.js +26 -3
  542. package/dist/server/src/lib/session/prompt-waiting-composition.js +3 -2
  543. package/dist/server/src/lib/session/provisional-turn.js +3 -1
  544. package/dist/server/src/lib/session/send-user-message.js +1 -1
  545. package/dist/server/src/lib/session/session-starting-state.js +4 -6
  546. package/dist/server/src/lib/session/status-evidence-type.js +2 -0
  547. package/dist/server/src/lib/session/status-evidence.js +2 -2
  548. package/dist/server/src/lib/session/structured-status-merge.js +335 -0
  549. package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
  550. package/dist/server/src/lib/session-cleanup.js +1 -5
  551. package/dist/server/src/lib/skills/install-plan.js +2 -1
  552. package/dist/server/src/lib/skills/snapshot-store.js +2 -2
  553. package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
  554. package/dist/server/src/lib/timer-manager.js +6 -8
  555. package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
  556. package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
  557. package/dist/server/src/lib/tmux/session-hooks.js +2 -1
  558. package/dist/server/src/lib/tmux/session-status-options.js +3 -3
  559. package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
  560. package/dist/server/src/lib/tmux/tmux.js +33 -59
  561. package/dist/server/src/lib/tui-accumulator.js +2 -2
  562. package/dist/server/src/lib/version-checker.js +6 -6
  563. package/dist/server/src/lib/ws-server.js +47 -11
  564. package/docs/en/user-guide/webapp-guide.md +27 -3
  565. package/package.json +1 -1
  566. package/release-notes/0.44.3.json +82 -0
  567. package/scripts/hooks/cmate-agent-event.sh +18 -0
  568. package/.next/server/chunks/1068.js +0 -1
  569. package/.next/server/chunks/4372.js +0 -5
  570. package/.next/server/chunks/6474.js +0 -14
  571. package/.next/server/chunks/967.js +0 -1
  572. package/.next/server/chunks/9798.js +0 -2
  573. package/.next/server/chunks/9882.js +0 -25
  574. package/.next/static/chunks/591-539fec878c9dec5e.js +0 -1
  575. package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
  576. package/.next/static/chunks/app/worktrees/[id]/page-2a81397e60f17e63.js +0 -1
  577. package/.next/static/css/38070d879efa1371.css +0 -1
  578. package/dist/server/src/lib/cli-tools/index.js +0 -41
  579. package/dist/server/src/lib/polling/global-session-poller.js +0 -140
  580. /package/.next/static/{QlCqLjorauDDBXPa-C7TK → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
  581. /package/.next/static/{QlCqLjorauDDBXPa-C7TK → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
@@ -47,6 +47,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
47
47
  exports.opencodeV2StatusDetector = exports.OPENCODE_V2_PERMISSION_OPTIONS = exports.OPENCODE_V2_TURN_COMPLETE_PATTERN = exports.OPENCODE_V2_QUESTION_PATTERN = exports.OPENCODE_V2_PERMISSION_PATTERN = exports.VERIFIED_AGAINST = void 0;
48
48
  exports.endsWithTurnComplete = endsWithTurnComplete;
49
49
  const cli_patterns_1 = require("../../cli-patterns");
50
+ const verdicts_1 = require("../verdicts");
50
51
  const status_reason_1 = require("../../status-reason");
51
52
  const live_region_1 = require("./live-region");
52
53
  const run_detection_1 = require("../run-detection");
@@ -160,22 +161,10 @@ exports.opencodeV2StatusDetector = (0, run_detection_1.createToolStatusDetector)
160
161
  // with no Enter — see `detectDialog` below.
161
162
  beforePrompt(frame) {
162
163
  if (exports.OPENCODE_V2_PERMISSION_PATTERN.test(frame.lastLines)) {
163
- return {
164
- status: 'waiting',
165
- confidence: 'high',
166
- reason: status_reason_1.STATUS_REASON.OPENCODE_PERMISSION_PROMPT,
167
- hasActivePrompt: false,
168
- evidence: 'positive',
169
- };
164
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.OPENCODE_PERMISSION_PROMPT);
170
165
  }
171
166
  if (exports.OPENCODE_V2_QUESTION_PATTERN.test(frame.lastLines)) {
172
- return {
173
- status: 'waiting',
174
- confidence: 'high',
175
- reason: status_reason_1.STATUS_REASON.OPENCODE_SELECTION_LIST,
176
- hasActivePrompt: false,
177
- evidence: 'positive',
178
- };
167
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.OPENCODE_SELECTION_LIST);
179
168
  }
180
169
  // Issue #2971: a dialog opened over the composer keeps the footer (and
181
170
  // often the placeholder) on screen, so every rule below read it as `ready`
@@ -185,50 +174,26 @@ exports.opencodeV2StatusDetector = (0, run_detection_1.createToolStatusDetector)
185
174
  // overlay, driven by ↑↓ + Enter and closed with `esc` — no number answers
186
175
  // it, hence `hasActivePrompt: false`.
187
176
  if ((0, cli_patterns_1.findOpencodeV2DialogTitle)((0, cli_patterns_1.stripAnsi)(frame.raw)) !== null) {
188
- return {
189
- status: 'waiting',
190
- confidence: 'high',
191
- reason: status_reason_1.STATUS_REASON.OPENCODE_MODAL_OVERLAY,
192
- hasActivePrompt: false,
193
- evidence: 'positive',
194
- };
177
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.OPENCODE_MODAL_OVERLAY);
195
178
  }
196
179
  return null;
197
180
  },
198
181
  afterThinking(frame) {
199
182
  if ((0, cli_patterns_1.detectThinking)('opencode-v2', frame.lastLines)) {
200
- return {
201
- status: 'running',
202
- confidence: 'high',
203
- reason: status_reason_1.STATUS_REASON.THINKING_INDICATOR,
204
- hasActivePrompt: false,
205
- evidence: 'positive',
206
- };
183
+ return (0, verdicts_1.positiveVerdict)('running', status_reason_1.STATUS_REASON.THINKING_INDICATOR);
207
184
  }
208
185
  // Issue #2965: the completion row as the last transcript row, with no
209
186
  // `esc interrupt` (ruled out just above) — a finished turn, whether or not
210
187
  // the footer made it into the capture.
211
188
  if (endsWithTurnComplete(frame)) {
212
- return {
213
- status: 'ready',
214
- confidence: 'high',
215
- reason: status_reason_1.STATUS_REASON.OPENCODE_RESPONSE_COMPLETE,
216
- hasActivePrompt: false,
217
- evidence: 'positive',
218
- };
189
+ return (0, verdicts_1.positiveVerdict)('ready', status_reason_1.STATUS_REASON.OPENCODE_RESPONSE_COMPLETE);
219
190
  }
220
191
  // The placeholder against the ANSI-stripped frame with its box drawing
221
192
  // intact (the pattern anchors on the `┃` gutter). The footer is on every
222
193
  // frame, and the running hint was ruled out just above.
223
194
  if (cli_patterns_1.OPENCODE_V2_IDLE_COMPOSER_PATTERN.test((0, cli_patterns_1.stripAnsi)(frame.raw)) ||
224
195
  cli_patterns_1.OPENCODE_V2_FOOTER_PATTERN.test(frame.lastLines)) {
225
- return {
226
- status: 'ready',
227
- confidence: 'high',
228
- reason: status_reason_1.STATUS_REASON.INPUT_PROMPT,
229
- hasActivePrompt: false,
230
- evidence: 'positive',
231
- };
196
+ return (0, verdicts_1.positiveVerdict)('ready', status_reason_1.STATUS_REASON.INPUT_PROMPT);
232
197
  }
233
198
  return null;
234
199
  },
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * OpenCode V2 pattern constants moved out of `../../cli-patterns.ts`
4
+ * (Issue #3217 I-3). `cli-patterns.ts` re-exports every public name.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.OPENCODE_V2_SKIP_PATTERNS = exports.OPENCODE_V2_THINKING_PATTERN = exports.OPENCODE_V2_FOOTER_PATTERN = exports.OPENCODE_V2_IDLE_COMPOSER_PATTERN = void 0;
8
+ exports.isOpencodeV2ComposerVisible = isOpencodeV2ComposerVisible;
9
+ const pasted_text_1 = require("../../shared/pasted-text");
10
+ const patterns_1 = require("../opencode/patterns");
11
+ // =============================================================================
12
+ // OpenCode V2 (`opencode2`, Issue #2934)
13
+ // =============================================================================
14
+ //
15
+ // A separate tool id from `opencode` (Epic #2370, decision 1). Its TUI is drawn
16
+ // by the same toolkit and many rows look alike, but v1's constants are v1's:
17
+ // they are left exactly as they are, and v2 names its own here so a change on
18
+ // either side cannot move the other. Phase 1 reads only what the send path and
19
+ // the fallback status reader need; the approval dialog (`Always allow`, the
20
+ // reverse of v1's `Allow always`), the completion row and the session tabs are
21
+ // Phase 3's.
22
+ /**
23
+ * OpenCode V2's empty composer: the input box's `┃` gutter with the
24
+ * `Ask anything…` placeholder on the same row (2.0.18 draws U+2026; the ASCII
25
+ * `...` is accepted too, as for v1 since #2915).
26
+ *
27
+ * Measured on 2.0.18 at 80x200 (2026-09-28):
28
+ * ` ┃ Ask anything… "Fix broken tests"`. Match against the ANSI-stripped
29
+ * frame BEFORE `stripBoxDrawing`, which removes the gutter this anchors on.
30
+ */
31
+ exports.OPENCODE_V2_IDLE_COMPOSER_PATTERN = /^[^\S\n]*[\u2502\u2503][^\S\n]*Ask anything(?:\.\.\.|\u2026)/m;
32
+ /**
33
+ * OpenCode V2's footer, which ends in `ctrl+p commands` on every frame the
34
+ * TUI draws (before a turn: `<path>:<branch> shift+tab agents ctrl+p commands`;
35
+ * after one: `<path>:<branch> 8.8K (1%) ctrl+p commands`, 2.0.18).
36
+ *
37
+ * Proof that the TUI — and so its composer — is on screen, NOT that it is idle:
38
+ * a running turn keeps the footer.
39
+ */
40
+ exports.OPENCODE_V2_FOOTER_PATTERN = /ctrl\+p commands/;
41
+ /**
42
+ * OpenCode V2 working indicator: the footer's `esc interrupt` hint, drawn only
43
+ * while a turn is running (2.0.18).
44
+ */
45
+ exports.OPENCODE_V2_THINKING_PATTERN = /esc interrupt/;
46
+ /**
47
+ * Whether OpenCode V2's composer is on screen, so a send may type into it
48
+ * (Issue #2934, D6): the gutter-anchored placeholder, or the footer.
49
+ *
50
+ * @param text - ANSI-stripped capture, box drawing intact
51
+ */
52
+ function isOpencodeV2ComposerVisible(text) {
53
+ return exports.OPENCODE_V2_IDLE_COMPOSER_PATTERN.test(text) || exports.OPENCODE_V2_FOOTER_PATTERN.test(text);
54
+ }
55
+ /** OpenCode V2 rows that are chrome, never reply content. */
56
+ exports.OPENCODE_V2_SKIP_PATTERNS = [
57
+ patterns_1.OPENCODE_SEPARATOR_PATTERN,
58
+ exports.OPENCODE_V2_FOOTER_PATTERN,
59
+ exports.OPENCODE_V2_THINKING_PATTERN,
60
+ /Ask anything(?:\.\.\.|\u2026)/,
61
+ /^Build\s+·/,
62
+ pasted_text_1.PASTED_TEXT_PATTERN,
63
+ ];
@@ -34,6 +34,7 @@ const cli_patterns_1 = require("../cli-patterns");
34
34
  const prompt_detector_1 = require("../prompt-detector");
35
35
  const frame_1 = require("./frame");
36
36
  const live_region_1 = require("./live-region");
37
+ const verdicts_1 = require("./verdicts");
37
38
  const status_reason_1 = require("../status-reason");
38
39
  const detection_evidence_config_1 = require("../../../config/detection-evidence-config");
39
40
  const idle_evidence_observation_1 = require("../idle-evidence-observation");
@@ -45,20 +46,6 @@ const idle_evidence_observation_1 = require("../idle-evidence-observation");
45
46
  * which is `running` with no evidence, not `ready`.
46
47
  */
47
48
  const STALE_OUTPUT_THRESHOLD_MS = 5000;
48
- /**
49
- * Which tools hand the FULL frame to `detectPrompt` instead of the 15-line tail.
50
- *
51
- * Their multiple-choice prompts with descriptions can exceed 15 lines: Codex
52
- * approval prompts with long file lists, Claude "Yes, and don't ask again for:
53
- * git commit -m …" options that embed full commit messages. `detectPrompt`
54
- * applies its own 50-line window internally.
55
- */
56
- const FULL_FRAME_PROMPT_TOOLS = new Set([
57
- 'opencode',
58
- 'codex',
59
- 'claude',
60
- 'copilot',
61
- ]);
62
49
  /**
63
50
  * Resolve the `evidence` for a `ready` / `input_prompt` verdict from the generic
64
51
  * composer check (§4 D1 決定 1 item 2).
@@ -93,7 +80,7 @@ function runToolDetection(spec, input, context = {}) {
93
80
  // Gemini wraps prompts in box-drawing characters (╭╮╰╯│─) which prevent
94
81
  // detectPrompt() from recognizing the prompt content.
95
82
  const promptOptions = (0, cli_patterns_1.buildDetectPromptOptions)(spec.tool);
96
- const promptInput = FULL_FRAME_PROMPT_TOOLS.has(spec.tool)
83
+ const promptInput = (0, cli_patterns_1.usesFullFramePrompt)(spec.tool)
97
84
  ? (0, cli_patterns_1.stripBoxDrawing)(frame.clean)
98
85
  : (0, cli_patterns_1.stripBoxDrawing)(frame.lastLines);
99
86
  let promptDetection = (0, prompt_detector_1.detectPrompt)(promptInput, promptOptions);
@@ -121,14 +108,7 @@ function runToolDetection(spec, input, context = {}) {
121
108
  promptDetection = { ...promptDetection, isPrompt: false, promptData: undefined };
122
109
  }
123
110
  else {
124
- return {
125
- status: 'waiting',
126
- confidence: 'high',
127
- reason: status_reason_1.STATUS_REASON.PROMPT_DETECTED,
128
- hasActivePrompt: true,
129
- evidence: 'positive',
130
- promptDetection,
131
- };
111
+ return (0, verdicts_1.activePromptVerdict)(status_reason_1.STATUS_REASON.PROMPT_DETECTED, promptDetection);
132
112
  }
133
113
  }
134
114
  // 1.5 — tool branches that must sit between prompt detection and the thinking
@@ -139,14 +119,7 @@ function runToolDetection(spec, input, context = {}) {
139
119
  // 2. Thinking indicator detection — THINKING_TAIL_LINE_COUNT window (narrower).
140
120
  // CLI tool is actively processing (shows spinner, "Planning...", etc.)
141
121
  if ((0, cli_patterns_1.detectThinking)(spec.tool, frame.thinkingLines)) {
142
- return {
143
- status: 'running',
144
- confidence: 'high',
145
- reason: status_reason_1.STATUS_REASON.THINKING_INDICATOR,
146
- hasActivePrompt: false,
147
- evidence: 'positive',
148
- promptDetection,
149
- };
122
+ return (0, verdicts_1.positiveVerdictWithPrompt)('running', status_reason_1.STATUS_REASON.THINKING_INDICATOR, promptDetection);
150
123
  }
151
124
  // 2.x — the tool's own running and completion markers.
152
125
  const afterThinking = spec.afterThinking?.(frame, promptDetection) ?? null;
@@ -181,14 +154,7 @@ function runToolDetection(spec, input, context = {}) {
181
154
  if (context.lastOutputTimestamp) {
182
155
  const elapsed = Date.now() - context.lastOutputTimestamp.getTime();
183
156
  if (elapsed > STALE_OUTPUT_THRESHOLD_MS) {
184
- return {
185
- status: 'running',
186
- confidence: 'low',
187
- reason: status_reason_1.STATUS_REASON.NO_RECENT_OUTPUT,
188
- hasActivePrompt: false,
189
- evidence: 'none',
190
- promptDetection,
191
- };
157
+ return (0, verdicts_1.unreadVerdictWithPrompt)(status_reason_1.STATUS_REASON.NO_RECENT_OUTPUT, promptDetection);
192
158
  }
193
159
  }
194
160
  // 5. Floor. `running` with no evidence, as before — the safe default when the
@@ -198,14 +164,7 @@ function runToolDetection(spec, input, context = {}) {
198
164
  // rules looked at this frame and found nothing, which is a statement about the
199
165
  // rules and an instruction to capture the frame as a fixture. `default` stays
200
166
  // the answer for a tool that has no chain of its own, where nothing looked.
201
- return {
202
- status: 'running',
203
- confidence: 'low',
204
- reason: spec.unreadableReason ?? status_reason_1.STATUS_REASON.DEFAULT,
205
- hasActivePrompt: false,
206
- evidence: 'none',
207
- promptDetection,
208
- };
167
+ return (0, verdicts_1.unreadVerdictWithPrompt)(spec.unreadableReason ?? status_reason_1.STATUS_REASON.DEFAULT, promptDetection);
209
168
  }
210
169
  /** Bind the shared chain around one tool's declarations. */
211
170
  function createToolStatusDetector(spec) {
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Small builders for the status verdicts a tool detector returns (Issue #3219).
4
+ *
5
+ * They only assemble the `ToolStatusVerdict` object literal the detectors used to
6
+ * spell out by hand. Each builder produces exactly the fields its call sites
7
+ * wrote: the `promptDetection` key is present only for the builders that take
8
+ * one, and is never added as `undefined` where the original omitted it.
9
+ *
10
+ * Types and small functions only: no tool file and no `cli-patterns` import.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.positiveVerdict = positiveVerdict;
14
+ exports.positiveVerdictWithPrompt = positiveVerdictWithPrompt;
15
+ exports.activePromptVerdict = activePromptVerdict;
16
+ exports.unreadVerdictWithPrompt = unreadVerdictWithPrompt;
17
+ /** A verdict resting on something the detector positively recognised, no prompt of its own. */
18
+ function positiveVerdict(status, reason) {
19
+ return {
20
+ status,
21
+ confidence: 'high',
22
+ reason,
23
+ hasActivePrompt: false,
24
+ evidence: 'positive',
25
+ };
26
+ }
27
+ /** {@link positiveVerdict} that also carries the branch's own `promptDetection` key. */
28
+ function positiveVerdictWithPrompt(status, reason, promptDetection) {
29
+ return {
30
+ status,
31
+ confidence: 'high',
32
+ reason,
33
+ hasActivePrompt: false,
34
+ evidence: 'positive',
35
+ promptDetection,
36
+ };
37
+ }
38
+ /** `waiting` on a positively detected prompt (`hasActivePrompt: true`). */
39
+ function activePromptVerdict(reason, promptDetection) {
40
+ return {
41
+ status: 'waiting',
42
+ confidence: 'high',
43
+ reason,
44
+ hasActivePrompt: true,
45
+ evidence: 'positive',
46
+ promptDetection,
47
+ };
48
+ }
49
+ /** `running` with low confidence and no evidence, carrying the `promptDetection` key. */
50
+ function unreadVerdictWithPrompt(reason, promptDetection) {
51
+ return {
52
+ status: 'running',
53
+ confidence: 'low',
54
+ reason,
55
+ hasActivePrompt: false,
56
+ evidence: 'none',
57
+ promptDetection,
58
+ };
59
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /**
3
+ * Vibe Local pattern constants moved out of `../../cli-patterns.ts`
4
+ * (Issue #3217). `cli-patterns.ts` re-exports every public name.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.VIBE_LOCAL_THINKING_PATTERN = exports.VIBE_LOCAL_PROMPT_PATTERN = void 0;
8
+ /**
9
+ * Vibe Local prompt pattern
10
+ * vibe-local (vibe-coder) shows `ctx:N% ❯` prompt when waiting for user input.
11
+ * The prompt line includes a context usage percentage prefix.
12
+ * Examples: "ctx:9% ❯", "ctx:30% ❯", "ctx:9% ❯ /model"
13
+ */
14
+ exports.VIBE_LOCAL_PROMPT_PATTERN = /ctx:\d+%\s*[>❯]/m;
15
+ /**
16
+ * Vibe Local thinking/processing pattern
17
+ * vibe-local shows spinner characters and status text while processing.
18
+ * Matches braille spinners, "Thinking", and tool execution indicators.
19
+ */
20
+ exports.VIBE_LOCAL_THINKING_PATTERN = /[\u2800-\u28FF]|Thinking|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|Running|Executing/;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RAW_CONTENT_MAX_CHARS = exports.RAW_CONTENT_MAX_LINES = void 0;
4
+ exports.truncateRawContent = truncateRawContent;
5
+ /**
6
+ * Maximum number of lines to retain in rawContent.
7
+ * Tail lines are preserved (instruction text typically appears just before the prompt).
8
+ * @see truncateRawContent
9
+ */
10
+ exports.RAW_CONTENT_MAX_LINES = 200;
11
+ /**
12
+ * Maximum number of characters to retain in rawContent.
13
+ * Tail characters are preserved.
14
+ * @see truncateRawContent
15
+ */
16
+ exports.RAW_CONTENT_MAX_CHARS = 5000;
17
+ /**
18
+ * Truncate raw content to fit within size limits.
19
+ * Preserves the tail (end) of the content since instruction text
20
+ * typically appears just before the prompt at the end of output.
21
+ *
22
+ * Security: No regular expressions used -- no ReDoS risk. [SF-S4-002]
23
+ * String.split('\n') and String.slice() are literal string operations only.
24
+ *
25
+ * @param content - The content to truncate
26
+ * @returns Truncated content (last RAW_CONTENT_MAX_LINES lines, max RAW_CONTENT_MAX_CHARS characters)
27
+ */
28
+ function truncateRawContent(content) {
29
+ const lines = content.split('\n');
30
+ const truncatedLines = lines.length > exports.RAW_CONTENT_MAX_LINES
31
+ ? lines.slice(-exports.RAW_CONTENT_MAX_LINES)
32
+ : lines;
33
+ let result = truncatedLines.join('\n');
34
+ if (result.length > exports.RAW_CONTENT_MAX_CHARS) {
35
+ result = result.slice(-exports.RAW_CONTENT_MAX_CHARS);
36
+ }
37
+ return result;
38
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /**
3
+ * Per tool, whether the screen may end a turn the agent's hooks opened
4
+ * (Issue #3337).
5
+ *
6
+ * The turn model lets three polls of a finished-looking frame close a turn as
7
+ * `scraper_evidence` (#1930). For codex 0.160.0 that closed live turns: frames
8
+ * of a running turn read `ready` (`tests/fixtures/codex-mid-turn-3337/`), and a
9
+ * reply sent on that `ready` interrupted the turn. So codex's hook turns end at
10
+ * the agent's own `Stop` — except on a frame that shows the turn was
11
+ * interrupted, after which no `Stop` comes.
12
+ *
13
+ * Only codex is listed, because only codex is measured to need it. Reading
14
+ * "this turn was abandoned" off a frame has to be complete to be safe — a form
15
+ * the reader misses leaves the turn `running` until the 30-minute stale bound —
16
+ * and Claude Code showed two forms in one afternoon (`⎿ Interrupted`, and an
17
+ * Esc early in the turn that puts the prompt back in the composer with no marker
18
+ * at all, `tests/fixtures/claude-interrupted-3337/`). A tool not listed keeps
19
+ * the #1930 behaviour: the screen closes its turn, hooks or not.
20
+ *
21
+ * Read by `lib/session/hook-turn-hold`, for both `capture --json` and the
22
+ * relay's readiness check.
23
+ *
24
+ * @module lib/detection/turn-abandoned
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.screenMayCloseHookTurn = screenMayCloseHookTurn;
28
+ exports.screenShowsAbandonedHookTurn = screenShowsAbandonedHookTurn;
29
+ const ansi_1 = require("./ansi");
30
+ const patterns_1 = require("./tools/codex/patterns");
31
+ /**
32
+ * The tools whose hook turns end at the agent's `Stop` rather than at the
33
+ * screen. Absent means "the screen may close it", as before #3337.
34
+ */
35
+ const HOOK_TURN_SCREEN_POLICIES = {
36
+ // Measured on 0.160.0: mid-turn frames read `ready`; an Esc fires no `Stop`
37
+ // and leaves `■ Conversation interrupted` above the composer.
38
+ codex: { showsAbandonedTurn: patterns_1.isCodexTurnInterruptedFrame },
39
+ };
40
+ /**
41
+ * Whether the screen may end a turn this tool's hooks opened.
42
+ *
43
+ * True for a tool with no policy, and for a listed tool whose frame shows an
44
+ * abandoned turn.
45
+ *
46
+ * @param output - The pane as captured (ANSI is stripped here)
47
+ */
48
+ function screenMayCloseHookTurn(cliToolId, output) {
49
+ const policy = HOOK_TURN_SCREEN_POLICIES[cliToolId];
50
+ if (!policy)
51
+ return true;
52
+ return policy.showsAbandonedTurn((0, ansi_1.stripAnsi)(output).split('\n'));
53
+ }
54
+ /**
55
+ * Whether the frame shows that a hook turn of a listed tool was abandoned
56
+ * (Issue #3377) — the same reading {@link screenMayCloseHookTurn} closes on,
57
+ * false for a tool with no policy.
58
+ *
59
+ * @param output - The pane as captured (ANSI is stripped here)
60
+ */
61
+ function screenShowsAbandonedHookTurn(cliToolId, output) {
62
+ const policy = HOOK_TURN_SCREEN_POLICIES[cliToolId];
63
+ if (!policy)
64
+ return false;
65
+ return policy.showsAbandonedTurn((0, ansi_1.stripAnsi)(output).split('\n'));
66
+ }
@@ -20,6 +20,7 @@ exports.UNCLASSIFIED_RECORD_DWELL_MS = void 0;
20
20
  exports.observeUnclassifiedFrame = observeUnclassifiedFrame;
21
21
  exports.resetUnclassifiedFrameTracking = resetUnclassifiedFrameTracking;
22
22
  exports.unclassifiedFrameRunCount = unclassifiedFrameRunCount;
23
+ const global_state_1 = require("../global-state");
23
24
  /**
24
25
  * How long a frame must stay unclassified before it is worth recording.
25
26
  *
@@ -29,8 +30,7 @@ exports.unclassifiedFrameRunCount = unclassifiedFrameRunCount;
29
30
  * stall the other never saw.
30
31
  */
31
32
  exports.UNCLASSIFIED_RECORD_DWELL_MS = 60_000;
32
- const runs = globalThis.__unclassifiedFrameRuns ??
33
- (globalThis.__unclassifiedFrameRuns = new Map());
33
+ const runs = (0, global_state_1.getOrInitGlobal)('__unclassifiedFrameRuns', () => new Map());
34
34
  /**
35
35
  * How long an unobserved run survives before it is dropped.
36
36
  *
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOrInitGlobal = getOrInitGlobal;
4
+ /**
5
+ * Process-wide state helper for the `globalThis.__*` cache pattern.
6
+ *
7
+ * Returns the value already stored on `globalThis[key]`, or runs `init` once and
8
+ * stores its result. `init` runs only when the slot is `null`/`undefined`, at the
9
+ * moment this function is called (so callers keep their own init timing).
10
+ *
11
+ * `key` and the initial value are typed from each file's `declare global`
12
+ * declaration. This module imports nothing so any layer (server, CLI) can use it.
13
+ */
14
+ function getOrInitGlobal(key, init) {
15
+ return (globalThis[key] ??= init());
16
+ }
@@ -92,6 +92,7 @@ exports.refreshAgentSessionContextUsage = refreshAgentSessionContextUsage;
92
92
  const auto_yes_state_1 = require("../../lib/auto-yes-state");
93
93
  const client_1 = require("./sources/opencode/client");
94
94
  const ports_1 = require("./sources/opencode/ports");
95
+ const global_state_1 = require("../global-state");
95
96
  /**
96
97
  * Longest session title kept.
97
98
  *
@@ -109,8 +110,7 @@ exports.MAX_AGENT_SESSION_TITLE_LENGTH = 200;
109
110
  */
110
111
  exports.MAX_AGENT_SESSION_NAME_LENGTH = 120;
111
112
  /** compositeKey -> the most recent session description for that instance. */
112
- const records = globalThis.__agentSessionTelemetry ??
113
- (globalThis.__agentSessionTelemetry = new Map());
113
+ const records = (0, global_state_1.getOrInitGlobal)('__agentSessionTelemetry', () => new Map());
114
114
  /** Record what the agent last said about this instance's session. */
115
115
  function recordAgentSessionTelemetry(target, record) {
116
116
  records.set((0, auto_yes_state_1.buildCompositeKey)(target.worktreeId, target.cliToolId, target.instanceId), record);
@@ -238,11 +238,9 @@ function readOpencodeSessionInfo(value, at) {
238
238
  };
239
239
  }
240
240
  /** compositeKey -> the last context occupancy measured for that instance. */
241
- const contextUsages = globalThis.__agentSessionContextUsage ??
242
- (globalThis.__agentSessionContextUsage = new Map());
241
+ const contextUsages = (0, global_state_1.getOrInitGlobal)('__agentSessionContextUsage', () => new Map());
243
242
  /** compositeKeys with a refresh in flight, so a poll storm makes one request. */
244
- const contextRefreshes = globalThis.__agentSessionContextRefreshes ??
245
- (globalThis.__agentSessionContextRefreshes = new Set());
243
+ const contextRefreshes = (0, global_state_1.getOrInitGlobal)('__agentSessionContextRefreshes', () => new Set());
246
244
  /**
247
245
  * The percentage opencode's own footer shows, by opencode's own rule.
248
246
  *
@@ -35,9 +35,9 @@ exports.recordPermissionDecision = recordPermissionDecision;
35
35
  exports.getLastPermissionDecision = getLastPermissionDecision;
36
36
  exports.clearPermissionDecisions = clearPermissionDecisions;
37
37
  const auto_yes_state_1 = require("../../lib/auto-yes-state");
38
+ const global_state_1 = require("../global-state");
38
39
  /** compositeKey -> the most recent adjudication for that session. */
39
- const lastDecisions = globalThis.__permissionDecisions ??
40
- (globalThis.__permissionDecisions = new Map());
40
+ const lastDecisions = (0, global_state_1.getOrInitGlobal)('__permissionDecisions', () => new Map());
41
41
  /**
42
42
  * Record how one approval was adjudicated.
43
43
  *