commandmate 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +189 -189
  3. package/.next/app-path-routes-manifest.json +34 -34
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.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_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  29. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/route.js +1 -1
  147. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  151. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  152. package/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/worktrees/[id]/page.js +1 -1
  162. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  164. package/.next/server/app-paths-manifest.json +34 -34
  165. package/.next/server/chunks/4443.js +1 -1
  166. package/.next/server/chunks/5164.js +1 -1
  167. package/.next/server/chunks/6130.js +1 -1
  168. package/.next/server/chunks/650.js +1 -1
  169. package/.next/server/chunks/6661.js +1 -1
  170. package/.next/server/chunks/8581.js +2 -2
  171. package/.next/server/chunks/8728.js +1 -1
  172. package/.next/server/chunks/9627.js +30 -24
  173. package/.next/server/chunks/9882.js +3 -3
  174. package/.next/server/middleware-manifest.json +5 -5
  175. package/.next/server/pages/500.html +1 -1
  176. package/.next/server/server-reference-manifest.json +1 -1
  177. package/.next/static/chunks/{1642-767aed8e7c61ef7f.js → 1642-fb2e176aaadbd137.js} +1 -1
  178. package/.next/static/chunks/{2407-e259744922e0834c.js → 2407-99799e3c2ff03bae.js} +1 -1
  179. package/.next/static/chunks/{2619-a305ad4810f1393a.js → 2619-04bc32f026a0d946.js} +1 -1
  180. package/.next/static/chunks/{4768-979c8a03bed218e7.js → 4768-fc0aa1d0891cac08.js} +1 -1
  181. package/.next/static/chunks/{8165-8944f74c53f3021f.js → 8165-d3b7c8a7aa776bc7.js} +1 -1
  182. package/.next/static/chunks/{8606-9a381b996f9b6834.js → 8606-79c36d4c204bbd38.js} +1 -1
  183. package/.next/static/chunks/app/{layout-b90cce6a51c91f4c.js → layout-1fb647d6df55c498.js} +1 -1
  184. package/.next/static/chunks/app/worktrees/[id]/{page-e9ebdcd317b62e4a.js → page-f24da37453224716.js} +1 -1
  185. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-c601f3b3ece6557e.js → page-373ea37b16d930c7.js} +1 -1
  186. package/.next/trace +13 -13
  187. package/dist/server/src/lib/auto-yes-poller.js +72 -1
  188. package/dist/server/src/lib/db/chat-db.js +38 -0
  189. package/dist/server/src/lib/detection/cli-patterns.js +11 -0
  190. package/dist/server/src/lib/detection/model-info-extractor.js +49 -10
  191. package/dist/server/src/lib/detection/selection-shape.js +76 -0
  192. package/dist/server/src/lib/detection/tools/antigravity/detect.js +64 -0
  193. package/dist/server/src/lib/detection/tools/claude/detect.js +28 -1
  194. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +51 -0
  195. package/dist/server/src/lib/detection/tools/codex/detect.js +21 -2
  196. package/dist/server/src/lib/detection/tools/command-code/detect.js +14 -3
  197. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +113 -0
  198. package/dist/server/src/lib/polling/response-checker.js +73 -4
  199. package/dist/server/src/lib/session/agent-event-state.js +8 -1
  200. package/dist/server/src/lib/session/current-output-builder.js +25 -0
  201. package/dist/server/src/lib/session/layer-disagreement.js +108 -0
  202. package/dist/server/src/types/sidebar.js +1 -0
  203. package/package.json +1 -1
  204. package/release-notes/0.40.1.json +20 -0
  205. package/release-notes/0.41.0.json +29 -0
  206. /package/.next/static/{o3mZdwNhCks6IlcAOPinc → UoGuvKnR_kGftU9RHtebq}/_buildManifest.js +0 -0
  207. /package/.next/static/{o3mZdwNhCks6IlcAOPinc → UoGuvKnR_kGftU9RHtebq}/_ssgManifest.js +0 -0
@@ -63,11 +63,17 @@
63
63
  ON CONFLICT(old_id) DO UPDATE SET
64
64
  worktree_id = excluded.worktree_id,
65
65
  created_at = excluded.created_at`).run(b,c,d))}function f(a,b,c=(0,d.xE)(a)){if(0===b.length)return;let{noDelete:e}=(0,d.ld)(a),g=b.map(()=>"?").join(",");for(let{table:d,column:f}of c)e.has(d)||a.prepare(`DELETE FROM "${d}" WHERE "${f}" IN (${g})`).run(...b)}function g(a,b,c,h=Date.now()){if(b===c||!a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return;a.pragma("defer_foreign_keys = ON");let i=a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c),{noUpdate:j}=(0,d.ld)(a),k=(0,d.xE)(a),l=k.filter(({table:a})=>!j.has(a));if(i){for(let{table:d,column:e}of l)a.prepare(`UPDATE OR IGNORE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);f(a,[b],k),a.prepare("DELETE FROM worktrees WHERE id = ?").run(b),e(a,b,c,h);return}for(let{table:d,column:e}of(a.prepare("UPDATE worktrees SET id = ? WHERE id = ?").run(c,b),l))a.prepare(`UPDATE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);e(a,b,c,h)}},34257:(a,b,c)=>{c.d(b,{Bo:()=>h,_P:()=>i,gj:()=>e});var d=c(57510);let e="PostModelSwitch",f="model_switch",g="to_model",h=(a,b)=>a===e?{event:"notification",detail:function(a){return null===a?f:`${f}:${a}`}((0,d.O2)(b,g))}:null;function i(a){return(0,d.O2)(a,"hook_event_name")!==e?null:(0,d.O2)(a,g)}},38186:(a,b,c)=>{c.d(b,{AG:()=>e,jg:()=>f,wf:()=>d});let d="terminal",e=new Set(["terminal","chat"]);function f(a){return"string"==typeof a&&e.has(a)}},40277:(a,b,c)=>{c.d(b,{ZN:()=>g,ld:()=>f,xE:()=>e});let d="worktree_id";function e(a){let b=a.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all(),c=[],e=new Set,f=(a,b)=>{let d=JSON.stringify([a,b]);e.has(d)||(e.add(d),c.push({table:a,column:b}))};for(let{name:c}of b)if("worktrees"!==c)for(let b of(a.prepare(`PRAGMA table_info("${c}")`).all().some(a=>a.name===d)&&f(c,d),a.prepare(`PRAGMA foreign_key_list("${c}")`).all()))"worktrees"===b.table&&("id"===b.to||null===b.to)&&f(c,b.from);return c}function f(a){let b=a.prepare("SELECT tbl_name, sql FROM sqlite_master WHERE type = 'trigger'").all(),c=new Set,d=new Set;for(let a of b)a.sql&&/\bRAISE\s*\(\s*ABORT/i.test(a.sql)&&(/\bBEFORE\s+UPDATE\b/i.test(a.sql)&&c.add(a.tbl_name),/\bBEFORE\s+DELETE\b/i.test(a.sql)&&d.add(a.tbl_name));return{noUpdate:c,noDelete:d}}function g(a){let{noDelete:b}=f(a);return e(a).filter(({table:a})=>!b.has(a))}},43252:(a,b,c)=>{c.d(b,{D2:()=>H,O$:()=>C,Os:()=>E,W6:()=>q,WZ:()=>p,XE:()=>s,ZL:()=>F,g5:()=>z,iR:()=>A,jx:()=>o,q:()=>w,sI:()=>r,xM:()=>B,yc:()=>x});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(34257),l=c(70997),m=c(13287);let n=(0,c(72626).h)("lib/hooks/hook-settings-generator"),o="/api/hooks/agent-event",p="/api/hooks/permission-request",q=5,r=5,s="CM_AUTH_TOKEN",t=m.k$,u=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)","Bash(tmux kill-server:*)","Bash(tmux kill-session:*)","Bash(tmux set-option -g:*)","Bash(tmux set -g:*)","Bash(tmux bind-key:*)","Bash(tmux bind:*)","Bash(tmux unbind-key:*)","Bash(tmux unbind:*)"],v=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function w(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function x(){return!!(process.env[s]||process.env.CM_AUTH_TOKEN_HASH)}function y(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function z(a){let b=a.cliToolId??l.v;return a.instanceId??b}function A(a,b={}){let c=a.cliToolId??l.v,e=z(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(y(b),`${f.slice(0,80)}-${h}.json`)}function B(a,b={}){return D(o,a,b)}function C(a,b={}){return D(p,a,b)}function D(a,b,c){let d=b.cliToolId??l.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:z(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function E(){let a=(0,g.resolve)(process.cwd(),v);return(0,e.existsSync)(a)?a:null}function F(a){return`'${a.replace(/'/g,"'\\''")}'`}function G(a,b,c=q){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${s}`,e.allowedEnvVars=[s]),e}function H(a,b,c={}){if(!w())return a;if(!(0,j.n6)(z(b)))return n.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=A(a,b);return(0,e.mkdirSync)(y(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=()=>G(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=void 0===b.relayScriptPath?E():b.relayScriptPath;if(e)return[F(e),"--tool",F(a.cliToolId??l.v),"--event session_start --worktree-id",F(a.worktreeId),"--instance-id",F(z(a)),"--url",F(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${s}"`:"";return`curl -sS -m ${q} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${F(c)} >/dev/null 2>&1 || true`}(a,b),timeout:q}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:t,hooks:[e()]}],PostToolUse:[{matcher:t,hooks:[e()]}],[k.gj]:[{hooks:[e()]}],PermissionRequest:[{hooks:[G(C(a,b),d,r)]}]},permissions:{deny:[...u]}}}(a,b),null,2)}
66
- `,{mode:384}),c}(b,c);return`${F(a)} --settings ${F(d)}`}catch(c){return n.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},49791:(a,b,c)=>{c.d(b,{CH:()=>B,CI:()=>N,De:()=>X,EI:()=>J,Ei:()=>F,K1:()=>M,LV:()=>E,Lf:()=>K,Li:()=>v,M:()=>R,M2:()=>p,Mq:()=>W,Ok:()=>t,T0:()=>j,UR:()=>z,Vc:()=>i,_M:()=>Y,_t:()=>l,bg:()=>P,ep:()=>D,er:()=>w,fy:()=>A,iv:()=>S,mY:()=>x,mi:()=>G,oO:()=>Z,pm:()=>U,sc:()=>s,uS:()=>k,wZ:()=>C,xR:()=>y,zu:()=>V});var d=c(55511),e=c(79551),f=c(72626),g=c(99499);let h=(0,f.h)("lib/hooks/sources/opencode/client"),i="127.0.0.1",j=5e3,k="manual",l="application/json",m="text/event-stream";async function n(a,b){return fetch(a,{...b,redirect:k})}function o(a,b){let c=a.headers?.get?.("content-type");return"string"==typeof c&&c.split(";",1)[0]?.trim().toLowerCase()===b}function p(a){return`http://${i}:${a}`}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function r(a,b){try{let c=await n(a,{...b,signal:AbortSignal.timeout(j)});if(!c.ok)return null;if(!o(c,l))return h.debug("opencode-request-content-type",{url:a,contentType:c.headers?.get?.("content-type")??null}),null;return await c.json()}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}async function s(a){let b,c,d=`${p(a)}/global/health`;try{b=await n(d,{signal:AbortSignal.timeout(j)})}catch(b){let a=b instanceof Error?b.message:String(b);return h.debug("opencode-request-failed",{url:d,error:a}),{kind:"refused",error:a}}if(!b.ok)return{kind:"rejected",status:b.status};if(!o(b,l))return{kind:"rejected",status:0};try{c=await b.json()}catch{return{kind:"rejected",status:b.status}}return q(c)&&!0===c.healthy?{kind:"healthy",health:{healthy:!0,version:"string"==typeof c.version?c.version:null}}:{kind:"rejected",status:0}}async function t(a){let b=await s(a);return"healthy"===b.kind?b.health:null}function u(a){return Array.isArray(a)?a.filter(q):[]}async function v(a){return u(await r(`${p(a)}/permission`))}async function w(a){return u(await r(`${p(a)}/question`))}async function x(a){let b=await r(`${p(a)}/session/status`);if(!q(b))return null;let c={},d=0;for(let[e,f]of Object.entries(b)){if(d>=128){h.warn("opencode-session-status-truncated",{port:a,kept:d,total:Object.keys(b).length,limit:128});break}q(f)&&("busy"===f.type||"idle"===f.type)&&(c[e]=f.type,d+=1)}return c}async function y(a){let b=await x(a);return null===b?null:Object.values(b).includes("busy")?"busy":"idle"}async function z(a,b){return!0===await r(`${p(a)}/session/${encodeURIComponent(b)}/abort`,{method:"POST"})}function A(a){return(0,e.pathToFileURL)(a).href}function B(){return`msg_cmate${(0,d.randomBytes)(12).toString("hex")}`}async function C(a,b,c,d,e){let f=`${p(a)}/session/${encodeURIComponent(b)}/prompt_async`;try{let g=await n(f,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify({messageID:c,...function(a){if(!a)return{};let b={};return a.agent&&(b.agent=a.agent),a.model?.providerID&&a.model.modelID&&(b.model={providerID:a.model.providerID,modelID:a.model.modelID}),a.variant&&(b.variant=a.variant),b}(e),parts:d}),signal:AbortSignal.timeout(j)});if(204!==g.status)return h.warn("opencode-prompt-rejected",{port:a,sessionId:b,status:g.status}),!1;return!0}catch(a){return h.debug("opencode-request-failed",{url:f,error:a instanceof Error?a.message:String(a)}),!1}}async function D(a,b,c){let d,e,f=`${p(a)}/session/${encodeURIComponent(b)}/message/${encodeURIComponent(c)}`;try{d=await n(f,{signal:AbortSignal.timeout(j)})}catch(a){return{kind:"unknown",reason:a instanceof Error?a.message:String(a)}}if(404===d.status)return{kind:"missing"};if(!d.ok)return{kind:"unknown",reason:`status ${d.status}`};if(!o(d,l))return{kind:"unknown",reason:"content-type"};try{e=await d.json()}catch{return{kind:"unknown",reason:"body"}}if(!q(e))return{kind:"unknown",reason:"body"};let g=q(e.info)?e.info:null;return null===g||"user"!==g.role?{kind:"unknown",reason:"role"}:{kind:"found",texts:(Array.isArray(e.parts)?e.parts:[]).filter(q).filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text)}}async function E(a,b,c,d){let e={reply:c};return d&&(e.message=d),null!==await r(`${p(a)}/permission/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function F(a,b,c){return null!==await r(`${p(a)}/question/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:c})})}async function G(a,b){let c=await n(`${p(a)}/event`,{signal:b,headers:{Accept:m}});if(!c.ok||!c.body)throw Error(`opencode /event responded ${c.status}`);if(!o(c,m))throw Error(`opencode /event answered ${c.headers?.get?.("content-type")??"no content-type"}`);return H(a,c.body.getReader())}async function*H(a,b){let c=new TextDecoder,d=function(){let a="",b=[],c=0,d=!1,e=0,f=[],g=()=>{b=[],c=0,d=!0,e+=1},h=()=>{0!==b.length&&(f.push(b.join("\n")),b=[],c=0)},i=a=>{let e=a.endsWith("\r")?a.slice(0,-1):a;if(""===e)return void(d?d=!1:h());if(!d&&!e.startsWith(":")&&e.startsWith("data:")){let a=e.slice(5).replace(/^ /,"");if(c+a.length>262144)return void g();b.push(a),c+=a.length}};return{push(b){let c=(a+=b).indexOf("\n");for(;c>=0;)i(a.slice(0,c)),c=(a=a.slice(c+1)).indexOf("\n");return a.length>262144&&(a="",g()),f.splice(0,f.length)},flush:()=>(""!==a&&(i(a),a=""),d?d=!1:h(),f.splice(0,f.length)),oversizedFrames:()=>e}}(),e=0,f=()=>{let b=d.oversizedFrames();b!==e&&(h.warn("opencode-sse-frame-oversized",{port:a,dropped:b,newlyDropped:b-e,limitChars:262144}),e=b)};try{for(;;){let{done:a,value:e}=await b.read();if(a)break;let g=c.decode(e,{stream:!0});for(let a of d.push(g)){let b=I(a);b&&(yield b)}f()}for(let a of d.flush()){let b=I(a);b&&(yield b)}f()}finally{await b.cancel().catch(()=>{})}}function I(a){try{let b=JSON.parse(a);return q(b)?b:null}catch{return null}}async function J(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message`,d=await r(c);if(!Array.isArray(d))return null;let e=d.filter(q);return e.length>500?e.slice(e.length-500):e}async function K(a,b,c){return function(a,b,c){if(!q(a))return null;for(let d of Array.isArray(a.providers)?a.providers:[]){if(!q(d)||d.id!==b)continue;let a=q(d.models)?d.models:null;if(!a)break;let e=a[c];if(!q(e))break;let f=q(e.limit)?e.limit:null;if(!f)break;let g=f.context;if("number"!=typeof g||!Number.isFinite(g)||g<=0)break;return g}return null}(await L(a),b,c)}async function L(a){return r(`${p(a)}/config/providers`)}async function M(a){return function(a){if(!q(a))return[];let b=Array.isArray(a.providers)?a.providers:[],c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.id?a.id:null;if(!b)continue;let d=[];for(let[b,c]of Object.entries(q(a.models)?a.models:{})){if(!q(c))continue;let a=q(c.variants)?Object.keys(c.variants):[];d.push({id:b,name:"string"==typeof c.name&&c.name.length>0?c.name:b,variants:a.sort()})}d.sort((a,b)=>a.id.localeCompare(b.id)),c.push({id:b,name:"string"==typeof a.name&&a.name.length>0?a.name:b,models:d})}return c.sort((a,b)=>a.id.localeCompare(b.id)),c}(await L(a))}async function N(a){var b=await r(`${p(a)}/agent`);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.name?a.name:null;b&&!0!==a.hidden&&c.push({name:b,mode:"string"==typeof a.mode?a.mode:"",description:"string"==typeof a.description?a.description:null})}return c}function O(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)&&c>0?c:0}async function P(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message?limit=4`,d=await r(c);if(!Array.isArray(d))return null;for(let a=d.length-1;a>=0;a-=1){let b=d[a];if(!q(b))continue;let c=q(b.info)?b.info:null;if(!c||"assistant"!==c.role)continue;let e=q(c.tokens)?c.tokens:null;if(!e)continue;let f=O(e,"output");if(f<=0)continue;let g=q(e.cache)?e.cache:{};return O(e,"input")+f+O(e,"reasoning")+O(g,"read")+O(g,"write")}return null}let Q=["added","deleted","modified"];function R(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!q(c))continue;let a="string"==typeof c.patch?c.patch:null;if(b.push({file:"string"==typeof c.file&&c.file.length>0?c.file:null,patch:null===a?null:a.slice(0,65536),additions:"number"==typeof c.additions&&Number.isFinite(c.additions)?c.additions:0,deletions:"number"==typeof c.deletions&&Number.isFinite(c.deletions)?c.deletions:0,status:"string"==typeof c.status&&Q.includes(c.status)?c.status:null}),b.length>=200)break}return b}async function S(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/diff?messageID=${encodeURIComponent(c)}`,e=await r(d);return Array.isArray(e)?R(e):null}async function T(a,b){let c;try{c=await n(a,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify(b),signal:AbortSignal.timeout(j)})}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),{outcome:{kind:"unreachable"}}}if(409===c.status)return{outcome:{kind:"busy"}};if(!c.ok)return h.warn("opencode-revert-rejected",{url:a,status:c.status}),{outcome:{kind:"rejected",status:c.status}};if(!o(c,l))return{outcome:{kind:"unreachable"}};try{return{revertedTo:function(a){if(!q(a))return null;let b=q(a.revert)?a.revert:null;return b&&"string"==typeof b.messageID&&b.messageID.length>0?b.messageID:null}(await c.json())}}catch{return{outcome:{kind:"unreachable"}}}}async function U(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/revert`,e=await T(d,{messageID:c});return"outcome"in e?e.outcome:e.revertedTo===c?{kind:"reverted",messageId:c}:{kind:"no_op"}}async function V(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/unrevert`,d=await T(c,{});return"outcome"in d?d.outcome:null===d.revertedTo?{kind:"restored"}:{kind:"no_op"}}async function W(a){let b=await r(`${p(a)}/config`);return(0,g.ac)(b)}async function X(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"POST",signal:AbortSignal.timeout(2e4)});if(404===d.status)return{kind:"not-found"};if(!d.ok)return h.warn("opencode-share-refused",{port:a,sessionId:b,status:d.status}),{kind:"refused",status:d.status};if(!o(d,l))return{kind:"failed",reason:"response was not JSON"};let e=await d.json(),f=(0,g.gn)(e);if(null===f)return h.warn("opencode-share-no-url",{port:a,sessionId:b}),{kind:"failed",reason:"server returned no share URL"};return h.info("opencode-share-created",{port:a,sessionId:b}),{kind:"shared",url:f}}catch(a){return{kind:"failed",reason:a instanceof Error?a.message:String(a)}}}async function Y(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"DELETE",signal:AbortSignal.timeout(2e4)});if(!d.ok)return h.warn("opencode-unshare-refused",{port:a,sessionId:b,status:d.status}),!1;return h.info("opencode-share-removed",{port:a,sessionId:b}),!0}catch(c){return h.warn("opencode-unshare-failed",{port:a,sessionId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function Z(a,b){let c=await r(`${p(a)}/session/${encodeURIComponent(b)}`);return(0,g.gn)(c)}},52201:(a,b,c)=>{c.d(b,{Lt:()=>h,MJ:()=>l,Wj:()=>f,eG:()=>j,eu:()=>e,fJ:()=>g,nW:()=>k});var d=c(15194);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}let i=["worktree","repo","appSettings"];function j(a={}){for(let b of i){let c=a[b];if(null==c)continue;let d=h([...c]);if(d.valid)return d.value}return g}function k(a,b,c){let d=null;if(a)try{let b=JSON.parse(a);Array.isArray(b)&&(d=b)}catch{}return j({worktree:d,repo:c,appSettings:b})}function l(a){return!Array.isArray(a)||a.length<e||a.length>f?{valid:!1,error:`selected_agents must be an array of ${e}-${f} elements`}:h(a)}},52660:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>f,MODEL_CHANGE_REQUEST_ID_PREFIX:()=>D,RELAY_REQUEST_ID_PREFIX:()=>F,RELAY_SYSTEM_REQUEST_ID_PREFIX:()=>G,USER_TURN_CANDIDATE_LIMIT:()=>n,clearLastUserMessage:()=>w,createMessage:()=>i,createModelChangeMessage:()=>E,createRelaySystemMessage:()=>L,deleteAllMessages:()=>r,deleteMessageById:()=>s,deleteMessagesByCliTool:()=>t,deleteMessagesByInstance:()=>u,findMessageByRequestId:()=>m,findUnkeyedUserMessages:()=>o,getLastAssistantMessageAt:()=>h,getLastMessage:()=>q,getLastUserMessage:()=>l,getLastUserMessageForInstance:()=>J,getLatestOpenPromptMessage:()=>K,getMessageById:()=>z,getMessages:()=>k,getMessagesByDateRange:()=>y,markPendingPromptsAsAnswered:()=>B,parseRelayRequestId:()=>I,recomputeLastUserMessage:()=>x,recordAnsweredPrompt:()=>C,relayRequestId:()=>H,setMessageRequestId:()=>p,updateLastUserMessage:()=>v,updateMessageContent:()=>j,updatePromptData:()=>A});var d=c(55511);let e=(0,c(72626).h)("chat-db"),f="AND archived = 0";function g(a){let b=a.cli_tool_id??"claude";return{id:a.id,worktreeId:a.worktree_id,role:a.role,content:a.content,summary:a.summary||void 0,timestamp:new Date(a.timestamp),logFileName:a.log_file_name||void 0,requestId:a.request_id||void 0,messageType:a.message_type||"normal",promptData:a.prompt_data?JSON.parse(a.prompt_data):void 0,cliToolId:b,instanceId:a.instance_id??b,archived:1===a.archived}}function h(a,b){let c=a.prepare(`
66
+ `,{mode:384}),c}(b,c);return`${F(a)} --settings ${F(d)}`}catch(c){return n.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},49791:(a,b,c)=>{c.d(b,{CH:()=>B,CI:()=>N,De:()=>X,EI:()=>J,Ei:()=>F,K1:()=>M,LV:()=>E,Lf:()=>K,Li:()=>v,M:()=>R,M2:()=>p,Mq:()=>W,Ok:()=>t,T0:()=>j,UR:()=>z,Vc:()=>i,_M:()=>Y,_t:()=>l,bg:()=>P,ep:()=>D,er:()=>w,fy:()=>A,iv:()=>S,mY:()=>x,mi:()=>G,oO:()=>Z,pm:()=>U,sc:()=>s,uS:()=>k,wZ:()=>C,xR:()=>y,zu:()=>V});var d=c(55511),e=c(79551),f=c(72626),g=c(99499);let h=(0,f.h)("lib/hooks/sources/opencode/client"),i="127.0.0.1",j=5e3,k="manual",l="application/json",m="text/event-stream";async function n(a,b){return fetch(a,{...b,redirect:k})}function o(a,b){let c=a.headers?.get?.("content-type");return"string"==typeof c&&c.split(";",1)[0]?.trim().toLowerCase()===b}function p(a){return`http://${i}:${a}`}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function r(a,b){try{let c=await n(a,{...b,signal:AbortSignal.timeout(j)});if(!c.ok)return null;if(!o(c,l))return h.debug("opencode-request-content-type",{url:a,contentType:c.headers?.get?.("content-type")??null}),null;return await c.json()}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}async function s(a){let b,c,d=`${p(a)}/global/health`;try{b=await n(d,{signal:AbortSignal.timeout(j)})}catch(b){let a=b instanceof Error?b.message:String(b);return h.debug("opencode-request-failed",{url:d,error:a}),{kind:"refused",error:a}}if(!b.ok)return{kind:"rejected",status:b.status};if(!o(b,l))return{kind:"rejected",status:0};try{c=await b.json()}catch{return{kind:"rejected",status:b.status}}return q(c)&&!0===c.healthy?{kind:"healthy",health:{healthy:!0,version:"string"==typeof c.version?c.version:null}}:{kind:"rejected",status:0}}async function t(a){let b=await s(a);return"healthy"===b.kind?b.health:null}function u(a){return Array.isArray(a)?a.filter(q):[]}async function v(a){return u(await r(`${p(a)}/permission`))}async function w(a){return u(await r(`${p(a)}/question`))}async function x(a){let b=await r(`${p(a)}/session/status`);if(!q(b))return null;let c={},d=0;for(let[e,f]of Object.entries(b)){if(d>=128){h.warn("opencode-session-status-truncated",{port:a,kept:d,total:Object.keys(b).length,limit:128});break}q(f)&&("busy"===f.type||"idle"===f.type)&&(c[e]=f.type,d+=1)}return c}async function y(a){let b=await x(a);return null===b?null:Object.values(b).includes("busy")?"busy":"idle"}async function z(a,b){return!0===await r(`${p(a)}/session/${encodeURIComponent(b)}/abort`,{method:"POST"})}function A(a){return(0,e.pathToFileURL)(a).href}function B(){return`msg_cmate${(0,d.randomBytes)(12).toString("hex")}`}async function C(a,b,c,d,e){let f=`${p(a)}/session/${encodeURIComponent(b)}/prompt_async`;try{let g=await n(f,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify({messageID:c,...function(a){if(!a)return{};let b={};return a.agent&&(b.agent=a.agent),a.model?.providerID&&a.model.modelID&&(b.model={providerID:a.model.providerID,modelID:a.model.modelID}),a.variant&&(b.variant=a.variant),b}(e),parts:d}),signal:AbortSignal.timeout(j)});if(204!==g.status)return h.warn("opencode-prompt-rejected",{port:a,sessionId:b,status:g.status}),!1;return!0}catch(a){return h.debug("opencode-request-failed",{url:f,error:a instanceof Error?a.message:String(a)}),!1}}async function D(a,b,c){let d,e,f=`${p(a)}/session/${encodeURIComponent(b)}/message/${encodeURIComponent(c)}`;try{d=await n(f,{signal:AbortSignal.timeout(j)})}catch(a){return{kind:"unknown",reason:a instanceof Error?a.message:String(a)}}if(404===d.status)return{kind:"missing"};if(!d.ok)return{kind:"unknown",reason:`status ${d.status}`};if(!o(d,l))return{kind:"unknown",reason:"content-type"};try{e=await d.json()}catch{return{kind:"unknown",reason:"body"}}if(!q(e))return{kind:"unknown",reason:"body"};let g=q(e.info)?e.info:null;return null===g||"user"!==g.role?{kind:"unknown",reason:"role"}:{kind:"found",texts:(Array.isArray(e.parts)?e.parts:[]).filter(q).filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text)}}async function E(a,b,c,d){let e={reply:c};return d&&(e.message=d),null!==await r(`${p(a)}/permission/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function F(a,b,c){return null!==await r(`${p(a)}/question/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:c})})}async function G(a,b){let c=await n(`${p(a)}/event`,{signal:b,headers:{Accept:m}});if(!c.ok||!c.body)throw Error(`opencode /event responded ${c.status}`);if(!o(c,m))throw Error(`opencode /event answered ${c.headers?.get?.("content-type")??"no content-type"}`);return H(a,c.body.getReader())}async function*H(a,b){let c=new TextDecoder,d=function(){let a="",b=[],c=0,d=!1,e=0,f=[],g=()=>{b=[],c=0,d=!0,e+=1},h=()=>{0!==b.length&&(f.push(b.join("\n")),b=[],c=0)},i=a=>{let e=a.endsWith("\r")?a.slice(0,-1):a;if(""===e)return void(d?d=!1:h());if(!d&&!e.startsWith(":")&&e.startsWith("data:")){let a=e.slice(5).replace(/^ /,"");if(c+a.length>262144)return void g();b.push(a),c+=a.length}};return{push(b){let c=(a+=b).indexOf("\n");for(;c>=0;)i(a.slice(0,c)),c=(a=a.slice(c+1)).indexOf("\n");return a.length>262144&&(a="",g()),f.splice(0,f.length)},flush:()=>(""!==a&&(i(a),a=""),d?d=!1:h(),f.splice(0,f.length)),oversizedFrames:()=>e}}(),e=0,f=()=>{let b=d.oversizedFrames();b!==e&&(h.warn("opencode-sse-frame-oversized",{port:a,dropped:b,newlyDropped:b-e,limitChars:262144}),e=b)};try{for(;;){let{done:a,value:e}=await b.read();if(a)break;let g=c.decode(e,{stream:!0});for(let a of d.push(g)){let b=I(a);b&&(yield b)}f()}for(let a of d.flush()){let b=I(a);b&&(yield b)}f()}finally{await b.cancel().catch(()=>{})}}function I(a){try{let b=JSON.parse(a);return q(b)?b:null}catch{return null}}async function J(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message`,d=await r(c);if(!Array.isArray(d))return null;let e=d.filter(q);return e.length>500?e.slice(e.length-500):e}async function K(a,b,c){return function(a,b,c){if(!q(a))return null;for(let d of Array.isArray(a.providers)?a.providers:[]){if(!q(d)||d.id!==b)continue;let a=q(d.models)?d.models:null;if(!a)break;let e=a[c];if(!q(e))break;let f=q(e.limit)?e.limit:null;if(!f)break;let g=f.context;if("number"!=typeof g||!Number.isFinite(g)||g<=0)break;return g}return null}(await L(a),b,c)}async function L(a){return r(`${p(a)}/config/providers`)}async function M(a){return function(a){if(!q(a))return[];let b=Array.isArray(a.providers)?a.providers:[],c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.id?a.id:null;if(!b)continue;let d=[];for(let[b,c]of Object.entries(q(a.models)?a.models:{})){if(!q(c))continue;let a=q(c.variants)?Object.keys(c.variants):[];d.push({id:b,name:"string"==typeof c.name&&c.name.length>0?c.name:b,variants:a.sort()})}d.sort((a,b)=>a.id.localeCompare(b.id)),c.push({id:b,name:"string"==typeof a.name&&a.name.length>0?a.name:b,models:d})}return c.sort((a,b)=>a.id.localeCompare(b.id)),c}(await L(a))}async function N(a){var b=await r(`${p(a)}/agent`);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.name?a.name:null;b&&!0!==a.hidden&&c.push({name:b,mode:"string"==typeof a.mode?a.mode:"",description:"string"==typeof a.description?a.description:null})}return c}function O(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)&&c>0?c:0}async function P(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message?limit=4`,d=await r(c);if(!Array.isArray(d))return null;for(let a=d.length-1;a>=0;a-=1){let b=d[a];if(!q(b))continue;let c=q(b.info)?b.info:null;if(!c||"assistant"!==c.role)continue;let e=q(c.tokens)?c.tokens:null;if(!e)continue;let f=O(e,"output");if(f<=0)continue;let g=q(e.cache)?e.cache:{};return O(e,"input")+f+O(e,"reasoning")+O(g,"read")+O(g,"write")}return null}let Q=["added","deleted","modified"];function R(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!q(c))continue;let a="string"==typeof c.patch?c.patch:null;if(b.push({file:"string"==typeof c.file&&c.file.length>0?c.file:null,patch:null===a?null:a.slice(0,65536),additions:"number"==typeof c.additions&&Number.isFinite(c.additions)?c.additions:0,deletions:"number"==typeof c.deletions&&Number.isFinite(c.deletions)?c.deletions:0,status:"string"==typeof c.status&&Q.includes(c.status)?c.status:null}),b.length>=200)break}return b}async function S(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/diff?messageID=${encodeURIComponent(c)}`,e=await r(d);return Array.isArray(e)?R(e):null}async function T(a,b){let c;try{c=await n(a,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify(b),signal:AbortSignal.timeout(j)})}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),{outcome:{kind:"unreachable"}}}if(409===c.status)return{outcome:{kind:"busy"}};if(!c.ok)return h.warn("opencode-revert-rejected",{url:a,status:c.status}),{outcome:{kind:"rejected",status:c.status}};if(!o(c,l))return{outcome:{kind:"unreachable"}};try{return{revertedTo:function(a){if(!q(a))return null;let b=q(a.revert)?a.revert:null;return b&&"string"==typeof b.messageID&&b.messageID.length>0?b.messageID:null}(await c.json())}}catch{return{outcome:{kind:"unreachable"}}}}async function U(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/revert`,e=await T(d,{messageID:c});return"outcome"in e?e.outcome:e.revertedTo===c?{kind:"reverted",messageId:c}:{kind:"no_op"}}async function V(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/unrevert`,d=await T(c,{});return"outcome"in d?d.outcome:null===d.revertedTo?{kind:"restored"}:{kind:"no_op"}}async function W(a){let b=await r(`${p(a)}/config`);return(0,g.ac)(b)}async function X(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"POST",signal:AbortSignal.timeout(2e4)});if(404===d.status)return{kind:"not-found"};if(!d.ok)return h.warn("opencode-share-refused",{port:a,sessionId:b,status:d.status}),{kind:"refused",status:d.status};if(!o(d,l))return{kind:"failed",reason:"response was not JSON"};let e=await d.json(),f=(0,g.gn)(e);if(null===f)return h.warn("opencode-share-no-url",{port:a,sessionId:b}),{kind:"failed",reason:"server returned no share URL"};return h.info("opencode-share-created",{port:a,sessionId:b}),{kind:"shared",url:f}}catch(a){return{kind:"failed",reason:a instanceof Error?a.message:String(a)}}}async function Y(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"DELETE",signal:AbortSignal.timeout(2e4)});if(!d.ok)return h.warn("opencode-unshare-refused",{port:a,sessionId:b,status:d.status}),!1;return h.info("opencode-share-removed",{port:a,sessionId:b}),!0}catch(c){return h.warn("opencode-unshare-failed",{port:a,sessionId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function Z(a,b){let c=await r(`${p(a)}/session/${encodeURIComponent(b)}`);return(0,g.gn)(c)}},52201:(a,b,c)=>{c.d(b,{Lt:()=>h,MJ:()=>l,Wj:()=>f,eG:()=>j,eu:()=>e,fJ:()=>g,nW:()=>k});var d=c(15194);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}let i=["worktree","repo","appSettings"];function j(a={}){for(let b of i){let c=a[b];if(null==c)continue;let d=h([...c]);if(d.valid)return d.value}return g}function k(a,b,c){let d=null;if(a)try{let b=JSON.parse(a);Array.isArray(b)&&(d=b)}catch{}return j({worktree:d,repo:c,appSettings:b})}function l(a){return!Array.isArray(a)||a.length<e||a.length>f?{valid:!1,error:`selected_agents must be an array of ${e}-${f} elements`}:h(a)}},52660:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>f,MODEL_CHANGE_REQUEST_ID_PREFIX:()=>E,RELAY_REQUEST_ID_PREFIX:()=>G,RELAY_SYSTEM_REQUEST_ID_PREFIX:()=>H,USER_TURN_CANDIDATE_LIMIT:()=>o,clearLastUserMessage:()=>x,createMessage:()=>j,createModelChangeMessage:()=>F,createRelaySystemMessage:()=>M,deleteAllMessages:()=>s,deleteMessageById:()=>t,deleteMessagesByCliTool:()=>u,deleteMessagesByInstance:()=>v,findMessageByRequestId:()=>n,findUnkeyedUserMessages:()=>p,getLastAssistantMessageAt:()=>h,getLastMessage:()=>r,getLastMessageAtByInstance:()=>i,getLastUserMessage:()=>m,getLastUserMessageForInstance:()=>K,getLatestOpenPromptMessage:()=>L,getMessageById:()=>A,getMessages:()=>l,getMessagesByDateRange:()=>z,markPendingPromptsAsAnswered:()=>C,parseRelayRequestId:()=>J,recomputeLastUserMessage:()=>y,recordAnsweredPrompt:()=>D,relayRequestId:()=>I,setMessageRequestId:()=>q,updateLastUserMessage:()=>w,updateMessageContent:()=>k,updatePromptData:()=>B});var d=c(55511);let e=(0,c(72626).h)("chat-db"),f="AND archived = 0";function g(a){let b=a.cli_tool_id??"claude";return{id:a.id,worktreeId:a.worktree_id,role:a.role,content:a.content,summary:a.summary||void 0,timestamp:new Date(a.timestamp),logFileName:a.log_file_name||void 0,requestId:a.request_id||void 0,messageType:a.message_type||"normal",promptData:a.prompt_data?JSON.parse(a.prompt_data):void 0,cliToolId:b,instanceId:a.instance_id??b,archived:1===a.archived}}function h(a,b){let c=a.prepare(`
67
67
  SELECT MAX(timestamp) as last_assistant_message_at
68
68
  FROM chat_messages
69
69
  WHERE worktree_id = ? AND role = 'assistant' ${f}
70
- `).get(b);return c&&null!==c.last_assistant_message_at?new Date(c.last_assistant_message_at):null}function i(a,b){var c,e;let f=(0,d.randomUUID)(),g=b.cliToolId||"claude",h=b.instanceId||g;return a.prepare(`
70
+ `).get(b);return c&&null!==c.last_assistant_message_at?new Date(c.last_assistant_message_at):null}function i(a){let b=a.prepare(`
71
+ SELECT worktree_id,
72
+ COALESCE(instance_id, cli_tool_id, 'claude') AS resolved_instance_id,
73
+ MAX(timestamp) AS last_message_at
74
+ FROM chat_messages
75
+ GROUP BY worktree_id, resolved_instance_id
76
+ `).all(),c=new Map;for(let a of b){if(null===a.last_message_at)continue;let b=c.get(a.worktree_id);b||(b={},c.set(a.worktree_id,b)),b[a.resolved_instance_id]=new Date(a.last_message_at)}return c}function j(a,b){var c,e;let f=(0,d.randomUUID)(),g=b.cliToolId||"claude",h=b.instanceId||g;return a.prepare(`
71
77
  INSERT INTO chat_messages
72
78
  (id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id)
73
79
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
@@ -75,27 +81,27 @@
75
81
  UPDATE worktrees
76
82
  SET updated_at = ?
77
83
  WHERE id = ?
78
- `).run(e.getTime(),c),"user"===b.role&&v(a,b.worktreeId,b.content,b.timestamp),{id:f,...b,archived:!1}}function j(a,b,c,d){let e=["content = ?"],f=[c];d?.summary!==void 0&&(e.push("summary = ?"),f.push(d.summary??null)),d?.logFileName!==void 0&&(e.push("log_file_name = ?"),f.push(d.logFileName??null)),d?.requestId!==void 0&&(e.push("request_id = ?"),f.push(d.requestId??null)),a.prepare(`
84
+ `).run(e.getTime(),c),"user"===b.role&&w(a,b.worktreeId,b.content,b.timestamp),{id:f,...b,archived:!1}}function k(a,b,c,d){let e=["content = ?"],f=[c];d?.summary!==void 0&&(e.push("summary = ?"),f.push(d.summary??null)),d?.logFileName!==void 0&&(e.push("log_file_name = ?"),f.push(d.logFileName??null)),d?.requestId!==void 0&&(e.push("request_id = ?"),f.push(d.requestId??null)),a.prepare(`
79
85
  UPDATE chat_messages
80
86
  SET ${e.join(", ")}
81
87
  WHERE id = ?
82
- `).run(...f,b)}function k(a,b,c={}){let{before:d,limit:e=50,cliToolId:h,instanceId:i,includeArchived:j=!1,messageType:l,limitUnit:m="messages",matchResolvedInstance:n=!1}=c,o=()=>{let a=`FROM chat_messages
83
- WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)`,c=[b,d?.getTime()||null,d?.getTime()||null];return j||(a+=` ${f}`),i&&n?(h&&(a+=" AND COALESCE(cli_tool_id, 'claude') = ?",c.push(h)),a+=" AND COALESCE(instance_id, cli_tool_id, 'claude') = ?",c.push(i)):i?(a+=" AND instance_id = ?",c.push(i)):h&&(a+=" AND cli_tool_id = ?",c.push(h)),l&&(a+=" AND message_type = ?",c.push(l)),{clause:a,params:c}},p="SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived";if("pairs"===m){let b=o(),c=a.prepare(`SELECT MIN(timestamp) AS cutoff FROM (
88
+ `).run(...f,b)}function l(a,b,c={}){let{before:d,limit:e=50,cliToolId:h,instanceId:i,includeArchived:j=!1,messageType:k,limitUnit:m="messages",matchResolvedInstance:n=!1}=c,o=()=>{let a=`FROM chat_messages
89
+ WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)`,c=[b,d?.getTime()||null,d?.getTime()||null];return j||(a+=` ${f}`),i&&n?(h&&(a+=" AND COALESCE(cli_tool_id, 'claude') = ?",c.push(h)),a+=" AND COALESCE(instance_id, cli_tool_id, 'claude') = ?",c.push(i)):i?(a+=" AND instance_id = ?",c.push(i)):h&&(a+=" AND cli_tool_id = ?",c.push(h)),k&&(a+=" AND message_type = ?",c.push(k)),{clause:a,params:c}},p="SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived";if("pairs"===m){let b=o(),c=a.prepare(`SELECT MIN(timestamp) AS cutoff FROM (
84
90
  SELECT timestamp ${b.clause} AND role = 'user'
85
91
  ORDER BY timestamp DESC LIMIT ?
86
- )`).get(...b.params,e),d=c?.cutoff??null;if(null!==d){let b=o();return a.prepare(`${p} ${b.clause} AND timestamp >= ? ORDER BY timestamp DESC`).all(...b.params,d).map(g)}}let q=o();return a.prepare(`${p} ${q.clause} ORDER BY timestamp DESC LIMIT ?`).all(...q.params,e).map(g)}function l(a,b){let c=a.prepare(`
92
+ )`).get(...b.params,e),d=c?.cutoff??null;if(null!==d){let b=o();return a.prepare(`${p} ${b.clause} AND timestamp >= ? ORDER BY timestamp DESC`).all(...b.params,d).map(g)}}let q=o();return a.prepare(`${p} ${q.clause} ORDER BY timestamp DESC LIMIT ?`).all(...q.params,e).map(g)}function m(a,b){let c=a.prepare(`
87
93
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
88
94
  FROM chat_messages
89
95
  WHERE worktree_id = ? AND role = 'user' ${f}
90
96
  ORDER BY timestamp DESC
91
97
  LIMIT 1
92
- `).get(b);return c?g(c):null}function m(a,b,c){let d=a.prepare(`
98
+ `).get(b);return c?g(c):null}function n(a,b,c){let d=a.prepare(`
93
99
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
94
100
  FROM chat_messages
95
101
  WHERE worktree_id = ? AND request_id = ?
96
102
  ORDER BY timestamp DESC
97
103
  LIMIT 1
98
- `).get(b,c);return d?g(d):null}let n=20;function o(a,b){let c=b.includeRelayDelivered?"AND (request_id IS NULL OR (message_type = 'relay' AND request_id LIKE ?))":"AND request_id IS NULL";return a.prepare(`
104
+ `).get(b,c);return d?g(d):null}let o=20;function p(a,b){let c=b.includeRelayDelivered?"AND (request_id IS NULL OR (message_type = 'relay' AND request_id LIKE ?))":"AND request_id IS NULL";return a.prepare(`
99
105
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
100
106
  FROM chat_messages
101
107
  WHERE worktree_id = ?
@@ -107,54 +113,54 @@
107
113
  ${f}
108
114
  ORDER BY timestamp DESC
109
115
  LIMIT ?
110
- `).all(b.worktreeId,...b.includeRelayDelivered?[`${F}%`]:[],b.cliToolId,b.instanceId,b.fromMs,b.toMs,b.limit??n).map(g).filter(a=>!a.requestId||null!==I(a.requestId))}function p(a,b,c){return a.prepare(`
116
+ `).all(b.worktreeId,...b.includeRelayDelivered?[`${G}%`]:[],b.cliToolId,b.instanceId,b.fromMs,b.toMs,b.limit??o).map(g).filter(a=>!a.requestId||null!==J(a.requestId))}function q(a,b,c){return a.prepare(`
111
117
  UPDATE chat_messages
112
118
  SET request_id = ?
113
119
  WHERE id = ? AND request_id IS NULL
114
- `).run(c,b).changes>0}function q(a,b){let c=a.prepare(`
120
+ `).run(c,b).changes>0}function r(a,b){let c=a.prepare(`
115
121
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
116
122
  FROM chat_messages
117
123
  WHERE worktree_id = ? ${f}
118
124
  ORDER BY timestamp DESC
119
125
  LIMIT 1
120
- `).get(b);return c?g(c):null}function r(a,b){let c=a.prepare(`
126
+ `).get(b);return c?g(c):null}function s(a,b){let c=a.prepare(`
121
127
  UPDATE chat_messages
122
128
  SET archived = 1
123
129
  WHERE worktree_id = ? ${f}
124
- `).run(b);return e.info("archived-all-messages",{worktreeId:b,count:c.changes}),c.changes}function s(a,b){return a.prepare(`
130
+ `).run(b);return e.info("archived-all-messages",{worktreeId:b,count:c.changes}),c.changes}function t(a,b){return a.prepare(`
125
131
  DELETE FROM chat_messages
126
132
  WHERE id = ?
127
- `).run(b).changes>0}function t(a,b,c){let d=a.prepare(`
133
+ `).run(b).changes>0}function u(a,b,c){let d=a.prepare(`
128
134
  UPDATE chat_messages
129
135
  SET archived = 1
130
136
  WHERE worktree_id = ? AND cli_tool_id = ? ${f}
131
- `).run(b,c);return e.info("archived-messages-by-cli-tool",{worktreeId:b,cliTool:c,count:d.changes}),d.changes}function u(a,b,c){let d=a.prepare(`
137
+ `).run(b,c);return e.info("archived-messages-by-cli-tool",{worktreeId:b,cliTool:c,count:d.changes}),d.changes}function v(a,b,c){let d=a.prepare(`
132
138
  UPDATE chat_messages
133
139
  SET archived = 1
134
140
  WHERE worktree_id = ? AND instance_id = ? ${f}
135
- `).run(b,c);return e.info("archived-messages-by-instance",{worktreeId:b,instanceId:c,count:d.changes}),d.changes}function v(a,b,c,d){let e=a.prepare(`
141
+ `).run(b,c);return e.info("archived-messages-by-instance",{worktreeId:b,instanceId:c,count:d.changes}),d.changes}function w(a,b,c,d){let e=a.prepare(`
136
142
  UPDATE worktrees
137
143
  SET last_user_message = ?,
138
144
  last_user_message_at = ?
139
145
  WHERE id = ?
140
- `),f=c.substring(0,200);e.run(f,d.getTime(),b)}function w(a,b){a.prepare(`
146
+ `),f=c.substring(0,200);e.run(f,d.getTime(),b)}function x(a,b){a.prepare(`
141
147
  UPDATE worktrees
142
148
  SET last_user_message = NULL,
143
149
  last_user_message_at = NULL
144
150
  WHERE id = ?
145
- `).run(b)}function x(a,b){let c=l(a,b);c?v(a,b,c.content,c.timestamp):w(a,b)}function y(a,b){let{after:c,before:d,includeArchived:e=!1}=b,h=`
151
+ `).run(b)}function y(a,b){let c=m(a,b);c?w(a,b,c.content,c.timestamp):x(a,b)}function z(a,b){let{after:c,before:d,includeArchived:e=!1}=b,h=`
146
152
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
147
153
  FROM chat_messages
148
154
  WHERE timestamp >= ? AND timestamp < ?
149
- `;return e||(h+=` ${f}`),h+=" ORDER BY timestamp ASC",a.prepare(h).all(c.getTime(),d.getTime()).map(g)}function z(a,b){let c=a.prepare(`
155
+ `;return e||(h+=` ${f}`),h+=" ORDER BY timestamp ASC",a.prepare(h).all(c.getTime(),d.getTime()).map(g)}function A(a,b){let c=a.prepare(`
150
156
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
151
157
  FROM chat_messages
152
158
  WHERE id = ?
153
- `).get(b);return c?g(c):null}function A(a,b,c){a.prepare(`
159
+ `).get(b);return c?g(c):null}function B(a,b,c){a.prepare(`
154
160
  UPDATE chat_messages
155
161
  SET prompt_data = ?
156
162
  WHERE id = ?
157
- `).run(JSON.stringify(c),b)}function B(a,b,c,d,e){let h=a.prepare(`
163
+ `).run(JSON.stringify(c),b)}function C(a,b,c,d,e){let h=a.prepare(`
158
164
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
159
165
  FROM chat_messages
160
166
  WHERE worktree_id = ?
@@ -167,7 +173,7 @@
167
173
  UPDATE chat_messages
168
174
  SET prompt_data = ?
169
175
  WHERE id = ?
170
- `),j=0,k=[];for(let a of h)try{let b=JSON.parse(a.prompt_data??"null");if(!b||"object"!=typeof b)continue;b.status="answered",b.answer="(answered via terminal)",b.answeredAt=new Date().toISOString(),b.answeredBy="terminal";let c=JSON.stringify(b);i.run(c,a.id),j++,e&&k.push(g({...a,prompt_data:c}))}catch{}for(let a of k)e?.(a);return j}function C(a,b){let{worktreeId:c,cliToolId:d,promptData:e,answer:g,answeredBy:h}=b,j=b.instanceId??d,k=a.prepare(`
176
+ `),j=0,k=[];for(let a of h)try{let b=JSON.parse(a.prompt_data??"null");if(!b||"object"!=typeof b)continue;b.status="answered",b.answer="(answered via terminal)",b.answeredAt=new Date().toISOString(),b.answeredBy="terminal";let c=JSON.stringify(b);i.run(c,a.id),j++,e&&k.push(g({...a,prompt_data:c}))}catch{}for(let a of k)e?.(a);return j}function D(a,b){let{worktreeId:c,cliToolId:d,promptData:e,answer:g,answeredBy:h}=b,i=b.instanceId??d,k=a.prepare(`
171
177
  SELECT id, prompt_data
172
178
  FROM chat_messages
173
179
  WHERE worktree_id = ?
@@ -176,7 +182,7 @@
176
182
  AND json_extract(prompt_data, '$.status') = 'pending'
177
183
  ${f}
178
184
  ORDER BY timestamp DESC
179
- `).all(c,j),l=null;for(let a of k)try{let b=JSON.parse(a.prompt_data);if(l||(l={id:a.id,parsed:b}),b.question===e.question){l={id:a.id,parsed:b};break}}catch{}let m=new Date().toISOString();if(l){let b={...l.parsed,status:"answered",answer:g,answeredAt:m,answeredBy:h};return A(a,l.id,b),{message:z(a,l.id),created:!1}}return{message:i(a,{worktreeId:c,role:"assistant",content:b.content||e.question||"[prompt]",messageType:"prompt",promptData:{...e,status:"answered",answer:g,answeredAt:m,answeredBy:h},timestamp:new Date,cliToolId:d,instanceId:j}),created:!0}}let D="model-changed:";function E(a,b){return i(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${D}${b.at}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}let F="relay:",G="relay-sys:";function H(a){return`${F}${a}`}function I(a){if(!a||!a.startsWith(F))return null;let b=a.slice(F.length);return""===b?null:b}function J(a,b,c,d){let e=a.prepare(`
185
+ `).all(c,i),l=null;for(let a of k)try{let b=JSON.parse(a.prompt_data);if(l||(l={id:a.id,parsed:b}),b.question===e.question){l={id:a.id,parsed:b};break}}catch{}let m=new Date().toISOString();if(l){let b={...l.parsed,status:"answered",answer:g,answeredAt:m,answeredBy:h};return B(a,l.id,b),{message:A(a,l.id),created:!1}}return{message:j(a,{worktreeId:c,role:"assistant",content:b.content||e.question||"[prompt]",messageType:"prompt",promptData:{...e,status:"answered",answer:g,answeredAt:m,answeredBy:h},timestamp:new Date,cliToolId:d,instanceId:i}),created:!0}}let E="model-changed:";function F(a,b){return j(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${E}${b.at}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}let G="relay:",H="relay-sys:";function I(a){return`${G}${a}`}function J(a){if(!a||!a.startsWith(G))return null;let b=a.slice(G.length);return""===b?null:b}function K(a,b,c,d){let e=a.prepare(`
180
186
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
181
187
  FROM chat_messages
182
188
  WHERE worktree_id = ? AND role = 'user' ${f}
@@ -184,7 +190,7 @@
184
190
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
185
191
  ORDER BY timestamp DESC
186
192
  LIMIT 1
187
- `).get(b,c,d);return e?g(e):null}function K(a,b,c,d){let e=a.prepare(`
193
+ `).get(b,c,d);return e?g(e):null}function L(a,b,c,d){let e=a.prepare(`
188
194
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
189
195
  FROM chat_messages
190
196
  WHERE worktree_id = ? AND message_type = 'prompt' ${f}
@@ -192,7 +198,7 @@
192
198
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
193
199
  ORDER BY timestamp DESC
194
200
  LIMIT 1
195
- `).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function L(a,b){return i(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${G}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{HV:()=>h,KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied",h="self_resume_pending"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
201
+ `).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function M(a,b){return j(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${H}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{HV:()=>h,KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied",h="self_resume_pending"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
196
202
  SELECT
197
203
  w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
198
204
  w.last_user_message, w.last_user_message_at, w.last_message_summary,