commandmate 0.44.1 → 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 (604) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +169 -169
  3. package/.next/app-path-routes-manifest.json +35 -35
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +3 -3
  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 -2
  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 -2
  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 +3 -3
  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 +35 -35
  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 -0
  294. package/.next/server/chunks/2710.js +1 -1
  295. package/.next/server/chunks/2908.js +1 -0
  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 -0
  308. package/.next/server/chunks/5625.js +25 -0
  309. package/.next/server/chunks/5845.js +1 -0
  310. package/.next/server/chunks/611.js +1 -1
  311. package/.next/server/chunks/6130.js +1 -1
  312. package/.next/server/chunks/6401.js +1 -1
  313. package/.next/server/chunks/6781.js +1 -1
  314. package/.next/server/chunks/6793.js +3 -3
  315. package/.next/server/chunks/7491.js +2 -2
  316. package/.next/server/chunks/7905.js +1 -1
  317. package/.next/server/chunks/850.js +1 -0
  318. package/.next/server/chunks/8543.js +1 -1
  319. package/.next/server/chunks/8728.js +3 -3
  320. package/.next/server/chunks/8791.js +1 -1
  321. package/.next/server/chunks/8800.js +1 -1
  322. package/.next/server/chunks/8918.js +7 -7
  323. package/.next/server/chunks/9130.js +1 -5
  324. package/.next/server/chunks/9390.js +2 -3
  325. package/.next/server/chunks/9584.js +1 -1
  326. package/.next/server/chunks/9627.js +6 -6
  327. package/.next/server/chunks/9731.js +3 -3
  328. package/.next/server/middleware-manifest.json +5 -5
  329. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  330. package/.next/server/pages/500.html +1 -1
  331. package/.next/server/server-reference-manifest.json +1 -1
  332. package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
  333. package/.next/static/chunks/{2407-f1f258d4a1d92620.js → 2407-06d35bb1aa02de80.js} +1 -1
  334. package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
  335. package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
  336. package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
  337. package/.next/static/chunks/app/{layout-da66300cc20244ed.js → layout-0d1750b833f5cc3e.js} +1 -1
  338. package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
  339. package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
  340. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
  341. package/.next/static/css/057f64a65726c439.css +1 -0
  342. package/.next/trace +13 -13
  343. package/dist/cli/commands/ask.d.ts.map +1 -1
  344. package/dist/cli/commands/ask.js +120 -119
  345. package/dist/cli/commands/attach.d.ts +94 -0
  346. package/dist/cli/commands/attach.d.ts.map +1 -1
  347. package/dist/cli/commands/attach.js +145 -7
  348. package/dist/cli/commands/auto-yes.js +1 -1
  349. package/dist/cli/commands/capture.d.ts.map +1 -1
  350. package/dist/cli/commands/capture.js +10 -13
  351. package/dist/cli/commands/command-target.d.ts +23 -0
  352. package/dist/cli/commands/command-target.d.ts.map +1 -0
  353. package/dist/cli/commands/command-target.js +25 -0
  354. package/dist/cli/commands/instances.d.ts.map +1 -1
  355. package/dist/cli/commands/instances.js +41 -2
  356. package/dist/cli/commands/message-dispatch.d.ts +36 -0
  357. package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
  358. package/dist/cli/commands/message-dispatch.js +63 -0
  359. package/dist/cli/commands/reply.d.ts.map +1 -1
  360. package/dist/cli/commands/reply.js +2 -5
  361. package/dist/cli/commands/respond.d.ts.map +1 -1
  362. package/dist/cli/commands/respond.js +3 -6
  363. package/dist/cli/commands/send.d.ts.map +1 -1
  364. package/dist/cli/commands/send.js +149 -146
  365. package/dist/cli/commands/wait.d.ts.map +1 -1
  366. package/dist/cli/commands/wait.js +608 -416
  367. package/dist/cli/types/api-responses.d.ts +174 -27
  368. package/dist/cli/types/api-responses.d.ts.map +1 -1
  369. package/dist/cli/types/api-responses.js +4 -2
  370. package/dist/cli/utils/api-client.d.ts +25 -5
  371. package/dist/cli/utils/api-client.d.ts.map +1 -1
  372. package/dist/cli/utils/api-client.js +87 -55
  373. package/dist/cli/utils/server-url.d.ts +1 -0
  374. package/dist/cli/utils/server-url.d.ts.map +1 -1
  375. package/dist/cli/utils/server-url.js +7 -0
  376. package/dist/config/uat-isolation.d.ts +140 -0
  377. package/dist/config/uat-isolation.d.ts.map +1 -0
  378. package/dist/config/uat-isolation.js +246 -0
  379. package/dist/lib/global-state.d.ts +12 -0
  380. package/dist/lib/global-state.d.ts.map +1 -0
  381. package/dist/lib/global-state.js +16 -0
  382. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
  383. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
  384. package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
  385. package/dist/lib/session/prompt-view.d.ts +228 -0
  386. package/dist/lib/session/prompt-view.d.ts.map +1 -0
  387. package/dist/lib/session/prompt-view.js +290 -0
  388. package/dist/lib/session/status-evidence-type.d.ts +16 -0
  389. package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
  390. package/dist/lib/session/status-evidence-type.js +2 -0
  391. package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
  392. package/dist/lib/tmux/legacy-session-alias.js +2 -1
  393. package/dist/server/locales/en/worktree.json +3 -1
  394. package/dist/server/locales/ja/worktree.json +3 -1
  395. package/dist/server/server.js +5 -3
  396. package/dist/server/src/cli/types/api-responses.js +4 -2
  397. package/dist/server/src/config/cli-tool-timing-config.js +1 -6
  398. package/dist/server/src/config/uat-isolation.js +246 -0
  399. package/dist/server/src/lib/assistant-response-saver.js +62 -3
  400. package/dist/server/src/lib/auto-yes-lifecycle.js +139 -0
  401. package/dist/server/src/lib/auto-yes-poller.js +465 -160
  402. package/dist/server/src/lib/auto-yes-state.js +2 -2
  403. package/dist/server/src/lib/cli-tools/antigravity.js +39 -80
  404. package/dist/server/src/lib/cli-tools/base.js +151 -0
  405. package/dist/server/src/lib/cli-tools/codex.js +44 -80
  406. package/dist/server/src/lib/cli-tools/command-code.js +24 -56
  407. package/dist/server/src/lib/cli-tools/copilot.js +25 -67
  408. package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
  409. package/dist/server/src/lib/cli-tools/gemini.js +23 -73
  410. package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
  411. package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
  412. package/dist/server/src/lib/cli-tools/opencode.js +21 -85
  413. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
  414. package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
  415. package/dist/server/src/lib/detection/cli-patterns.js +374 -3047
  416. package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
  417. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
  418. package/dist/server/src/lib/detection/prompt-detector.js +2 -35
  419. package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
  420. package/dist/server/src/lib/detection/selection-shape.js +32 -520
  421. package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
  422. package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
  423. package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
  424. package/dist/server/src/lib/detection/status-detector.js +1 -1
  425. package/dist/server/src/lib/detection/tools/antigravity/detect.js +12 -60
  426. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
  427. package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
  428. package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
  429. package/dist/server/src/lib/detection/tools/claude/detect.js +11 -17
  430. package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
  431. package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
  432. package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
  433. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
  434. package/dist/server/src/lib/detection/tools/codex/detect.js +71 -130
  435. package/dist/server/src/lib/detection/tools/codex/live-region.js +104 -0
  436. package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
  437. package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
  438. package/dist/server/src/lib/detection/tools/command-code/detect.js +19 -50
  439. package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
  440. package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
  441. package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
  442. package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
  443. package/dist/server/src/lib/detection/tools/context-above.js +20 -0
  444. package/dist/server/src/lib/detection/tools/copilot/detect.js +13 -35
  445. package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
  446. package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
  447. package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
  448. package/dist/server/src/lib/detection/tools/frame.js +36 -2
  449. package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
  450. package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
  451. package/dist/server/src/lib/detection/tools/live-region.js +204 -0
  452. package/dist/server/src/lib/detection/tools/opencode/detect.js +11 -49
  453. package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
  454. package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
  455. package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
  456. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +10 -42
  457. package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
  458. package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
  459. package/dist/server/src/lib/detection/tools/run-detection.js +31 -50
  460. package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
  461. package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
  462. package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
  463. package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
  464. package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
  465. package/dist/server/src/lib/global-state.js +16 -0
  466. package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
  467. package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
  468. package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
  469. package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
  470. package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
  471. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
  472. package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
  473. package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
  474. package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
  475. package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
  476. package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
  477. package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
  478. package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
  479. package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
  480. package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
  481. package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
  482. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
  483. package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
  484. package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
  485. package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
  486. package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
  487. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
  488. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
  489. package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
  490. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
  491. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
  492. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
  493. package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
  494. package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
  495. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
  496. package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
  497. package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
  498. package/dist/server/src/lib/hooks/sources/registry.js +3 -2
  499. package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
  500. package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
  501. package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
  502. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
  503. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
  504. package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
  505. package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
  506. package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
  507. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
  508. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
  509. package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
  510. package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
  511. package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
  512. package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
  513. package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
  514. package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
  515. package/dist/server/src/lib/polling/response-checker.js +666 -1162
  516. package/dist/server/src/lib/polling/response-dedup.js +3 -4
  517. package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
  518. package/dist/server/src/lib/polling/response-poller-core.js +54 -20
  519. package/dist/server/src/lib/polling/startup-screen.js +142 -0
  520. package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
  521. package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
  522. package/dist/server/src/lib/prompt-answer-sender.js +6 -5
  523. package/dist/server/src/lib/push/failure-episode-state.js +2 -2
  524. package/dist/server/src/lib/push/notification-dedup.js +3 -4
  525. package/dist/server/src/lib/push/prompt-card-state.js +2 -2
  526. package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
  527. package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
  528. package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -2
  529. package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
  530. package/dist/server/src/lib/relay/relay-delivery.js +6 -2
  531. package/dist/server/src/lib/relay/relay-readiness.js +38 -1
  532. package/dist/server/src/lib/relay/relay-triggers.js +9 -0
  533. package/dist/server/src/lib/resource-cleanup.js +6 -4
  534. package/dist/server/src/lib/response-cleaner.js +24 -1
  535. package/dist/server/src/lib/response-extractor.js +16 -0
  536. package/dist/server/src/lib/schedule-manager.js +8 -10
  537. package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
  538. package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
  539. package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
  540. package/dist/server/src/lib/session/agent-event-model.js +562 -0
  541. package/dist/server/src/lib/session/agent-event-record.js +10 -0
  542. package/dist/server/src/lib/session/agent-event-state.js +106 -1854
  543. package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
  544. package/dist/server/src/lib/session/agent-event-turn.js +811 -0
  545. package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
  546. package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
  547. package/dist/server/src/lib/session/claude-executor.js +45 -5
  548. package/dist/server/src/lib/session/claude-session.js +21 -65
  549. package/dist/server/src/lib/session/cli-session.js +17 -0
  550. package/dist/server/src/lib/session/current-output-builder.js +454 -1103
  551. package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
  552. package/dist/server/src/lib/session/current-output-types.js +9 -0
  553. package/dist/server/src/lib/session/detection-divergence.js +55 -0
  554. package/dist/server/src/lib/session/global-session-constants.js +2 -13
  555. package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
  556. package/dist/server/src/lib/session/layer-disagreement.js +2 -2
  557. package/dist/server/src/lib/session/opencode-session-store.js +2 -1
  558. package/dist/server/src/lib/session/prompt-view.js +290 -0
  559. package/dist/server/src/lib/session/prompt-waiting-composition.js +35 -0
  560. package/dist/server/src/lib/session/provisional-turn.js +3 -1
  561. package/dist/server/src/lib/session/send-user-message.js +1 -1
  562. package/dist/server/src/lib/session/session-starting-state.js +4 -6
  563. package/dist/server/src/lib/session/status-evidence-type.js +2 -0
  564. package/dist/server/src/lib/session/status-evidence.js +2 -2
  565. package/dist/server/src/lib/session/structured-status-merge.js +335 -0
  566. package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
  567. package/dist/server/src/lib/session/waiting-kind.js +3 -0
  568. package/dist/server/src/lib/session-cleanup.js +6 -8
  569. package/dist/server/src/lib/skills/install-plan.js +2 -1
  570. package/dist/server/src/lib/skills/snapshot-store.js +2 -2
  571. package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
  572. package/dist/server/src/lib/timer-manager.js +6 -8
  573. package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
  574. package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
  575. package/dist/server/src/lib/tmux/session-hooks.js +2 -1
  576. package/dist/server/src/lib/tmux/session-status-options.js +3 -3
  577. package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
  578. package/dist/server/src/lib/tmux/tmux.js +33 -59
  579. package/dist/server/src/lib/tui-accumulator.js +2 -2
  580. package/dist/server/src/lib/version-checker.js +6 -6
  581. package/dist/server/src/lib/ws-server.js +47 -11
  582. package/docs/en/user-guide/webapp-guide.md +27 -3
  583. package/package.json +1 -1
  584. package/release-notes/0.44.2.json +33 -0
  585. package/release-notes/0.44.3.json +82 -0
  586. package/scripts/hooks/cmate-agent-event.sh +18 -0
  587. package/.next/server/chunks/1068.js +0 -1
  588. package/.next/server/chunks/434.js +0 -1
  589. package/.next/server/chunks/5775.js +0 -1
  590. package/.next/server/chunks/6474.js +0 -14
  591. package/.next/server/chunks/650.js +0 -1
  592. package/.next/server/chunks/6661.js +0 -1
  593. package/.next/server/chunks/8583.js +0 -1
  594. package/.next/server/chunks/964.js +0 -1
  595. package/.next/server/chunks/967.js +0 -1
  596. package/.next/server/chunks/9882.js +0 -25
  597. package/.next/static/chunks/591-308072f285c34787.js +0 -1
  598. package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
  599. package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +0 -1
  600. package/.next/static/css/38070d879efa1371.css +0 -1
  601. package/dist/server/src/lib/cli-tools/index.js +0 -41
  602. package/dist/server/src/lib/polling/global-session-poller.js +0 -140
  603. /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
  604. /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
@@ -43,6 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.detectCodexDialog = detectCodexDialog;
44
44
  const cli_patterns_1 = require("../../cli-patterns");
45
45
  const dialog_block_1 = require("../dialog-block");
46
+ const context_above_1 = require("../context-above");
46
47
  /**
47
48
  * The dialog family each lifecycle screen belongs to (Issue #1829).
48
49
  *
@@ -60,17 +61,8 @@ const LIFECYCLE_DIALOG_KINDS = {
60
61
  update: 'update',
61
62
  trust: 'trust',
62
63
  };
63
- /** How many non-blank rows above the options may hold the question. */
64
- const QUESTION_SCAN_ROWS = 4;
65
64
  function readContextAbove(lines, firstRow) {
66
- const rows = [];
67
- for (let i = firstRow - 1; i >= 0 && rows.length < QUESTION_SCAN_ROWS; i--) {
68
- const row = lines[i].trim();
69
- if (row === '')
70
- continue;
71
- rows.push(row);
72
- }
73
- return rows.join('\n');
65
+ return (0, context_above_1.readContextAbove)(lines, firstRow, -1);
74
66
  }
75
67
  /**
76
68
  * Does this frame carry a Codex dialog?
@@ -138,7 +138,10 @@ const cli_patterns_1 = require("../../cli-patterns");
138
138
  const selection_shape_1 = require("../../selection-shape");
139
139
  const dialog_1 = require("./dialog");
140
140
  const permission_1 = require("./permission");
141
+ const verdicts_1 = require("../verdicts");
141
142
  const status_reason_1 = require("../../status-reason");
143
+ const live_region_1 = require("./live-region");
144
+ const frame_1 = require("../frame");
142
145
  const run_detection_1 = require("../run-detection");
143
146
  const verified_against_1 = require("../verified-against");
144
147
  /** Command Code build these rules were read off (value in ../verified-against). */
@@ -146,7 +149,16 @@ exports.VERIFIED_AGAINST = verified_against_1.COMMAND_CODE_VERIFIED_AGAINST;
146
149
  exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector)({
147
150
  tool: 'command-code',
148
151
  verifiedAgainst: exports.VERIFIED_AGAINST,
152
+ // Issue #3183: where the live part of the frame begins (`./live-region.ts`).
153
+ liveRegion: live_region_1.COMMAND_CODE_LIVE_REGION,
149
154
  beforePrompt(frame) {
155
+ // Issue #3183: an input box at the bottom of the pane means none of the
156
+ // three overlays below is open — each replaces the input box — so a footer
157
+ // the conversation quotes cannot reach them, whatever window it sits in.
158
+ // The live region says so once for every rule; the `…AtBottom` readings
159
+ // below (#2846) still decide the frames that have no input box.
160
+ if ((0, frame_1.liveRegionOf)(frame, 'command-code').composerAtBottom)
161
+ return null;
150
162
  // Issue #2761. The plan review overlay, read off its two footer rows.
151
163
  //
152
164
  // `beforePrompt` and not `afterPrompt`, and that placement is the point: the
@@ -182,13 +194,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
182
194
  // `hasCommandCodePlanReviewFooterAtBottom` for how far from the end is "bottom".
183
195
  if ((0, selection_shape_1.hasCommandCodePlanReviewFooterAtBottom)(frame.lastLines) ||
184
196
  (0, selection_shape_1.isCommandCodePlanApproveChoice)(frame.lastLines)) {
185
- return {
186
- status: 'waiting',
187
- confidence: 'high',
188
- reason: status_reason_1.STATUS_REASON.COMMAND_CODE_PLAN_REVIEW,
189
- hasActivePrompt: false,
190
- evidence: 'positive',
191
- };
197
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_PLAN_REVIEW);
192
198
  }
193
199
  // Issue #2521 recognised this screen; Issue #2522 reads it.
194
200
  //
@@ -237,14 +243,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
237
243
  // the pane and lets Auto-Yes consider it — every one of them through the
238
244
  // SAME payload, which is the point of reading it once here.
239
245
  if (reading.kind === 'prompt') {
240
- return {
241
- status: 'waiting',
242
- confidence: 'high',
243
- reason: status_reason_1.STATUS_REASON.PROMPT_DETECTED,
244
- hasActivePrompt: true,
245
- evidence: 'positive',
246
- promptDetection: reading.prompt,
247
- };
246
+ return (0, verdicts_1.activePromptVerdict)(status_reason_1.STATUS_REASON.PROMPT_DETECTED, reading.prompt);
248
247
  }
249
248
  // The question UI is plainly up and this reader could not read it. #2521's
250
249
  // verdict, unchanged and deliberately kept: `COMMAND_CODE_SELECTION_LIST` is
@@ -256,13 +255,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
256
255
  // options, so there is no payload to answer with and none is invented — and
257
256
  // the generic parser is not given a second chance to invent a partial one.
258
257
  if (reading.kind === 'unsupported') {
259
- return {
260
- status: 'waiting',
261
- confidence: 'high',
262
- reason: status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST,
263
- hasActivePrompt: false,
264
- evidence: 'positive',
265
- };
258
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST);
266
259
  }
267
260
  return null;
268
261
  },
@@ -288,13 +281,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
288
281
  // Issue #2846: only when `Press Esc to close` is the LAST row. The panel draws
289
282
  // it last; a reply that quotes it has the composer underneath.
290
283
  if ((0, selection_shape_1.hasCommandCodeDismissablePanelFooterAtBottom)(frame.lastLines)) {
291
- return {
292
- status: 'waiting',
293
- confidence: 'high',
294
- reason: status_reason_1.STATUS_REASON.COMMAND_CODE_DISMISSABLE_PANEL,
295
- hasActivePrompt: false,
296
- evidence: 'positive',
297
- };
284
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_DISMISSABLE_PANEL);
298
285
  }
299
286
  // Issue #2297. Command Code's pickers (`/model` measured live on v1.40.1 at
300
287
  // 200x1000) are arrow-driven overlays with a search box and a lower-case
@@ -310,13 +297,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
310
297
  //
311
298
  // Issue #2846: last row only, for the reason the branch above gives.
312
299
  if ((0, selection_shape_1.hasCommandCodeSelectionListFooterAtBottom)(frame.lastLines)) {
313
- return {
314
- status: 'waiting',
315
- confidence: 'high',
316
- reason: status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST,
317
- hasActivePrompt: false,
318
- evidence: 'positive',
319
- };
300
+ return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST);
320
301
  }
321
302
  return null;
322
303
  },
@@ -330,26 +311,14 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
330
311
  // before the generic composer check can say "ready". Widened window; see the
331
312
  // module docblock.
332
313
  if ((0, cli_patterns_1.detectThinking)('command-code', frame.lastLines)) {
333
- return {
334
- status: 'running',
335
- confidence: 'high',
336
- reason: status_reason_1.STATUS_REASON.THINKING_INDICATOR,
337
- hasActivePrompt: false,
338
- evidence: 'positive',
339
- };
314
+ return (0, verdicts_1.positiveVerdict)('running', status_reason_1.STATUS_REASON.THINKING_INDICATOR);
340
315
  }
341
316
  // Idle: the composer row is on screen and nothing is in flight. Same verdict
342
317
  // the generic step 3 would reach, resolved here so the two cannot disagree
343
318
  // about which window they read.
344
319
  const { promptPattern } = (0, cli_patterns_1.getCliToolPatterns)('command-code');
345
320
  if (promptPattern.test(frame.lastLines)) {
346
- return {
347
- status: 'ready',
348
- confidence: 'high',
349
- reason: status_reason_1.STATUS_REASON.INPUT_PROMPT,
350
- hasActivePrompt: false,
351
- evidence: 'positive',
352
- };
321
+ return (0, verdicts_1.positiveVerdict)('ready', status_reason_1.STATUS_REASON.INPUT_PROMPT);
353
322
  }
354
323
  return null;
355
324
  },
@@ -78,6 +78,7 @@ const ansi_1 = require("../../ansi");
78
78
  const prompt_detect_multiple_choice_1 = require("../../prompt-detect-multiple-choice");
79
79
  const selection_shape_1 = require("../../selection-shape");
80
80
  const dialog_block_1 = require("../dialog-block");
81
+ const truncate_raw_content_1 = require("../../truncate-raw-content");
81
82
  /**
82
83
  * How many rows of dialog this reader will parse.
83
84
  *
@@ -190,23 +191,6 @@ const COMMAND_CODE_CONFIRM_ROW_PATTERN = /^[^\S\n]*(?:\u276F[^\S\n]*)?(?:Submit|
190
191
  * separated picker footer and is left exactly as #2753 left it.
191
192
  */
192
193
  const COMMAND_CODE_QUESTION_HINT_BAR_PATTERN = /^[^\S\n]*Enter\s+to\s+select\b.*\|.*\bEsc\s+to\s+cancel[^\S\n]*$/i;
193
- /**
194
- * The same tail limits `prompt-detector.ts` applies to `rawContent`
195
- * (`RAW_CONTENT_MAX_LINES` / `RAW_CONTENT_MAX_CHARS`), restated because that
196
- * helper is private to it. A prompt row stores this text as its message body.
197
- *
198
- * In practice neither bound binds here — the region is at most
199
- * {@link COMMAND_CODE_QUESTION_MAX_REGION_ROWS} rows — which is the point: what
200
- * used to reach these consumers for this screen was the whole 1000-row pane.
201
- */
202
- const RAW_CONTENT_MAX_LINES = 200;
203
- const RAW_CONTENT_MAX_CHARS = 5000;
204
- function truncateRawContent(content) {
205
- const lines = content.split('\n');
206
- const tail = lines.length > RAW_CONTENT_MAX_LINES ? lines.slice(-RAW_CONTENT_MAX_LINES) : lines;
207
- const joined = tail.join('\n');
208
- return joined.length > RAW_CONTENT_MAX_CHARS ? joined.slice(-RAW_CONTENT_MAX_CHARS) : joined;
209
- }
210
194
  function unsupported(reason) {
211
195
  return { kind: 'unsupported', reason };
212
196
  }
@@ -345,7 +329,7 @@ function readCommandCodeQuestionDialog(frame) {
345
329
  isDefault: index === block.selectedIndex,
346
330
  ...(multiSelect ? { checked: CHECKBOX_TICKED_PATTERN.test(label) } : {}),
347
331
  }));
348
- const built = (0, prompt_detect_multiple_choice_1.buildMultipleChoiceResult)(question, readOptions, { instructionText: dialogText, approvalTarget: dialogText }, regionRows.join('\n'), truncateRawContent,
332
+ const built = (0, prompt_detect_multiple_choice_1.buildMultipleChoiceResult)(question, readOptions, { instructionText: dialogText, approvalTarget: dialogText }, regionRows.join('\n'), truncate_raw_content_1.truncateRawContent,
349
333
  // 確定仕様 D. The measured `QuestionPrompt` hands the ordinary choices to a
350
334
  // `SelectInput`, which calls `onSelect` on the DIGIT — so a trailing Enter
351
335
  // would land on whatever the tool painted next (the following question, or
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Command Code's live region (Issue #3183; design doc §7 "command-code").
4
+ *
5
+ * - **composer** — the input box between two rules pinned to the bottom, with a
6
+ * `❯` row under the opening rule (`findCommandCodeChromeStart`, the same
7
+ * shape as claude's). A `❯ 1.` row there is a question dialog's cursor, not
8
+ * the composer, and is refused. Measured: `tui-frame-footer-2776/
9
+ * command-code-1.58.0-idle-quoted-footers.txt` L29-L32 under the quoted
10
+ * footers at L18-L21.
11
+ * - **dialog top** — the rule above the first option of a dialog closed by the
12
+ * `↑/↓ navigate · enter select` footer. Measured: `command-code-live-2250/
13
+ * dialog-shell-command.txt` L29 / L36 / L40.
14
+ *
15
+ * @module lib/detection/tools/command-code/live-region
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.COMMAND_CODE_LIVE_REGION = void 0;
19
+ const cli_patterns_1 = require("../../cli-patterns");
20
+ const live_region_1 = require("../live-region");
21
+ /** A numbered cursor row (`❯ 1. Yes`) — a dialog's, never the composer's. */
22
+ const NUMBERED_CURSOR_ROW = /^❯\s*\d{1,2}[.)]\s/;
23
+ exports.COMMAND_CODE_LIVE_REGION = {
24
+ composer: (0, live_region_1.fencedComposer)(lines => {
25
+ const start = (0, cli_patterns_1.findCommandCodeChromeStart)(lines);
26
+ if (start < 0)
27
+ return -1;
28
+ return NUMBERED_CURSOR_ROW.test((0, cli_patterns_1.stripAnsi)(lines[start + 1] ?? '')) ? -1 : start;
29
+ }),
30
+ dialogTop: (0, live_region_1.ruleAboveOptionRun)({
31
+ footer: row => /↑\/↓ navigate · enter select/.test(row),
32
+ rule: /^─{10,}$/,
33
+ maxRows: 120,
34
+ }),
35
+ composerHidesDialogs: true,
36
+ };
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * Command Code pattern constants and helpers 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.COMMAND_CODE_SKIP_PATTERNS = exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = exports.COMMAND_CODE_BANNER_PATTERNS = exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = exports.COMMAND_CODE_COMPLETION_PATTERN = exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = exports.COMMAND_CODE_THINKING_PATTERN = exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = exports.COMMAND_CODE_SEPARATOR_PATTERN = exports.COMMAND_CODE_PROMPT_PATTERN = exports.COMMAND_CODE_SPINNER_CHARS = void 0;
8
+ exports.findCommandCodeChromeStart = findCommandCodeChromeStart;
9
+ const ansi_1 = require("../../ansi");
10
+ const pasted_text_1 = require("../../shared/pasted-text");
11
+ /**
12
+ * Command Code status-line spinner glyphs (Issue #2250).
13
+ *
14
+ * The complete `getWaveSymbol` frame set, read off the shipped bundle
15
+ * (`command-code@1.40.1`, `dist/cli.mjs`):
16
+ * `["·","○","◇","☆","✧","☆","◇","○","⌘"]` — six distinct glyphs, cycled.
17
+ *
18
+ * Deliberately NOT folded into {@link CLAUDE_SPINNER_CHARS}. Command Code marks
19
+ * every assistant message with `⠶` (U+2836, see
20
+ * {@link COMMAND_CODE_RESPONSE_MARKER_PATTERN}); adding that braille glyph to a
21
+ * shared spinner class would make each reply's own first row read as "still
22
+ * generating", and adding these glyphs to claude's class would do the same to
23
+ * any claude reply that opens with `·`.
24
+ */
25
+ exports.COMMAND_CODE_SPINNER_CHARS = ['·', '○', '◇', '☆', '✧', '⌘'];
26
+ /**
27
+ * Command Code composer / dialog-cursor prompt pattern (Issue #2250).
28
+ *
29
+ * `❯` (U+276F) only — the ASCII `>` claude also accepts is not a glyph Command
30
+ * Code 1.40.1 draws, and accepting it here would make every shell prompt and
31
+ * every quoted diff line in a reply look like a composer.
32
+ *
33
+ * The row is drawn in two places, which is why prompt presence alone is not
34
+ * "ready": the bottom-pinned composer (`❯ Ask your question...` between two
35
+ * full-width rules) and the highlighted option of a permission dialog
36
+ * (`❯ 1. Yes`). Completion is resolved structurally instead — see
37
+ * {@link findCommandCodeChromeStart}.
38
+ */
39
+ exports.COMMAND_CODE_PROMPT_PATTERN = /^❯(\s*$|\s+\S)/m;
40
+ /**
41
+ * Command Code separator pattern (Issue #2250).
42
+ *
43
+ * Full-pane runs of U+2500 fence the composer above and below, and one more is
44
+ * drawn above a permission dialog. Measured at 200 columns on every fixture in
45
+ * `tests/fixtures/command-code-live-2250/`.
46
+ */
47
+ exports.COMMAND_CODE_SEPARATOR_PATTERN = /^─{10,}$/m;
48
+ /**
49
+ * Command Code status-line "esc to interrupt" hint (Issue #2250).
50
+ *
51
+ * The `Status` component renders `esc to interrupt • <elapsed> • ↓ <tokens>`
52
+ * only in its `"all"` layout, i.e. at a terminal width of 72 columns or more
53
+ * (read off the bundle's `layoutMode` ladder; CommandMate panes are 200 wide, so
54
+ * production always takes that branch). Below 42 columns the whole tail is
55
+ * dropped and only the spinner + verb remain — which is why
56
+ * {@link COMMAND_CODE_THINKING_PATTERN} keeps the spinner branch as well.
57
+ */
58
+ exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = /esc to interrupt/;
59
+ /**
60
+ * Command Code thinking/processing pattern (Issue #2250).
61
+ *
62
+ * Three measured alternatives:
63
+ *
64
+ * 1. the status row — a spinner glyph, then a single word ending in `…`
65
+ * (`⌘ Planning…`, `· Synthesizing…`; the bundle's verb table is 74
66
+ * single-word entries, all capitalised, but the class is left case-agnostic
67
+ * because the `status` prop is not restricted to that table). Anchored at
68
+ * the start of the line with only leading spaces allowed, so the `·` in the
69
+ * banner's
70
+ * `# models: … · taste-1` row and in the idle footer's
71
+ * `? for shortcuts · taste on` cannot reach it;
72
+ * 2. `✻ Thinking…` — the reasoning block's header WHILE it streams. It becomes
73
+ * `✻ Thought for 1 second [ctrl+o to expand]` once the block is closed, and
74
+ * that past-tense form must NOT match: it sits in the transcript of every
75
+ * finished turn (`turn-version.txt`);
76
+ * 3. {@link COMMAND_CODE_INTERRUPT_HINT_PATTERN}, unanchored, for the same
77
+ * reason claude's pattern carries it.
78
+ */
79
+ exports.COMMAND_CODE_THINKING_PATTERN = new RegExp(`^[^\\S\\n]*[${exports.COMMAND_CODE_SPINNER_CHARS.join('')}][^\\S\\n]+[A-Za-z]+…` +
80
+ `|^[^\\S\\n]*✻ Thinking…` +
81
+ `|${exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN.source}`, 'm');
82
+ /**
83
+ * Command Code assistant-message marker (Issue #2250).
84
+ *
85
+ * `⠶` (U+2836) at column 0, one space, then the reply. Fixed, not a spinner
86
+ * frame: the bundle declares it as `Ct() ? "⠶" : "#"`, i.e. one constant with an
87
+ * ASCII fallback for terminals without unicode support. That answers 親 Issue
88
+ * #2249's 未確定事項 1 — the glyph does not rotate — and it is also why the `#`
89
+ * fallback is deliberately NOT matched here: on such a terminal it is
90
+ * indistinguishable from the `# Command Code v1.40.1` banner rows.
91
+ *
92
+ * Continuation rows of a multi-line reply are indented by two spaces (the marker
93
+ * is one column wide and the body box carries `marginLeft: 1`).
94
+ */
95
+ exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = /^⠶(?:\s|$)/;
96
+ /**
97
+ * Command Code turn-completion marker (Issue #2250).
98
+ *
99
+ * **Advisory only — never require it to declare a turn finished.** Two measured
100
+ * reasons: `WorkedDurationNote` renders nothing for a turn under 1000 ms, and
101
+ * the row belongs to the live turn's UI rather than to the transcript — it is
102
+ * present in `turn-version.txt` and GONE from `dialog-create-file.txt`, which is
103
+ * the same pane one prompt later.
104
+ */
105
+ exports.COMMAND_CODE_COMPLETION_PATTERN = /^[^\S\n]*✻ Worked for /m;
106
+ /**
107
+ * Command Code footer mode indicator (Issue #2250).
108
+ *
109
+ * The row under the composer's closing rule. `? for shortcuts` is only the
110
+ * DEFAULT-mode spelling: the bundle's `ModeIndicator` swaps it for a mode banner
111
+ * in the other four permission modes, so a rule that keys on `? for shortcuts`
112
+ * alone would stop recognising an idle pane the moment the operator pressed
113
+ * shift+tab. All five spellings are listed.
114
+ */
115
+ exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = /\?\s+for\s+shortcuts|»\s+accept edits on|»\s+permission bypass on|»\s+don't-ask on|^[^\S\n]*plan mode\s/m;
116
+ /**
117
+ * Command Code startup banner rows (Issue #2250).
118
+ *
119
+ * The three-row header under the block-art logo — `# Command Code v1.40.1`,
120
+ * `# models: …`, `# <cwd>` — plus the logo itself.
121
+ *
122
+ * The version row matches the tool's own NAME and version together, which is the
123
+ * shape #2247 had to retreat to on claude: a bare `v\d+\.\d+` matched any reply
124
+ * that mentioned a release, and the turn was silently dropped. Nothing here
125
+ * matches a bare version string, a `│` table glyph, or a `Tip:` line.
126
+ */
127
+ exports.COMMAND_CODE_BANNER_PATTERNS = [
128
+ /^#\s+Command Code v\d/, // Name + version, together
129
+ /^#\s+models:\s/, // Model line
130
+ /^#\s+[~/]/, // Working-directory line
131
+ /^[^\S\n]*[█▀▄▌▐]{3,}/, // Block-art logo rows
132
+ ];
133
+ /**
134
+ * Command Code hook notice row (Issue #2250).
135
+ *
136
+ * `◼ Ran 1 session start hook` — emitted into the transcript when SessionStart
137
+ * hooks fire, so it lands ABOVE the first user echo and is chrome, not a reply.
138
+ * Measured on a hooks-enabled 1.40.1 pane while capturing #2249's evidence.
139
+ * Command Code's hook wiring itself is Phase B (#2251); this row only has to be
140
+ * kept out of History.
141
+ */
142
+ exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = /^[^\S\n]*◼\s+Ran\s+\d+\s+.*hooks?\b/;
143
+ /** How far above the last row Command Code's footer row may sit. */
144
+ const COMMAND_CODE_FOOTER_MAX_ROWS = 4;
145
+ /** How many rows the composer may span before the block stops looking like chrome. */
146
+ const COMMAND_CODE_INPUT_BOX_MAX_ROWS = 40;
147
+ /**
148
+ * Locate the start of Command Code's bottom-pinned chrome within a captured pane.
149
+ *
150
+ * Command Code is inline-rendered, so its transcript grows downwards and the
151
+ * last four rows of a settled pane are always the same four (measured on
152
+ * `boot-idle.txt`, `turn-version.txt` and `turn-tool-write.txt`):
153
+ *
154
+ * ```text
155
+ * ──────────────────── ← opening rule
156
+ * ❯ Ask your question… ← composer (one row per wrapped line)
157
+ * ──────────────────── ← closing rule
158
+ * ? for shortcuts · taste on
159
+ * ```
160
+ *
161
+ * Everything from the opening rule down is terminal furniture. Two things go
162
+ * wrong if it reaches the extractor, and both are regressions this repository
163
+ * has already paid for once: the composer's placeholder is drawn with the same
164
+ * `❯ <text>` shape as a transcript echo, so the turn anchor lands on the FOOTER
165
+ * and the reply extracts as empty (#1289); and the footer row is repainted while
166
+ * the pane sits idle, so keeping it re-hashes the saved response on every poll
167
+ * tick (#1268 / #1289).
168
+ *
169
+ * Structural, like the three readers next to it, and for the reason spelled out
170
+ * on `findClaudeChromeStart`: the hint strings belong to Command Code and a rule
171
+ * that matches them stops working the moment they are reworded. `-1` is the
172
+ * honest answer for a frame with no composer at all — while a permission dialog
173
+ * is up the whole block is replaced by the dialog, which the caller resolves on
174
+ * the prompt path instead.
175
+ *
176
+ * @param lines - Captured pane lines, ANSI-bearing or not; trailing blanks tolerated
177
+ * @returns Index of the opening rule, or -1 when no composer block is present
178
+ */
179
+ function findCommandCodeChromeStart(lines) {
180
+ const isSeparator = (line) => /^─{10,}$/.test((0, ansi_1.stripAnsi)(line ?? '').trimEnd());
181
+ let lastRow = lines.length - 1;
182
+ while (lastRow >= 0 && lines[lastRow].trim() === '')
183
+ lastRow--;
184
+ if (lastRow < 0)
185
+ return -1;
186
+ // The closing rule sits just above the mode-indicator row.
187
+ let closingSeparator = -1;
188
+ for (let i = lastRow; i >= Math.max(0, lastRow - COMMAND_CODE_FOOTER_MAX_ROWS); i--) {
189
+ if (isSeparator(lines[i])) {
190
+ closingSeparator = i;
191
+ break;
192
+ }
193
+ }
194
+ if (closingSeparator < 0)
195
+ return -1;
196
+ // Walk up over the composer rows to the opening rule.
197
+ let openingSeparator = -1;
198
+ for (let i = closingSeparator - 1; i >= Math.max(0, closingSeparator - COMMAND_CODE_INPUT_BOX_MAX_ROWS); i--) {
199
+ if (isSeparator(lines[i])) {
200
+ openingSeparator = i;
201
+ break;
202
+ }
203
+ }
204
+ if (openingSeparator < 0)
205
+ return -1;
206
+ // Confirm the fenced rows are the composer and not a reply that happens to
207
+ // contain two horizontal rules.
208
+ if (!/^❯/.test((0, ansi_1.stripAnsi)(lines[openingSeparator + 1] ?? '')))
209
+ return -1;
210
+ return openingSeparator;
211
+ }
212
+ /**
213
+ * Command Code skip patterns for response cleaning (Issue #2250).
214
+ *
215
+ * The dedicated cleaner Issue #2250 item 8 asks for: the startup banner, the
216
+ * hook notice, the reasoning and turn summaries (`✻ Thought for` / `✻ Worked
217
+ * for`), the composer, the rules and the footer.
218
+ *
219
+ * Nothing here touches the reply body or a tool block: `⠶ <text>`, ` WRITE
220
+ * [probe.txt]`, ` └ Created probe.txt (1 line)` and ` 1 │ hello` all
221
+ * survive (`turn-tool-write.txt`). In particular there is no `^\s*│` rule — the
222
+ * one codex carries — because Command Code renders file previews with it.
223
+ */
224
+ exports.COMMAND_CODE_SKIP_PATTERNS = [
225
+ /^─{10,}$/, // Composer rules and the dialog's rule
226
+ /^❯\s*$/, // Bare composer row
227
+ /^❯\s+Ask your question\.\.\./, // Composer placeholder
228
+ exports.COMMAND_CODE_MODE_INDICATOR_PATTERN, // Footer mode indicator
229
+ exports.COMMAND_CODE_THINKING_PATTERN, // Status row
230
+ /^[^\S\n]*✻\s+(?:Worked|Thought)\s+for\b/, // Turn / reasoning summaries
231
+ exports.COMMAND_CODE_HOOK_NOTICE_PATTERN, // "◼ Ran N session start hook"
232
+ ...exports.COMMAND_CODE_BANNER_PATTERNS, // Startup banner
233
+ pasted_text_1.PASTED_TEXT_PATTERN, // [Pasted text #N +XX lines]
234
+ ];