commandmate 0.44.0 → 0.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +331 -335
  3. package/.next/app-path-routes-manifest.json +35 -35
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/react-loadable-manifest.json +3 -3
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/capabilities/route.js +1 -1
  18. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  27. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  28. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  30. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  31. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  33. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  34. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  41. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  42. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/relays/route.js +1 -1
  44. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  45. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/remote/pair/route.js +2 -2
  47. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  50. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  51. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/repositories/clone/route.js +1 -1
  53. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  54. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/repositories/restore/route.js +1 -1
  57. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  58. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/repositories/route.js +1 -1
  60. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  61. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/repositories/scan/route.js +1 -1
  63. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  64. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/sync/route.js +1 -1
  66. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  67. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  70. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  71. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  88. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  91. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  94. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  100. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  103. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  134. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  137. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  140. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -2
  149. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  150. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -2
  152. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  153. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  156. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  160. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  163. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -3
  172. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  188. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/route.js +1 -1
  210. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  213. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  215. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  216. package/.next/server/app/page_client-reference-manifest.js +1 -1
  217. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  220. package/.next/server/app/sessions/page.js +1 -1
  221. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  223. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  224. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  225. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/worktrees/[id]/page.js +7 -7
  227. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  229. package/.next/server/app-paths-manifest.json +35 -35
  230. package/.next/server/chunks/1068.js +1 -1
  231. package/.next/server/chunks/1210.js +1 -1
  232. package/.next/server/chunks/2119.js +1 -1
  233. package/.next/server/chunks/2404.js +1 -1
  234. package/.next/server/chunks/2445.js +1 -1
  235. package/.next/server/chunks/2460.js +1 -0
  236. package/.next/server/chunks/2816.js +1 -1
  237. package/.next/server/chunks/2908.js +1 -0
  238. package/.next/server/chunks/4372.js +5 -0
  239. package/.next/server/chunks/5595.js +1 -0
  240. package/.next/server/chunks/5845.js +1 -0
  241. package/.next/server/chunks/6130.js +1 -1
  242. package/.next/server/chunks/6401.js +1 -1
  243. package/.next/server/chunks/6474.js +3 -3
  244. package/.next/server/chunks/7685.js +1 -1
  245. package/.next/server/chunks/7905.js +1 -1
  246. package/.next/server/chunks/850.js +1 -0
  247. package/.next/server/chunks/8543.js +1 -1
  248. package/.next/server/chunks/8581.js +2 -2
  249. package/.next/server/chunks/8728.js +2 -2
  250. package/.next/server/chunks/9130.js +1 -5
  251. package/.next/server/chunks/9390.js +1 -2
  252. package/.next/server/chunks/9627.js +1 -1
  253. package/.next/server/chunks/967.js +1 -1
  254. package/.next/server/chunks/9731.js +3 -3
  255. package/.next/server/chunks/9798.js +2 -0
  256. package/.next/server/chunks/9882.js +3 -3
  257. package/.next/server/middleware-build-manifest.js +1 -1
  258. package/.next/server/middleware-manifest.json +5 -5
  259. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  260. package/.next/server/pages/500.html +1 -1
  261. package/.next/server/pages-manifest.json +1 -1
  262. package/.next/server/server-reference-manifest.json +1 -1
  263. package/.next/static/chunks/{2407-340774f1a24f2b45.js → 2407-051f6f84226a9f2c.js} +1 -1
  264. package/.next/static/chunks/344-e1cefd00787060e4.js +1 -0
  265. package/.next/static/chunks/3922.f45dcfc1e7da552a.js +1 -0
  266. package/.next/static/chunks/591-539fec878c9dec5e.js +1 -0
  267. package/.next/static/chunks/6654-ac431270fac1a283.js +1 -0
  268. package/.next/static/chunks/{9619-84aced0846cbe3ac.js → 9619-6c17a271f7f98fbb.js} +1 -1
  269. package/.next/static/chunks/998-2eb5883186abd0bd.js +1 -0
  270. package/.next/static/chunks/app/layout-9da1ab602bcb3051.js +1 -0
  271. package/.next/static/chunks/app/more/{page-30057cf1e0762ad2.js → page-87c84987b2765213.js} +1 -1
  272. package/.next/static/chunks/app/{page-8483ba400af011f5.js → page-1b820c421db48c2c.js} +1 -1
  273. package/.next/static/chunks/app/review/page-95f749caae382f46.js +1 -0
  274. package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +1 -0
  275. package/.next/static/chunks/app/worktrees/[id]/page-2a81397e60f17e63.js +1 -0
  276. package/.next/static/chunks/{webpack-49ade0526854dd4e.js → webpack-021f0741f22dd16a.js} +1 -1
  277. package/.next/trace +13 -13
  278. package/README.md +72 -25
  279. package/dist/cli/commands/capture.d.ts.map +1 -1
  280. package/dist/cli/commands/capture.js +7 -8
  281. package/dist/cli/commands/remote.d.ts +10 -0
  282. package/dist/cli/commands/remote.d.ts.map +1 -1
  283. package/dist/cli/commands/remote.js +17 -1
  284. package/dist/cli/commands/wait.d.ts.map +1 -1
  285. package/dist/cli/commands/wait.js +47 -2
  286. package/dist/cli/docs/setup-guide.d.ts +1 -1
  287. package/dist/cli/docs/setup-guide.d.ts.map +1 -1
  288. package/dist/cli/docs/setup-guide.js +2 -0
  289. package/dist/cli/types/api-responses.d.ts +25 -0
  290. package/dist/cli/types/api-responses.d.ts.map +1 -1
  291. package/dist/lib/detection/status-reason.d.ts +17 -0
  292. package/dist/lib/detection/status-reason.d.ts.map +1 -1
  293. package/dist/lib/detection/status-reason.js +17 -0
  294. package/dist/lib/session/prompt-view.d.ts +205 -0
  295. package/dist/lib/session/prompt-view.d.ts.map +1 -0
  296. package/dist/lib/session/prompt-view.js +267 -0
  297. package/dist/server/locales/en/worktree.json +13 -1
  298. package/dist/server/locales/ja/worktree.json +13 -1
  299. package/dist/server/server.js +5 -3
  300. package/dist/server/src/config/session-starting-config.js +75 -0
  301. package/dist/server/src/lib/auto-yes-lifecycle.js +133 -0
  302. package/dist/server/src/lib/auto-yes-poller.js +19 -4
  303. package/dist/server/src/lib/cli-tools/antigravity.js +3 -2
  304. package/dist/server/src/lib/cli-tools/base.js +15 -1
  305. package/dist/server/src/lib/cli-tools/codex.js +3 -2
  306. package/dist/server/src/lib/cli-tools/command-code.js +3 -2
  307. package/dist/server/src/lib/cli-tools/copilot.js +2 -1
  308. package/dist/server/src/lib/cli-tools/gemini.js +2 -1
  309. package/dist/server/src/lib/cli-tools/liveness-spec.js +27 -9
  310. package/dist/server/src/lib/cli-tools/opencode-v2.js +2 -1
  311. package/dist/server/src/lib/cli-tools/opencode.js +2 -1
  312. package/dist/server/src/lib/cli-tools/vibe-local.js +2 -1
  313. package/dist/server/src/lib/detection/cli-patterns.js +38 -20
  314. package/dist/server/src/lib/detection/status-detector.js +1 -1
  315. package/dist/server/src/lib/detection/status-reason.js +17 -0
  316. package/dist/server/src/lib/detection/tool-liveness.js +3 -1
  317. package/dist/server/src/lib/detection/tools/antigravity/detect.js +7 -31
  318. package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
  319. package/dist/server/src/lib/detection/tools/claude/detect.js +8 -3
  320. package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
  321. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
  322. package/dist/server/src/lib/detection/tools/codex/detect.js +26 -46
  323. package/dist/server/src/lib/detection/tools/codex/live-region.js +73 -0
  324. package/dist/server/src/lib/detection/tools/command-code/detect.js +11 -0
  325. package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
  326. package/dist/server/src/lib/detection/tools/copilot/detect.js +3 -0
  327. package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
  328. package/dist/server/src/lib/detection/tools/frame.js +36 -2
  329. package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
  330. package/dist/server/src/lib/detection/tools/live-region.js +204 -0
  331. package/dist/server/src/lib/detection/tools/opencode/detect.js +3 -0
  332. package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
  333. package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
  334. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +3 -0
  335. package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
  336. package/dist/server/src/lib/detection/tools/run-detection.js +25 -3
  337. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
  338. package/dist/server/src/lib/polling/response-checker.js +25 -20
  339. package/dist/server/src/lib/prompt-answer-sender.js +1 -1
  340. package/dist/server/src/lib/realtime/terminal-broadcast.js +8 -0
  341. package/dist/server/src/lib/relay/relay-delivery.js +3 -0
  342. package/dist/server/src/lib/relay/relay-triggers.js +9 -0
  343. package/dist/server/src/lib/resource-cleanup.js +6 -4
  344. package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -0
  345. package/dist/server/src/lib/session/claude-session.js +7 -1
  346. package/dist/server/src/lib/session/current-output-builder.js +53 -21
  347. package/dist/server/src/lib/session/launch-screen.js +57 -0
  348. package/dist/server/src/lib/session/prompt-view.js +267 -0
  349. package/dist/server/src/lib/session/prompt-waiting-composition.js +34 -0
  350. package/dist/server/src/lib/session/session-starting-state.js +236 -0
  351. package/dist/server/src/lib/session/waiting-kind.js +3 -0
  352. package/dist/server/src/lib/session-cleanup.js +5 -3
  353. package/package.json +1 -1
  354. package/release-notes/0.44.1.json +54 -0
  355. package/release-notes/0.44.2.json +33 -0
  356. package/.next/server/chunks/434.js +0 -1
  357. package/.next/server/chunks/5775.js +0 -1
  358. package/.next/server/chunks/650.js +0 -1
  359. package/.next/server/chunks/6661.js +0 -1
  360. package/.next/server/chunks/8583.js +0 -1
  361. package/.next/server/chunks/964.js +0 -1
  362. package/.next/static/chunks/344-6f9fc1f38f01a839.js +0 -1
  363. package/.next/static/chunks/3922.8e79fc89f593280b.js +0 -1
  364. package/.next/static/chunks/5449-6cb80bab2bd06b79.js +0 -1
  365. package/.next/static/chunks/591-0a45801e83f26f24.js +0 -1
  366. package/.next/static/chunks/6966-bb854d1145783a64.js +0 -1
  367. package/.next/static/chunks/app/layout-0fc249fb7de75a27.js +0 -1
  368. package/.next/static/chunks/app/review/page-ff9efae3f86eb840.js +0 -1
  369. package/.next/static/chunks/app/sessions/page-55297155e7bf01b9.js +0 -1
  370. package/.next/static/chunks/app/worktrees/[id]/page-d2103e0c25be83c8.js +0 -1
  371. /package/.next/static/{wu7SUiHTirFcrpo5teyZ3 → QlCqLjorauDDBXPa-C7TK}/_buildManifest.js +0 -0
  372. /package/.next/static/{wu7SUiHTirFcrpo5teyZ3 → QlCqLjorauDDBXPa-C7TK}/_ssgManifest.js +0 -0
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ /**
3
+ * Which agent sessions are still starting (Issue #3179).
4
+ *
5
+ * `isRunning` is tmux's `has-session`, and every tool's `launchSession` creates
6
+ * the tmux session BEFORE it types the launch command — so from that moment the
7
+ * screen saw a "running" session whose pane held nothing but a shell prompt and
8
+ * the launch line. That frame matches no tool's rule, falls to the detector's
9
+ * floor (`running` / `default`) and raised `isUnclassifiedActive`, which drew the
10
+ * Navigate pad; the trust dialog the launch answers by itself was drawn as a
11
+ * selection list or a prompt; and the composer's stop button lit up red.
12
+ *
13
+ * This module is the missing fact: "a launch of this (worktree, tool, instance)
14
+ * is in progress, and began at T". It is written by `beginAgentSession` (every
15
+ * tool's creation path goes through it) and cleared by `BaseCLITool.startSession`
16
+ * in a `finally`, success and failure alike — which also covers the
17
+ * `relaunchIfToolExited` path, because that reuses `startSession`.
18
+ *
19
+ * ## Whose record it is (Issue #3195)
20
+ *
21
+ * The key is (worktree, tool, instance), and a key outlives a launch: kill a
22
+ * launch mid-way and start the instance again, and the killed `startSession`
23
+ * is still in its readiness wait (agy: up to 30 s) while the new one writes
24
+ * the same key. When the old one finished, its `finally` deleted the new
25
+ * launch's record and the new "starting" display ended early.
26
+ *
27
+ * So every launch carries a token. `startSession` issues one
28
+ * ({@link issueSessionStartingToken}) and runs `launchSession` inside
29
+ * {@link runWithSessionStartingToken}; `markSessionStarting`, reached from
30
+ * `beginAgentSession` anywhere below that call, picks it up from the
31
+ * `AsyncLocalStorage`, and the `finally` clears with it — a record written
32
+ * under another token is left alone. A second mark under the same token (codex's
33
+ * `relaunchIntoSamePane`) rewrites the same launch's record, so the `finally`
34
+ * still clears it. A mark never replaces a record of a LATER launch (tokens
35
+ * only grow), so a killed launch that re-marks on its way out cannot take the
36
+ * key back from its successor. `clearSessionStarting` without a token — the
37
+ * kill-session route — drops the record whoever wrote it.
38
+ *
39
+ * ## The escape hatches
40
+ *
41
+ * A starting display that never ends would hide a stuck launch, which is worse
42
+ * than the defect it fixes. So the record stops answering when:
43
+ *
44
+ * - the launch returned or threw (`clearSessionStarting`);
45
+ * - it is older than the tool's readiness wait plus a grace period
46
+ * (`getSessionStartingMaxMs`) — several tools only log when that wait runs
47
+ * out and carry on, so time is the only signal there is;
48
+ * - a dialog has stayed on screen for longer than the launch takes to answer
49
+ * the ones it knows about (`SESSION_STARTING_PROMPT_GRACE_MS`) — a login or
50
+ * an unknown dialog, which a human has to see. Once released this way the
51
+ * record stays released for the rest of the launch, so the display does not
52
+ * flicker back when the dialog is answered.
53
+ *
54
+ * A server restart drops the map, and the screen shows the raw pane — harmless.
55
+ *
56
+ * In memory and on `globalThis` for the reason every shared map in this
57
+ * subsystem is (#1736): the writer (`POST /send`) and the readers
58
+ * (`/current-output`, the WebSocket streamer, `GET /api/worktrees`) are
59
+ * different route bundles under `next dev`.
60
+ *
61
+ * @module lib/session/session-starting-state
62
+ */
63
+ Object.defineProperty(exports, "__esModule", { value: true });
64
+ exports.issueSessionStartingToken = issueSessionStartingToken;
65
+ exports.runWithSessionStartingToken = runWithSessionStartingToken;
66
+ exports.markSessionStarting = markSessionStarting;
67
+ exports.clearSessionStarting = clearSessionStarting;
68
+ exports.getSessionStartingSince = getSessionStartingSince;
69
+ exports.observeSessionStartingFrame = observeSessionStartingFrame;
70
+ exports.startingStatusResult = startingStatusResult;
71
+ exports.resetSessionStartingState = resetSessionStartingState;
72
+ const node_async_hooks_1 = require("node:async_hooks");
73
+ const auto_yes_state_1 = require("../../lib/auto-yes-state");
74
+ const status_reason_1 = require("../../lib/detection/status-reason");
75
+ const session_starting_config_1 = require("../../config/session-starting-config");
76
+ const records = globalThis.__sessionStartingRecords ??
77
+ (globalThis.__sessionStartingRecords = new Map());
78
+ /** On `globalThis` like the map, so tokens keep growing across route bundles. */
79
+ const tokenSeq = globalThis.__sessionStartingTokenSeq ??
80
+ (globalThis.__sessionStartingTokenSeq = { last: 0 });
81
+ const tokenScope = globalThis.__sessionStartingTokenScope ??
82
+ (globalThis.__sessionStartingTokenScope = new node_async_hooks_1.AsyncLocalStorage());
83
+ /**
84
+ * A token for a launch about to begin (Issue #3195). Strictly greater than
85
+ * every token issued before it.
86
+ */
87
+ function issueSessionStartingToken() {
88
+ tokenSeq.last += 1;
89
+ return tokenSeq.last;
90
+ }
91
+ /**
92
+ * Run a launch under its token, so a `markSessionStarting` anywhere below it
93
+ * records the launch as this token's (Issue #3195).
94
+ *
95
+ * @param token - From {@link issueSessionStartingToken}
96
+ * @param fn - The launch
97
+ */
98
+ function runWithSessionStartingToken(token, fn) {
99
+ return tokenScope.run(token, fn);
100
+ }
101
+ /**
102
+ * Record that a launch of this instance began.
103
+ *
104
+ * Under the launch's token: the one {@link runWithSessionStartingToken} is
105
+ * running, or a fresh one outside any. A record of a later launch is kept —
106
+ * this call is then a launch that was already superseded (Issue #3195).
107
+ *
108
+ * @param worktreeId - Worktree ID
109
+ * @param cliToolId - Tool being launched
110
+ * @param instanceId - Instance (defaults to the primary)
111
+ * @param at - Epoch ms; defaults to now
112
+ * @returns The token the record was written under, or null when it was not written
113
+ */
114
+ function markSessionStarting(worktreeId, cliToolId, instanceId, at = Date.now()) {
115
+ const token = tokenScope.getStore() ?? issueSessionStartingToken();
116
+ const key = (0, auto_yes_state_1.buildCompositeKey)(worktreeId, cliToolId, instanceId);
117
+ const existing = records.get(key);
118
+ if (existing !== undefined && existing.token > token)
119
+ return null;
120
+ records.set(key, {
121
+ cliToolId,
122
+ token,
123
+ since: at,
124
+ promptSeenAt: null,
125
+ released: false,
126
+ });
127
+ return token;
128
+ }
129
+ /**
130
+ * Forget the launch of this instance. Idempotent, and never throws: it runs in
131
+ * `startSession`'s `finally`, where an exception would replace the launch's own
132
+ * error — an id `buildCompositeKey` refuses could never have been recorded.
133
+ *
134
+ * With a token, only that launch's record is dropped — a launch that was
135
+ * killed and replaced must not end its successor's display (Issue #3195).
136
+ * Without one (kill-session), the record is dropped whoever wrote it.
137
+ *
138
+ * @param worktreeId - Worktree ID
139
+ * @param cliToolId - Tool that was launched
140
+ * @param instanceId - Instance (defaults to the primary)
141
+ * @param token - The launch's token; omit to drop any launch's record
142
+ */
143
+ function clearSessionStarting(worktreeId, cliToolId, instanceId, token) {
144
+ try {
145
+ const key = (0, auto_yes_state_1.buildCompositeKey)(worktreeId, cliToolId, instanceId);
146
+ if (token !== undefined && records.get(key)?.token !== token)
147
+ return;
148
+ records.delete(key);
149
+ }
150
+ catch {
151
+ // Nothing was recorded under an id that does not compose into a key.
152
+ }
153
+ }
154
+ /** The record's start time while it still answers, else null (dropping an expired one). */
155
+ function activeSince(key, record, now) {
156
+ if (record === undefined || record.released)
157
+ return null;
158
+ if (now - record.since > (0, session_starting_config_1.getSessionStartingMaxMs)(record.cliToolId)) {
159
+ records.delete(key);
160
+ return null;
161
+ }
162
+ return record.since;
163
+ }
164
+ /**
165
+ * When this instance's launch began, or null when it is not starting (no
166
+ * launch, already finished, past its time bound, or released by a dialog).
167
+ *
168
+ * Read-only apart from dropping an expired record.
169
+ *
170
+ * @param worktreeId - Worktree ID
171
+ * @param cliToolId - Tool
172
+ * @param instanceId - Instance (defaults to the primary)
173
+ * @param now - Epoch ms; defaults to now
174
+ */
175
+ function getSessionStartingSince(worktreeId, cliToolId, instanceId, now = Date.now()) {
176
+ const key = (0, auto_yes_state_1.buildCompositeKey)(worktreeId, cliToolId, instanceId);
177
+ return activeSince(key, records.get(key), now);
178
+ }
179
+ /**
180
+ * {@link getSessionStartingSince}, fed what the current frame shows.
181
+ *
182
+ * A dialog on screen (a prompt, a selection list, any `waiting` verdict) starts
183
+ * a dwell; one that outlives {@link SESSION_STARTING_PROMPT_GRACE_MS} is a
184
+ * dialog the launch is not going to answer, and the record is released so the
185
+ * screen shows it. A frame with no dialog resets the dwell.
186
+ *
187
+ * @param worktreeId - Worktree ID
188
+ * @param cliToolId - Tool
189
+ * @param instanceId - Instance (defaults to the primary)
190
+ * @param dialogVisible - Whether the frame shows a dialog
191
+ * @param now - Epoch ms; defaults to now
192
+ * @returns The launch's start time while it is still shown as starting, else null
193
+ */
194
+ function observeSessionStartingFrame(worktreeId, cliToolId, instanceId, dialogVisible, now = Date.now()) {
195
+ const key = (0, auto_yes_state_1.buildCompositeKey)(worktreeId, cliToolId, instanceId);
196
+ const record = records.get(key);
197
+ const since = activeSince(key, record, now);
198
+ if (since === null || record === undefined)
199
+ return null;
200
+ if (!dialogVisible) {
201
+ record.promptSeenAt = null;
202
+ return since;
203
+ }
204
+ record.promptSeenAt ??= now;
205
+ if (now - record.promptSeenAt >= session_starting_config_1.SESSION_STARTING_PROMPT_GRACE_MS) {
206
+ record.released = true;
207
+ return null;
208
+ }
209
+ return since;
210
+ }
211
+ /**
212
+ * The verdict published for a frame under a launch in progress (Issue #3179).
213
+ *
214
+ * `running` with the `starting` reason: the session exists and is busy, and no
215
+ * dialog, selection list or unclassified overlay is on it for anybody to drive.
216
+ * `positive` because the launch record is an observation this server made, not
217
+ * a pattern that failed to match. The raw verdict is not consulted beyond its
218
+ * `confidence`; reading anything else off it is what this replaces.
219
+ *
220
+ * @param raw - What the detector said about the frame
221
+ * @returns The neutral verdict for the same frame
222
+ */
223
+ function startingStatusResult(raw) {
224
+ return {
225
+ ...raw,
226
+ status: 'running',
227
+ reason: status_reason_1.STATUS_REASON.STARTING,
228
+ hasActivePrompt: false,
229
+ promptDetection: { ...raw.promptDetection, isPrompt: false, promptData: undefined },
230
+ evidence: 'positive',
231
+ };
232
+ }
233
+ /** Drop every record. For tests. */
234
+ function resetSessionStartingState() {
235
+ records.clear();
236
+ }
@@ -33,6 +33,7 @@ const status_detector_1 = require("../../lib/detection/status-detector");
33
33
  * |--------------------------------------------------|------------------|
34
34
  * | not waiting | `null` |
35
35
  * | `hasActivePrompt` | `'prompt'` |
36
+ * | `apiAnswerable` (#3184: answered over the agent's API) | `'prompt'` |
36
37
  * | scraper `waiting` + a {@link SELECTION_LIST_REASONS} reason | `'menu'` |
37
38
  * | anything else that is still waiting | `'unclassified'` |
38
39
  *
@@ -52,6 +53,8 @@ function deriveWaitingKind(input) {
52
53
  return null;
53
54
  if (input.hasActivePrompt)
54
55
  return 'prompt';
56
+ if (input.apiAnswerable === true)
57
+ return 'prompt';
55
58
  if (input.scraperStatus === 'waiting' && status_detector_1.SELECTION_LIST_REASONS.has(input.scraperReason)) {
56
59
  return 'menu';
57
60
  }
@@ -16,7 +16,7 @@ exports.createOwnedSessionKiller = createOwnedSessionKiller;
16
16
  exports.cleanupGlobalSessions = cleanupGlobalSessions;
17
17
  exports.syncWorktreesAndCleanup = syncWorktreesAndCleanup;
18
18
  const response_poller_1 = require("./polling/response-poller");
19
- const auto_yes_manager_1 = require("./polling/auto-yes-manager");
19
+ const auto_yes_lifecycle_1 = require("./auto-yes-lifecycle");
20
20
  const schedule_manager_1 = require("./schedule-manager");
21
21
  const timer_manager_1 = require("./timer-manager");
22
22
  const global_session_poller_1 = require("./polling/global-session-poller");
@@ -87,7 +87,9 @@ async function cleanupWorktreeSessions(worktreeId, killSessionFn) {
87
87
  // 2. Stop auto-yes-poller for all agents (Issue #138, #525: byWorktree helper)
88
88
  // Order: stopAutoYesPollingByWorktree -> deleteAutoYesStateByWorktree -> stopScheduleForWorktree (Issue #404)
89
89
  try {
90
- (0, auto_yes_manager_1.stopAutoYesPollingByWorktree)(worktreeId);
90
+ // Issue #3184: the `worktree-deleted` row of the Auto-Yes lifecycle table,
91
+ // in its two halves so the two failures stay reported apart.
92
+ (0, auto_yes_lifecycle_1.stopAutoYesPollersFor)('worktree-deleted', { scope: 'worktree', worktreeId });
91
93
  result.pollersStopped.push('auto-yes-poller');
92
94
  }
93
95
  catch (error) {
@@ -97,7 +99,7 @@ async function cleanupWorktreeSessions(worktreeId, killSessionFn) {
97
99
  }
98
100
  // 3. Delete auto-yes state for all agents (Issue #404, #525: byWorktree helper)
99
101
  try {
100
- (0, auto_yes_manager_1.deleteAutoYesStateByWorktree)(worktreeId);
102
+ (0, auto_yes_lifecycle_1.applyAutoYesStateRule)('worktree-deleted', { scope: 'worktree', worktreeId });
101
103
  result.pollersStopped.push('auto-yes-state');
102
104
  }
103
105
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.44.0",
3
+ "version": "0.44.2",
4
4
  "description": "No long blocks of time? Run an AI team from your phone. Git worktree sessions, task contracts and verification gates for Claude Code, Codex, Gemini CLI, Copilot, OpenCode, Antigravity and Command Code.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -0,0 +1,54 @@
1
+ {
2
+ "version": "0.44.1",
3
+ "date": "2026-10-04",
4
+ "highlight": {
5
+ "ja": "エージェントの起動中は、途中の画面の代わりに「起動中…」と経過時間を表示するようになりました。",
6
+ "en": "While an agent is starting, the screen now shows that it is starting and how long it has taken, instead of a half-drawn session."
7
+ },
8
+ "added": [
9
+ {
10
+ "ja": "エージェントの起動中は「起動中…」の案内を出し、5 秒を超えると経過時間も表示するようになりました。",
11
+ "en": "While an agent starts, a starting notice is shown, with the elapsed time after five seconds."
12
+ }
13
+ ],
14
+ "improved": [
15
+ {
16
+ "ja": "エージェントを起動するときに打ち込むコマンドの行が、ターミナルに残らなくなりました。",
17
+ "en": "The command line typed to launch an agent no longer stays in the terminal."
18
+ },
19
+ {
20
+ "ja": "remote コマンドで、ペアリングの期限の時刻と残り時間が QR コードの下に表示されるようになりました。",
21
+ "en": "The remote command now shows when the pairing expires and how much time is left, under the QR code."
22
+ }
23
+ ],
24
+ "fixed": [
25
+ {
26
+ "ja": "インスタンスを止めると、そのインスタンスの Auto Yes も切れるようにしました。",
27
+ "en": "Stopping an instance now also turns off its Auto Yes."
28
+ },
29
+ {
30
+ "ja": "シェルのプロンプトが長い環境で、Claude を終了した後に次の送信が失敗する問題を直しました。",
31
+ "en": "Fixed the next message failing after exiting Claude when the shell prompt is long."
32
+ },
33
+ {
34
+ "ja": "エージェントの起動に 30 秒以上かかったとき、画面が送信失敗と表示する問題を直しました。",
35
+ "en": "Fixed the screen reporting a failed send when an agent took more than 30 seconds to start."
36
+ },
37
+ {
38
+ "ja": "起動中に止めてすぐ起動し直すと、起動中の案内が早く消える問題を直しました。",
39
+ "en": "Fixed the starting notice disappearing early when an agent was stopped and started again right away."
40
+ },
41
+ {
42
+ "ja": "OpenCode V2 の承認で、選択肢が出ているのに「選択肢を読み取れませんでした」と表示される問題を直しました。",
43
+ "en": "Fixed OpenCode V2 approvals saying the options could not be read while the options were shown."
44
+ },
45
+ {
46
+ "ja": "ログイン画面を開いている間に、エラーになる通信をくり返していた問題を直しました。",
47
+ "en": "Fixed the login page repeatedly making requests that failed."
48
+ },
49
+ {
50
+ "ja": "期限切れのペアリングを、remote status が使用済みと表示する問題を直しました。",
51
+ "en": "Fixed remote status showing an expired pairing as used."
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": "0.44.2",
3
+ "date": "2026-10-04",
4
+ "highlight": {
5
+ "ja": "会話の中に引用されたダイアログの文字を、本物の確認画面と取り違えないようになりました。",
6
+ "en": "Dialog text quoted inside a conversation is no longer mistaken for a real prompt."
7
+ },
8
+ "added": [],
9
+ "improved": [
10
+ {
11
+ "ja": "承認ダイアログの見出しと選択肢が、PC・スマホ・チャット画面で同じ内容で表示されるようになりました。",
12
+ "en": "Approval dialogs now show the same heading and choices on the PC view, the phone view and the chat view."
13
+ },
14
+ {
15
+ "ja": "画面からではなく返答で答える質問は、「ターミナルで確認」ではなく返答待ちとして通知されるようになりました。",
16
+ "en": "Questions answered by reply rather than on screen are now notified as waiting for a reply, not as a terminal check."
17
+ }
18
+ ],
19
+ "fixed": [
20
+ {
21
+ "ja": "会話に引用されたダイアログを、状態表示や Auto Yes が本物の確認画面と読み違える問題を直しました。",
22
+ "en": "Fixed the status display and Auto Yes reading a dialog quoted in the conversation as a real prompt."
23
+ },
24
+ {
25
+ "ja": "チャット画面で、OpenCode V2 の承認が「選択肢を読み取れませんでした」と表示される問題を直しました。",
26
+ "en": "Fixed OpenCode V2 approvals in the chat view saying the options could not be read."
27
+ },
28
+ {
29
+ "ja": "インスタンスを削除すると、そのインスタンスの Auto Yes も消えるようにしました。",
30
+ "en": "Removing an instance now also clears its Auto Yes."
31
+ }
32
+ ]
33
+ }
@@ -1 +0,0 @@
1
- "use strict";exports.id=434,exports.ids=[434,964,8583],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},7329:(a,b,c)=>{c.d(b,{Hv:()=>m,W3:()=>k,uK:()=>l});var d=c(90787),e=c(52660),f=c(18201),g=c(23854),h=c(49798),i=c(67164);let j=(0,c(72626).h)("relay-service");function k(a,b){for(let c of[b.from.worktreeId,b.to.worktreeId])if(!(0,h.r)(a,c))return{ok:!1,refusal:{code:"RELAY_WORKTREE_NOT_FOUND",message:`Worktree '${c}' not found`,worktreeId:c}};let c=(0,g.$G)({from:b.from,to:b.to,parentHops:function(a,b){try{let g=(0,h.S)(a,b),i=(0,e.getMessages)(a,b.worktreeId,{limit:5,limitUnit:"pairs",cliToolId:g.cliToolId,instanceId:b.instanceId,matchResolvedInstance:!0}).filter(a=>"user"===a.role),j=i.findIndex(a=>"relay"===a.messageType);if(-1===j)return null;let k=i[j];for(let a=0;a<j;a+=1){var c;if(c=i[a],c.timestamp.getTime()<k.timestamp.getTime()||(0,f.pk)(c.content)!==(0,f.pk)(k.content))return null}let l=(0,e.parseRelayRequestId)(k.requestId);if(!l)return null;return(0,d.Ip)(a,l)?.hops??null}catch(a){return j.warn("relay-parent-lookup-failed",{worktreeId:b.worktreeId,instanceId:b.instanceId,error:a instanceof Error?a.message:String(a)}),null}}(a,b.from),allowRelayChain:!0===b.allowRelayChain,openBetween:(0,d.Oz)(a,b.from,b.to)});if((0,g.Qe)(c))return{ok:!1,refusal:c};let k=b.now??Date.now(),l=(0,d.CR)(a,{from:b.from,to:b.to,hops:c.hops,expiresAt:k+(0,g.AL)(b.ttlMs),now:k});return j.info("relay-opened",{relayId:l.id,from:`${l.from.worktreeId}/${l.from.instanceId}`,to:`${l.to.worktreeId}/${l.to.instanceId}`,hops:l.hops}),(0,i._)(a,l.id,"requested",(0,h.S)(a,l.from),(0,h.S)(a,l.to),k),{ok:!0,relay:l}}function l(a,b,c=Date.now()){let e=(0,d.Ip)(a,b);return e?(0,d.m_)(a,b,c)?(j.info("relay-cancelled",{relayId:b}),{ok:!0,relay:(0,d.Ip)(a,b)??e}):{ok:!1,reason:"already_closed",relay:e}:{ok:!1,reason:"not_found",relay:null}}function m(a,b){return(0,d.M4)(a,b)}},15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},18201:(a,b,c)=>{c.d(b,{Ce:()=>g,pk:()=>e});let d=(0,c(72626).h)("lib/history/user-turn-recorder");function e(a){return a.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/[ \t ]+$/u,"")).join("\n").trim()}function f(a){return{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId}}async function g(a,b,h,i,j={}){let k=a.instanceId??a.cliToolId,l=e(h);if(0===b.length||0===l.length)return{outcome:"skipped",messageId:null,timestampMs:null};try{let[{getDbInstance:g},m,{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,52660)),Promise.resolve().then(c.bind(c,43015))]),o=g(),p=m.findMessageByRequestId(o,a.worktreeId,b);if(p)return{outcome:"already-recorded",messageId:p.id,timestampMs:p.timestamp.getTime()};let q=i>0?i:Date.now(),r=function(a,b,c,g,h,i,j,k){var l,m,n;let o=Math.min(j-12e4,k.adoptionFromMs??1/0),p=(l=a.findUnkeyedUserMessages(b,{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:g,fromMs:o,toMs:j+12e4,includeRelayDelivered:!0}),m=i,n=j,l.filter(a=>e(a.content)===m).sort((a,b)=>Math.abs(a.timestamp.getTime()-n)-Math.abs(b.timestamp.getTime()-n)));for(let e of p)if(!e.requestId&&a.setMessageRequestId(b,e.id,h))return d.info("user-turn-adopted",{...f(c),requestId:h,messageId:e.id,driftMs:e.timestamp.getTime()-j}),{outcome:"adopted",messageId:e.id,timestampMs:e.timestamp.getTime()};let q=p.find(a=>a.requestId);return q?(d.info("user-turn-already-relayed",{...f(c),requestId:h,messageId:q.id,relayRequestId:q.requestId??null,driftMs:q.timestamp.getTime()-j}),{outcome:"already-recorded",messageId:q.id,timestampMs:q.timestamp.getTime()}):null}(m,o,a,k,b,l,q,j);if(r)return r;let s=m.createMessage(o,{worktreeId:a.worktreeId,role:"user",content:h,messageType:"normal",timestamp:new Date(q),cliToolId:a.cliToolId,instanceId:k,requestId:b});return n("message",{worktreeId:a.worktreeId,message:s}),d.info("user-turn-recorded",{...f(a),requestId:b,contentLength:h.length}),{outcome:"inserted",messageId:s.id,timestampMs:q}}catch(c){return d.error("user-turn-record-failed",{...f(a),requestId:b,error:c instanceof Error?c.message:String(c)}),{outcome:"failed",messageId:null,timestampMs:null}}}},40964:(a,b,c)=>{c.d(b,{s4:()=>k,NN:()=>n,Ze:()=>l,mf:()=>m});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}var g=c(15608);let h="mcbd-",i=/^[0-9a-f]{8}$/,j=[...d.XH].sort((a,b)=>b.length-a.length);function k(){return globalThis.__cmTmuxSessionNamespace??null}function l(a,b,c,e){var g=null===a?h:`${h}${a}-`;let i=`${g}${b}-${c}`;if(!e||e===b)return f(i),i;let j=(0,d.pL)(e,b),k=j?`${i}-${j}`:i;return f(k),k}function m(a,b,c){let d=k(),e=l(d,a,b,c);return null===d?e:(0,g.mc)(e)??e}function n(a){if(!a.startsWith(h))return null;let b=a.slice(h.length),c=null,d=b.indexOf("-");d>0&&i.test(b.slice(0,d))&&(c=b.slice(0,d),b=b.slice(d+1));let e=j.find(a=>b.startsWith(`${a}-`));if(!e)return null;let f=b.slice(e.length+1);return""===f?null:{namespace:c,cliToolId:e,rest:f}}},83530:(a,b,c)=>{c.d(b,{FH:()=>l,fV:()=>k,iK:()=>i,y4:()=>h});var d=c(73753),e=c(28274),f=c(15194);let g="claude",h="instance_tool_conflict";function i(a,b,c={}){let{instanceId:d,requestedCliTool:g}=c;if(!d)return g?{cliToolId:g,instanceId:g,resolvedBy:"explicit"}:j(a,b,void 0);let h=(0,e.BN)(a,b,d);if(h&&(0,f.hR)(h.cliTool)){let a={cliToolId:h.cliTool,instanceId:d,resolvedBy:"roster"};return g&&g!==h.cliTool&&(a.conflict={instanceId:d,rosterCliTool:h.cliTool,requestedCliTool:g}),a}return g?(0,f.hR)(d)&&g!==d?{cliToolId:d,instanceId:d,resolvedBy:"primary",conflict:{instanceId:d,rosterCliTool:d,requestedCliTool:g,primaryAnchor:!0}}:{cliToolId:g,instanceId:d,resolvedBy:"explicit"}:(0,f.hR)(d)?{cliToolId:d,instanceId:d,resolvedBy:"primary"}:j(a,b,d)}function j(a,b,c){let e=(0,d.getWorktreeById)(a,b),h=e?.cliToolId;return h&&(0,f.hR)(h)?{cliToolId:h,instanceId:c??h,resolvedBy:"worktree-default"}:{cliToolId:g,instanceId:c??g,resolvedBy:"fallback"}}function k(a,b,c={}){let d=i(a,b,c);return d.conflict?{ok:!1,error:h,conflict:d.conflict}:{ok:!0,target:d}}function l(a){return a.primaryAnchor?`Agent instance '${a.instanceId}' is the primary instance of ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or target a ${a.requestedCliTool} instance instead.`:`Agent instance '${a.instanceId}' is registered as ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or update the instance's roster entry.`}},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=5775,exports.ids=[964,2839,5220,5775,8583],exports.modules={15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},39687:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(56791),e=c(8360),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(49319);let q=(0,k.h)("session/send-user-message");function r(a){return a instanceof Error?a.message:String(a)}async function s(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function t(a,b){let{worktreeId:c,content:k,cliToolId:t,instanceId:u,absoluteImagePath:v,copilotModel:w}=b,x=b.messageType??"normal",y=u??t,z=e.CLIToolManager.getInstance().getTool(t),A=(0,m.mf)(t,c,u),B=await (0,l.L)(c,A,a);if(null===B||"foreign"===B.verdict)return q.warn("send-refused-foreign-session",{worktreeId:c,cliToolId:t,instanceId:y,sessionName:A,sessionPath:B?.sessionPath??null,reason:B?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:B?`tmux session "${A}" belongs to another CommandMate server`:`Worktree '${c}' not found; cannot confirm tmux session "${A}" is this server's`};let C=await (0,n.a3)(c,t,u,{ignoreStructured:b.ignoreStructuredPromptGuard});if(C.waiting)return q.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:t,reason:C.reason,blockedBy:C.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(c,C.blockedBy)};if(w&&"copilot"===t){try{await z.sendModelCommand(c,w,u),q.info("copilot-model-command-sent",{model:w})}catch(a){return q.error("failed-to-send-model-command:",{error:r(a)}),{ok:!1,stage:"model",error:r(a)}}await s(c,y)||q.warn("previous-turn-poller-still-running",{worktreeId:c,instanceId:y,waitedMs:5e3})}let D=new Date;try{await (0,h.o4)(a,c,t,D,u)}catch(a){q.error("failed-to-save-pending-assistant-response:",{error:r(a)})}let E=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:t,instanceId:y,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(E=b[0].id)}catch(a){q.error("failed-to-detect-orphaned-messages:",{error:r(a)})}try{v?(0,f._J)(z)?await z.sendMessageWithImage(c,k,v,u):await z.sendMessage(c,(0,p.TZ)(k,v),u):await z.sendMessage(c,k,u)}catch(a){if(q.error("failed-to-send-message-to:",{error:r(a)}),(0,o.wQ)(a))return{ok:!1,stage:"send",error:a.message,code:o.M7};return{ok:!1,stage:"send",error:r(a)}}let F=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:x,timestamp:D,cliToolId:t,instanceId:u,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...F,cliToolId:t,instanceId:y}})}catch(a){q.warn("user-message-broadcast-failed",{error:r(a)})}if(E)try{if((0,d.deleteMessageById)(a,E)){q.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:t,instanceId:y,reason:"orphan_cleanup"})}catch(a){q.warn("orphan-cleanup-broadcast-failed",{error:r(a)})}}}catch(a){q.error("failed-to-clean-up-orphaned-message:",{error:r(a)})}return(0,d.updateLastUserMessage)(a,c,k,D),(0,d.clearInProgressMessageId)(a,c,t,u),q.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,t,u),{ok:!0,message:F}}},40964:(a,b,c)=>{c.d(b,{s4:()=>k,NN:()=>n,Ze:()=>l,mf:()=>m});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}var g=c(15608);let h="mcbd-",i=/^[0-9a-f]{8}$/,j=[...d.XH].sort((a,b)=>b.length-a.length);function k(){return globalThis.__cmTmuxSessionNamespace??null}function l(a,b,c,e){var g=null===a?h:`${h}${a}-`;let i=`${g}${b}-${c}`;if(!e||e===b)return f(i),i;let j=(0,d.pL)(e,b),k=j?`${i}-${j}`:i;return f(k),k}function m(a,b,c){let d=k(),e=l(d,a,b,c);return null===d?e:(0,g.mc)(e)??e}function n(a){if(!a.startsWith(h))return null;let b=a.slice(h.length),c=null,d=b.indexOf("-");d>0&&i.test(b.slice(0,d))&&(c=b.slice(0,d),b=b.slice(d+1));let e=j.find(a=>b.startsWith(`${a}-`));if(!e)return null;let f=b.slice(e.length+1);return""===f?null:{namespace:c,cliToolId:e,rest:f}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(8360),e=c(31990),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.CLIToolManager.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}},85775:(a,b,c)=>{c.d(b,{Tm:()=>o,x4:()=>m,xJ:()=>n});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687);let j=(0,g.h)("timer-manager");function k(){return globalThis.__timerManagerState||(globalThis.__timerManagerState={timers:new Map,timerWorktrees:new Map,initialized:!1}),globalThis.__timerManagerState}async function l(a){let b=k(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId;if(!await f.isRunning(b.worktreeId,g)){j.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let k=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!k.ok){let b=`[${k.stage}] ${k.error}`;(0,d.j2)(c,a,"failed",void 0,b),j.error("timer:send-failed",{timerId:a,stage:k.stage,error:k.error});return}(0,d.j2)(c,a,"sent",Date.now()),j.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}j.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function m(a,b,c){let d=k(),e=setTimeout(()=>{l(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function n(a){let b=k(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function o(a){let b=k(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=650,exports.ids=[650],exports.modules={16402:(a,b,c)=>{c.d(b,{dd:()=>p,r_:()=>l,vm:()=>n});var d=c(74258),e=c(94814),f=c(26895),g=c(20967),h=c(28861),i=c(96742);let j=["enforce","legacy"],k={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy","command-code":"legacy","opencode-v2":"enforce"};function l(a,b,c,d=process.env){let e=m(a,b,c,function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let g=c.trim(),h=f.trim();j.includes(h)&&("*"===g?d=h:g===a&&(e=h))}return e??d??k[a]??"legacy"}(a,d));return{allowed:!e.gated||null!==e.dialog&&"numbered"===e.dialog.answerMode,dialog:e.dialog,mode:e.mode,gated:e.gated}}function m(a,b,c,f){let g=(0,e.bN)(a);if("multiple_choice"!==b||!g.hasDialogRules||"legacy"===f)return{present:!0,dialog:null,mode:f,gated:!1};let h=g.detectDialog((0,d.z)(c));return{present:null!==h,dialog:h,mode:f,gated:!0}}function n(a,b,c){return m(a,b,c,k[a]??"legacy")}let o="unsupported_dialog_layout";function p(a,b){let c=(0,g._A)((0,g.aJ)(b)),d="antigravity"===a?(0,h.g)(c):null,e="command-code"===a?(0,i.nK)(b):{kind:"none"};if("unsupported"===e.kind)return{promptCheck:{isPrompt:!1,cleanContent:c},isCommandCodeQuestion:!1,refusal:{reason:o,message:"A Command Code question is on screen, but its option list could not be read, so no key was sent. Answer it in the terminal, or retry once the screen has settled."},presence:{present:!1,dialog:null,mode:k[a]??"legacy",gated:!1}};let j="prompt"===e.kind,l=("prompt"===e.kind?e.prompt:null)??d??(0,f.gF)(c,(0,g.KO)(a)),m=n(a,l.promptData?.type,b);return{promptCheck:l,isCommandCodeQuestion:j,refusal:function(a,b){if(a.isPrompt&&b.present)return null;let c=a.promptData;return a.isPrompt&&b.gated&&c?.type==="multiple_choice"&&!0===c.isAskUserQuestion?{reason:o,message:"An AskUserQuestion picker is on screen, but its layout could not be verified as one of the agent's dialogs, so no key was sent. Answer it in the terminal, or retry once the screen has settled."}:{reason:"prompt_no_longer_active"}}(l,m),presence:m}}},26895:(a,b,c)=>{c.d(b,{gF:()=>n,xn:()=>g});var d=c(72626),e=c(69119),f=c(68652);function g(a,b="yes_no"){let c=a.toLowerCase().trim();if("multiple_choice"===b){if(/^\d+$/.test(c))return c;throw Error("Invalid answer for multiple choice prompt. Expected a number.")}if("yes"===c||"y"===c)return"y";if("no"===c||"n"===c)return"n";throw Error("Invalid answer for yes/no prompt. Expected 'yes', 'no', 'y', or 'n'.")}let h=(0,d.h)("prompt-detector"),i=null;function j(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3&&(c=c.slice(-5e3)),c}let k=[{regex:/^(.+)\s+\(y\/n\)\s*$/m},{regex:/^(.+)\s+\[y\/N\]\s*$/m,defaultOption:"no"},{regex:/^(.+)\s+\[Y\/n\]\s*$/m,defaultOption:"yes"},{regex:/^(.+)\s+\(yes\/no\)\s*$/m}];function l(a,b,c,d){let{startLine:f,endLine:g}=function(a,b,c){let d=c.index??0,e=a=>a.split("\n").length-1,f=b+e(a.slice(0,d));return{startLine:f,endLine:f+e(c[0])}}(b,c,d);return(0,e.ZH)(a,(0,e.wf)(a,f),g+1)}function m(a,b,c,d,e){return{isPrompt:!0,promptData:{type:"yes_no",question:a,options:["yes","no"],status:"pending",...void 0!==e&&{defaultOption:e},instructionText:c,...void 0!==d&&{approvalTarget:d}},cleanContent:b,rawContent:c}}function n(a,b){let c=(0,f.N)(a),d=c===a&&b?.precomputedLines?b.precomputedLines:c.split("\n"),g=d.slice(-50).join("\n"),n=g===i;n||h.debug("detectPrompt:start",{outputLength:c.length}),i=g;let o=d.slice(-20).join("\n"),p=Math.max(0,d.length-20),q=(0,e.rS)(c,b,j);if(q.isPrompt)return n||h.info("detectPrompt:multipleChoice",{isPrompt:!0,question:q.promptData?.question,optionsCount:q.promptData?.options?.length}),q;let r=o.trim();for(let a of k){let b=o.match(a.regex);if(b){let c=b[1].trim();return m(c,c,r,l(d,o,p,b),a.defaultOption)}}let s=o.match(/^(.*?)Approve\?\s*$/m);if(s){let a=s[1].trim();return m(a?`${a} Approve?`:"Approve?",a||"Approve?",r,l(d,o,p,s))}return n||h.debug("detectPrompt:complete",{isPrompt:!1}),{isPrompt:!1,cleanContent:c.trim()}}},28861:(a,b,c)=>{c.d(b,{g:()=>l});var d=c(20967),e=c(69119),f=c(68652),g=c(682);let h=/^\s*●\s/,i=/^\s*─{3,}\s*$/,j=/[??]\s*$/;function k(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3?c.slice(-5e3):c}function l(a){let b=(0,f.N)(a),c=b.split("\n"),l=function(a){let b=(0,d.dx)(a);if(null===b)return null;let c=a.slice(b.start,b.footer);if(c.some(a=>d.d0.test(a)))return null;let e=(0,g.c)(c,c.length,12);if(null===e)return null;let f=[...e.options];if(""!==e.footer){let a=f.length-1;f[a]=[f[a],...e.footer.split("\n")].join(" ").trim()}let h=b.start+e.firstRow,k=-1,l=-1,m=0;for(let c=h-1;c>=b.start&&m<3;c--){let b=a[c];if(""!==b.trim()){if(d.OM.test(b)||i.test(b))break;if(m++,l<0&&(l=c),j.test(b)){k=c;break}}}return k<0&&(k=l),{question:k<0?"Please select an option:":a[k].trim(),options:f,selectedIndex:e.selectedIndex,questionRow:k<0?h:k,firstOptionRow:h,footerRow:b.footer}}(c);return null===l?null:(0,e.xe)(l.question,l.options.map((a,b)=>({number:b+1,label:a,isDefault:b===l.selectedIndex})),{instructionText:function(a,b){let c=(0,d.dx)(a),e=c?.start??b.questionRow,f=Math.max(0,b.questionRow-40);for(let c=b.questionRow-1;c>=f;c--)if(h.test(a[c])){e=c+1;break}let g=a.slice(e,b.footerRow+1).filter(a=>!i.test(a)).map(a=>a.trimEnd()).join("\n").trim();return g.length>0?g:void 0}(c,l),approvalTarget:(0,e.ZH)(c,(0,e.wf)(c,l.questionRow),l.footerRow)},b,k)}},30008:(a,b,c)=>{c.d(b,{F1:()=>g,_G:()=>i,j0:()=>f,rB:()=>h,xF:()=>j});var d=c(48083),e=c(67882);let f=3e5,g="CM_STRUCTURED_SEND_GUARD";function h(a){return"notification"===a.source?e.Oh.PERMISSION_PROMPT:e.Oh.PERMISSION_REQUEST}function i({worktreeId:a,cliToolId:b,instanceId:c,scraper:e,ignoreStructured:i=!1,now:j=Date.now()}){var k,l,m;let n=(0,d.getStructuredPromptWaiting)(a,b,c,j);null!==n&&("waiting"===e.status?(0,d.corroborateStructuredPromptWaiting)(a,b,c,j):n.scraperCorroborated&&((0,d.clearStructuredPromptWaiting)(a,b,c),n=null));let o=e.hasActivePrompt||null!==n;if(e.hasActivePrompt)return{waiting:o,scraperWaiting:!0,structured:n,blocksSend:!0,blockedBy:"scraper",blockReason:e.reason,structuredSendBlockSuppressed:null};if(null===n)return{waiting:o,scraperWaiting:!1,structured:null,blocksSend:!1,blockedBy:null,blockReason:null,structuredSendBlockSuppressed:null};let p=(k=n,l=i,m=j,l?"caller_opt_out":!function(){let a=process.env[g]?.trim().toLowerCase();return"off"===a||"0"===a||"false"===a}()?m-k.at>=f?"expired":null:"disabled");return{waiting:o,scraperWaiting:!1,structured:n,blocksSend:null===p,blockedBy:null===p?"structured":null,blockReason:null===p?h(n):null,structuredSendBlockSuppressed:p}}function j({worktreeId:a,cliToolId:b,instanceId:c,scraper:e,now:f=Date.now()}){let g=(0,d.getStructuredPromptWaiting)(a,b,c,f);return{waiting:e.hasActivePrompt||null!==g,scraperWaiting:e.hasActivePrompt,structured:g}}},32236:(a,b,c)=>{c.d(b,{q:()=>u,AD:()=>v});var d=c(20967),e=c(26895),f=c(37717),g=c(65912),h=c(682);let i={"hooks-review":"permission","hooks-list":"picker","hooks-detail":"picker",update:"update",trust:"trust"};var j=c(74258),k=c(91010),l=c(1804),m=c(46423);let n=l.jP,o=/press\s+(?:number|enter)\s+to\s+confirm/i,p=/^\s*[❯›●]?\s*\d{1,2}[.)]\s/;function q(a){for(let b=a.length-1;b>=Math.max(0,a.length-10);b--){let c=a[b];if(d.aW.test(c)||d.UO.test(c))return b}return -1}function r(a){let b=q(a),c=b>=0?b-1:a.length-1;for(;c>=0&&""===a[c].trim();)c--;return c+1}function s(a){let b=q(a),c=b>=0?b:a.length,e=-1,f=-1;for(let b=0;b<c;b++){let c=a[b],g=c.trim();""!==g&&((o.test(g)||p.test(g))&&(e=b),(0,d.ut)("codex",c)&&(f=b))}return e>=0&&f>e}function t(a){return(0,g.kp)(a)?.kind==="option"}let u=(0,k.b)({tool:"codex",verifiedAgainst:n,beforePrompt(a){let{contentLines:b}=a;if((0,g.Gs)(a.raw,b,r(b)))return null;if(d.pn.test(a.lastLines))return{status:"waiting",confidence:"high",reason:f.g.CODEX_PAGER,hasActivePrompt:!1,evidence:"positive",promptDetection:(0,e.gF)((0,d._A)(a.clean),(0,d.KO)("codex"))};let c=(0,d.E6)(a.clean);if("hooks-list"===c||"hooks-detail"===c)return{status:"waiting",confidence:"high",reason:f.g.CODEX_HOOKS_REVIEW,hasActivePrompt:!1,evidence:"positive",promptDetection:(0,e.gF)((0,d._A)(a.clean),(0,d.KO)("codex"))};let h=q(b),i=h>=0?h-1:b.length-1;for(;i>=0&&""===b[i].trim();)i--;if(i>=0){let c=b.slice(Math.max(0,i-j.h+1),i+1).join("\n"),g=b[i].trim();if(d.Jn.test(c)||d.ir.test(g)||d.bh.test(g)){let g=(0,e.gF)((0,d._A)(a.clean),(0,d.KO)("codex"));return g.isPrompt&&((g.promptData?.question?.trim()??"").endsWith("?")||d.Dd.test(c))&&!s(b)?{status:"waiting",confidence:"high",reason:f.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:g}:{status:"waiting",confidence:"high",reason:f.g.CODEX_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive",promptDetection:g}}}let k=(0,g.t)(a.raw,b,r(b));if(k&&!s(b)){k.footerRecognised||(0,g.AT)(k.footer);let b=(0,e.gF)((0,d._A)(a.clean),(0,d.KO)("codex"));return b.isPrompt?{status:"waiting",confidence:"high",reason:f.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:b}:{status:"waiting",confidence:"high",reason:f.g.CODEX_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive",promptDetection:b}}return null},isStalePrompt:a=>s(a.contentLines)||(0,g.Gs)(a.raw,a.contentLines,r(a.contentLines)),detectDialog(a){let b=r(a.contentLines);return(0,g.Gs)(a.raw,a.contentLines,b)?null:function(a,b){let c=(0,d._A)(a.clean).split("\n"),e=(0,h.c)(c,b.contentEnd);if(b.lifecycleDialog)return{kind:i[b.lifecycleDialog],options:e?.options??[],answerMode:"numbered"};if(!e||!d.Jn.test(e.footer)&&!d.$I.test(e.footer)&&!d.ir.test(e.footer)&&!d.bh.test(e.footer)||b.stalePrompt)return null;let f=function(a,b){let c=[];for(let d=b-1;d>=0&&c.length<4;d--){let b=a[d].trim();""!==b&&c.push(b)}return c.join("\n")}(c,e.firstRow);return{kind:d.Dd.test(e.footer)||f.split("\n")[0]?.endsWith("?")?"permission":"picker",options:e.options,answerMode:"numbered"}}(a,{contentEnd:b,stalePrompt:s(a.contentLines),lifecycleDialog:(0,d.E6)(a.clean)})},afterThinking(a){let{contentLines:b}=a,c=q(b);if(c>=0){let e=c-1;for(;e>=0&&""===b[e].trim();)e--;if(e>=0){let c=b.slice(Math.max(0,e-m.$+1),e+1).join("\n");return(0,d.ut)("codex",c)?{status:"running",confidence:"high",reason:f.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"}:d.gm.test(b[e].trim())&&!t(a.raw)?{status:"ready",confidence:"high",reason:f.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:{status:"running",confidence:"high",reason:f.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"}}}else{let c=b.length-1;for(;c>=0&&""===b[c].trim();)c--;if(!(c>=0&&d.gm.test(b[c].trim())&&!t(a.raw))&&(0,d.ut)("codex",a.lastLines))return{status:"running",confidence:"high",reason:f.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"}}return null}});function v(a){let b=(0,j.z)(a);if(!u.detectDialog(b))return!1;let c=r(b.contentLines),e=(0,h.c)((0,d._A)(b.clean).split("\n"),c);return null!==e&&(d.ir.test(e.footer)||d.bh.test(e.footer))}},37717:(a,b,c)=>{c.d(b,{g:()=>d});let d={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",OPENCODE_MODAL_OVERLAY:"opencode_modal_overlay",OPENCODE_PERMISSION_PROMPT:"opencode_permission_prompt",CLAUDE_SELECTION_LIST:"claude_selection_list",COMMAND_CODE_SELECTION_LIST:"command_code_selection_list",COMMAND_CODE_DISMISSABLE_PANEL:"command_code_dismissable_panel",COMMAND_CODE_PLAN_REVIEW:"command_code_plan_review",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",EXITED:"exited",UNKNOWN_FRAME:"unknown_frame",DEFAULT:"default"}},45150:(a,b,c)=>{c.d(b,{Lj:()=>k,VC:()=>l});var d=c(20967),e=c(37717),f=c(91010),g=c(1804),h=c(28861);let i=g.yh,j={status:"waiting",confidence:"high",reason:e.g.ANTIGRAVITY_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"};function k(a,b){if(b.promptData?.type!=="multiple_choice")return!1;let c=(0,d._A)(a.contentLines.join("\n")).split("\n"),{promptPattern:e}=(0,d._X)("antigravity"),f=-1;for(let a=c.length-1;a>=0;a--)if(e.test(c[a])){f=a;break}return!(f<0)&&!c.slice(f+1).some(a=>d.Ly.test(a))}let l=(0,f.b)({tool:"antigravity",verifiedAgainst:i,isStalePrompt:k,beforePrompt(a){if(function(a){let b=a.slice(-3),c=b.findIndex(a=>d.HR.test(a));if(c<0)return!1;let{promptPattern:e}=(0,d._X)("antigravity");return!b.slice(c+1).some(a=>e.test(a))}(a.contentLines))return j;if(!d.kT.test(a.lastLines)||!function(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--)if(d.kT.test(b[a])){c=a;break}if(c<0)return!1;let{promptPattern:e}=(0,d._X)("antigravity");return!b.slice(c+1).some(a=>e.test(a))}(a.lastLines))return null;let b=(0,d._A)(a.clean);if((0,d.bH)(b)){let a=(0,h.g)(b);return null!==a?{status:"waiting",confidence:"high",reason:e.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:a}:{status:"running",confidence:"low",reason:e.g.UNKNOWN_FRAME,hasActivePrompt:!1,evidence:"none"}}return j},afterThinking(a){if((0,d.ut)("antigravity",a.lastLines))return{status:"running",confidence:"high",reason:e.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"};let{promptPattern:b}=(0,d._X)("antigravity");return b.test(a.lastLines)?{status:"ready",confidence:"high",reason:e.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:null}})},50524:(a,b,c)=>{c.d(b,{LQ:()=>g,Ml:()=>f,sh:()=>e});let d=/^\p{M}$/u;function e(a,b){if(a.length<=b)return a.length;let c=0,e=0;for(let f of a){let a=+!d.test(f);if(1===a&&c>=b)break;c+=a,e+=f.length}return e}function f(a,b,c){return a.slice(e(a,b),e(a,c))}function g(a){let b=0;for(let c of a)d.test(c)||(b+=1);return b}},61244:(a,b,c)=>{c.d(b,{$N:()=>h,Tq:()=>g,jW:()=>m});let d=String.raw`←\s*(?:[☐☒☑][^←→☐☒☑✔]*)+✔\s*Submit\s*→`;RegExp(`^${d}\\s*`);let e=RegExp(`^\\s?${d}$`),f=/^\s?[☐☒☑] [^\s\d←→☐☒☑✔][^←→☐☒☑✔]{0,40}$/,g=/Enter\s+to\s+select\b.*\bnavigate\b/i;function h(a,b,c){let d=Math.max(0,b-c);for(let c=b-1;c>=d;c--)if(function(a){let b=a.trimEnd();return e.test(b)||f.test(b)}(a[c]??""))return c;return -1}let i=/┌(─+)┐\s*$/,j=/^\s*(?:[❯›>]\s*)?1\.\s+\S/,k=/^( *)└(─+)┘\s*$/,l=/^\s*(?:[❯›>]\s*)?\d{1,2}\.\s+\S|^\s{2,}\S/;function m(a,b,c){let d=new Set,e=new Map,f=Math.min(c,a.length);for(let c=Math.max(0,b);c<f;c++){let b=a[c];if(!b.includes("┌"))continue;let h=i.exec(b);if(!h||!j.test(b.slice(0,h.index)))continue;let m=-1,n=0;for(let b=c+1;b<Math.min(f,c+80);b++){let c=k.exec(a[b]);if(c&&c[2].length===h[1].length){m=b,n=c[1].length;break}}if(m<0)continue;let o=[m],p=[[c,h.index]];for(let b=c+1;b<m;b++){let c=a[b].indexOf("│"),d=c>0?a[b].slice(0,c):"";""!==d.trim()&&l.test(d)?p.push([b,c]):o.push(b)}let q=m+1;for(;q<f;q++){let b=a[q];if(""!==b.trim()){if(b.length-b.trimStart().length!==n)break;o.push(q)}}if(function(a,b){let c=0;for(let d=b;d<a.length&&c<4;d++){let b=a[d];if(""!==b.trim()){if(g.test(b))return!0;c++}}return!1}(a,q)){for(let a of o)d.add(a);for(let[a,b]of p)e.set(a,b);c=q-1}}return{rows:d,cuts:e}}},69119:(a,b,c)=>{c.d(b,{J0:()=>y,N0:()=>m,QI:()=>l,ZH:()=>G,ie:()=>E,rS:()=>I,wf:()=>F,xe:()=>H});var d=c(68652),e=c(20967),f=c(61244);let g=/^\s*[\u276F\u25CF\u203A][^\d]*(\d+)(?:\.(?!\d)|\s{2,})\s*(.+)$/,h=/^\s*[^\d]{0,3}(\d+)(?:\.(?!\d)|\s+)\s*(.+)$/,i=/^\s*\d{1,3}\s+tasks?\s+\(\d+\s+done\b/i,j=/^\s*[◼◻]\s/,k=/^(?:No changes this session|\+\d+ files? edited before this session \(show\))$/;function l(a,b,c){let d=function(a,b,c){let d=new Set;for(let e=Math.max(0,b);e<Math.min(c,a.length);e++){if(k.test(a[e].trim())){d.add(e);continue}if(i.test(a[e])){d.add(e);for(let b=e+1;b<Math.min(c,a.length);b++){let c=a[b];if(!j.test(c)&&!q.test(c))break;d.add(b)}}}return d}(a,b,c),e=(0,f.jW)(a,b,c);for(let a of e.rows)d.add(a);return{rows:d,cuts:e.cuts}}function m(a,b){return a.map((a,c)=>{if(b.rows.has(c))return"";let d=b.cuts.get(c);return void 0===d?a:a.slice(0,d).trimEnd()})}let n=/^\s{3,}\S/,o=/^[-─]+$/,p=/^\s*\[[^\]]*\d+\s+lines?\]/i,q=/^\s*[…]?\s*[+\-↑↓⏵⏷]?\s*\d+\s+(?:pending|more|completed)\b/i,r=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,s=f.Tq,t=/press\s+(?:enter|number)\s+to\s+confirm/i,u=/press\s+number\s+to\s+confirm/i,v=/(?:select|choose|pick|which|what|how|where|enter|type|specify|confirm|approve|accept|reject|decide|preference|option)/i,w=[/type\s+here/i,/tell\s+(me|claude)/i,/enter\s+/i,/custom/i,/differently/i],x=[/^[^\S\n]*type\s+something\b/i];function y(a){return!0===a.requiresTextInput&&x.some(b=>b.test(a.label))}function z(a,b){if(0===b.length)return!0;let c=b[0].number;return a<c&&a>=c-2}function A(a){return{isPrompt:!1,cleanContent:a.trim()}}function B(a){return 0!==a.length&&!!(a.includes("?")||a.includes("?")||v.test(a))}function C(a,b){let c=b.endsWith("?")||b.endsWith("?");return!!(!c&&/^\s{2,}[^\d]/.test(a)&&!/^\s*\d+\./.test(a)||!c&&/^\s{4,}/.test(a)&&!/^\s*\d+\.\s/.test(a)||b.length<5&&!c||/^[\/~]/.test(b)||b.length>=2&&/^[a-zA-Z0-9_-]+$/.test(b))}let D=/^[⏺⎿●○•✔✓✖✗✘›»❯└├>]/,E=12;function F(a,b){let c=Math.max(0,b-E);for(let d=b-1;d>=c;d--)if(function(a){if(void 0===a)return!1;let b=a.trim();return""!==b&&(D.test(b)||o.test(b))}(a[d]))return d+1;return c}function G(a,b,c){let d=a.slice(b,c).map(a=>a.trimEnd()).join("\n").trim();return d.length>0?d:void 0}function H(a,b,c,d,e,f,g){let{instructionText:h,approvalTarget:i}=c??{};return{isPrompt:!0,promptData:{type:"multiple_choice",question:a.trim(),options:b.map(a=>{let b=w.some(b=>b.test(a.label));return{number:a.number,label:a.label,isDefault:a.isDefault,requiresTextInput:b}}),status:"pending",instructionText:h,...void 0!==i?{approvalTarget:i}:{},...f?{submitMode:f}:{},...g?{isAskUserQuestion:!0}:{}},cleanContent:a.trim(),rawContent:e(d.trim())}}function I(a,b,c){if(a=(0,d.N)(a),b?.hasNumberedDialogs===!1)return A(a);let i=b?.requireDefaultIndicator??!0,j=a.split("\n"),k=j.length;for(;k>0&&""===j[k-1].trim();)k--;let m=Math.max(0,k-50),v=!1;for(let a=k-1;a>=m;a--){let b=s.test(j[a]);if(r.test(j[a])||b){k=a,v=b;break}}let w=j.slice(m,k);for(let b of w)if(e.l8.test(b))return A(a);let x=!1,y=!1;for(let a of w){let b=a.trim();if(!x&&t.test(b)){x=!0,u.test(b)&&(y=!0);break}}if(i){let b=!1;for(let a of w){let c=a.trim();if(g.test(c)){b=!0;break}}if(!b&&!x)return A(a)}let D=[],I=-1,J=0,K=l(j,m,k),L=[];for(let b=k-1;b>=m;b--){if(K.rows.has(b)){J++;continue}let c=K.cuts.get(b),d=void 0===c?j[b]:j[b].slice(0,c).trimEnd(),e=d.trim();if(void 0!==c&&n.test(d)){L.unshift(e),J++;continue}if(p.test(e)||q.test(e)){J++;continue}let f=e.match(g);if(f){let a=parseInt(f[1],10);if(a<=20&&z(a,D)){let b=[f[2].trim(),...L].join(" ");L=[],D.unshift({number:a,label:b,isDefault:!0}),J=0;continue}}let i=e.match(h);if(i){let a=parseInt(i[1],10);if(a>20);else if(z(a,D)){let b=[i[2].trim(),...L].join(" ");L=[],D.unshift({number:a,label:b,isDefault:!1}),J=0;continue}}if(0===D.length&&(e.startsWith("❯")||e.startsWith("●")||e.startsWith("›")))return A(a);if(D.length>0&&e&&!o.test(e)){if(/^\s{4,}/.test(d)&&C(d,e)){if(++J>25){I=b;break}continue}if(B(e)){I=b;break}if(C(d,e)){if(++J>(/^\s{4,}/.test(d)?25:5)){I=b;break}continue}I=b;break}}if(!function(a){if(0===a.length||1!==a[0])return!1;let b=0;for(let c=1;c<a.length;c++){let d=a[c]-a[c-1];if(d<1||d>2||(2===d&&b++,b>1))return!1}return!0}(D.map(a=>a.number)))return A(a);let M=D.some(a=>a.isDefault),N=i&&x;if(D.length<2||i&&!M&&!N||!i&&!M&&(-1===I||!B(j[I]?.trim()??"")&&!function(a,b,c,d){let e=Math.max(d,b-3);for(let c=b-1;c>=e;c--){let b=a[c]?.trim()??"";if(!(!b||o.test(b))&&B(b))return!0}return!1}(j,I,0,m)))return A(a);let O=I<0?0:(0,f.$N)(j,I,E)+1,P=function(a,b,c=0){if(b<0)return"Please select an option:";let d=[];for(let e=Math.max(c,b-5);e<=b;e++){let b=a[e].trim();b&&!o.test(b)&&d.push(b)}return d.join(" ")}(j,I,O),Q=function(a,b,c){if(b<0)return;let d=Math.max(0,b-19),e=a.slice(d,c).map(a=>a.trimEnd()).join("\n").trim();return e.length>0?e:void 0}(j,I,k);return H(P,D,{instructionText:Q,approvalTarget:function(a,b,c,d=0){if(!(b<0))return G(a,Math.max(d,F(a,b)),c)}(j,I,k,O)},a,c,x?y?"answer_only":"answer_then_enter":void 0,v)}},76777:(a,b,c)=>{c.d(b,{D:()=>d});function d(a,b,c){let d=new TextEncoder;if(d.encode(a).length<=b)return a;let e=b-d.encode(c).length,f=0,g="";for(let b of a){let a=d.encode(b).length;if(f+a>e)break;f+=a,g+=b}return`${g}${c}`}},91010:(a,b,c)=>{c.d(b,{b:()=>k});var d=c(20967),e=c(26895),f=c(37717);let g=["enforce","observe","legacy"],h={claude:"observe",copilot:"enforce",opencode:"enforce",codex:"legacy",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy","command-code":"legacy","opencode-v2":"legacy"},i=globalThis.__idleEvidenceObservations??(globalThis.__idleEvidenceObservations=new Map),j=new Set(["opencode","codex","claude","copilot"]);function k(a){return{...a,detect:(b,c)=>(function(a,b,c={}){let k=a.beforePrompt?.(b)??null;if(k)return k;let l=(0,d.KO)(a.tool),m=j.has(a.tool)?(0,d._A)(b.clean):(0,d._A)(b.lastLines),n=(0,e.gF)(m,l);if(n.isPrompt)if(a.isStalePrompt?.(b,n))n={...n,isPrompt:!1,promptData:void 0};else{if(!a.requireVouchedPrompt||c.isPromptVouched?.(n)!==!1)return{status:"waiting",confidence:"high",reason:f.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:n};n={...n,isPrompt:!1,promptData:void 0}}let o=a.afterPrompt?.(b,n)??null;if(o)return{...o,promptDetection:o.promptDetection??n};if((0,d.ut)(a.tool,b.thinkingLines))return{status:"running",confidence:"high",reason:f.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive",promptDetection:n};let p=a.afterThinking?.(b,n)??null;if(p)return{...p,promptDetection:p.promptDetection??n};if(!a.skipGenericInputPrompt){let{promptPattern:c}=(0,d._X)(a.tool);if(c.test(b.lastLines))return{status:"ready",confidence:"high",reason:f.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:function(a,b){if(void 0===a.readIdleEvidence)return"positive";let c=function(a,b=process.env){let c=b.CM_DETECTION_IDLE_EVIDENCE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let h=c.trim(),i=f.trim();g.includes(i)&&("*"===h?d=i:h===a&&(e=i))}return e??d??h[a]??"legacy"}(a.tool);if("legacy"===c)return"positive";let d=a.readIdleEvidence(b);var e=a.tool;let f=i.get(e)??{mode:c,positive:0,none:0};return f.mode=c,"positive"===d?f.positive+=1:f.none+=1,i.set(e,f),"observe"===c?"positive":d}(a,b),promptDetection:n}}return c.lastOutputTimestamp&&Date.now()-c.lastOutputTimestamp.getTime()>5e3?{status:"running",confidence:"low",reason:f.g.NO_RECENT_OUTPUT,hasActivePrompt:!1,evidence:"none",promptDetection:n}:{status:"running",confidence:"low",reason:a.unreadableReason??f.g.DEFAULT,hasActivePrompt:!1,evidence:"none",promptDetection:n}})(a,b,c),detectDialog:a.detectDialog??(()=>null),hasDialogRules:void 0!==a.detectDialog}}},94814:(a,b,c)=>{c.d(b,{bN:()=>ai});var d=c(45150),e=c(20967),f=c(94154),g=c(69119),h=c(37717),i=c(682),j=c(61244);let k=/esc\s+to\s+cancel|enter\s+to\s+(?:select|confirm|set\s+as\s+default)/i,l=new Set(["❯",">"]),m=/do you want to\b|allow\b.*\?$/i,n=/ready to submit your answers\?|review your answers/i,o=/set\s+as\s+default/i;var p=c(74258),q=c(91010),r=c(1804);let s=/^\s*[✻✽✶✢✳⦿◉●·⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\s+\S+\s+for\s+(?:\d+m\s*)?\d+(?:\.\d+)?s(?:\s|$|\s*·)/,t=/^\s*╭─+\s*Claude Code v/,u=/^\s*[>❯]\s+\S/,v=/·\s*\/effort\s*$/;function w(a){let b=(0,f.p4)(a),c=b?b.openingSeparator:a.length,d=(0,g.QI)(a,0,c).rows,e=c-1;for(;e>=0&&(""===a[e].trim()||d.has(e)||v.test(a[e]));)e--;return e}let x=(0,q.b)({tool:"claude",verifiedAgainst:r.iE,afterPrompt:a=>e.XY.test(function(a){let b=(0,f.p4)(a.contentLines);if(!b)return a.lastLines;let c=a.contentLines.length-p.h;return a.contentLines.slice(Math.max(b.openingSeparator,c)).join("\n")}(a))?{status:"waiting",confidence:"high",reason:h.g.CLAUDE_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"}:null,afterThinking:a=>e.aU.test(a.lastLines)?{status:"running",confidence:"high",reason:h.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"}:null,readIdleEvidence:function(a){let b=w(a.contentLines);if(b>=0&&s.test(a.contentLines[b]))return"positive";let c=(0,f.p4)(a.contentLines),d=a.contentLines.slice(0,c?c.openingSeparator:void 0),e=d.some(a=>t.test(a)),g=d.some(a=>u.test(a));return e&&!g?"positive":"none"},detectDialog:a=>(function(a,b){var c;if(b.transcriptTail<0)return null;let d=(0,e._A)(a.clean).split("\n"),f=b.transcriptTail+1,h=(0,g.QI)(a.contentLines,0,f),p=(0,g.N0)(d,h),q=(0,i.c)(p,f);if(!q||null===q.selectedGlyph||!l.has(q.selectedGlyph))return null;let r=function(a,b,c,d){let e=[];for(let f=c;f<Math.min(d,a.length);f++){let c=a[f].trim();""===c||b.has(f)||e.push(c)}return e.join("\n")}(p,h.rows,q.lastRow+1,f);return""===r||k.test(r)?{kind:(c=function(a,b){let c=(0,j.$N)(a,b,g.ie),d=[];for(let e=b-1;e>c&&d.length<4;e--){let b=a[e].trim();""!==b&&d.push(b)}return d.join("\n")}(p,q.firstRow),n.test(c)?"ask_user":o.test(r)?"picker":m.test(c)?"permission":"dialog"),options:q.options,answerMode:"numbered"}:null})(a,{transcriptTail:w(a.contentLines)})});var y=c(32236),z=c(91478),A=c(96742);let B=/^\s*↑\/↓\s+navigate\s+·\s+enter\s+select\s+·.*\bto\s+bypass\s+all\s+permissions\b/,C=r.ji,D=(0,q.b)({tool:"command-code",verifiedAgainst:C,beforePrompt(a){if((0,z.tH)(a.lastLines)||(0,z.a9)(a.lastLines))return{status:"waiting",confidence:"high",reason:h.g.COMMAND_CODE_PLAN_REVIEW,hasActivePrompt:!1,evidence:"positive"};let b=(0,A.nK)(a.raw);return"prompt"===b.kind?{status:"waiting",confidence:"high",reason:h.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:b.prompt}:"unsupported"===b.kind?{status:"waiting",confidence:"high",reason:h.g.COMMAND_CODE_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"}:null},afterPrompt:a=>(0,z.yt)(a.lastLines)?{status:"waiting",confidence:"high",reason:h.g.COMMAND_CODE_DISMISSABLE_PANEL,hasActivePrompt:!1,evidence:"positive"}:(0,z.sl)(a.lastLines)?{status:"waiting",confidence:"high",reason:h.g.COMMAND_CODE_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"}:null,detectDialog:a=>(function(a){let b=a.contentLines,c=b[b.length-1];if(void 0===c||!B.test(c))return null;let d=(0,i.c)(b,b.length,1);return null===d||d.footer!==c.trim()||"❯"!==d.selectedGlyph?null:{kind:"permission",options:d.options,answerMode:"numbered",submitMode:"answer_only"}})(a),afterThinking(a){if((0,e.ut)("command-code",a.lastLines))return{status:"running",confidence:"high",reason:h.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"};let{promptPattern:b}=(0,e._X)("command-code");return b.test(a.lastLines)?{status:"ready",confidence:"high",reason:h.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:null}});var E=c(26895);let F=/do you want to\b/i,G=r.MJ,H=(0,q.b)({tool:"copilot",verifiedAgainst:G,beforePrompt(a){if((0,e.gT)(a.contentLines)){let b=(0,e.KO)("copilot"),c=(0,E.gF)((0,e._A)(a.clean),b);return c.isPrompt&&(c.promptData?.options?.length??0)<=3?{status:"waiting",confidence:"high",reason:h.g.PROMPT_DETECTED,hasActivePrompt:!0,evidence:"positive",promptDetection:c}:{status:"waiting",confidence:"high",reason:h.g.COPILOT_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive",promptDetection:c}}if("working"===(0,e.Wn)(a.contentLines)){let b=(0,e.KO)("copilot"),c=(0,E.gF)((0,e._A)(a.clean),b);return{status:"running",confidence:"high",reason:h.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive",promptDetection:c}}return null},afterThinking:a=>"idle"===(0,e.Wn)(a.contentLines)?{status:"ready",confidence:"high",reason:h.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:null,skipGenericInputPrompt:!0,readIdleEvidence:function(a){return"idle"===(0,e.Wn)(a.contentLines)?"positive":"none"},detectDialog:a=>(function(a,b){if(null!==b.statusBar)return null;let c=(0,e._A)(a.clean).split("\n"),d=(0,i.c)(c,b.contentEnd);if(d&&e.V.test(d.footer)){let a=function(a,b){let c=[];for(let d=b-1;d>=0&&c.length<4;d--){let b=a[d].trim();""!==b&&c.push(b)}return c.join("\n")}(c,d.firstRow);return{kind:e.rX.some(b=>a.includes(b))?"trust":F.test(a)?"permission":"picker",options:d.options,answerMode:"numbered"}}return b.selectionFrame?{kind:"picker",options:[],answerMode:"keys"}:null})(a,{statusBar:(0,e.Wn)(a.contentLines),selectionFrame:(0,e.gT)(a.contentLines),contentEnd:a.contentLines.length}),unreadableReason:h.g.UNKNOWN_FRAME});var I=c(76777),J=c(50524);let K=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\[[0-9;]*m/g,L=/^(?:\x1b\[|\[)([0-9;]*)m$/,M=new Set([38,48,58]);function N(a){let b;K.lastIndex=0;let c=[],d="",e=null,f=0,g=0,h=0;for(;null!==(b=K.exec(a));){let i=a.slice(h,b.index);d+=i,f+=(0,J.LQ)(i),h=b.index+b[0].length;let j=L.exec(b[0]);if(null===j)continue;let k=function(a,b){let c=(""===b?"0":b).split(";"),d=a;for(let a=0;a<c.length;a++){let b=Number(""===c[a]?"0":c[a]);if(Number.isFinite(b)){if(M.has(b)){let e="2"===c[a+1]?4:2*("5"===c[a+1]);e>0&&48===b&&(d=c.slice(a,a+1+e).join(";")),a+=e;continue}0===b||49===b?d=null:(b>=40&&b<=47||b>=100&&b<=107)&&(d=c[a])}}return d}(e,j[1]);k!==e&&(f>g&&c.push({bg:e,start:g,end:f}),e=k,g=f)}let i=a.slice(h);d+=i,(f+=(0,J.LQ)(i))>g&&c.push({bg:e,start:g,end:f});let j=new Set(c.map(a=>a.start));return c.length>0&&j.add(c[c.length-1].end),{text:d,segments:c,edges:j,width:f}}function O(a,b){for(let c of a.segments)if(c.start<=b&&b<c.end)return c.bg;return null}let P=/\S[^\S\n]{2,}esc[^\S\n]*$/,Q=/^[│┃╹]/;function R(a,b,c){if(!a.edges.has(b)||!a.edges.has(c))return!1;for(let d of a.segments)if(!(d.end<=b)&&!(d.start>=c)&&null===d.bg)return!1;return!(O(a,b-1)===O(a,b)||c<a.width&&O(a,c)===O(a,c-1)||Q.test((0,J.Ml)(a.text,b-1,b)))&&!Q.test((0,J.Ml)(a.text,b,c))}function S(a){let b=function(a){let b=a.split("\n").map(N),c=new Set,d=null;for(let a of b){if(!a.text.includes("esc"))continue;let e=[...a.edges].sort((a,b)=>a-b);for(let f of e)if(!(f<1))for(let g of e){if(g-f<16)continue;let e=`${f}:${g}`;if(c.has(e)||!R(a,f,g))continue;let h=(0,J.Ml)(a.text,f,g);if(!P.test(h))continue;c.add(e);let i=b.filter(a=>R(a,f,g));if(i.length<3)continue;let j=i.indexOf(a);j<0||j>=3||(null===d||i.length>d.rows)&&(d={id:"opencode_modal_overlay",headerText:(0,I.D)(h.trim(),200,"…[truncated]"),left:f,right:g,rows:i.length,headerRow:j,frameRowStart:b.indexOf(i[0]),frameRowEnd:b.indexOf(i[i.length-1])})}}return d}(a);return null===b?null:{id:b.id,headerText:b.headerText,left:b.left,right:b.right,rows:b.rows,headerRow:b.headerRow}}let T=/\s{2,}/;var U=c(46423);let V=r.BG;function W(a){let b=(0,e._A)(a.clean).split("\n"),c=Math.max(0,b.length-7);for(let a=b.length-1;a>=Math.max(0,b.length-10);a--)if(/ctrl\+[tp]/.test(b[a])){c=Math.max(0,a-2);break}let d=b.slice(0,c),f=d.length-1;for(;f>=0&&""===d[f].trim();)f--;return{candidates:d,lastIndex:f}}let X=(0,q.b)({tool:"opencode",verifiedAgainst:V,afterThinking(a){if(e.Ty.test(a.lastLines))return{status:"waiting",confidence:"high",reason:h.g.OPENCODE_PERMISSION_PROMPT,hasActivePrompt:!1,evidence:"positive"};if(e.kD.test(a.lastLines))return{status:"running",confidence:"high",reason:h.g.OPENCODE_PROCESSING_INDICATOR,hasActivePrompt:!1,evidence:"positive"};let{candidates:b,lastIndex:c}=W(a);if(c<0)return null;let d=b.slice(Math.max(0,c-U.$+1),c+1).join("\n");if((0,e.ut)("opencode",d))return{status:"running",confidence:"high",reason:h.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"};let f=b.slice(Math.max(0,c-p.h+1),c+1).join("\n");if(e.LO.test(b.join("\n")))return{status:"waiting",confidence:"high",reason:h.g.OPENCODE_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"};if(null!==S(a.raw))return{status:"waiting",confidence:"high",reason:h.g.OPENCODE_MODAL_OVERLAY,hasActivePrompt:!1,evidence:"positive"};if(e.$t.test(f))return{status:"ready",confidence:"high",reason:h.g.OPENCODE_RESPONSE_COMPLETE,hasActivePrompt:!1,evidence:"positive"};let g=a.lines.slice(Math.max(0,c-p.h+1),c+1).join("\n");return e.vU.test(g)?{status:"ready",confidence:"high",reason:h.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:null},skipGenericInputPrompt:!0,readIdleEvidence:function(a){let{candidates:b,lastIndex:c}=W(a);if(c<0)return"none";let d=b.slice(Math.max(0,c-p.h+1),c+1).join("\n");if(e.$t.test(d))return"positive";let f=a.lines.slice(Math.max(0,c-p.h+1),c+1).join("\n");return e.vU.test(f)?"positive":"none"},detectDialog(a){var b;let{candidates:c}=W(a);return b={contentWindow:c.join("\n")},e.Ty.test(a.lastLines)?{kind:"permission",options:function(a){for(let b of a.lines){let a=e.Ty.exec(b);if(a)return a[0].replace(/^[^\S\n]*[│┃][^\S\n]*/,"").trim().split(T).map(a=>a.trim()).filter(a=>""!==a)}return[]}(a),answerMode:"keys"}:e.LO.test(b.contentWindow)||null!==S(a.raw)?{kind:"picker",options:[],answerMode:"keys"}:null},unreadableReason:h.g.UNKNOWN_FRAME}),Y=r.u3,Z=/^[^\S\n]*[│┃][^\S\n]*Allow once[^\S\n]{2,}Always allow[^\S\n]{2,}Reject\b/m,$=/^[^\S\n]*[│┃][^\S\n]*↑↓ select[^\S\n]+enter submit[^\S\n]+esc dismiss\b/m,_=/^[^\S\n│┃]*[A-Za-z][\w-]*(?: [\w-]+)* · [^\n]+? · \d+(?:\.\d+)?(?:ms|s|m(?: \d+s)?)(?: · [\d.]+ tok\/s)?[^\S\n]*$/,aa=["Allow once","Always allow","Reject"],ab=/^[^\S\n]*[│┃]/,ac=/^[^\S\n]*[│┃][^\S\n]*(\d+)\.[^\S\n]+(\S.*?)[^\S\n]*$/,ad=(0,q.b)({tool:"opencode-v2",verifiedAgainst:Y,requireVouchedPrompt:!0,beforePrompt:a=>Z.test(a.lastLines)?{status:"waiting",confidence:"high",reason:h.g.OPENCODE_PERMISSION_PROMPT,hasActivePrompt:!1,evidence:"positive"}:$.test(a.lastLines)?{status:"waiting",confidence:"high",reason:h.g.OPENCODE_SELECTION_LIST,hasActivePrompt:!1,evidence:"positive"}:null!==(0,e.dF)((0,e.aJ)(a.raw))?{status:"waiting",confidence:"high",reason:h.g.OPENCODE_MODAL_OVERLAY,hasActivePrompt:!1,evidence:"positive"}:null,afterThinking:a=>(0,e.ut)("opencode-v2",a.lastLines)?{status:"running",confidence:"high",reason:h.g.THINKING_INDICATOR,hasActivePrompt:!1,evidence:"positive"}:!function(a){let b=a.contentLines;for(let a=b.length-1;a>=0;a--){var c;if(c=b[a],!(/^[\s│┃╹▀]*$/.test(c)||/^[^\S\n]*[│┃][^\S\n]*[A-Za-z][\w-]* · [^·\n]+$/.test(c)||e.c7.test(c)||/^\s*\d+\.\d+\.\d+\s*$/.test(c)))return _.test(b[a])}return!1}(a)?e.wK.test((0,e.aJ)(a.raw))||e.c7.test(a.lastLines)?{status:"ready",confidence:"high",reason:h.g.INPUT_PROMPT,hasActivePrompt:!1,evidence:"positive"}:null:{status:"ready",confidence:"high",reason:h.g.OPENCODE_RESPONSE_COMPLETE,hasActivePrompt:!1,evidence:"positive"},detectDialog(a){if(Z.test(a.lastLines))return{kind:"permission",options:aa,answerMode:"keys"};let b=function(a){if(!$.test(a.lastLines))return null;let b=a.contentLines,c=-1;for(let a=b.length-1;a>=0;a--)if($.test(b[a])){c=a;break}if(c<0)return null;let d=[];for(let a=c-1;a>=0&&ab.test(b[a]);a--){let c=ac.exec(b[a]);c&&d.unshift(`${c[1]}. ${c[2]}`)}return d.length<2||!d.every((a,b)=>a.startsWith(`${b+1}. `))?null:{kind:"question",options:d,answerMode:"numbered",submitMode:"answer_only"}}(a);return null!==b?b:null!==(0,e.dF)((0,e.aJ)(a.raw))?{kind:"picker",options:[],answerMode:"keys"}:null}});function ae(a){return(0,q.b)({tool:a,verifiedAgainst:r.hB})}let af=ae("gemini"),ag=ae("vibe-local"),ah={claude:x,codex:y.q,copilot:H,opencode:X,antigravity:d.VC,"command-code":D,"opencode-v2":ad,gemini:af,"vibe-local":ag};function ai(a){return ah[a]??ae(a)}Object.values(ah)},95595:(a,b,c)=>{c.d(b,{WC:()=>k,f8:()=>j,gv:()=>d.g,ug:()=>h});var d=c(37717),e=c(74258),f=c(94814),g=c(16402);let h=new Set([d.g.OPENCODE_SELECTION_LIST,d.g.OPENCODE_MODAL_OVERLAY,d.g.OPENCODE_PERMISSION_PROMPT,d.g.CLAUDE_SELECTION_LIST,d.g.COMMAND_CODE_SELECTION_LIST,d.g.COMMAND_CODE_PLAN_REVIEW,d.g.COPILOT_SELECTION_LIST,d.g.CODEX_SELECTION_LIST,d.g.CODEX_PAGER,d.g.CODEX_HOOKS_REVIEW,d.g.ANTIGRAVITY_SELECTION_LIST]),i=new Set([d.g.THINKING_INDICATOR,d.g.OPENCODE_PROCESSING_INDICATOR]);function j(a){return"running"===a.status&&i.has(a.reason)}function k(a,b,c){let d=(0,e.z)(a),h=(0,f.bN)(b).detect(d,{lastOutputTimestamp:c,isPromptVouched:c=>(0,g.vm)(b,c.promptData?.type,a).present});return{status:h.status,confidence:h.confidence,reason:h.reason,hasActivePrompt:h.hasActivePrompt,evidence:h.evidence,promptDetection:h.promptDetection??{isPrompt:!1,cleanContent:d.clean}}}},96742:(a,b,c)=>{c.d(b,{nK:()=>p});var d=c(51297),e=c(69119),f=c(91478),g=c(682);let h=/❯[^\S\n]*(\d{1,2})[.)]/,i=/^[^\S\n]*type\s+something\b/i,j=/^\[[ xX\u2714]\]\s/,k=/^\[[xX\u2714]\]\s/,l=/^[^\S\n]*(?:\u276F[^\S\n]*)?(?:Submit|Next)[^\S\n]*$/,m=/^[^\S\n]*Enter\s+to\s+select\b.*\|.*\bEsc\s+to\s+cancel[^\S\n]*$/i;function n(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3?c.slice(-5e3):c}function o(a){return{kind:"unsupported",reason:a}}function p(a){if(!a)return{kind:"none"};if(null!==(0,f.uG)(a))return o("review-page");let b=(0,f.Dk)(a);if(null===b)return(0,f.f_)(a)?o("numbering-unreadable"):{kind:"none"};if(!b.cursorOnOptionRow)return o("cursor-outside-options");let c=a.replace(/\r\n/g,"\n").split("\n").map(d.aJ).slice(b.firstLineIndex,b.lastLineIndex+1);if(c.length>60)return o("region-too-tall");let p=b.tabLineIndex-b.firstLineIndex,q=(0,g.c)(c,c.length,12);if(null===q)return o("option-block-unreadable");let r=[...q.options],s=""===q.footer?[]:q.footer.split("\n"),t=s.some(a=>l.test(a)),u=s.filter(a=>!l.test(a)&&!m.test(a));if(u.length>0){let a=r.length-1;r[a]=[r[a],...u].join(" ").trim()}if(r.length!==b.optionCount)return o("option-count-mismatch");let v=r.some(a=>j.test(a));if(v&&!t)return o("multi-select");let w=c[b.cursorLineIndex-b.firstLineIndex]??"",x=h.exec(w);if(q.selectedIndex<0||"❯"!==q.selectedGlyph||null===x||Number(x[1])!==q.selectedIndex+1)return o("default-unresolved");let y=c.slice(p+1,q.firstRow).map(a=>a.trim()).filter(a=>""!==a);if(0===y.length)return o("question-missing");let z=y.join(" "),A=(0,e.ZH)(c,p+1,c.length),B=r.map((a,b)=>({number:b+1,label:v?a.replace(j,""):a,isDefault:b===q.selectedIndex,...v?{checked:k.test(a)}:{}})),C=(0,e.xe)(z,B,{instructionText:A,approvalTarget:A},c.join("\n"),n,"answer_only",!0),D=C.promptData;return void 0===D||"multiple_choice"!==D.type?o("option-block-unreadable"):{kind:"prompt",region:b,prompt:{...C,promptData:{...D,...v?{multiSelect:!0}:{},options:D.options.map((a,b)=>{let c=B[b]?.checked,d=void 0===c?a:{...a,checked:c};return!0===a.requiresTextInput||i.test(a.label)?{...d,requiresTextInput:!0}:d})}}}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=6661,exports.ids=[6661],exports.modules={24581:(a,b,c)=>{c.d(b,{Mu:()=>f,RY:()=>i,Tt:()=>h,Ui:()=>p,Xq:()=>l,ZV:()=>s,h_:()=>g,jF:()=>q,kT:()=>o,nY:()=>k,qX:()=>r,wt:()=>n});var d=c(62887),e=c(27870);let f=18e5,g={predicted:2e4,confirmed:18e5},h=3,i=16,j={turnId:null,openedAt:null,closedAt:null,closedBy:null};function k(a){return null===a?j:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function l(a){if("string"!=typeof a||0===a.length||a.length>128)return null;for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c)return null}return a}function m(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function n(a){return m(a,e.lY)}function o(a){return m(a,d.h9)}function p(a){if(!Array.isArray(a))return null;let b=[];for(let c of a)if("string"==typeof c&&""!==c&&(b.push(c.slice(0,200)),b.length>=8))break;return b.length>0?b:null}function q(a,b){let c=null===a.confirmedAt?g.predicted:g.confirmed;return b-a.at<c}function r(a,b,c){return null!==b&&c-a.at>=1e3*b}function s(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>K,jw:()=>I});var d=c(51297),e=c(20967);let f=["minimal","low","medium","high","xhigh","max","ultra","persistent"];function g(){return{model:null,effort:null}}let h=/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/,i=/^[A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*$/;function j(a){return a.length>0&&a.length<=64&&h.test(a)}function k(a){return a.length>0&&a.length<=64&&i.test(a)}function l(a,b={}){let c=a.trim().toLowerCase();if(""===c)return null;if(f.includes(c))return c;if(!b.allowTruncated||c.length<2)return null;let d=f.filter(a=>a.length===c.length+1&&a.startsWith(c));return 1===d.length?d[0]:null}let m=/^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh|max|ultra|persistent)\b)?/i,n=/^\s*[^\s·]+\s+[A-Za-z][A-Za-z_-]*(?=\s|$)/,o=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/;function p(a){if(!e.aW.test(a)&&!o.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=a.slice(0,b),d=m.exec(c);if(!d)return null;let f=d[1];if(!j(f))return null;let g=d[2]?l(d[2]):null;return null!==g||/\d/.test(f)?null===g&&n.test(c)?{model:f,effort:null,effortUnreadable:!0}:{model:f,effort:g}:null}let q=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i,r=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F·]*?)\s+·\s+Claude\s+[A-Za-z]+\b/,s=/^\s*\S\s+([A-Za-z]+)\s+·\s+\/effort\s*$/;function t(a){let b=q.exec(a);if(b){let a=b[1].trim();return k(a)?{model:a,effort:l(b[2])}:null}let c=r.exec(a);if(!c)return null;let d=c[1].trim();return/\swith\s/i.test(d)||!k(d)?null:{model:d,effort:null}}function u(a){let b=s.exec(a);if(!b)return null;let c=l(b[1]);return null===c?null:{model:null,effort:c}}let v=/^\s*⎿\s+(?:Set model to|Kept model as)\s+(?!(?:and saved as your default|for this session only)\b)([A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*?)(?:\s+(?:and saved as your default for new sessions|for this session only))?(?:\s+with\s+([A-Za-z]+)\s+effort\b[^·]*)?\s*(?:·.*)?$/;function w(a){let b=v.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let x=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,y=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function z(a){if(!x.test(a))return null;let b=a.lastIndexOf("\xb7");if(b<0)return null;let c=l(a.slice(b+1),{allowTruncated:!0});if(!c)return null;let d=a.slice(0,b).trimEnd().split(/\s{2,}/),e=(d[d.length-1]??"").trim();return{model:k(e)?e:null,effort:c}}function A(a){let b=y.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let B=/^\s*[●◉◎○]\s+Model\s+changed\s+from\s+\S+(?:\s+\([^)]*\))?\s+to\s+(\S+)(?:\s+\((minimal|low|medium|high|xhigh)\))?\s+for\s+this\s+session\b/i;function C(a){let b=B.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let D=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/;function E(a){let b=D.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}let F=/^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;function G(a){let b=F.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}function H(a,b){let c=a.split("\n");for(let a=c.length-1;a>=0;a--){let e=b((0,d.aJ)(c[a]));if(e)return e}return null}function I(a,b){if(!b)return g();switch(a){case"codex":return H(b,p)??g();case"claude":return function(a){let b=H(a,t);if(!b||null!==b.effort)return b;let c=H(a,u);return c?{model:b.model,effort:c.effort}:b}(b)??H(b,w)??g();case"antigravity":return H(b,z)??H(b,A)??g();case"copilot":{let a=function(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=(0,d.aJ)(b[a]);if(""!==c.trim()){if(!e.Ub.test(c)&&!e.tJ.test(c))return null;let a=c.trim().split(/\s{2,}/);if(a.length<2)return null;let b=a[a.length-1].split("\xb7").map(a=>a.trim());if(b.length>2)return null;let d=b[0];if(!k(d))return null;if(1===b.length)return{model:d,effort:null};let f=l(b[1]);return null===f?null:{model:d,effort:f}}}return null}(b),c=H(b,C);if(!a)return c??g();if(null!==a.effort||null===c||null===c.effort)return a;return!function(a,b){let c=a=>a.toLowerCase().replace(/[^a-z0-9]/g,"");return c(a)===c(b)}(a.model,c.model)?a:{model:a.model,effort:c.effort}}case"opencode":return H(b,E)??g();case"command-code":return H(b,G)??g();default:return g()}}let J=/-(low|medium|high)$/i;function K(a,b,c,d){let e=(b||null)??c?.model??null,f=c?.effort??null,g="antigravity"===a?function(a){if(!a)return null;let b=J.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},27870:(a,b,c)=>{c.d(b,{lY:()=>h,QB:()=>e,Yo:()=>m,fO:()=>n,LF:()=>j,PP:()=>i,T5:()=>g});var d=c(81254);let e=[{number:1,label:"Allow once",reply:"once"},{number:2,label:"Allow always",reply:"always"},{number:3,label:"Reject",reply:"reject"}],f={"opencode-v2":{once:"Allow once",always:"Always allow",reject:"Reject"}};function g(a){let b=f[a];return b?e.map(a=>b[a.reply]?{...a,label:b[a.reply]}:a):e}let h=500;function i(a){return"string"==typeof a&&""!==a}function j(a,b){return"permission-id"===a&&b.some(a=>i(a.id)&&!a.deliveryExpired)}let k={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function l(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${k[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`];if(b.decisionOptions&&b.decisionOptions.length>0?c.push(`Answer it with \`commandmate respond ${a} <number>\`: `+b.decisionOptions.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+". The reply goes to the agent's own API, so no keys are sent to the terminal "+`and the label works too (\`respond ${a} "Allow once"\`).`):c.push(`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`),b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:d,labels:e,questionCount:f}=b.askUserQuestion,g=i(b.decisionId)&&1===f&&!(b.decisionOptions&&b.decisionOptions.length>0);c.push(`The agent asked${f>1?` ${f} questions, the first being`:""}: "${d}" — offering: ${e.join(" / ")}. `+(g?`Answer it with \`commandmate respond ${a} <number>\`: `+e.map((a,b)=>`${b+1} = ${a}`).join(", ")+". The number is this list's own position and the reply goes to the agent's own API, so no keys are sent to the terminal (the label works too).":"The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list."))}return c.join(" ")}function m(a,b){return{type:d.LT,status:"pending",question:l(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{},...b.decisionOptions&&b.decisionOptions.length>0?{decisionOptions:b.decisionOptions}:{},decisionId:i(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function n(a,b){return{type:d.LT,status:"unclassified",question:l(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},48083:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_DEDUP_WINDOW_MS:()=>G,AGENT_MODEL_EFFORT_SUFFIX_PATTERN:()=>z,LIFECYCLE_AGENT_EVENT_TYPES:()=>aJ,STRUCTURED_PROMPT_PROVISIONAL_MAX_AGE_MS:()=>ax,STRUCTURED_STATE_MAX_AGE_MS:()=>as,beginAgentEventGeneration:()=>at,classifyAgentEventDelivery:()=>aK,clearAgentStopEvents:()=>aN,clearAskUserQuestion:()=>aG,clearStructuredPromptWaiting:()=>aD,closeAgentTurn:()=>T,corroborateStructuredPromptWaiting:()=>aB,discardAgentEventState:()=>av,getAgentEventDropCounts:()=>K,getAgentEventGenerationStartedAt:()=>au,getAgentModelBaseline:()=>E,getAgentTurn:()=>R,getAskUserQuestion:()=>aF,getAwaitingInstruction:()=>_,getLastAgentEvent:()=>ah,getLastCapturedModelInfo:()=>al,getLastKnownAgentEffort:()=>ar,getLastKnownAgentModel:()=>ai,getLastReportedAgentEffort:()=>aq,getLastStopEventAt:()=>W,getPendingDecisions:()=>Q,getPublishedAgentTurn:()=>S,getRecentEventIdentityCount:()=>aM,getRecentEventKeyCount:()=>aI,getResolvedAgentModelInfo:()=>am,getStructuredPromptWaiting:()=>aA,getStructuredSessionState:()=>aw,isAwaitingInstruction:()=>aa,isDuplicateAgentEvent:()=>aH,isSameAgentModelName:()=>C,markStructuredPromptRecorded:()=>aC,observeScraperCompletionEvidence:()=>U,onAgentModelChange:()=>D,recordAgentEvent:()=>Y,recordAgentReportedEffort:()=>ap,recordAgentReportedModel:()=>aj,recordAgentStopEvent:()=>V,recordAskUserQuestion:()=>aE,recordCapturedModelInfo:()=>ak,reportPermissionRequestPending:()=>ay,reportQuestionPending:()=>az});var d=c(24455),e=c(62887),f=c(49154),g=c(26547),h=c(67882),i=c(24581);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventTurns??(globalThis.__agentEventTurns=new Map),n=globalThis.__agentEventDrops??(globalThis.__agentEventDrops=new Map),o=globalThis.__agentEventTurnSeq??(globalThis.__agentEventTurnSeq={value:0}),p=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),q=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),r=globalThis.__agentEventRecentIdentities??(globalThis.__agentEventRecentIdentities=new Map),s=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),t=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),u=globalThis.__agentEventLastModelAt??(globalThis.__agentEventLastModelAt=new Map),v=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map),w=globalThis.__agentEventLastEffort??(globalThis.__agentEventLastEffort=new Map),x=globalThis.__agentModelBaseline??(globalThis.__agentModelBaseline=new Map),y=globalThis.__agentModelChangeListeners??(globalThis.__agentModelChangeListeners=new Set),z=/[-_ ](?:minimal|low|medium|high|xhigh)$/i,A=/\bcontext\b/gi;function B(a){return a.replace(z,"").replace(A,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function C(a,b,c={}){let d=B(a),e=B(b);return d===e||!!c.crossSource&&0!==d.length&&0!==e.length&&(d.includes(e)||e.includes(d))}function D(a){return y.add(a),()=>{y.delete(a)}}function E(a,b,c){return x.get((0,d.v7)(a,b,c))??null}function F(a,b,c,e,f){let g=(0,d.v7)(a,b,c),{info:h,source:i}=ao(g,b),j=h.model;if(null===j||null===i)return;let k=x.get(g),l={model:j,source:i};if(void 0===k){x.set(g,l),aL(x,H);return}if(C(k.model,j,{crossSource:k.source!==i}))return void x.set(g,l);x.set(g,l);var m={worktreeId:a,cliToolId:b,instanceId:c??b,from:k.model,to:j,source:e,at:f};for(let a of y)try{a(m)}catch{}}let G=3e3,H=512;function I(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function J(a){let b=n.get(a);return b||(b=I(),n.set(a,b),aL(n,H)),b}function K(a,b,c){let e=n.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:I()}function L(a){return l.get(a)??null}function M(a){let b=m.get(a);return b&&b.generationAt===L(a)?b:null}function N(a,b){let c=M(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=i.Mu&&(c.closedAt=c.displayEvent.at+i.Mu,c.closedBy="stale"),c)}function O(a){return o.value+=1,`turn-${a}-${o.value}`}function P(a,b,c){let d=b.pendingDecisions.filter(a=>(0,i.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(J(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function Q(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);return null===g?[]:P(f,g,e)}function R(a,b,c,e=Date.now()){return N((0,d.v7)(a,b,c),e)}function S(a,b,c,d=Date.now()){return(0,i.nY)(R(a,b,c,d))}function T(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(g.closedAt=f,g.closedBy=e,!0)}function U(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(e?(g.scraperCompletionPolls+=1,!(g.scraperCompletionPolls<i.Tt)&&(g.closedAt=f,g.closedBy="scraper_evidence",!0)):(g.scraperCompletionPolls=0,!1))}function V(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function W(a,b,c){return j.get((0,d.v7)(a,b,c))??null}let X=["running","waiting"];function Y(a,b,c,g,h={}){let j=(0,d.v7)(a,b,c);return!function(a,b,c,e,f){if("session_start"!==e.event||!0!==f.sessionStartMayArriveLate)return!1;let g=aw(a,b,c,e.at);if(null===g||!X.includes(g.status))return!1;let h=k.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,g,h)?(k.set(j,g),"session_start"===g.event&&x.delete(j),$(j,g),F(a,b,c,"hook",g.at),function(a,b){switch(b.event){case"pre_tool_use":f.mW.includes(b.detail??"")||p.delete(a);return;case"notification":"idle_prompt"===b.detail&&p.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;default:b.event;return}}(j,g),"session_start"===g.event&&(l.set(j,g.at),Z(j,g.at)),function(a,b){let c=L(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":ac(a,b,c,{continueOpen:!1}),ae(a);return;case"post_tool_use":ac(a,b,c,{continueOpen:!0}),ae(a);return;case"pre_tool_use":ac(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=M(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,i.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=ab(b),ae(a);return}m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}(a,b,c);return;case"session_end":(function(a,b){let c=M(a);null!==c&&(0,i.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),ae(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?af(a,b):ad(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:ab(b)});if(b.detail===e.KC){!0===b.promptSettled&&af(a,b);return}if("idle_prompt"===b.detail){ae(a);let d=M(a);if(null!==d&&null===d.closedAt){d.displayEvent=ab(b);return}if(null!==d)return;m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}}(a,b,c);return;default:b.event;return}}(j,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&s.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":s.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(j,g),{recorded:!0}):($(j,g),F(a,b,c,"hook",g.at),{recorded:!1,skipped:"late-session-start"})}function Z(a,b){let c=m.get(a);c&&(0!==c.pendingDecisions.length&&(J(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function $(a,b){"string"==typeof b.model&&""!==b.model&&(t.set(a,b.model.slice(0,e.h9)),u.set(a,b.at))}function _(a,b,c){let e=(0,d.v7)(a,b,c),f=s.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}function aa(a,b,c){return null!==_(a,b,c)}function ab(a){return{event:a.event,at:a.at,detail:a.detail}}function ac(a,b,c,{continueOpen:d}){let e=M(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,i.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=ab(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let g=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[];m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:g,scraperCompletionPolls:0}),ag()}function ad(a,b,c){let d=M(a);null===d?(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag()):null!==d.closedAt&&(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag());let e=null===c.decisionId?null:(0,i.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(J(a).idsDiscarded+=1);let f="notification"===c.source,g=null!==e?d.pendingDecisions.find(a=>a.decisionId===e)??d.pendingDecisions.find(a=>null===a.decisionId&&"permission-request"===a.source):d.pendingDecisions.find(a=>null===a.decisionId);if(g){g.message=(0,i.wt)(c.message)??g.message,g.toolName=(0,i.kT)(c.toolName)??g.toolName,g.patterns=(0,i.Ui)(c.patterns)??g.patterns,g.decisionId??=e,f&&(g.source="notification",g.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=i.RY){J(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,i.wt)(c.message),toolName:(0,i.kT)(c.toolName),patterns:(0,i.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function ae(a){let b=M(a);null!==b&&(b.pendingDecisions=[])}function af(a,b){let c=M(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,i.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function ag(){aL(m,H)}function ah(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function ai(a,b,c){return t.get((0,d.v7)(a,b,c))??null}function aj(a,b,c,f,g=Date.now()){if("string"!=typeof f||""===f)return;let h=(0,d.v7)(a,b,c);t.set(h,f.slice(0,e.h9)),u.set(h,g),F(a,b,c,"hook",g)}function ak(a,b,c,f,g=Date.now()){if(!f.model&&!f.effort)return;let h=(0,d.v7)(a,b,c),i=v.get(h),j=f.model?f.model.slice(0,e.h9):i?.model??null;v.set(h,{model:j,effort:f.effortUnreadable?null:f.effort??i?.effort??null,modelChangedAt:null===j?null:j===(i?.model??null)?i?.modelChangedAt??g:g}),f.model&&F(a,b,c,"frame",g)}function al(a,b,c){let e=v.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}function am(a,b,c){return ao((0,d.v7)(a,b,c),b).info}let an=new Set(["claude"]);function ao(a,b){let c=t.get(a)??null,d=v.get(a),e={model:d?.model??null,effort:d?.effort??null},f=w.get(a)??null,h=d?.modelChangedAt??null,i=null!==c&&null!==e.model&&null!==h&&an.has(b)&&h>(u.get(a)??0)&&!C(c,e.model,{crossSource:!0}),j=(0,g.Yz)(b,i?null:c,e,f);return null===j.model?{info:j,source:null}:{info:j,source:null===c||i?"frame":"hook"}}function ap(a,b,c,f){"string"==typeof f&&""!==f&&w.set((0,d.v7)(a,b,c),f.slice(0,e.h9))}function aq(a,b,c){return w.get((0,d.v7)(a,b,c))??null}function ar(a,b,c){return am(a,b,c).effort}let as=i.Mu;function at(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),Z(f,e),p.delete(f),s.delete(f),t.delete(f),u.delete(f),v.delete(f),w.delete(f),x.delete(f),r.delete(f)}function au(a,b,c){return l.get((0,d.v7)(a,b,c))??null}function av(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),s.delete(e),t.delete(e),u.delete(e),v.delete(e),w.delete(e),x.delete(e),r.delete(e)}function aw(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);if(null===g)return null;let i=g.displayEvent;if(e-i.at>=as)return null;let j={event:i.event,at:i.at,detail:i.detail},k=P(f,g,e);if(k.length>0)return{status:"waiting",reason:"notification"===k[0].source?h.Oh.PERMISSION_PROMPT:h.Oh.PERMISSION_REQUEST,...j};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:h.Oh.STOP,...j}:null;let l=(0,h.DA)(i.event,i.detail);return null===l||"waiting"===l.status?null===g.openedAt?null:{status:"running",reason:h.Oh.PROMPT_SUBMIT,...j}:{...l,...j}}let ax=i.h_.predicted;function ay(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function az(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function aA(a,b,c,d=Date.now()){return Q(a,b,c,d)[0]??null}function aB(a,b,c,d=Date.now()){let e=aA(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function aC(a,b,c){let d=aA(a,b,c);d&&(d.recorded=!0)}function aD(a,b,c){ae((0,d.v7)(a,b,c))}function aE(a,b,c,e,f=Date.now()){p.set((0,d.v7)(a,b,c),{at:f,spec:e})}function aF(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=p.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=as?null:g}function aG(a,b,c){p.delete((0,d.v7)(a,b,c))}function aH(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=q.get(i);return void 0!==j&&g-j<G||(q.set(i,g),function(a){for(let[b,c]of q)a-c>=G&&q.delete(b);for(;q.size>H;){let a=q.keys().next();if(a.done)break;q.delete(a.value)}}(g),!1)}function aI(){return q.size}let aJ=["stop","session_end"];function aK(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let c=null===a.identity?null:(0,i.Xq)(a.identity);if(null!==a.identity&&null===c&&(J(b).idsDiscarded+=1),null!==c)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=r.get(c);e||(e=new Map,r.set(c,e),aL(r,H));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),aL(e,H),!1)}(a,c)?{duplicate:!1}:(J(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(aJ.includes(a.event))return{duplicate:!1}}return aH(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(J(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function aL(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}function aM(a,b,c){if(void 0===a||void 0===b){let a=0;for(let b of r.values())a+=b.size;return a}return r.get((0,d.v7)(a,b,c))?.size??0}function aN(){j.clear(),k.clear(),q.clear(),r.clear(),l.clear(),m.clear(),n.clear(),p.clear(),s.clear(),t.clear(),u.clear(),v.clear(),w.clear(),x.clear()}},49154:(a,b,c)=>{c.d(b,{GF:()=>e,Wk:()=>g,mW:()=>f});var d=c(13287);let e="question",f=[d.k$,e];function g(a){return null!==a&&f.includes(a)?"question":"permission"}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(67469),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>i,kA:()=>g,px:()=>h});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a,b=!1){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!b};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}function h(a){return a?.isUnclassified===!0&&"ready"===g(a)}function i(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8583,exports.ids=[964,8583],exports.modules={15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},40964:(a,b,c)=>{c.d(b,{s4:()=>k,NN:()=>n,Ze:()=>l,mf:()=>m});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}var g=c(15608);let h="mcbd-",i=/^[0-9a-f]{8}$/,j=[...d.XH].sort((a,b)=>b.length-a.length);function k(){return globalThis.__cmTmuxSessionNamespace??null}function l(a,b,c,e){var g=null===a?h:`${h}${a}-`;let i=`${g}${b}-${c}`;if(!e||e===b)return f(i),i;let j=(0,d.pL)(e,b),k=j?`${i}-${j}`:i;return f(k),k}function m(a,b,c){let d=k(),e=l(d,a,b,c);return null===d?e:(0,g.mc)(e)??e}function n(a){if(!a.startsWith(h))return null;let b=a.slice(h.length),c=null,d=b.indexOf("-");d>0&&i.test(b.slice(0,d))&&(c=b.slice(0,d),b=b.slice(d+1));let e=j.find(a=>b.startsWith(`${a}-`));if(!e)return null;let f=b.slice(e.length+1);return""===f?null:{namespace:c,cliToolId:e,rest:f}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=964,exports.ids=[964,8583],exports.modules={15608:(a,b,c)=>{function d(){return globalThis.__cmLegacySessionAliases??=new Map}function e(a){return d().get(a)}function f(a){let b=d(),c=!1;for(let[d,e]of b)e===a&&(b.delete(d),c=!0);return c}c.d(b,{mc:()=>e,y:()=>f})},40964:(a,b,c)=>{c.d(b,{s4:()=>k,NN:()=>n,Ze:()=>l,mf:()=>m});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}var g=c(15608);let h="mcbd-",i=/^[0-9a-f]{8}$/,j=[...d.XH].sort((a,b)=>b.length-a.length);function k(){return globalThis.__cmTmuxSessionNamespace??null}function l(a,b,c,e){var g=null===a?h:`${h}${a}-`;let i=`${g}${b}-${c}`;if(!e||e===b)return f(i),i;let j=(0,d.pL)(e,b),k=j?`${i}-${j}`:i;return f(k),k}function m(a,b,c){let d=k(),e=l(d,a,b,c);return null===d?e:(0,g.mc)(e)??e}function n(a){if(!a.startsWith(h))return null;let b=a.slice(h.length),c=null,d=b.indexOf("-");d>0&&i.test(b.slice(0,d))&&(c=b.slice(0,d),b=b.slice(d+1));let e=j.find(a=>b.startsWith(`${a}-`));if(!e)return null;let f=b.slice(e.length+1);return""===f?null:{namespace:c,cliToolId:e,rest:f}}}};