@shugaev/spur 0.1.1 → 0.1.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 (1105) hide show
  1. package/dist/agents/cursor-submit-ack.d.ts.map +1 -1
  2. package/dist/agents/cursor-submit-ack.js +15 -1
  3. package/dist/agents/cursor-submit-ack.js.map +1 -1
  4. package/dist/agents/cursor.d.ts +1 -0
  5. package/dist/agents/cursor.d.ts.map +1 -1
  6. package/dist/agents/cursor.js +3 -1
  7. package/dist/agents/cursor.js.map +1 -1
  8. package/dist/agents/index.js +2 -2
  9. package/dist/agents/index.js.map +1 -1
  10. package/dist/agents/models.d.ts +3 -0
  11. package/dist/agents/models.d.ts.map +1 -1
  12. package/dist/agents/models.js +41 -3
  13. package/dist/agents/models.js.map +1 -1
  14. package/dist/backlog/index.d.ts +15 -0
  15. package/dist/backlog/index.d.ts.map +1 -0
  16. package/dist/backlog/index.js +80 -0
  17. package/dist/backlog/index.js.map +1 -0
  18. package/dist/backlog/providers.d.ts +12 -0
  19. package/dist/backlog/providers.d.ts.map +1 -0
  20. package/dist/backlog/providers.js +22 -0
  21. package/dist/backlog/providers.js.map +1 -0
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +12 -1
  24. package/dist/cli.js.map +1 -1
  25. package/dist/config.d.ts.map +1 -1
  26. package/dist/config.js +64 -0
  27. package/dist/config.js.map +1 -1
  28. package/dist/event-sources/github.d.ts.map +1 -1
  29. package/dist/event-sources/github.js +30 -32
  30. package/dist/event-sources/github.js.map +1 -1
  31. package/dist/event-sources/index.d.ts.map +1 -1
  32. package/dist/event-sources/index.js +5 -0
  33. package/dist/event-sources/index.js.map +1 -1
  34. package/dist/gh.d.ts +2 -0
  35. package/dist/gh.d.ts.map +1 -1
  36. package/dist/gh.js +28 -0
  37. package/dist/gh.js.map +1 -1
  38. package/dist/jira.d.ts +15 -0
  39. package/dist/jira.d.ts.map +1 -0
  40. package/dist/jira.js +74 -0
  41. package/dist/jira.js.map +1 -0
  42. package/dist/metadata.d.ts +7 -1
  43. package/dist/metadata.d.ts.map +1 -1
  44. package/dist/metadata.js +129 -0
  45. package/dist/metadata.js.map +1 -1
  46. package/dist/preflight.d.ts.map +1 -1
  47. package/dist/preflight.js +4 -0
  48. package/dist/preflight.js.map +1 -1
  49. package/dist/prompt-template.d.ts +3 -0
  50. package/dist/prompt-template.d.ts.map +1 -0
  51. package/dist/prompt-template.js +14 -0
  52. package/dist/prompt-template.js.map +1 -0
  53. package/dist/send-batches.d.ts +3 -1
  54. package/dist/send-batches.d.ts.map +1 -1
  55. package/dist/send-batches.js +94 -0
  56. package/dist/send-batches.js.map +1 -1
  57. package/dist/server.d.ts.map +1 -1
  58. package/dist/server.js +27 -1
  59. package/dist/server.js.map +1 -1
  60. package/dist/session-service.d.ts +13 -1
  61. package/dist/session-service.d.ts.map +1 -1
  62. package/dist/session-service.js +164 -45
  63. package/dist/session-service.js.map +1 -1
  64. package/dist/shepherd.d.ts.map +1 -1
  65. package/dist/shepherd.js +2 -1
  66. package/dist/shepherd.js.map +1 -1
  67. package/dist/triggers.d.ts.map +1 -1
  68. package/dist/triggers.js +81 -15
  69. package/dist/triggers.js.map +1 -1
  70. package/dist/types.d.ts +74 -2
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/web/.next/BUILD_ID +1 -1
  74. package/web/.next/app-build-manifest.json +98 -91
  75. package/web/.next/app-path-routes-manifest.json +2 -1
  76. package/web/.next/build-manifest.json +3 -3
  77. package/web/.next/prerender-manifest.json +18 -18
  78. package/web/.next/required-server-files.json +3 -3
  79. package/web/.next/server/app/_not-found/page.js +2 -2
  80. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/_not-found.html +1 -1
  82. package/web/.next/server/app/_not-found.rsc +3 -3
  83. package/web/.next/server/app/api/backlog/take/route.js +1 -0
  84. package/web/.next/server/app/api/backlog/take/route.js.nft.json +1 -0
  85. package/web/.next/server/app/api/backlog/take/route_client-reference-manifest.js +1 -0
  86. package/web/.next/server/app/api/github-status/route.js +1 -1
  87. package/web/.next/server/app/api/github-status/route_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/api/gitlab-status/route.js +1 -1
  89. package/web/.next/server/app/api/gitlab-status/route_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/api/models/route.js +1 -1
  91. package/web/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/api/pr-status/merge/route.js +1 -1
  93. package/web/.next/server/app/api/pr-status/merge/route_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/api/pr-status/route.js +2 -2
  95. package/web/.next/server/app/api/pr-status/route_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/api/preflight/route.js +1 -1
  97. package/web/.next/server/app/api/preflight/route_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/api/projects/[id]/branches/exists/route.js +1 -1
  99. package/web/.next/server/app/api/projects/[id]/branches/exists/route_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/api/projects/[id]/route.js +1 -1
  101. package/web/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/api/projects/[id]/slash-commands/route.js +1 -1
  103. package/web/.next/server/app/api/projects/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/api/projects/route.js +1 -1
  105. package/web/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/api/runtime/info/route.js +1 -1
  107. package/web/.next/server/app/api/runtime/info/route_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/api/runtime/resources/route.js +1 -1
  109. package/web/.next/server/app/api/runtime/resources/route_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/api/runtime/terminal/route.js +1 -1
  111. package/web/.next/server/app/api/runtime/terminal/route_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/api/runtime/versions/route.js +1 -1
  113. package/web/.next/server/app/api/runtime/versions/route_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/api/runtime/versions/switch/route.js +1 -1
  115. package/web/.next/server/app/api/runtime/versions/switch/route_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/api/runtime/voice/route.js +1 -1
  117. package/web/.next/server/app/api/runtime/voice/route_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/api/runtime/voice/transcribe/route.js +1 -1
  119. package/web/.next/server/app/api/runtime/voice/transcribe/route_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/api/sessions/[id]/artifacts/[artifactId]/route.js +1 -1
  121. package/web/.next/server/app/api/sessions/[id]/artifacts/[artifactId]/route_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/api/sessions/[id]/complete/route.js +1 -1
  123. package/web/.next/server/app/api/sessions/[id]/complete/route_client-reference-manifest.js +1 -1
  124. package/web/.next/server/app/api/sessions/[id]/conversation/route.js +1 -1
  125. package/web/.next/server/app/api/sessions/[id]/conversation/route_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
  127. package/web/.next/server/app/api/sessions/[id]/kill/route_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/api/sessions/[id]/logs/route.js +1 -1
  129. package/web/.next/server/app/api/sessions/[id]/logs/route_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/api/sessions/[id]/pause/route.js +1 -1
  131. package/web/.next/server/app/api/sessions/[id]/pause/route_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/api/sessions/[id]/respawn/route.js +1 -1
  133. package/web/.next/server/app/api/sessions/[id]/respawn/route_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
  135. package/web/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/api/sessions/[id]/route.js +1 -1
  137. package/web/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/api/sessions/[id]/send/route.js +1 -1
  139. package/web/.next/server/app/api/sessions/[id]/send/route_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/api/sessions/[id]/sidecars/[name]/start/route.js +1 -1
  141. package/web/.next/server/app/api/sessions/[id]/sidecars/[name]/start/route_client-reference-manifest.js +1 -1
  142. package/web/.next/server/app/api/sessions/[id]/sidecars/[name]/stop/route.js +1 -1
  143. package/web/.next/server/app/api/sessions/[id]/sidecars/[name]/stop/route_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/api/sessions/[id]/slash-commands/route.js +1 -1
  145. package/web/.next/server/app/api/sessions/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  146. package/web/.next/server/app/api/sessions/[id]/tags/route.js +1 -1
  147. package/web/.next/server/app/api/sessions/[id]/tags/route_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/api/sessions/route.js +1 -1
  149. package/web/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  150. package/web/.next/server/app/api/shepherd/spawn/route.js +1 -1
  151. package/web/.next/server/app/api/shepherd/spawn/route_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/api/spawn/route.js +1 -1
  153. package/web/.next/server/app/api/spawn/route_client-reference-manifest.js +1 -1
  154. package/web/.next/server/app/apple-icon/route.js +1 -1
  155. package/web/.next/server/app/apple-icon/route_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/icon/route.js +1 -1
  157. package/web/.next/server/app/icon/route_client-reference-manifest.js +1 -1
  158. package/web/.next/server/app/icon-192/route.js +1 -1
  159. package/web/.next/server/app/icon-192/route_client-reference-manifest.js +1 -1
  160. package/web/.next/server/app/icon-512/route.js +1 -1
  161. package/web/.next/server/app/icon-512/route_client-reference-manifest.js +1 -1
  162. package/web/.next/server/app/manifest.webmanifest/route.js +2 -2
  163. package/web/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  164. package/web/.next/server/app/page.js +3 -3
  165. package/web/.next/server/app/page.js.nft.json +1 -1
  166. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  167. package/web/.next/server/app/sessions/[id]/page.js +6 -6
  168. package/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  169. package/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  170. package/web/.next/server/app-paths-manifest.json +2 -1
  171. package/web/.next/server/chunks/135.js +1 -1
  172. package/web/.next/server/chunks/5158.js +1 -0
  173. package/web/.next/server/chunks/7331.js +3 -3
  174. package/web/.next/server/functions-config-manifest.json +3 -3
  175. package/web/.next/server/middleware-build-manifest.js +1 -1
  176. package/web/.next/server/next-font-manifest.js +1 -1
  177. package/web/.next/server/next-font-manifest.json +1 -1
  178. package/web/.next/server/pages/404.html +1 -1
  179. package/web/.next/server/pages/500.html +1 -1
  180. package/web/.next/server/server-reference-manifest.json +1 -1
  181. package/web/.next/static/chunks/5124-5365d82e8f9962c5.js +1 -0
  182. package/web/.next/static/chunks/app/_not-found/{page-1b6e9375ed39417d.js → page-ce7aac1309588445.js} +1 -1
  183. package/web/.next/static/chunks/app/api/backlog/take/route-1c98dbb79467f151.js +1 -0
  184. package/web/.next/static/chunks/app/api/github-status/route-1c98dbb79467f151.js +1 -0
  185. package/web/.next/static/chunks/app/api/gitlab-status/route-1c98dbb79467f151.js +1 -0
  186. package/web/.next/static/chunks/app/api/models/route-1c98dbb79467f151.js +1 -0
  187. package/web/.next/static/chunks/app/api/pr-status/merge/route-1c98dbb79467f151.js +1 -0
  188. package/web/.next/static/chunks/app/api/pr-status/route-1c98dbb79467f151.js +1 -0
  189. package/web/.next/static/chunks/app/api/preflight/route-1c98dbb79467f151.js +1 -0
  190. package/web/.next/static/chunks/app/api/projects/[id]/branches/exists/route-1c98dbb79467f151.js +1 -0
  191. package/web/.next/static/chunks/app/api/projects/[id]/route-1c98dbb79467f151.js +1 -0
  192. package/web/.next/static/chunks/app/api/projects/[id]/slash-commands/route-1c98dbb79467f151.js +1 -0
  193. package/web/.next/static/chunks/app/api/projects/route-1c98dbb79467f151.js +1 -0
  194. package/web/.next/static/chunks/app/api/runtime/info/route-1c98dbb79467f151.js +1 -0
  195. package/web/.next/static/chunks/app/api/runtime/resources/route-1c98dbb79467f151.js +1 -0
  196. package/web/.next/static/chunks/app/api/runtime/terminal/route-1c98dbb79467f151.js +1 -0
  197. package/web/.next/static/chunks/app/api/runtime/versions/route-1c98dbb79467f151.js +1 -0
  198. package/web/.next/static/chunks/app/api/runtime/versions/switch/route-1c98dbb79467f151.js +1 -0
  199. package/web/.next/static/chunks/app/api/runtime/voice/route-1c98dbb79467f151.js +1 -0
  200. package/web/.next/static/chunks/app/api/runtime/voice/transcribe/route-1c98dbb79467f151.js +1 -0
  201. package/web/.next/static/chunks/app/api/sessions/[id]/artifacts/[artifactId]/route-1c98dbb79467f151.js +1 -0
  202. package/web/.next/static/chunks/app/api/sessions/[id]/complete/route-1c98dbb79467f151.js +1 -0
  203. package/web/.next/static/chunks/app/api/sessions/[id]/conversation/route-1c98dbb79467f151.js +1 -0
  204. package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-1c98dbb79467f151.js +1 -0
  205. package/web/.next/static/chunks/app/api/sessions/[id]/logs/route-1c98dbb79467f151.js +1 -0
  206. package/web/.next/static/chunks/app/api/sessions/[id]/pause/route-1c98dbb79467f151.js +1 -0
  207. package/web/.next/static/chunks/app/api/sessions/[id]/respawn/route-1c98dbb79467f151.js +1 -0
  208. package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-1c98dbb79467f151.js +1 -0
  209. package/web/.next/static/chunks/app/api/sessions/[id]/route-1c98dbb79467f151.js +1 -0
  210. package/web/.next/static/chunks/app/api/sessions/[id]/send/route-1c98dbb79467f151.js +1 -0
  211. package/web/.next/static/chunks/app/api/sessions/[id]/sidecars/[name]/start/route-1c98dbb79467f151.js +1 -0
  212. package/web/.next/static/chunks/app/api/sessions/[id]/sidecars/[name]/stop/route-1c98dbb79467f151.js +1 -0
  213. package/web/.next/static/chunks/app/api/sessions/[id]/slash-commands/route-1c98dbb79467f151.js +1 -0
  214. package/web/.next/static/chunks/app/api/sessions/[id]/tags/route-1c98dbb79467f151.js +1 -0
  215. package/web/.next/static/chunks/app/api/sessions/route-1c98dbb79467f151.js +1 -0
  216. package/web/.next/static/chunks/app/api/shepherd/spawn/route-1c98dbb79467f151.js +1 -0
  217. package/web/.next/static/chunks/app/api/spawn/route-1c98dbb79467f151.js +1 -0
  218. package/web/.next/static/chunks/app/apple-icon/route-1c98dbb79467f151.js +1 -0
  219. package/web/.next/static/chunks/app/icon/route-1c98dbb79467f151.js +1 -0
  220. package/web/.next/static/chunks/app/icon-192/route-1c98dbb79467f151.js +1 -0
  221. package/web/.next/static/chunks/app/icon-512/route-1c98dbb79467f151.js +1 -0
  222. package/web/.next/static/chunks/app/layout-f69f7a978709d508.js +1 -0
  223. package/web/.next/static/chunks/app/manifest.webmanifest/route-1c98dbb79467f151.js +1 -0
  224. package/web/.next/static/chunks/app/page-8a91ba4badc56ab2.js +1 -0
  225. package/web/.next/static/chunks/app/sessions/[id]/page-d8abb491bd89b750.js +1 -0
  226. package/web/.next/static/chunks/{main-app-1cea33e0d8c88bba.js → main-app-96c0fcaf99db6703.js} +1 -1
  227. package/web/.next/static/css/1c8043fd02fc0a5c.css +3 -0
  228. package/web/.next/static/j6j0a_rHfbTSVFFhtL-Dd/_buildManifest.js +1 -0
  229. package/web/node_modules/.package-lock.json +3 -3
  230. package/web/node_modules/caniuse-lite/data/agents.js +1 -1
  231. package/web/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  232. package/web/node_modules/caniuse-lite/data/features/aac.js +1 -1
  233. package/web/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  234. package/web/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  235. package/web/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  236. package/web/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  237. package/web/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  238. package/web/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  239. package/web/node_modules/caniuse-lite/data/features/apng.js +1 -1
  240. package/web/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  241. package/web/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  242. package/web/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  243. package/web/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  244. package/web/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  245. package/web/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  246. package/web/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  247. package/web/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  248. package/web/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  249. package/web/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  250. package/web/node_modules/caniuse-lite/data/features/audio.js +1 -1
  251. package/web/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  252. package/web/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  253. package/web/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  254. package/web/node_modules/caniuse-lite/data/features/av1.js +1 -1
  255. package/web/node_modules/caniuse-lite/data/features/avif.js +1 -1
  256. package/web/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  257. package/web/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  258. package/web/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  259. package/web/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  260. package/web/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  261. package/web/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  262. package/web/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  263. package/web/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  264. package/web/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  265. package/web/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  266. package/web/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  267. package/web/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  268. package/web/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  269. package/web/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  270. package/web/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  271. package/web/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  272. package/web/node_modules/caniuse-lite/data/features/calc.js +1 -1
  273. package/web/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  274. package/web/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  275. package/web/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  276. package/web/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  277. package/web/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  278. package/web/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  279. package/web/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  280. package/web/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  281. package/web/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  282. package/web/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  283. package/web/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  284. package/web/node_modules/caniuse-lite/data/features/colr.js +1 -1
  285. package/web/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  286. package/web/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  287. package/web/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  288. package/web/node_modules/caniuse-lite/data/features/const.js +1 -1
  289. package/web/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  290. package/web/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  291. package/web/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  292. package/web/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  293. package/web/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  294. package/web/node_modules/caniuse-lite/data/features/cors.js +1 -1
  295. package/web/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  296. package/web/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  297. package/web/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  298. package/web/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  299. package/web/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  300. package/web/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  301. package/web/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  302. package/web/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  303. package/web/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  304. package/web/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  305. package/web/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  306. package/web/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  307. package/web/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  308. package/web/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  309. package/web/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  310. package/web/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  311. package/web/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  312. package/web/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  313. package/web/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  314. package/web/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  315. package/web/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  316. package/web/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  317. package/web/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  318. package/web/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  319. package/web/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  320. package/web/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  321. package/web/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  322. package/web/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  323. package/web/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  324. package/web/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  325. package/web/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  326. package/web/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  327. package/web/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  328. package/web/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  329. package/web/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  330. package/web/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  331. package/web/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  332. package/web/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  333. package/web/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  334. package/web/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  335. package/web/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  336. package/web/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  337. package/web/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  338. package/web/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  339. package/web/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  340. package/web/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  341. package/web/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  342. package/web/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  343. package/web/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  344. package/web/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  345. package/web/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  346. package/web/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  347. package/web/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  348. package/web/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  349. package/web/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  350. package/web/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  351. package/web/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  352. package/web/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  353. package/web/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  354. package/web/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  355. package/web/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  356. package/web/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  357. package/web/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  358. package/web/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  359. package/web/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  360. package/web/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  361. package/web/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  362. package/web/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  363. package/web/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  364. package/web/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  365. package/web/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  366. package/web/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  367. package/web/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  368. package/web/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  369. package/web/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  370. package/web/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  371. package/web/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  372. package/web/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  373. package/web/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  374. package/web/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  375. package/web/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  376. package/web/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  377. package/web/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  378. package/web/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  379. package/web/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  380. package/web/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  381. package/web/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  382. package/web/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  383. package/web/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  384. package/web/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  385. package/web/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  386. package/web/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  387. package/web/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  388. package/web/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  389. package/web/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  390. package/web/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  391. package/web/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  392. package/web/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  393. package/web/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  394. package/web/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  395. package/web/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  396. package/web/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  397. package/web/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  398. package/web/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  399. package/web/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  400. package/web/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  401. package/web/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  402. package/web/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  403. package/web/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  404. package/web/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  405. package/web/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  406. package/web/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  407. package/web/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  408. package/web/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  409. package/web/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  410. package/web/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  411. package/web/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  412. package/web/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  413. package/web/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  414. package/web/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  415. package/web/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  416. package/web/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  417. package/web/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  418. package/web/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  419. package/web/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  420. package/web/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  421. package/web/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  422. package/web/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  423. package/web/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  424. package/web/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  425. package/web/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  426. package/web/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  427. package/web/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  428. package/web/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  429. package/web/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  430. package/web/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  431. package/web/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  432. package/web/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  433. package/web/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  434. package/web/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  435. package/web/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  436. package/web/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  437. package/web/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  438. package/web/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  439. package/web/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  440. package/web/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  441. package/web/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  442. package/web/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  443. package/web/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  444. package/web/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  445. package/web/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  446. package/web/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  447. package/web/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  448. package/web/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  449. package/web/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  450. package/web/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  451. package/web/node_modules/caniuse-lite/data/features/details.js +1 -1
  452. package/web/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  453. package/web/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  454. package/web/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  455. package/web/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  456. package/web/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  457. package/web/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  458. package/web/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  459. package/web/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  460. package/web/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  461. package/web/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  462. package/web/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  463. package/web/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  464. package/web/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  465. package/web/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  466. package/web/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  467. package/web/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  468. package/web/node_modules/caniuse-lite/data/features/download.js +1 -1
  469. package/web/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  470. package/web/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  471. package/web/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  472. package/web/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  473. package/web/node_modules/caniuse-lite/data/features/eme.js +1 -1
  474. package/web/node_modules/caniuse-lite/data/features/eot.js +1 -1
  475. package/web/node_modules/caniuse-lite/data/features/es5.js +1 -1
  476. package/web/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  477. package/web/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  478. package/web/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  479. package/web/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  480. package/web/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  481. package/web/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  482. package/web/node_modules/caniuse-lite/data/features/es6.js +1 -1
  483. package/web/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  484. package/web/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  485. package/web/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  486. package/web/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  487. package/web/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  488. package/web/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  489. package/web/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  490. package/web/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  491. package/web/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  492. package/web/node_modules/caniuse-lite/data/features/flac.js +1 -1
  493. package/web/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  494. package/web/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  495. package/web/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  496. package/web/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  497. package/web/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  498. package/web/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  499. package/web/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  500. package/web/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  501. package/web/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  502. package/web/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  503. package/web/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  504. package/web/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  505. package/web/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  506. package/web/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  507. package/web/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  508. package/web/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  509. package/web/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  510. package/web/node_modules/caniuse-lite/data/features/forms.js +1 -1
  511. package/web/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  512. package/web/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  513. package/web/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  514. package/web/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  515. package/web/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  516. package/web/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  517. package/web/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  518. package/web/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  519. package/web/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  520. package/web/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  521. package/web/node_modules/caniuse-lite/data/features/heif.js +1 -1
  522. package/web/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  523. package/web/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  524. package/web/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  525. package/web/node_modules/caniuse-lite/data/features/history.js +1 -1
  526. package/web/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  527. package/web/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  528. package/web/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  529. package/web/node_modules/caniuse-lite/data/features/http2.js +1 -1
  530. package/web/node_modules/caniuse-lite/data/features/http3.js +1 -1
  531. package/web/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  532. package/web/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  533. package/web/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  534. package/web/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  535. package/web/node_modules/caniuse-lite/data/features/ime.js +1 -1
  536. package/web/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  537. package/web/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  538. package/web/node_modules/caniuse-lite/data/features/imports.js +1 -1
  539. package/web/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  540. package/web/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  541. package/web/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  542. package/web/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  543. package/web/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  544. package/web/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  545. package/web/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  546. package/web/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  547. package/web/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  548. package/web/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  549. package/web/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  550. package/web/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  551. package/web/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  552. package/web/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  553. package/web/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  554. package/web/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  555. package/web/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  556. package/web/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  557. package/web/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  558. package/web/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  559. package/web/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  560. package/web/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  561. package/web/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  562. package/web/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  563. package/web/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  564. package/web/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  565. package/web/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  566. package/web/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  567. package/web/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  568. package/web/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  569. package/web/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  570. package/web/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  571. package/web/node_modules/caniuse-lite/data/features/json.js +1 -1
  572. package/web/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  573. package/web/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  574. package/web/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  575. package/web/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  576. package/web/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  577. package/web/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  578. package/web/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  579. package/web/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  580. package/web/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  581. package/web/node_modules/caniuse-lite/data/features/let.js +1 -1
  582. package/web/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  583. package/web/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  584. package/web/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  585. package/web/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  586. package/web/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  587. package/web/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  588. package/web/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  589. package/web/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  590. package/web/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  591. package/web/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  592. package/web/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  593. package/web/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  594. package/web/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  595. package/web/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  596. package/web/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  597. package/web/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  598. package/web/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  599. package/web/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  600. package/web/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  601. package/web/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  602. package/web/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  603. package/web/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  604. package/web/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  605. package/web/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  606. package/web/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  607. package/web/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  608. package/web/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  609. package/web/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  610. package/web/node_modules/caniuse-lite/data/features/menu.js +1 -1
  611. package/web/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  612. package/web/node_modules/caniuse-lite/data/features/meter.js +1 -1
  613. package/web/node_modules/caniuse-lite/data/features/midi.js +1 -1
  614. package/web/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  615. package/web/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  616. package/web/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  617. package/web/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  618. package/web/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  619. package/web/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  620. package/web/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  621. package/web/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  622. package/web/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  623. package/web/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  624. package/web/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  625. package/web/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  626. package/web/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  627. package/web/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  628. package/web/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  629. package/web/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  630. package/web/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  631. package/web/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  632. package/web/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  633. package/web/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  634. package/web/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  635. package/web/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  636. package/web/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  637. package/web/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  638. package/web/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  639. package/web/node_modules/caniuse-lite/data/features/opus.js +1 -1
  640. package/web/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  641. package/web/node_modules/caniuse-lite/data/features/outline.js +1 -1
  642. package/web/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  643. package/web/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  644. package/web/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  645. package/web/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  646. package/web/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  647. package/web/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  648. package/web/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  649. package/web/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  650. package/web/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  651. package/web/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  652. package/web/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  653. package/web/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  654. package/web/node_modules/caniuse-lite/data/features/picture.js +1 -1
  655. package/web/node_modules/caniuse-lite/data/features/ping.js +1 -1
  656. package/web/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  657. package/web/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  658. package/web/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  659. package/web/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  660. package/web/node_modules/caniuse-lite/data/features/portals.js +1 -1
  661. package/web/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  662. package/web/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  663. package/web/node_modules/caniuse-lite/data/features/progress.js +1 -1
  664. package/web/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  665. package/web/node_modules/caniuse-lite/data/features/promises.js +1 -1
  666. package/web/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  667. package/web/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  668. package/web/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  669. package/web/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  670. package/web/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  671. package/web/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  672. package/web/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  673. package/web/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  674. package/web/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  675. package/web/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  676. package/web/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  677. package/web/node_modules/caniuse-lite/data/features/rem.js +1 -1
  678. package/web/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  679. package/web/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  680. package/web/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  681. package/web/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  682. package/web/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  683. package/web/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  684. package/web/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  685. package/web/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  686. package/web/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  687. package/web/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  688. package/web/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  689. package/web/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  690. package/web/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  691. package/web/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  692. package/web/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  693. package/web/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  694. package/web/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  695. package/web/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  696. package/web/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  697. package/web/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  698. package/web/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  699. package/web/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  700. package/web/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  701. package/web/node_modules/caniuse-lite/data/features/sni.js +1 -1
  702. package/web/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  703. package/web/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  704. package/web/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  705. package/web/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  706. package/web/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  707. package/web/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  708. package/web/node_modules/caniuse-lite/data/features/stream.js +1 -1
  709. package/web/node_modules/caniuse-lite/data/features/streams.js +1 -1
  710. package/web/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  711. package/web/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  712. package/web/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  713. package/web/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  714. package/web/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  715. package/web/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  716. package/web/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  717. package/web/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  718. package/web/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  719. package/web/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  720. package/web/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  721. package/web/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  722. package/web/node_modules/caniuse-lite/data/features/svg.js +1 -1
  723. package/web/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  724. package/web/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  725. package/web/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  726. package/web/node_modules/caniuse-lite/data/features/template.js +1 -1
  727. package/web/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  728. package/web/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  729. package/web/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  730. package/web/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  731. package/web/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  732. package/web/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  733. package/web/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  734. package/web/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  735. package/web/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  736. package/web/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  737. package/web/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  738. package/web/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  739. package/web/node_modules/caniuse-lite/data/features/touch.js +1 -1
  740. package/web/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  741. package/web/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  742. package/web/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  743. package/web/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  744. package/web/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  745. package/web/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  746. package/web/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  747. package/web/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  748. package/web/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  749. package/web/node_modules/caniuse-lite/data/features/url.js +1 -1
  750. package/web/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  751. package/web/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  752. package/web/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  753. package/web/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  754. package/web/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  755. package/web/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  756. package/web/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  757. package/web/node_modules/caniuse-lite/data/features/video.js +1 -1
  758. package/web/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  759. package/web/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  760. package/web/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  761. package/web/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  762. package/web/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  763. package/web/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  764. package/web/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  765. package/web/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  766. package/web/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  767. package/web/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  768. package/web/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  769. package/web/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  770. package/web/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  771. package/web/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  772. package/web/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  773. package/web/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  774. package/web/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  775. package/web/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  776. package/web/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  777. package/web/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  778. package/web/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  779. package/web/node_modules/caniuse-lite/data/features/wav.js +1 -1
  780. package/web/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  781. package/web/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  782. package/web/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  783. package/web/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  784. package/web/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  785. package/web/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  786. package/web/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  787. package/web/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  788. package/web/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  789. package/web/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  790. package/web/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  791. package/web/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  792. package/web/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  793. package/web/node_modules/caniuse-lite/data/features/webm.js +1 -1
  794. package/web/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  795. package/web/node_modules/caniuse-lite/data/features/webp.js +1 -1
  796. package/web/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  797. package/web/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  798. package/web/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  799. package/web/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  800. package/web/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  801. package/web/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  802. package/web/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  803. package/web/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  804. package/web/node_modules/caniuse-lite/data/features/woff.js +1 -1
  805. package/web/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  806. package/web/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  807. package/web/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  808. package/web/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  809. package/web/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  810. package/web/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  811. package/web/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  812. package/web/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  813. package/web/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  814. package/web/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  815. package/web/node_modules/caniuse-lite/data/regions/AD.js +1 -1
  816. package/web/node_modules/caniuse-lite/data/regions/AE.js +1 -1
  817. package/web/node_modules/caniuse-lite/data/regions/AF.js +1 -1
  818. package/web/node_modules/caniuse-lite/data/regions/AG.js +1 -1
  819. package/web/node_modules/caniuse-lite/data/regions/AI.js +1 -1
  820. package/web/node_modules/caniuse-lite/data/regions/AL.js +1 -1
  821. package/web/node_modules/caniuse-lite/data/regions/AM.js +1 -1
  822. package/web/node_modules/caniuse-lite/data/regions/AO.js +1 -1
  823. package/web/node_modules/caniuse-lite/data/regions/AR.js +1 -1
  824. package/web/node_modules/caniuse-lite/data/regions/AS.js +1 -1
  825. package/web/node_modules/caniuse-lite/data/regions/AT.js +1 -1
  826. package/web/node_modules/caniuse-lite/data/regions/AU.js +1 -1
  827. package/web/node_modules/caniuse-lite/data/regions/AW.js +1 -1
  828. package/web/node_modules/caniuse-lite/data/regions/AX.js +1 -1
  829. package/web/node_modules/caniuse-lite/data/regions/AZ.js +1 -1
  830. package/web/node_modules/caniuse-lite/data/regions/BA.js +1 -1
  831. package/web/node_modules/caniuse-lite/data/regions/BB.js +1 -1
  832. package/web/node_modules/caniuse-lite/data/regions/BD.js +1 -1
  833. package/web/node_modules/caniuse-lite/data/regions/BE.js +1 -1
  834. package/web/node_modules/caniuse-lite/data/regions/BF.js +1 -1
  835. package/web/node_modules/caniuse-lite/data/regions/BG.js +1 -1
  836. package/web/node_modules/caniuse-lite/data/regions/BH.js +1 -1
  837. package/web/node_modules/caniuse-lite/data/regions/BI.js +1 -1
  838. package/web/node_modules/caniuse-lite/data/regions/BJ.js +1 -1
  839. package/web/node_modules/caniuse-lite/data/regions/BM.js +1 -1
  840. package/web/node_modules/caniuse-lite/data/regions/BN.js +1 -1
  841. package/web/node_modules/caniuse-lite/data/regions/BO.js +1 -1
  842. package/web/node_modules/caniuse-lite/data/regions/BR.js +1 -1
  843. package/web/node_modules/caniuse-lite/data/regions/BS.js +1 -1
  844. package/web/node_modules/caniuse-lite/data/regions/BT.js +1 -1
  845. package/web/node_modules/caniuse-lite/data/regions/BW.js +1 -1
  846. package/web/node_modules/caniuse-lite/data/regions/BY.js +1 -1
  847. package/web/node_modules/caniuse-lite/data/regions/BZ.js +1 -1
  848. package/web/node_modules/caniuse-lite/data/regions/CA.js +1 -1
  849. package/web/node_modules/caniuse-lite/data/regions/CD.js +1 -1
  850. package/web/node_modules/caniuse-lite/data/regions/CF.js +1 -1
  851. package/web/node_modules/caniuse-lite/data/regions/CG.js +1 -1
  852. package/web/node_modules/caniuse-lite/data/regions/CH.js +1 -1
  853. package/web/node_modules/caniuse-lite/data/regions/CI.js +1 -1
  854. package/web/node_modules/caniuse-lite/data/regions/CK.js +1 -1
  855. package/web/node_modules/caniuse-lite/data/regions/CL.js +1 -1
  856. package/web/node_modules/caniuse-lite/data/regions/CM.js +1 -1
  857. package/web/node_modules/caniuse-lite/data/regions/CN.js +1 -1
  858. package/web/node_modules/caniuse-lite/data/regions/CO.js +1 -1
  859. package/web/node_modules/caniuse-lite/data/regions/CR.js +1 -1
  860. package/web/node_modules/caniuse-lite/data/regions/CU.js +1 -1
  861. package/web/node_modules/caniuse-lite/data/regions/CV.js +1 -1
  862. package/web/node_modules/caniuse-lite/data/regions/CX.js +1 -1
  863. package/web/node_modules/caniuse-lite/data/regions/CY.js +1 -1
  864. package/web/node_modules/caniuse-lite/data/regions/CZ.js +1 -1
  865. package/web/node_modules/caniuse-lite/data/regions/DE.js +1 -1
  866. package/web/node_modules/caniuse-lite/data/regions/DJ.js +1 -1
  867. package/web/node_modules/caniuse-lite/data/regions/DK.js +1 -1
  868. package/web/node_modules/caniuse-lite/data/regions/DM.js +1 -1
  869. package/web/node_modules/caniuse-lite/data/regions/DO.js +1 -1
  870. package/web/node_modules/caniuse-lite/data/regions/DZ.js +1 -1
  871. package/web/node_modules/caniuse-lite/data/regions/EC.js +1 -1
  872. package/web/node_modules/caniuse-lite/data/regions/EE.js +1 -1
  873. package/web/node_modules/caniuse-lite/data/regions/EG.js +1 -1
  874. package/web/node_modules/caniuse-lite/data/regions/ER.js +1 -1
  875. package/web/node_modules/caniuse-lite/data/regions/ES.js +1 -1
  876. package/web/node_modules/caniuse-lite/data/regions/ET.js +1 -1
  877. package/web/node_modules/caniuse-lite/data/regions/FI.js +1 -1
  878. package/web/node_modules/caniuse-lite/data/regions/FJ.js +1 -1
  879. package/web/node_modules/caniuse-lite/data/regions/FK.js +1 -1
  880. package/web/node_modules/caniuse-lite/data/regions/FM.js +1 -1
  881. package/web/node_modules/caniuse-lite/data/regions/FO.js +1 -1
  882. package/web/node_modules/caniuse-lite/data/regions/FR.js +1 -1
  883. package/web/node_modules/caniuse-lite/data/regions/GA.js +1 -1
  884. package/web/node_modules/caniuse-lite/data/regions/GB.js +1 -1
  885. package/web/node_modules/caniuse-lite/data/regions/GD.js +1 -1
  886. package/web/node_modules/caniuse-lite/data/regions/GE.js +1 -1
  887. package/web/node_modules/caniuse-lite/data/regions/GF.js +1 -1
  888. package/web/node_modules/caniuse-lite/data/regions/GG.js +1 -1
  889. package/web/node_modules/caniuse-lite/data/regions/GH.js +1 -1
  890. package/web/node_modules/caniuse-lite/data/regions/GI.js +1 -1
  891. package/web/node_modules/caniuse-lite/data/regions/GL.js +1 -1
  892. package/web/node_modules/caniuse-lite/data/regions/GM.js +1 -1
  893. package/web/node_modules/caniuse-lite/data/regions/GN.js +1 -1
  894. package/web/node_modules/caniuse-lite/data/regions/GP.js +1 -1
  895. package/web/node_modules/caniuse-lite/data/regions/GQ.js +1 -1
  896. package/web/node_modules/caniuse-lite/data/regions/GR.js +1 -1
  897. package/web/node_modules/caniuse-lite/data/regions/GT.js +1 -1
  898. package/web/node_modules/caniuse-lite/data/regions/GU.js +1 -1
  899. package/web/node_modules/caniuse-lite/data/regions/GW.js +1 -1
  900. package/web/node_modules/caniuse-lite/data/regions/GY.js +1 -1
  901. package/web/node_modules/caniuse-lite/data/regions/HK.js +1 -1
  902. package/web/node_modules/caniuse-lite/data/regions/HN.js +1 -1
  903. package/web/node_modules/caniuse-lite/data/regions/HR.js +1 -1
  904. package/web/node_modules/caniuse-lite/data/regions/HT.js +1 -1
  905. package/web/node_modules/caniuse-lite/data/regions/HU.js +1 -1
  906. package/web/node_modules/caniuse-lite/data/regions/ID.js +1 -1
  907. package/web/node_modules/caniuse-lite/data/regions/IE.js +1 -1
  908. package/web/node_modules/caniuse-lite/data/regions/IL.js +1 -1
  909. package/web/node_modules/caniuse-lite/data/regions/IM.js +1 -1
  910. package/web/node_modules/caniuse-lite/data/regions/IN.js +1 -1
  911. package/web/node_modules/caniuse-lite/data/regions/IQ.js +1 -1
  912. package/web/node_modules/caniuse-lite/data/regions/IR.js +1 -1
  913. package/web/node_modules/caniuse-lite/data/regions/IS.js +1 -1
  914. package/web/node_modules/caniuse-lite/data/regions/IT.js +1 -1
  915. package/web/node_modules/caniuse-lite/data/regions/JE.js +1 -1
  916. package/web/node_modules/caniuse-lite/data/regions/JM.js +1 -1
  917. package/web/node_modules/caniuse-lite/data/regions/JO.js +1 -1
  918. package/web/node_modules/caniuse-lite/data/regions/JP.js +1 -1
  919. package/web/node_modules/caniuse-lite/data/regions/KE.js +1 -1
  920. package/web/node_modules/caniuse-lite/data/regions/KG.js +1 -1
  921. package/web/node_modules/caniuse-lite/data/regions/KH.js +1 -1
  922. package/web/node_modules/caniuse-lite/data/regions/KI.js +1 -1
  923. package/web/node_modules/caniuse-lite/data/regions/KM.js +1 -1
  924. package/web/node_modules/caniuse-lite/data/regions/KN.js +1 -1
  925. package/web/node_modules/caniuse-lite/data/regions/KP.js +1 -1
  926. package/web/node_modules/caniuse-lite/data/regions/KR.js +1 -1
  927. package/web/node_modules/caniuse-lite/data/regions/KW.js +1 -1
  928. package/web/node_modules/caniuse-lite/data/regions/KY.js +1 -1
  929. package/web/node_modules/caniuse-lite/data/regions/KZ.js +1 -1
  930. package/web/node_modules/caniuse-lite/data/regions/LA.js +1 -1
  931. package/web/node_modules/caniuse-lite/data/regions/LB.js +1 -1
  932. package/web/node_modules/caniuse-lite/data/regions/LC.js +1 -1
  933. package/web/node_modules/caniuse-lite/data/regions/LI.js +1 -1
  934. package/web/node_modules/caniuse-lite/data/regions/LK.js +1 -1
  935. package/web/node_modules/caniuse-lite/data/regions/LR.js +1 -1
  936. package/web/node_modules/caniuse-lite/data/regions/LS.js +1 -1
  937. package/web/node_modules/caniuse-lite/data/regions/LT.js +1 -1
  938. package/web/node_modules/caniuse-lite/data/regions/LU.js +1 -1
  939. package/web/node_modules/caniuse-lite/data/regions/LV.js +1 -1
  940. package/web/node_modules/caniuse-lite/data/regions/LY.js +1 -1
  941. package/web/node_modules/caniuse-lite/data/regions/MA.js +1 -1
  942. package/web/node_modules/caniuse-lite/data/regions/MC.js +1 -1
  943. package/web/node_modules/caniuse-lite/data/regions/MD.js +1 -1
  944. package/web/node_modules/caniuse-lite/data/regions/ME.js +1 -1
  945. package/web/node_modules/caniuse-lite/data/regions/MG.js +1 -1
  946. package/web/node_modules/caniuse-lite/data/regions/MH.js +1 -1
  947. package/web/node_modules/caniuse-lite/data/regions/MK.js +1 -1
  948. package/web/node_modules/caniuse-lite/data/regions/ML.js +1 -1
  949. package/web/node_modules/caniuse-lite/data/regions/MM.js +1 -1
  950. package/web/node_modules/caniuse-lite/data/regions/MN.js +1 -1
  951. package/web/node_modules/caniuse-lite/data/regions/MO.js +1 -1
  952. package/web/node_modules/caniuse-lite/data/regions/MP.js +1 -1
  953. package/web/node_modules/caniuse-lite/data/regions/MQ.js +1 -1
  954. package/web/node_modules/caniuse-lite/data/regions/MR.js +1 -1
  955. package/web/node_modules/caniuse-lite/data/regions/MS.js +1 -1
  956. package/web/node_modules/caniuse-lite/data/regions/MT.js +1 -1
  957. package/web/node_modules/caniuse-lite/data/regions/MU.js +1 -1
  958. package/web/node_modules/caniuse-lite/data/regions/MV.js +1 -1
  959. package/web/node_modules/caniuse-lite/data/regions/MW.js +1 -1
  960. package/web/node_modules/caniuse-lite/data/regions/MX.js +1 -1
  961. package/web/node_modules/caniuse-lite/data/regions/MY.js +1 -1
  962. package/web/node_modules/caniuse-lite/data/regions/MZ.js +1 -1
  963. package/web/node_modules/caniuse-lite/data/regions/NA.js +1 -1
  964. package/web/node_modules/caniuse-lite/data/regions/NC.js +1 -1
  965. package/web/node_modules/caniuse-lite/data/regions/NE.js +1 -1
  966. package/web/node_modules/caniuse-lite/data/regions/NF.js +1 -1
  967. package/web/node_modules/caniuse-lite/data/regions/NG.js +1 -1
  968. package/web/node_modules/caniuse-lite/data/regions/NI.js +1 -1
  969. package/web/node_modules/caniuse-lite/data/regions/NL.js +1 -1
  970. package/web/node_modules/caniuse-lite/data/regions/NO.js +1 -1
  971. package/web/node_modules/caniuse-lite/data/regions/NP.js +1 -1
  972. package/web/node_modules/caniuse-lite/data/regions/NR.js +1 -1
  973. package/web/node_modules/caniuse-lite/data/regions/NU.js +1 -1
  974. package/web/node_modules/caniuse-lite/data/regions/NZ.js +1 -1
  975. package/web/node_modules/caniuse-lite/data/regions/OM.js +1 -1
  976. package/web/node_modules/caniuse-lite/data/regions/PA.js +1 -1
  977. package/web/node_modules/caniuse-lite/data/regions/PE.js +1 -1
  978. package/web/node_modules/caniuse-lite/data/regions/PF.js +1 -1
  979. package/web/node_modules/caniuse-lite/data/regions/PG.js +1 -1
  980. package/web/node_modules/caniuse-lite/data/regions/PH.js +1 -1
  981. package/web/node_modules/caniuse-lite/data/regions/PK.js +1 -1
  982. package/web/node_modules/caniuse-lite/data/regions/PL.js +1 -1
  983. package/web/node_modules/caniuse-lite/data/regions/PM.js +1 -1
  984. package/web/node_modules/caniuse-lite/data/regions/PN.js +1 -1
  985. package/web/node_modules/caniuse-lite/data/regions/PR.js +1 -1
  986. package/web/node_modules/caniuse-lite/data/regions/PS.js +1 -1
  987. package/web/node_modules/caniuse-lite/data/regions/PT.js +1 -1
  988. package/web/node_modules/caniuse-lite/data/regions/PW.js +1 -1
  989. package/web/node_modules/caniuse-lite/data/regions/PY.js +1 -1
  990. package/web/node_modules/caniuse-lite/data/regions/QA.js +1 -1
  991. package/web/node_modules/caniuse-lite/data/regions/RE.js +1 -1
  992. package/web/node_modules/caniuse-lite/data/regions/RO.js +1 -1
  993. package/web/node_modules/caniuse-lite/data/regions/RS.js +1 -1
  994. package/web/node_modules/caniuse-lite/data/regions/RU.js +1 -1
  995. package/web/node_modules/caniuse-lite/data/regions/RW.js +1 -1
  996. package/web/node_modules/caniuse-lite/data/regions/SA.js +1 -1
  997. package/web/node_modules/caniuse-lite/data/regions/SB.js +1 -1
  998. package/web/node_modules/caniuse-lite/data/regions/SC.js +1 -1
  999. package/web/node_modules/caniuse-lite/data/regions/SD.js +1 -1
  1000. package/web/node_modules/caniuse-lite/data/regions/SE.js +1 -1
  1001. package/web/node_modules/caniuse-lite/data/regions/SG.js +1 -1
  1002. package/web/node_modules/caniuse-lite/data/regions/SH.js +1 -1
  1003. package/web/node_modules/caniuse-lite/data/regions/SI.js +1 -1
  1004. package/web/node_modules/caniuse-lite/data/regions/SK.js +1 -1
  1005. package/web/node_modules/caniuse-lite/data/regions/SL.js +1 -1
  1006. package/web/node_modules/caniuse-lite/data/regions/SM.js +1 -1
  1007. package/web/node_modules/caniuse-lite/data/regions/SN.js +1 -1
  1008. package/web/node_modules/caniuse-lite/data/regions/SO.js +1 -1
  1009. package/web/node_modules/caniuse-lite/data/regions/SR.js +1 -1
  1010. package/web/node_modules/caniuse-lite/data/regions/ST.js +1 -1
  1011. package/web/node_modules/caniuse-lite/data/regions/SV.js +1 -1
  1012. package/web/node_modules/caniuse-lite/data/regions/SY.js +1 -1
  1013. package/web/node_modules/caniuse-lite/data/regions/SZ.js +1 -1
  1014. package/web/node_modules/caniuse-lite/data/regions/TC.js +1 -1
  1015. package/web/node_modules/caniuse-lite/data/regions/TD.js +1 -1
  1016. package/web/node_modules/caniuse-lite/data/regions/TG.js +1 -1
  1017. package/web/node_modules/caniuse-lite/data/regions/TH.js +1 -1
  1018. package/web/node_modules/caniuse-lite/data/regions/TJ.js +1 -1
  1019. package/web/node_modules/caniuse-lite/data/regions/TL.js +1 -1
  1020. package/web/node_modules/caniuse-lite/data/regions/TM.js +1 -1
  1021. package/web/node_modules/caniuse-lite/data/regions/TN.js +1 -1
  1022. package/web/node_modules/caniuse-lite/data/regions/TO.js +1 -1
  1023. package/web/node_modules/caniuse-lite/data/regions/TR.js +1 -1
  1024. package/web/node_modules/caniuse-lite/data/regions/TT.js +1 -1
  1025. package/web/node_modules/caniuse-lite/data/regions/TV.js +1 -1
  1026. package/web/node_modules/caniuse-lite/data/regions/TW.js +1 -1
  1027. package/web/node_modules/caniuse-lite/data/regions/TZ.js +1 -1
  1028. package/web/node_modules/caniuse-lite/data/regions/UA.js +1 -1
  1029. package/web/node_modules/caniuse-lite/data/regions/UG.js +1 -1
  1030. package/web/node_modules/caniuse-lite/data/regions/US.js +1 -1
  1031. package/web/node_modules/caniuse-lite/data/regions/UY.js +1 -1
  1032. package/web/node_modules/caniuse-lite/data/regions/UZ.js +1 -1
  1033. package/web/node_modules/caniuse-lite/data/regions/VA.js +1 -1
  1034. package/web/node_modules/caniuse-lite/data/regions/VC.js +1 -1
  1035. package/web/node_modules/caniuse-lite/data/regions/VE.js +1 -1
  1036. package/web/node_modules/caniuse-lite/data/regions/VG.js +1 -1
  1037. package/web/node_modules/caniuse-lite/data/regions/VI.js +1 -1
  1038. package/web/node_modules/caniuse-lite/data/regions/VN.js +1 -1
  1039. package/web/node_modules/caniuse-lite/data/regions/VU.js +1 -1
  1040. package/web/node_modules/caniuse-lite/data/regions/WF.js +1 -1
  1041. package/web/node_modules/caniuse-lite/data/regions/WS.js +1 -1
  1042. package/web/node_modules/caniuse-lite/data/regions/YE.js +1 -1
  1043. package/web/node_modules/caniuse-lite/data/regions/YT.js +1 -1
  1044. package/web/node_modules/caniuse-lite/data/regions/ZA.js +1 -1
  1045. package/web/node_modules/caniuse-lite/data/regions/ZM.js +1 -1
  1046. package/web/node_modules/caniuse-lite/data/regions/ZW.js +1 -1
  1047. package/web/node_modules/caniuse-lite/data/regions/alt-af.js +1 -1
  1048. package/web/node_modules/caniuse-lite/data/regions/alt-an.js +1 -1
  1049. package/web/node_modules/caniuse-lite/data/regions/alt-as.js +1 -1
  1050. package/web/node_modules/caniuse-lite/data/regions/alt-eu.js +1 -1
  1051. package/web/node_modules/caniuse-lite/data/regions/alt-na.js +1 -1
  1052. package/web/node_modules/caniuse-lite/data/regions/alt-oc.js +1 -1
  1053. package/web/node_modules/caniuse-lite/data/regions/alt-sa.js +1 -1
  1054. package/web/node_modules/caniuse-lite/data/regions/alt-ww.js +1 -1
  1055. package/web/node_modules/caniuse-lite/data/versionGroups.js +1 -1
  1056. package/web/node_modules/caniuse-lite/package.json +1 -1
  1057. package/web/package-lock.json +45 -45
  1058. package/web/server.js +1 -1
  1059. package/web/.next/server/chunks/7974.js +0 -1
  1060. package/web/.next/static/1N29vAB1vCj1iGIUfy4to/_buildManifest.js +0 -1
  1061. package/web/.next/static/chunks/5124-19d3cb5b8c373b6d.js +0 -1
  1062. package/web/.next/static/chunks/app/api/github-status/route-596ce1d0c049f589.js +0 -1
  1063. package/web/.next/static/chunks/app/api/gitlab-status/route-596ce1d0c049f589.js +0 -1
  1064. package/web/.next/static/chunks/app/api/models/route-596ce1d0c049f589.js +0 -1
  1065. package/web/.next/static/chunks/app/api/pr-status/merge/route-596ce1d0c049f589.js +0 -1
  1066. package/web/.next/static/chunks/app/api/pr-status/route-596ce1d0c049f589.js +0 -1
  1067. package/web/.next/static/chunks/app/api/preflight/route-596ce1d0c049f589.js +0 -1
  1068. package/web/.next/static/chunks/app/api/projects/[id]/branches/exists/route-596ce1d0c049f589.js +0 -1
  1069. package/web/.next/static/chunks/app/api/projects/[id]/route-596ce1d0c049f589.js +0 -1
  1070. package/web/.next/static/chunks/app/api/projects/[id]/slash-commands/route-596ce1d0c049f589.js +0 -1
  1071. package/web/.next/static/chunks/app/api/projects/route-596ce1d0c049f589.js +0 -1
  1072. package/web/.next/static/chunks/app/api/runtime/info/route-596ce1d0c049f589.js +0 -1
  1073. package/web/.next/static/chunks/app/api/runtime/resources/route-596ce1d0c049f589.js +0 -1
  1074. package/web/.next/static/chunks/app/api/runtime/terminal/route-596ce1d0c049f589.js +0 -1
  1075. package/web/.next/static/chunks/app/api/runtime/versions/route-596ce1d0c049f589.js +0 -1
  1076. package/web/.next/static/chunks/app/api/runtime/versions/switch/route-596ce1d0c049f589.js +0 -1
  1077. package/web/.next/static/chunks/app/api/runtime/voice/route-596ce1d0c049f589.js +0 -1
  1078. package/web/.next/static/chunks/app/api/runtime/voice/transcribe/route-596ce1d0c049f589.js +0 -1
  1079. package/web/.next/static/chunks/app/api/sessions/[id]/artifacts/[artifactId]/route-596ce1d0c049f589.js +0 -1
  1080. package/web/.next/static/chunks/app/api/sessions/[id]/complete/route-596ce1d0c049f589.js +0 -1
  1081. package/web/.next/static/chunks/app/api/sessions/[id]/conversation/route-596ce1d0c049f589.js +0 -1
  1082. package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-596ce1d0c049f589.js +0 -1
  1083. package/web/.next/static/chunks/app/api/sessions/[id]/logs/route-596ce1d0c049f589.js +0 -1
  1084. package/web/.next/static/chunks/app/api/sessions/[id]/pause/route-596ce1d0c049f589.js +0 -1
  1085. package/web/.next/static/chunks/app/api/sessions/[id]/respawn/route-596ce1d0c049f589.js +0 -1
  1086. package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-596ce1d0c049f589.js +0 -1
  1087. package/web/.next/static/chunks/app/api/sessions/[id]/route-596ce1d0c049f589.js +0 -1
  1088. package/web/.next/static/chunks/app/api/sessions/[id]/send/route-596ce1d0c049f589.js +0 -1
  1089. package/web/.next/static/chunks/app/api/sessions/[id]/sidecars/[name]/start/route-596ce1d0c049f589.js +0 -1
  1090. package/web/.next/static/chunks/app/api/sessions/[id]/sidecars/[name]/stop/route-596ce1d0c049f589.js +0 -1
  1091. package/web/.next/static/chunks/app/api/sessions/[id]/slash-commands/route-596ce1d0c049f589.js +0 -1
  1092. package/web/.next/static/chunks/app/api/sessions/[id]/tags/route-596ce1d0c049f589.js +0 -1
  1093. package/web/.next/static/chunks/app/api/sessions/route-596ce1d0c049f589.js +0 -1
  1094. package/web/.next/static/chunks/app/api/shepherd/spawn/route-596ce1d0c049f589.js +0 -1
  1095. package/web/.next/static/chunks/app/api/spawn/route-596ce1d0c049f589.js +0 -1
  1096. package/web/.next/static/chunks/app/apple-icon/route-596ce1d0c049f589.js +0 -1
  1097. package/web/.next/static/chunks/app/icon/route-596ce1d0c049f589.js +0 -1
  1098. package/web/.next/static/chunks/app/icon-192/route-596ce1d0c049f589.js +0 -1
  1099. package/web/.next/static/chunks/app/icon-512/route-596ce1d0c049f589.js +0 -1
  1100. package/web/.next/static/chunks/app/layout-77450a833d54e15c.js +0 -1
  1101. package/web/.next/static/chunks/app/manifest.webmanifest/route-596ce1d0c049f589.js +0 -1
  1102. package/web/.next/static/chunks/app/page-fd332d4acc6d8ff0.js +0 -1
  1103. package/web/.next/static/chunks/app/sessions/[id]/page-508070021783e022.js +0 -1
  1104. package/web/.next/static/css/a21fffd2e823d08d.css +0 -3
  1105. /package/web/.next/static/{1N29vAB1vCj1iGIUfy4to → j6j0a_rHfbTSVFFhtL-Dd}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{var a={};a.id=8974,a.ids=[8974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27626:(a,b,c)=>{Promise.resolve().then(c.bind(c,71846))},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71846:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>aO});var d=c(22216),e=c(43225),f=c(40518),g=c(51441),h=c(31906),i=c(36532),j=c(97348),k=c(72019),l=c(62969),m=c(72989),n=c(48664),o=class extends k.Q{constructor(a,b){super(),this.options=b,this.#a=a,this.#b=null,this.#c=(0,l.T)(),this.bindMethods(),this.setOptions(b)}#a;#d=void 0;#e=void 0;#f=void 0;#g;#h;#c;#b;#i;#j;#k;#l;#m;#n;#o=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#d.addObserver(this),p(this.#d,this.options)?this.#p():this.updateResult(),this.#q())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return q(this.#d,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return q(this.#d,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#r(),this.#s(),this.#d.removeObserver(this)}setOptions(a){let b=this.options,c=this.#d;if(this.options=this.#a.defaultQueryOptions(a),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,m.Eh)(this.options.enabled,this.#d))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#t(),this.#d.setOptions(this.options),b._defaulted&&!(0,m.f8)(this.options,b)&&this.#a.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#d,observer:this});let d=this.hasListeners();d&&r(this.#d,c,this.options,b)&&this.#p(),this.updateResult(),d&&(this.#d!==c||(0,m.Eh)(this.options.enabled,this.#d)!==(0,m.Eh)(b.enabled,this.#d)||(0,m.d2)(this.options.staleTime,this.#d)!==(0,m.d2)(b.staleTime,this.#d))&&this.#u();let e=this.#v();d&&(this.#d!==c||(0,m.Eh)(this.options.enabled,this.#d)!==(0,m.Eh)(b.enabled,this.#d)||e!==this.#n)&&this.#w(e)}getOptimisticResult(a){var b,c;let d=this.#a.getQueryCache().build(this.#a,a),e=this.createResult(d,a);return b=this,c=e,(0,m.f8)(b.getCurrentResult(),c)||(this.#f=e,this.#h=this.options,this.#g=this.#d.state),e}getCurrentResult(){return this.#f}trackResult(a,b){return new Proxy(a,{get:(a,c)=>(this.trackProp(c),b?.(c),"promise"===c&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#c.status||this.#c.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(a,c))})}trackProp(a){this.#o.add(a)}getCurrentQuery(){return this.#d}refetch({...a}={}){return this.fetch({...a})}fetchOptimistic(a){let b=this.#a.defaultQueryOptions(a),c=this.#a.getQueryCache().build(this.#a,b);return c.fetch().then(()=>this.createResult(c,b))}fetch(a){return this.#p({...a,cancelRefetch:a.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#f))}#p(a){this.#t();let b=this.#d.fetch(this.options,a);return a?.throwOnError||(b=b.catch(m.lQ)),b}#u(){this.#r();let a=(0,m.d2)(this.options.staleTime,this.#d);if(h.H.isServer()||this.#f.isStale||!(0,m.gn)(a))return;let b=(0,m.j3)(this.#f.dataUpdatedAt,a);this.#l=n.zs.setTimeout(()=>{this.#f.isStale||this.updateResult()},b+1)}#v(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#d):this.options.refetchInterval)??!1}#w(a){this.#s(),this.#n=a,!h.H.isServer()&&!1!==(0,m.Eh)(this.options.enabled,this.#d)&&(0,m.gn)(this.#n)&&0!==this.#n&&(this.#m=n.zs.setInterval(()=>{(this.options.refetchIntervalInBackground||g.m.isFocused())&&this.#p()},this.#n))}#q(){this.#u(),this.#w(this.#v())}#r(){void 0!==this.#l&&(n.zs.clearTimeout(this.#l),this.#l=void 0)}#s(){void 0!==this.#m&&(n.zs.clearInterval(this.#m),this.#m=void 0)}createResult(a,b){let c,d=this.#d,e=this.options,f=this.#f,g=this.#g,h=this.#h,i=a!==d?a.state:this.#e,{state:k}=a,n={...k},o=!1;if(b._optimisticResults){let c=this.hasListeners(),f=!c&&p(a,b),g=c&&r(a,d,b,e);(f||g)&&(n={...n,...(0,j.k)(k.data,a.options)}),"isRestoring"===b._optimisticResults&&(n.fetchStatus="idle")}let{error:q,errorUpdatedAt:t,status:u}=n;c=n.data;let v=!1;if(void 0!==b.placeholderData&&void 0===c&&"pending"===u){let a;f?.isPlaceholderData&&b.placeholderData===h?.placeholderData?(a=f.data,v=!0):a="function"==typeof b.placeholderData?b.placeholderData(this.#k?.state.data,this.#k):b.placeholderData,void 0!==a&&(u="success",c=(0,m.pl)(f?.data,a,b),o=!0)}if(b.select&&void 0!==c&&!v)if(f&&c===g?.data&&b.select===this.#i)c=this.#j;else try{this.#i=b.select,c=b.select(c),c=(0,m.pl)(f?.data,c,b),this.#j=c,this.#b=null}catch(a){this.#b=a}this.#b&&(q=this.#b,c=this.#j,t=Date.now(),u="error");let w="fetching"===n.fetchStatus,x="pending"===u,y="error"===u,z=x&&w,A=void 0!==c,B={status:u,fetchStatus:n.fetchStatus,isPending:x,isSuccess:"success"===u,isError:y,isInitialLoading:z,isLoading:z,data:c,dataUpdatedAt:n.dataUpdatedAt,error:q,errorUpdatedAt:t,failureCount:n.fetchFailureCount,failureReason:n.fetchFailureReason,errorUpdateCount:n.errorUpdateCount,isFetched:a.isFetched(),isFetchedAfterMount:n.dataUpdateCount>i.dataUpdateCount||n.errorUpdateCount>i.errorUpdateCount,isFetching:w,isRefetching:w&&!x,isLoadingError:y&&!A,isPaused:"paused"===n.fetchStatus,isPlaceholderData:o,isRefetchError:y&&A,isStale:s(a,b),refetch:this.refetch,promise:this.#c,isEnabled:!1!==(0,m.Eh)(b.enabled,a)};if(this.options.experimental_prefetchInRender){let b=void 0!==B.data,c="error"===B.status&&!b,e=a=>{c?a.reject(B.error):b&&a.resolve(B.data)},f=()=>{e(this.#c=B.promise=(0,l.T)())},g=this.#c;switch(g.status){case"pending":a.queryHash===d.queryHash&&e(g);break;case"fulfilled":(c||B.data!==g.value)&&f();break;case"rejected":c&&B.error===g.reason||f()}}return B}updateResult(){let a=this.#f,b=this.createResult(this.#d,this.options);if(this.#g=this.#d.state,this.#h=this.options,void 0!==this.#g.data&&(this.#k=this.#d),(0,m.f8)(b,a))return;this.#f=b;let c=()=>{if(!a)return!0;let{notifyOnChangeProps:b}=this.options,c="function"==typeof b?b():b;if("all"===c||!c&&!this.#o.size)return!0;let d=new Set(c??this.#o);return this.options.throwOnError&&d.add("error"),Object.keys(this.#f).some(b=>this.#f[b]!==a[b]&&d.has(b))};this.#x({listeners:c()})}#t(){let a=this.#a.getQueryCache().build(this.#a,this.options);if(a===this.#d)return;let b=this.#d;this.#d=a,this.#e=a.state,this.hasListeners()&&(b?.removeObserver(this),a.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#q()}#x(a){i.jG.batch(()=>{a.listeners&&this.listeners.forEach(a=>{a(this.#f)}),this.#a.getQueryCache().notify({query:this.#d,type:"observerResultsUpdated"})})}};function p(a,b){return!1!==(0,m.Eh)(b.enabled,a)&&void 0===a.state.data&&("error"!==a.state.status||!1!==b.retryOnMount)||void 0!==a.state.data&&q(a,b,b.refetchOnMount)}function q(a,b,c){if(!1!==(0,m.Eh)(b.enabled,a)&&"static"!==(0,m.d2)(b.staleTime,a)){let d="function"==typeof c?c(a):c;return"always"===d||!1!==d&&s(a,b)}return!1}function r(a,b,c,d){return(a!==b||!1===(0,m.Eh)(d.enabled,a))&&(!c.suspense||"error"!==a.state.status)&&s(a,c)}function s(a,b){return!1!==(0,m.Eh)(b.enabled,a)&&a.isStaleByTime((0,m.d2)(b.staleTime,a))}var t=e.createContext(function(){let a=!1;return{clearReset:()=>{a=!1},reset:()=>{a=!0},isReset:()=>a}}()),u=e.createContext(!1);u.Provider;var v=(a,b,c)=>b.fetchOptimistic(a).catch(()=>{c.clearReset()});function w(a,b){return function(a,b,c){let d=e.useContext(u),g=e.useContext(t),j=(0,f.jE)(c),k=j.defaultQueryOptions(a);j.getDefaultOptions().queries?._experimental_beforeQuery?.(k);let l=j.getQueryCache().get(k.queryHash);if(k._optimisticResults=d?"isRestoring":"optimistic",k.suspense){let a=a=>"static"===a?a:Math.max(a??1e3,1e3),b=k.staleTime;k.staleTime="function"==typeof b?(...c)=>a(b(...c)):a(b),"number"==typeof k.gcTime&&(k.gcTime=Math.max(k.gcTime,1e3))}let n=l?.state.error&&"function"==typeof k.throwOnError?(0,m.GU)(k.throwOnError,[l.state.error,l]):k.throwOnError;(k.suspense||k.experimental_prefetchInRender||n)&&!g.isReset()&&(k.retryOnMount=!1),e.useEffect(()=>{g.clearReset()},[g]);let o=!j.getQueryCache().get(k.queryHash),[p]=e.useState(()=>new b(j,k)),q=p.getOptimisticResult(k),r=!d&&!1!==a.subscribed;if(e.useSyncExternalStore(e.useCallback(a=>{let b=r?p.subscribe(i.jG.batchCalls(a)):m.lQ;return p.updateResult(),b},[p,r]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),e.useEffect(()=>{p.setOptions(k)},[k,p]),k?.suspense&&q.isPending)throw v(k,p,g);if((({result:a,errorResetBoundary:b,throwOnError:c,query:d,suspense:e})=>a.isError&&!b.isReset()&&!a.isFetching&&d&&(e&&void 0===a.data||(0,m.GU)(c,[a.error,d])))({result:q,errorResetBoundary:g,throwOnError:k.throwOnError,query:l,suspense:k.suspense}))throw q.error;if(j.getDefaultOptions().queries?._experimental_afterQuery?.(k,q),k.experimental_prefetchInRender&&!h.H.isServer()&&q.isLoading&&q.isFetching&&!d){let a=o?v(k,p,g):l?.promise;a?.catch(m.lQ).finally(()=>{p.updateResult()})}return k.notifyOnChangeProps?q:p.trackResult(q)}(a,o,b)}var x=c(38266),y=c(27258),z=c(915),A=c.n(z),B=c(33496);let C=(0,e.createContext)({catalog:[],applyTags:async()=>{}});function D(a){return{color:a,borderColor:`color-mix(in srgb, ${a} 55%, transparent)`,background:`color-mix(in srgb, ${a} 10%, transparent)`}}function E({session:a}){let{catalog:b,applyTags:c}=(0,e.useContext)(C),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),j=(0,e.useMemo)(()=>new Map(b.map(a=>[a.name,a.color])),[b]),k=a.tags??[],l=(0,e.useMemo)(()=>b.filter(a=>!k.includes(a.name)),[b,k]),m=b.length>0&&l.length>0;async function n(b,d){if(!h){i(!0),g(!1);try{await c(a.id,{add:b,remove:d})}catch(a){console.error("tag update failed",a)}finally{i(!1)}}}let o=k.slice(0,4),p=k.slice(4);return(0,d.jsxs)("span",{className:"relative hidden shrink-0 items-center gap-1 sm:inline-flex",children:[o.map(a=>{let b=j.get(a)??"var(--color-text-tertiary)";return(0,d.jsxs)("span",{className:"group/tag inline-flex items-center border p-1.5 text-[9px] uppercase leading-none tracking-[0.06em]",style:D(b),children:[a,(0,d.jsx)("button",{"aria-label":`Remove tag ${a}`,className:"ml-0.5 hidden shrink-0 group-hover/tag:inline-flex",disabled:h,onClick:()=>n([],[a]),type:"button",children:"\xd7"})]},a)}),p.length>0?(0,d.jsxs)("span",{className:"inline-flex items-center border border-[var(--color-border-subtle)] p-1.5 text-[9px] uppercase leading-none tracking-[0.06em] text-[var(--color-text-tertiary)]",title:p.join(", "),children:["+",p.length]}):null,m?(0,d.jsx)("button",{"aria-label":"Add tag",className:`inline-flex h-5 w-5 items-center justify-center border border-[var(--color-border-subtle)] text-[var(--color-text-tertiary)] transition hover:border-[var(--color-border-default)] hover:text-[var(--color-text-secondary)] ${f||k.length>0?"opacity-60":"opacity-0 group-hover:opacity-100"}`,disabled:h,onClick:()=>g(a=>!a),type:"button",children:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-2.5 w-2.5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})}):null,f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{"aria-hidden":"true",className:"fixed inset-0 z-20 cursor-default",onClick:()=>g(!1),tabIndex:-1,type:"button"}),(0,d.jsx)("div",{className:"absolute right-0 top-5 z-30 w-56 border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] py-1 shadow-lg",children:l.map(a=>(0,d.jsxs)("button",{className:"block w-full px-2 py-1.5 text-left transition hover:bg-[var(--color-hover-overlay)]",onClick:()=>n([a.name],[]),type:"button",children:[(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-[0.06em]",style:{color:a.color},children:a.name}),(0,d.jsx)("span",{className:"mt-0.5 block text-[10px] leading-snug text-[var(--color-text-tertiary)]",children:a.description})]},a.name))})]}):null]})}var F=c(6303),G=c(92397),H=c(60558),I=c(38311),J=c(11910);function K({label:a,disabled:b,activeClass:c,onClick:e,children:f}){return(0,d.jsx)("button",{"aria-label":a,className:`inline-flex h-6 w-6 shrink-0 items-center justify-center border transition ${b?"border-transparent text-[var(--color-text-tertiary)] opacity-25 cursor-not-allowed":c}`,disabled:b,onClick:e,type:"button",children:f})}function L({session:a}){let b=(0,J.z3)(a);b?.dueAt;let[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(()=>Date.now());if(!b)return null;let i="interval"===b.kind||"daily"===b.kind,j="interval"===b.kind?"Interval wake scheduled":"daily"===b.kind?"Daily wake scheduled":"Wake scheduled",k=`wake-${a.id}`;return(0,d.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,d.jsx)("button",{"aria-controls":c?k:void 0,"aria-expanded":c,"aria-label":j,className:"inline-flex h-5 w-5 shrink-0 items-center justify-center border border-[var(--color-border-subtle)] text-[var(--color-status-attention)] transition hover:border-[var(--color-status-attention)] hover:bg-[var(--color-hover-overlay)]",onClick:()=>f(a=>!a),title:j,type:"button",children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"8"}),(0,d.jsx)("path",{d:"M12 8v5l3 2"}),i?(0,d.jsx)("path",{d:"M4 12a8 8 0 0 1 13.5-5.8M20 12a8 8 0 0 1-13.5 5.8"}):null]})}),c?(0,d.jsxs)("span",{className:"absolute left-0 top-6 z-30 w-[17rem] border border-[var(--color-border-strong)] bg-[var(--color-bg-elevated)] px-2.5 py-2 text-[var(--color-text-secondary)] shadow-[0_10px_30px_rgba(0,0,0,0.28)]",id:k,role:"status",children:[(0,d.jsxs)("span",{className:"flex items-center justify-between gap-3",children:[(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--color-status-attention)]",children:b.label}),(0,d.jsx)("span",{className:"font-mono text-[var(--color-text-primary)]",children:(0,J.TL)(b.dueAt,g)})]}),b.intervalMs?(0,d.jsxs)("span",{className:"mt-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:["every ",(0,J.re)(b.intervalMs)]}):null,b.dailyAt?(0,d.jsxs)("span",{className:"mt-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:["daily ",b.dailyAt.join(", ")]}):null,b.stopCondition?(0,d.jsxs)("span",{className:"mt-1 block min-w-0 truncate text-[var(--color-text-secondary)]",children:["until ",b.stopCondition]}):null,(0,d.jsx)("span",{className:"mt-1 block min-w-0 truncate text-[var(--color-text-tertiary)]",children:b.message})]}):null]})}function M({projectFilterId:a,deskMemberCount:b,session:c,onOpenTerminal:f,onCompleteSession:g,onRestoreSession:h}){let i=(0,F.Pn)(c),j=c.runtimeAlive&&!(0,I.zi)(c)&&!!c.tmuxSession,k=(0,I.ng)(c),l=("stopped"===k||"error"===k)&&(0,I.qX)(c),m=c.links.find(a=>(0,G.do)(a.label)),n=c.links.find(a=>"tracker"===a.label),o=(0,B.Y)(m),p=m?(0,G.tS)(m.url):null,[q,r]=(0,e.useState)(!1),s=("merged"===o.state||q)&&(0,I.ab)(c),t="github"===p&&!!m&&o.canMerge&&!q,u=!!(c.scheduledWake||c.intervalWake||c.dailyWake),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,C]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:"data-row group flex items-center gap-2 border-b border-[var(--color-border-subtle)] px-2 py-2 transition-colors sm:gap-3 sm:px-2.5",children:[(0,d.jsx)("span",{className:"hidden w-[7rem] shrink-0 truncate font-semibold uppercase text-[var(--color-text-primary)] sm:inline",children:c.projectName}),(0,d.jsx)("span",{className:"hidden w-[3.5rem] shrink-0 text-[var(--color-text-tertiary)] md:inline",children:c.agent}),void 0!==b&&b>1?(0,d.jsxs)("span",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-[var(--color-border-subtle)] px-1 py-0.5 font-mono text-[10px] tabular-nums leading-none text-[var(--color-text-tertiary)] sm:inline-flex",title:`${b} agents on this checkout`,children:[(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3 w-3 shrink-0 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[(0,d.jsx)("rect",{height:"14",rx:"1",width:"14",x:"8",y:"8"}),(0,d.jsx)("rect",{height:"14",opacity:"0.55",rx:"1",width:"14",x:"3",y:"3"})]}),b]}):null,u?(0,d.jsx)(L,{session:c}):null,(0,d.jsx)(A(),{className:"min-w-0 flex-1 truncate text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:no-underline",href:(0,H._j)(c.id,a),children:i}),(0,d.jsx)(E,{session:c}),n?(0,d.jsx)("span",{className:"hidden sm:inline-flex",children:(0,d.jsx)(B.w,{link:n})}):null,m?(0,d.jsx)("span",{className:"hidden sm:inline-flex",children:(0,d.jsx)(B.w,{link:m,prInfo:o})}):null,(0,d.jsx)("span",{className:"hidden w-[8rem] shrink-0 truncate text-right font-mono text-[var(--color-text-secondary)] lg:inline",children:c.branch}),(0,d.jsx)("span",{className:"w-[4rem] shrink-0 text-right text-[var(--color-text-tertiary)]",children:(0,F.fw)(c.lastActivityAt)}),s?(0,d.jsx)(K,{label:`Mark ${c.id} as done`,disabled:v,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(!v){w(!0);try{await g(c)}catch(a){console.error("complete failed",a),w(!1)}}},children:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}):t?(0,d.jsx)(K,{label:`Merge PR for ${c.id}`,disabled:x,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(m){y(!0);try{let a=await fetch("/api/pr-status/merge",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({url:m.url})});if(!a.ok)throw Error(`merge: ${a.status}`);(0,G.Gl)(m.url,{...o,state:"merged",canMerge:!1,fetchedAt:Date.now(),stale:!1}),r(!0)}catch(a){console.error("merge failed",a),y(!1)}}},children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M7 6a2.5 2.5 0 1 0-2.5 2.5A2.5 2.5 0 0 0 7 6Z"}),(0,d.jsx)("path",{d:"M19.5 15.5A2.5 2.5 0 1 0 17 18a2.5 2.5 0 0 0 2.5-2.5Z"}),(0,d.jsx)("path",{d:"M19.5 6A2.5 2.5 0 1 0 17 8.5 2.5 2.5 0 0 0 19.5 6Z"}),(0,d.jsx)("path",{d:"M7 6h5a5 5 0 0 1 5 5v2.5"})]})}):l?(0,d.jsx)(K,{label:`Restore session ${c.id}`,disabled:z,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(!z){C(!0);try{await h(c)}catch(a){console.error("restore failed",a),C(!1)}}},children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,d.jsx)("path",{d:"M3 4v6h6"}),(0,d.jsx)("path",{d:"M10 12h4"}),(0,d.jsx)("path",{d:"m14 12-2-2"}),(0,d.jsx)("path",{d:"m14 12-2 2"})]})}):(0,d.jsx)(K,{label:`Open web terminal for ${c.id}`,disabled:!j,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-accent)] hover:text-[var(--color-accent)]",onClick:()=>j&&f?.(c),children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M4 6.75A1.75 1.75 0 0 1 5.75 5h12.5A1.75 1.75 0 0 1 20 6.75v10.5A1.75 1.75 0 0 1 18.25 19H5.75A1.75 1.75 0 0 1 4 17.25Z"}),(0,d.jsx)("path",{d:"m8 10 2.5 2L8 14.5"}),(0,d.jsx)("path",{d:"M13 15h3"})]})})]})}let N={error:{label:"Errors",color:"var(--color-status-error)"},rate_limited:{label:"Rate Limited",color:"var(--color-status-attention)"},respond:{label:"Needs Input",color:"var(--color-status-error)"},working:{label:"Working",color:"var(--color-status-working)"},pending:{label:"Waiting",color:"var(--color-status-attention)"},stopped:{label:"Stopped",color:"var(--color-text-tertiary)",dividerColor:"var(--color-border-subtle)"},done:{label:"Completed",color:"var(--color-status-ready)"}};function O({level:a,projectFilterId:b,rows:c,collapsed:e,onToggle:f,onOpenTerminal:g,onCompleteSession:h,onRestoreSession:i}){let j=N[a],k=(0,d.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,d.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:j.color}}),(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-[0.14em] text-[var(--color-text-secondary)]",children:j.label}),(0,d.jsx)("div",{className:"flex-1 border-t",style:{borderColor:j.dividerColor??`color-mix(in srgb, ${j.color} 25%, transparent)`}}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:c.length})]}),l=c.map(a=>(0,d.jsx)(M,{deskMemberCount:a.deskMemberCount,projectFilterId:b,session:a.session,onOpenTerminal:g,onCompleteSession:h,onRestoreSession:i},a.session.id));return"function"==typeof f?(0,d.jsxs)("section",{children:[(0,d.jsxs)("button",{type:"button",className:"flex w-full items-center text-left",onClick:()=>f(a),children:[(0,d.jsx)("div",{className:"flex-1",children:k}),(0,d.jsx)("span",{className:"ml-2 text-[10px] text-[var(--color-text-tertiary)]",children:e?"▸":"▾"})]}),e?null:l]}):(0,d.jsxs)("section",{children:[k,l]})}function P(){let[a,b]=(0,e.useState)(!1),[c,d]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1);return{containerRef:(0,e.useRef)(null),open:!f&&(a||c),onBlur(a){a.currentTarget.contains(a.relatedTarget)||(d(!1),g(!1))},onMouseEnter(){g(!1),b(!0)},onMouseLeave(){g(!1),b(!1)},toggle(){g(!1),d(a=>!a)},dismiss(){g(!0),d(!1)}}}var Q=c(97454),R=class extends k.Q{#a;#f=void 0;#y;#z;constructor(a,b){super(),this.#a=a,this.setOptions(b),this.bindMethods(),this.#A()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){let b=this.options;this.options=this.#a.defaultMutationOptions(a),(0,m.f8)(this.options,b)||this.#a.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#y,observer:this}),b?.mutationKey&&this.options.mutationKey&&(0,m.EN)(b.mutationKey)!==(0,m.EN)(this.options.mutationKey)?this.reset():this.#y?.state.status==="pending"&&this.#y.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#y?.removeObserver(this)}onMutationUpdate(a){this.#A(),this.#x(a)}getCurrentResult(){return this.#f}reset(){this.#y?.removeObserver(this),this.#y=void 0,this.#A(),this.#x()}mutate(a,b){return this.#z=b,this.#y?.removeObserver(this),this.#y=this.#a.getMutationCache().build(this.#a,this.options),this.#y.addObserver(this),this.#y.execute(a)}#A(){let a=this.#y?.state??(0,Q.$)();this.#f={...a,isPending:"pending"===a.status,isSuccess:"success"===a.status,isError:"error"===a.status,isIdle:"idle"===a.status,mutate:this.mutate,reset:this.reset}}#x(a){i.jG.batch(()=>{if(this.#z&&this.hasListeners()){let b=this.#f.variables,c=this.#f.context,d={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};if(a?.type==="success"){try{this.#z.onSuccess?.(a.data,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(a.data,null,b,c,d)}catch(a){Promise.reject(a)}}else if(a?.type==="error"){try{this.#z.onError?.(a.error,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(void 0,a.error,b,c,d)}catch(a){Promise.reject(a)}}}this.listeners.forEach(a=>{a(this.#f)})})}},S=c(72233);let T=/^\d+\.\d+\.\d+$/;function U(a){if(!T.test(a))return null;let[b,c,d]=a.split(".").map(a=>Number.parseInt(a,10));return[b,c,d]}function V({current:a,pending:b,status:c,errorMessage:f,onConfirm:g,onCancel:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null);return(0,d.jsx)("div",{"aria-labelledby":"switch-version-dialog-title","aria-modal":"true",className:"fixed inset-0 z-[60] flex items-center justify-center bg-[var(--color-modal-backdrop)]",role:"dialog",onClick:a=>{a.target===a.currentTarget&&"pending"!==c&&h()},children:(0,d.jsxs)("div",{ref:j,className:"w-[min(22rem,calc(100vw-2rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-4 shadow-[0_8px_24px_var(--color-shadow-modal-sm)]",children:[(0,d.jsx)("h2",{className:"mb-2 font-bold text-[var(--color-text-primary)]",id:"switch-version-dialog-title",children:"Switch Spur version"}),(0,d.jsxs)("p",{className:"mb-3 normal-case tracking-normal text-[var(--color-text-secondary)]",children:["Switch from ",(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:a||"?"})," to"," ",(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:b}),"? The Spur daemon will restart. Refresh this page in about 10 seconds."]}),"error"===c&&f?(0,d.jsx)("p",{className:"mb-3 normal-case tracking-normal text-[var(--color-status-attention)]","data-testid":"switch-version-error",children:f}):null,(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,d.jsx)("button",{ref:i,className:"border border-[var(--color-border-default)] px-3 py-1 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-50",disabled:"pending"===c,type:"button",onClick:h,children:"Cancel"}),(0,d.jsx)("button",{className:"border border-[var(--color-status-attention)] px-3 py-1 font-bold text-[var(--color-status-attention)] outline-none transition-colors hover:bg-[var(--color-status-attention)] hover:text-[var(--color-bg-elevated)] focus-visible:bg-[var(--color-status-attention)] focus-visible:text-[var(--color-bg-elevated)] disabled:cursor-not-allowed disabled:opacity-50",disabled:"pending"===c,type:"button",onClick:g,children:"pending"===c?"Switching…":"Switch"})]})]})})}function W(a){return"object"==typeof a&&null!==a&&"string"==typeof a.tag&&"string"==typeof a.publishedAt}function X(){let a=P();(0,f.jE)();let[b,c]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),j=(0,e.useRef)(null),k=w({queryKey:["runtime","info"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/info",{signal:a});if(!b.ok)throw Error(`runtime info ${b.status}`);let c=await b.json();if(!("object"==typeof c&&null!==c&&"version"in c&&"string"==typeof c.version))throw Error("Unexpected runtime info shape");return c}}),l=w({queryKey:["runtime","versions"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/versions",{signal:a});if(!b.ok)throw Error(`runtime versions ${b.status}`);let c=await b.json();if(!("object"==typeof c&&null!==c&&"string"==typeof c.current&&Array.isArray(c.available)&&c.available.every(W)))throw Error("Unexpected runtime versions shape");return c},staleTime:6e4,refetchOnMount:!0}),n=function(a,b){let c=(0,f.jE)(void 0),[d]=e.useState(()=>new R(c,a));e.useEffect(()=>{d.setOptions(a)},[d,a]);let g=e.useSyncExternalStore(e.useCallback(a=>d.subscribe(i.jG.batchCalls(a)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),h=e.useCallback((a,b)=>{d.mutate(a,b).catch(m.lQ)},[d]);if(g.error&&(0,m.GU)(d.options.throwOnError,[g.error]))throw g.error;return{...g,mutate:h,mutateAsync:g.mutate}}({mutationFn:async a=>{var b,c;let d=await fetch("/api/runtime/versions/switch",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({version:a})}),e=await (0,S.Y3)(d);if(202!==d.status||"object"!=typeof e||null===e||!0!==e.accepted||"string"!=typeof e.version){let a=(0,S.$8)(e,"");throw Error((b=d.status,c=a||null,409===b?"Cannot switch — daemon is running from a source checkout.":503===b&&"npm registry unreachable"===c?"npm registry unreachable — try again in a minute.":400===b&&"version not in registry"===c?"Version not available in the npm registry yet.":400===b&&"invalid version"===c?"Version is not a valid semver release.":"Switch failed. Check the daemon log and try again."))}return e},onSuccess:b=>{h({phase:"switching",target:b.version}),c(null),a.dismiss(),j.current?.focus()}}),o=k.isError?"dev":k.data?k.data.version:"…",p=l.data?.available??[],q=l.data?.current??k.data?.version??"",r=p[0]?.tag??"",s=function(a,b){let c=U(a),d=U(b);return!!c&&!!d&&(c[0]!==d[0]?c[0]>d[0]:c[1]!==d[1]?c[1]>d[1]:c[2]>d[2])}(r,q),{dismiss:t}=a,u=(0,e.useCallback)(()=>{n.isPending||(c(null),n.reset())},[n]),v=(0,e.useCallback)(()=>{b&&n.mutate(b)},[b,n]),x=n.isPending?"pending":n.isError?"error":"idle",y=n.error?.message??null;return(0,d.jsxs)("div",{ref:a.containerRef,className:"relative",onBlur:a.onBlur,onMouseEnter:a.onMouseEnter,onMouseLeave:a.onMouseLeave,children:[(0,d.jsxs)("button",{ref:j,"aria-expanded":a.open,"aria-haspopup":"true","aria-label":"Show Spur version information",className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]",type:"button",onClick:a.toggle,children:[(0,d.jsx)("span",{children:o}),s?(0,d.jsx)("span",{className:"rounded-sm border border-[var(--color-status-attention)] px-1 py-0.5 text-[10px] font-bold leading-none text-[var(--color-status-attention)]","data-testid":"version-update-badge",children:"update available"}):null]}),g?(0,d.jsxs)("div",{"aria-live":"polite",className:`absolute bottom-full right-0 z-50 mb-1.5 flex w-[min(20rem,calc(100vw-1rem))] items-start justify-between gap-2 border bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)] ${"failed"===g.phase?"border-[var(--color-status-error)] text-[var(--color-status-error)]":"border-[var(--color-status-attention)] text-[var(--color-status-attention)]"}`,"data-testid":"version-switch-status",role:"status",children:[(0,d.jsx)("span",{children:"switching"===g.phase?`Switching Spur to ${g.target}…`:"done"===g.phase?`Spur is now running ${g.target}.`:`Switch to ${g.target} not confirmed — check ~/.spur/logs/install-and-restart.log.`}),"switching"!==g.phase?(0,d.jsx)("button",{"aria-label":"Dismiss version switch status",className:"font-bold outline-none transition-opacity hover:opacity-70 focus-visible:opacity-70",type:"button",onClick:()=>h(null),children:"\xd7"}):null]}):null,a.open&&!g?(0,d.jsxs)("div",{className:"absolute bottom-full right-0 z-50 mb-1.5 w-[min(20rem,calc(100vw-1rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Spur"}),(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",children:q||o})]}),l.data?.stale?(0,d.jsx)("div",{className:"mb-2 normal-case tracking-normal text-[var(--color-status-attention)]","data-testid":"version-registry-stale",children:"npm registry unreachable — list may be outdated"}):null,0===p.length?(0,d.jsx)("div",{className:"normal-case tracking-normal text-[var(--color-text-secondary)]",children:l.data?.registryError?"npm registry unreachable":"No releases available"}):(0,d.jsx)("ul",{className:"flex max-h-48 flex-col gap-1 overflow-y-auto",children:p.map(a=>{let b=a.tag===q,e=a.tag===r;return(0,d.jsxs)("li",{className:"flex items-center justify-between gap-3 normal-case tracking-normal","data-current":b?"true":void 0,children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-[var(--color-text-secondary)]",children:[(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",children:a.tag}),b?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"current"}):null,!b&&e&&s?(0,d.jsx)("span",{className:"text-[var(--color-status-attention)]",children:"latest"}):null]}),(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:(0,F.fw)(a.publishedAt)}),b?null:(0,d.jsx)("button",{"aria-label":`Switch Spur to ${a.tag}`,className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] font-bold text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-50","data-testid":`switch-version-${a.tag}`,disabled:n.isPending,type:"button",onClick:()=>{h(null),n.reset(),c(a.tag)},children:"Switch"})]})]},a.tag)})})]}):null,null!==b?(0,d.jsx)(V,{current:q,errorMessage:y,pending:b,status:x,onCancel:u,onConfirm:v}):null]})}function Y(a,b){let{data:c}=w({queryKey:["platform-status",a],queryFn:async({signal:c})=>{let d=await fetch(a,{signal:c});return d.ok?await d.json():{ok:!1,error:`${b} (${d.status})`,requestedAt:null,configured:!0}},refetchInterval:12e4,refetchIntervalInBackground:!1,staleTime:12e4});return c??null}function Z(a){return"error"===a?"var(--color-status-error)":"attention"===a?"var(--color-status-attention)":"ready"===a?"var(--color-status-ready)":"var(--color-text-tertiary)"}function $(a,b){return"disk"===a?b>=85?"error":"ready":b>=85?"attention":"ready"}function _({level:a}){let b=Z(a);return(0,d.jsx)("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 shrink-0 rounded-full",style:{backgroundColor:b,boxShadow:`0 0 4px ${b}`}})}function aa({label:a,level:b,value:c}){return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-[var(--color-text-secondary)]",children:[(0,d.jsx)(_,{level:b}),(0,d.jsx)("span",{children:a})]}),(0,d.jsx)("span",{"aria-label":`${a} ${c} ${"error"===b?"critical":"attention"===b?"warning":"ready"===b?"healthy":"unavailable"}`,className:"font-bold",style:{color:Z(b)},children:c})]})}function ab(a){return null===a?"Checking":a.ok?"Healthy":"Error"}function ac({platform:a,status:b}){let c=P(),e="github"===a?"GitHub":"GitLab",f="github"===a?G.Nb:G.xD,g=null===b?"unknown":b.ok?"ready":"error",h=ab(b).toLowerCase();return(0,d.jsxs)("div",{ref:c.containerRef,className:"relative",onBlur:c.onBlur,onMouseEnter:c.onMouseEnter,onMouseLeave:c.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":c.open,"aria-label":`${e} connection ${h}`,className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]",type:"button",onClick:c.toggle,children:[(0,d.jsx)(f,{}),(0,d.jsx)(_,{level:g})]}),c.open?(0,d.jsxs)("div",{className:"absolute bottom-full left-0 z-50 mb-1.5 min-w-[180px] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:e}),(0,d.jsx)("span",{className:"font-bold",style:{color:Z(g)},children:ab(b)})]}),(0,d.jsx)("div",{className:"normal-case tracking-normal text-[var(--color-text-secondary)]",onClick:c.dismiss,children:null===b?"Checking authentication and API availability.":b.ok?(0,d.jsxs)(d.Fragment,{children:["Last request: ",(0,F.eB)(b.requestedAt)]}):b.error})]}):null]})}function ad(){let a=Y("/api/github-status","GitHub status unavailable"),b=Y("/api/gitlab-status","GitLab status unavailable"),c=function(){let{data:a}=w({queryKey:["runtime","resources"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/resources",{signal:a});if(!b.ok)return{available:!1};let c=await b.json();return c.available&&Number.isFinite(c.cpuPercent)&&Number.isFinite(c.memoryPercent)&&Number.isFinite(c.diskPercent)?c:{available:!1}},refetchInterval:15e3,refetchIntervalInBackground:!0,staleTime:15e3});return a??{available:!1}}(),f=function(){let{data:a,status:b,isError:c}=w({queryKey:["sessions"],queryFn:m.hT});return!c&&("pending"===b&&void 0===a?void 0:void 0!==a?!1!==a.daemonAlive:void 0)}(),g=function(){let{data:a}=w({queryKey:["sessions"],queryFn:m.hT});return(0,e.useMemo)(()=>{let b=new Set;for(let c of a?.sessions??[])for(let a of c.slots?.links??[]){if(!(0,G.do)(a.label))continue;let c=(0,G.tS)(a.url);c&&b.add(c)}return b},[a?.sessions])}(),h=P(),i=function(a,b){if(!1===b)return"error";if(void 0===b)return"unknown";if(!a.available)return"ready";let c=$("cpu",a.cpuPercent),d=$("memory",a.memoryPercent);return"error"===$("disk",a.diskPercent)?"error":"attention"===c||"attention"===d?"attention":"ready"}(c,f),j=void 0===f?"unknown":f?"ready":"error",k=void 0===f?"unavailable":f?"online":"offline",l="error"===i?"Critical":"attention"===i?"Warning":"ready"===i?"Healthy":"Unavailable",n=null===a||!0===a.configured||g.has("github"),o=null===b||!0===b.configured||g.has("gitlab");return(0,d.jsxs)("footer",{className:"fixed bottom-0 left-0 right-0 z-40 flex min-h-6 flex-wrap items-center gap-x-3 gap-y-1 border-t border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2 py-1 text-[10px] uppercase tracking-[0.08em] sm:px-4",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-3 gap-y-1 sm:gap-x-6",children:[(0,d.jsxs)("div",{ref:h.containerRef,className:"group/status relative",onBlur:h.onBlur,onMouseEnter:h.onMouseEnter,onMouseLeave:h.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":h.open,"aria-label":"Show aggregated system status",className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]","data-status":i,type:"button",onClick:h.toggle,children:[(0,d.jsx)(G.np,{}),(0,d.jsx)(_,{level:i})]}),h.open?(0,d.jsxs)("div",{className:"absolute bottom-full left-0 z-50 mb-1.5 w-[min(16rem,calc(100vw-1rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",onClick:h.dismiss,children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"System"}),(0,d.jsx)("span",{className:"font-bold",style:{color:Z(i)},children:l})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(aa,{label:"Daemon",level:j,value:k}),(0,d.jsx)(aa,{label:"CPU",level:c.available?$("cpu",c.cpuPercent):"unknown",value:c.available?`${c.cpuPercent}%`:"unavailable"}),(0,d.jsx)(aa,{label:"RAM",level:c.available?$("memory",c.memoryPercent):"unknown",value:c.available?`${c.memoryPercent}%`:"unavailable"}),(0,d.jsx)(aa,{label:"HDD",level:c.available?$("disk",c.diskPercent):"unknown",value:c.available?`${c.diskPercent}%`:"unavailable"})]})]}):null]}),n?(0,d.jsx)(ac,{platform:"github",status:a}):null,o?(0,d.jsx)(ac,{platform:"gitlab",status:b}):null]}),(0,d.jsx)("div",{className:"ml-auto shrink-0 text-[var(--color-text-tertiary)]",children:(0,d.jsx)(X,{})})]})}function ae({message:a}){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-sm border border-dashed border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-6 py-10 text-center",children:[(0,d.jsx)("div",{className:"mb-4 flex h-10 w-10 items-center justify-center rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-xl",children:"\uD81A\uDD13"}),(0,d.jsx)("p",{className:"max-w-xl text-sm leading-6 text-[var(--color-text-secondary)]",children:a??"No Spur sessions are visible yet. Start one with `spur spawn <project>` and it will appear here."})]})}var af=c(82217),ag=c(9530),ah=c(72281),ai=c(8457),aj=c(35867),ak=c(74191),al=c(11528),am=c(73867),an=c(28825),ao=c(47894),ap=c(15294),aq=c(59172),ar=c(33693);function as(a){return a.normalize("NFKD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9./-]+/g,"-").split("/").map(a=>a.replace(/-{2,}/g,"-").replace(/\.{2,}/g,".").replace(/^[-.]+|[-.]+$/g,"").replace(/(\.lock)+$/,"").replace(/[-.]+$/g,"")).filter(a=>a.length>0).join("/")}var at=c(97406),au=c(14694);function av({catalog:a,value:b,onChange:c}){let[f,g]=(0,e.useState)(!1),h=b?a.find(a=>a.name===b)??null:null;return(0,d.jsxs)("div",{className:"relative inline-flex shrink-0",children:[(0,d.jsxs)("button",{"aria-label":"Filter by tag",className:`flex items-center gap-1.5 border px-2 py-1.5 uppercase transition ${h?"border-[var(--color-accent)] bg-[var(--color-accent)]/10":"border-[var(--color-border-default)] bg-[var(--color-bg-surface)] hover:border-[var(--color-text-tertiary)]"}`,onClick:()=>g(a=>!a),type:"button",children:[h?null:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M3 5h18M6 12h12M10 19h4"})}),(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:h?h.name:"Tags"}),(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3 w-3 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"m6 9 6 6 6-6"})})]}),f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{"aria-hidden":"true",className:"fixed inset-0 z-20 cursor-default",onClick:()=>g(!1),tabIndex:-1,type:"button"}),(0,d.jsxs)("div",{className:"absolute left-0 top-full z-30 mt-1 max-h-72 w-44 overflow-y-auto border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] py-1 shadow-lg",children:[(0,d.jsx)("button",{className:`block w-full px-2 py-1.5 text-left text-[10px] uppercase tracking-[0.08em] transition hover:bg-[var(--color-hover-overlay)] ${h?"text-[var(--color-text-secondary)]":"text-[var(--color-text-primary)]"}`,onClick:()=>{c(null),g(!1)},type:"button",children:"All tags"}),a.map(a=>(0,d.jsx)("button",{className:"flex w-full items-center px-2 py-1.5 text-left transition hover:bg-[var(--color-hover-overlay)]",onClick:()=>{c(a.name),g(!1)},type:"button",children:(0,d.jsx)("span",{className:"inline-flex items-center border p-1.5 text-[9px] uppercase leading-none tracking-[0.06em]",style:D(a.color),children:a.name})},a.name))]})]}):null]})}I.HO;let aw="inline-flex h-7 w-7 shrink-0 items-center justify-center bg-transparent text-[var(--color-text-primary)] transition hover:bg-[var(--color-hover-overlay)]",ax="spur-shepherd";function ay(){return new Set}function az({icon:a,label:b,value:c,color:e,active:f,onClick:g}){return(0,d.jsxs)("button",{className:`flex min-w-0 flex-row items-center justify-center gap-1.5 border px-1.5 py-0.5 transition sm:justify-start sm:shrink-0 ${f?"border-[var(--color-accent)] bg-[var(--color-accent)]/10":"border-transparent hover:border-[var(--color-border-default)]"}`,onClick:g,type:"button",children:[(0,d.jsx)("span",{style:e?{color:e}:void 0,children:a}),(0,d.jsxs)("span",{className:"hidden min-w-0 truncate text-[var(--color-text-secondary)] sm:inline",children:[b,":"]}),(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",style:e?{color:e}:void 0,children:c})]})}function aA(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:(0,d.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function aB(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"}),(0,d.jsx)("path",{d:"M12 9v4"}),(0,d.jsx)("path",{d:"M12 17h.01"})]})}function aC(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("path",{d:"M12 6v6l4 2"})]})}function aD(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:(0,d.jsx)("path",{d:"M13 2 3 14h9l-1 8 10-12h-9l1-8z"})})}function aE(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}function aF(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("rect",{x:"5",y:"5",width:"14",height:"14"})})}function aG(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 20h9"}),(0,d.jsx)("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function aH(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"6",y:"8",width:"12",height:"10"}),(0,d.jsx)("path",{d:"M9 8V5"}),(0,d.jsx)("path",{d:"M15 8V5"}),(0,d.jsx)("circle",{cx:"10",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"14",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("path",{d:"M10 16h4"}),(0,d.jsx)("path",{d:"M4 12h2"}),(0,d.jsx)("path",{d:"M18 12h2"})]})}function aI(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6"}),(0,d.jsx)("path",{d:"M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"})]})}function aJ(){return""}function aK(a,b){return"shepherd"===a.kind?-1:"shepherd"===b.kind?1:a.name.localeCompare(b.name,void 0,{sensitivity:"base"})}function aL({activeProjectName:a,projects:b,selectedProjectId:c,onSelectProject:e,onNewProject:f,onEdit:g}){let h=P();return(0,d.jsxs)("div",{ref:h.containerRef,className:"relative",onBlur:h.onBlur,onMouseEnter:h.onMouseEnter,onMouseLeave:h.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":h.open,"aria-haspopup":"menu","aria-label":`Project filter: ${a}`,className:"inline-flex min-w-0 max-w-full items-center gap-3 text-[var(--color-text-primary)] transition hover:text-[var(--color-accent)]",type:"button",onClick:h.toggle,children:[(0,d.jsx)("span",{className:"text-xl text-[var(--color-accent)]",children:"\uD81A\uDD13"}),(0,d.jsxs)("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 text-xl font-bold uppercase tracking-[-0.02em] sm:text-2xl",children:[(0,d.jsx)("span",{className:"block min-w-0 truncate",children:a}),(0,d.jsx)("svg",{"aria-hidden":"true","data-testid":"project-filter-chevron",className:"pointer-events-none mt-px h-4 w-4 shrink-0",fill:"currentColor",viewBox:"0 0 16 16",children:(0,d.jsx)("path",{d:"M4 6.5 8 10.5 12 6.5Z"})})]})]}),h.open?(0,d.jsxs)("div",{className:"absolute left-0 top-full z-50 mt-1 min-w-[260px] max-w-[calc(100vw-1rem)] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",role:"menu",children:[(0,d.jsxs)("button",{"aria-checked":""===c,className:`mb-1 flex w-full items-center gap-2 border px-2 py-1.5 text-left font-bold uppercase transition hover:border-[var(--color-accent)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)] ${""===c?"border-[var(--color-accent)] bg-[var(--color-accent)]/10 text-[var(--color-accent)] hover:bg-[var(--color-accent)]/25":"border-transparent text-[var(--color-text-primary)]"}`,onClick:()=>{h.dismiss(),e("")},role:"menuitemradio",type:"button",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"w-3 text-center",children:""===c?"✓":""}),(0,d.jsx)("span",{children:"All Projects"})]}),0===b.length?(0,d.jsx)("p",{className:"px-2 py-1.5 text-[var(--color-text-tertiary)]",children:"No projects yet."}):(0,d.jsx)("ul",{className:"flex flex-col",role:"group",children:b.map(a=>(0,d.jsxs)("li",{role:"none",className:"group flex items-center gap-2 border-t border-[var(--color-border-subtle)] py-1.5 transition hover:bg-[var(--color-accent)]/10",children:[a.configured?(0,d.jsxs)("button",{"aria-checked":c===a.id,className:`flex min-w-0 flex-1 items-center gap-2 border px-2 py-1.5 text-left transition hover:border-[var(--color-accent)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)] ${c===a.id?"border-[var(--color-accent)] bg-[var(--color-accent)]/10 text-[var(--color-accent)] hover:bg-[var(--color-accent)]/25":"border-transparent text-[var(--color-text-primary)]"}`,onClick:()=>{h.dismiss(),e(a.id)},role:"menuitemradio",type:"button",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-center",children:c===a.id?"✓":""}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.name}),"shepherd"===a.kind?(0,d.jsx)("span",{className:"shrink-0 border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"built-in"}):null]}):(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--color-text-primary)]",children:a.name}),"shepherd"!==a.kind||a.configured?null:(0,d.jsx)("span",{className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"built-in"}),a.configured?null:(0,d.jsx)("span",{className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"unconfigured"}),(0,d.jsx)("button",{"aria-label":`Edit ${a.name}`,className:"border border-transparent px-1.5 py-1 text-[var(--color-text-tertiary)] transition group-hover:border-[var(--color-border-subtle)] group-hover:bg-[var(--color-accent)]/15 hover:border-[var(--color-border-strong)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)]",onClick:()=>{h.dismiss(),g(a)},role:"menuitem",type:"button",children:(0,d.jsx)(aG,{})})]},a.id))}),(0,d.jsx)("button",{className:"mt-2 w-full bg-[var(--color-accent)] px-2 py-1.5 text-left font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)]",onClick:()=>{h.dismiss(),f()},role:"menuitem",type:"button",children:"+ New project"})]}):null]})}function aM({displayName:a,prefix:b,path:c,error:e,missingPath:f,submitting:g,onDisplayNameChange:h,onPrefixChange:i,onPathChange:j,onSubmit:k,onCreateFolder:l,onClose:m}){return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&m()},children:(0,d.jsxs)("div",{className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-md sm:p-5",onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),k())},children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",children:"New project"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:m,type:"button",children:"✕"})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Display name"}),(0,d.jsx)("input",{"aria-label":"Project display name",autoFocus:!0,className:an.s,onChange:a=>h(a.target.value),placeholder:"e.g. Spur Web",value:a})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Session prefix"}),(0,d.jsx)("input",{"aria-label":"Project session prefix",className:an.s,onChange:a=>i(a.target.value),placeholder:"letters, digits, _ or -",value:b})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Project path"}),(0,d.jsx)("input",{"aria-label":"Project path",className:an.s,onChange:a=>j(a.target.value),placeholder:"/absolute/path/to/repo",value:c})]}),e?(0,d.jsx)("p",{className:"mb-3 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2.5 py-1.5 text-[var(--color-status-error)]",role:"alert",children:e}):null,f?(0,d.jsxs)("div",{className:"mb-3 flex flex-col gap-2 border border-[var(--color-status-attention)] bg-[var(--color-status-attention)]/10 px-2.5 py-1.5 text-[var(--color-status-attention)]",role:"alert",children:[(0,d.jsx)("span",{children:"Folder doesn't exist. Create it?"}),(0,d.jsx)("button",{className:"self-start bg-[var(--color-accent)] px-3 py-1 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:g,onClick:l,type:"button",children:"Create folder & continue"})]}):null,(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:m,type:"button",children:"Cancel"}),(0,d.jsx)("button",{className:"bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:g,onClick:k,type:"button",children:g?"Creating…":"Create"})]})]})})}function aN({project:a,displayName:b,prefix:c,path:f,error:g,submitting:h,deleting:i,onDisplayNameChange:j,onPrefixChange:k,onPathChange:l,onSubmit:m,onDelete:n,onClose:o}){let p=!a.configured&&"shepherd"!==a.kind,q="shepherd"!==a.kind,[r,s]=(0,e.useState)(!1),t=a.configured?"Disconnect":"Delete";return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&o()},children:(0,d.jsxs)("div",{"aria-labelledby":"edit-project-title","aria-modal":"true",className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-md sm:p-5",role:"dialog",children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",id:"edit-project-title",children:"Project settings"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:o,type:"button",children:"✕"})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Display name"}),(0,d.jsx)("input",{"aria-label":"Edit project display name",className:an.s,disabled:!p,onChange:a=>j(a.target.value),value:b})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Session prefix"}),(0,d.jsx)("input",{"aria-label":"Edit project session prefix",className:an.s,disabled:!p,onChange:a=>k(a.target.value),value:c})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Project path"}),(0,d.jsx)("input",{"aria-label":"Edit project path",className:an.s,disabled:!p,onChange:a=>l(a.target.value),value:f})]}),a.configured?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-text-tertiary)]",children:"Configured projects are edited in spur.yaml."}):null,"shepherd"===a.kind?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-text-tertiary)]",children:"Shepherd is built in and cannot be edited or deleted."}):null,g?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-status-error)]",children:g}):null,r?(0,d.jsxs)("div",{className:"mb-3 flex flex-col gap-2 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2.5 py-1.5 text-[var(--color-status-error)]",role:"alert",children:[(0,d.jsx)("span",{children:a.configured?`Disconnect ${a.name}? Spur will stop tracking its spur.yaml.`:`Delete ${a.name}?`}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsxs)("button",{className:"border border-[var(--color-border-strong)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",disabled:i,onClick:()=>s(!1),type:"button",children:["Cancel ",t]}),(0,d.jsxs)("button",{className:"inline-flex items-center gap-1.5 border border-[var(--color-status-error)] px-3 py-1.5 font-bold uppercase text-[var(--color-status-error)] transition hover:bg-[var(--color-bg-surface)] disabled:cursor-not-allowed disabled:opacity-60",disabled:i,onClick:n,type:"button",children:[(0,d.jsx)(aI,{}),i?"Deleting…":`Confirm ${t}`]})]})]}):null,(0,d.jsxs)("div",{className:"mt-auto flex flex-wrap items-center justify-between gap-2 pt-2",children:[q?(0,d.jsxs)("button",{className:"inline-flex items-center gap-1.5 border border-[var(--color-status-error)] px-3 py-1.5 font-bold uppercase text-[var(--color-status-error)] transition hover:bg-[var(--color-bg-surface)] disabled:cursor-not-allowed disabled:opacity-60",disabled:i||r,onClick:()=>s(!0),type:"button",children:[(0,d.jsx)(aI,{}),t]}):(0,d.jsx)("span",{}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{className:"border border-[var(--color-border-strong)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:o,type:"button",children:"Cancel"}),p?(0,d.jsx)("button",{className:"bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:h,onClick:m,type:"button",children:h?"Saving…":"Save"}):null]})]})]})})}function aO(){let[a,b]=(0,e.useState)(aJ),c=function(a){let[b,c]=(0,e.useState)(!1);return b}(0),[g,h]=(0,e.useState)(()=>{let a=new URLSearchParams(aJ());return a.get("project")?.trim()??""}),{toasts:i,showErrorToast:j,dismissToast:k}=(0,ap.Y)(),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(null),[v,z]=(0,e.useState)(""),[A,B]=(0,e.useState)("claude"),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(""),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useState)(!1),[N,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(""),[T,U]=(0,e.useState)([]),[V,W]=(0,e.useState)("default"),[X,Y]=(0,e.useState)(""),[Z,$]=(0,e.useState)([]),[_,aa]=(0,e.useState)(!1),ab=(0,e.useRef)(!1),[ac,aG]=(0,e.useState)(!1),aI=(0,e.useRef)(null),aO=(0,e.useRef)(null),aP=(0,ao.u)("spur:input-history:spawn-prompt"),aQ=(0,aq.C)({contextKey:"spawn",onTranscribed:a=>z(b=>b.trim()?`${b}
2
- ${a}`:a)}),aR=(0,aq.C)({contextKey:"dashboard-search",onTranscribed:q}),[aS,aT]=(0,e.useState)(ay),aU=(0,e.useCallback)(a=>{aT(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),window.localStorage.setItem("spur:mobile-collapsed-categories",JSON.stringify([...c])),c})},[]),[aV,aW]=(0,e.useState)(null),[aX,aY]=(0,e.useState)(()=>null),aZ=a=>aW(b=>b===a?null:a),[a$,a_]=(0,e.useState)(!1),[a0,a1]=(0,e.useState)(""),[a2,a3]=(0,e.useState)(""),[a4,a5]=(0,e.useState)(""),[a6,a7]=(0,e.useState)(null),[a8,a9]=(0,e.useState)(null),[ba,bb]=(0,e.useState)(!1),[bc,bd]=(0,e.useState)(null),[be,bf]=(0,e.useState)(""),[bg,bh]=(0,e.useState)(""),[bi,bj]=(0,e.useState)(""),[bk,bl]=(0,e.useState)(null),[bm,bn]=(0,e.useState)(!1),[bo,bp]=(0,e.useState)(!1),[bq,br]=(0,e.useState)(null);(0,e.useMemo)(()=>new URLSearchParams(a).get("project")?.trim()??"",[a]);let bs=(0,e.useMemo)(()=>(0,H.qZ)(new URLSearchParams(a)),[a]),bt=(0,f.jE)(),bu=["sessions"],{data:bv,isPending:bw,error:bx}=w({queryKey:bu,queryFn:async({signal:a})=>{let b=await fetch("/api/sessions",{signal:a});if(!b.ok)throw Error(`sessions ${b.status}`);return await b.json()},refetchInterval:5e3,refetchIntervalInBackground:!0,placeholderData:a=>a}),by=bv?.sessions??[],bz=bv?.projects??[],bA=(0,e.useMemo)(()=>bv?.tags??[],[bv?.tags]);(0,e.useRef)(null);let bB=(0,e.useMemo)(()=>[...bz].sort(aK),[bz]),bC=(0,e.useMemo)(()=>(function(a,b){let c=new Map(a.map(a=>[a.id,a.name]));for(let a of b)c.has(a.project)||c.set(a.project,a.project);return c})(bz,by),[bz,by]),bD=(0,e.useMemo)(()=>by.map(a=>(0,I.MH)(a,bC.get(a.project))),[bC,by]),bE=(0,e.useMemo)(()=>g?bD.filter(a=>a.projectId===g):bD,[bD,g]),bF=(0,e.useMemo)(()=>{let a=new Set(bE.flatMap(a=>a.tags));return bA.filter(b=>a.has(b.name))},[bE,bA]),bG=(0,e.useMemo)(()=>{if(!aX)return bE;let a=new Set(bE.filter(a=>a.tags.includes(aX)).map(a=>a.deskKey));return bE.filter(b=>a.has(b.deskKey))},[bE,aX]),bH=(0,e.useMemo)(()=>{let a=p.trim().toLowerCase();if(!a)return bG;let b=new Set(bG.filter(b=>b.id.toLowerCase().includes(a)||(b.title??"").toLowerCase().includes(a)||b.prompt.toLowerCase().includes(a)||b.projectName.toLowerCase().includes(a)||(b.branch??"").toLowerCase().includes(a)).map(a=>a.deskKey));return bG.filter(a=>b.has(a.deskKey))},[bG,p]),bI=(0,e.useMemo)(()=>(0,I.O1)(bH),[bH]),bJ=(0,e.useMemo)(()=>{let a={error:[],rate_limited:[],respond:[],working:[],pending:[],stopped:[],done:[]};for(let b of bI)a[b.lane].push(b);return a},[bI]),bK=(0,e.useMemo)(()=>({error:bJ.error.length,rate_limited:bJ.rate_limited.length,respond:bJ.respond.length,working:bJ.working.length,pending:bJ.pending.length,stopped:bJ.stopped.length,done:bJ.done.length}),[bJ]),bL=(0,e.useMemo)(()=>I.HO.filter(a=>bJ[a].length>0&&(null===aV?"done"!==a:a===aV)),[aV,bJ]),bM=g.length>0||p.trim().length>0||null!==aV||null!==aX,bN=bL.length>0,bO=g?bB.find(a=>a.id===g)?.name??g:"All Projects",bP=bM?`No sessions match the current filters${g?` in ${bO}`:""}.`:bJ.done.length>0?"No current sessions are visible.":void 0,bQ=(0,e.useMemo)(()=>bB.filter(a=>a.configured),[bB]),bR=a=>{let b=a.trim();u(null),s(b)},bS=a=>{h(a),!ac&&a&&s(a)},bT=a=>{},bU=(0,e.useMemo)(()=>as(F),[F]),bV=async()=>{let a=r.trim(),b=v.trim();if(a&&!ab.current){ab.current=!0,aa(!0);try{let c=T.map(a=>a.value.trim()).filter(a=>a.length>0),d=function(a,b){if("worktree"===a){let a=b.trim();return a?{worktree:!0,defaultBranch:a}:{worktree:!0}}if("shared"===a)return{worktree:!1}}(V,X),e={projectId:a,prompt:b,agent:A};null!==D&&(e.model=D);let f=(0,ar.ZM)(Z);f.length>0&&(e.attachments=f);let g=as(F);if(g&&(e.branch=g),L&&(e.planMode=!0),N){let a=Q.trim();e.selfDestruct={enabled:!0,...a?{conditions:a}:{}}}c.length>0&&(e.steps=c),d&&(e.overrides=d);let h=await fetch("/api/spawn",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!h.ok)throw Error(await h.text());aP.saveEntry(b);let i=await h.json();bt.setQueryData(bu,a=>{let b=(a?.sessions??[]).filter(a=>a.id!==i.id);return{sessions:[i,...b],projects:a?.projects??[]}}),z(""),E(null),G(""),M(!1),P(!1),R(""),U([]),W("default"),Y(""),$([]),u(null),aG(!1),bR(a)}catch(a){j((0,S.gJ)(a,"Failed to spawn Spur session"))}finally{ab.current=!1,aa(!1)}}},bW=a=>{bT(a.id)},bX=async a=>{let b=a0.trim(),c=a2.trim(),d=a4.trim();if(!b)return void a7("Display name is required");if(!c)return void a7("Prefix is required");if(!/^[a-zA-Z0-9_-]+$/.test(c))return void a7("Prefix must contain only letters, digits, underscores, or hyphens");if(!d)return void a7("Path is required");bb(!0),a7(null),a&&a9(null);try{let e=a?{displayName:b,prefix:c,path:d,createMissing:!0}:{displayName:b,prefix:c,path:d},f=await fetch("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!f.ok){let b=await f.json().catch(()=>null),c=b?.error??`Failed to create project (${f.status})`,d="path does not exist: ";if(!a&&c.startsWith(d))return void a9(c.slice(d.length));throw Error(c)}let g=await f.json(),h=await fetch("/api/spawn",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:g.id,prompt:"",bootstrap:!0})});if(!h.ok){let a=await h.json().catch(()=>null);throw Error(a?.error??`Project created but bootstrap session failed (${h.status})`)}let i=await h.json();a_(!1),a9(null),await bt.invalidateQueries({queryKey:bu}),bT(i.id)}catch(a){a7((0,S.gJ)(a,"Failed to create Spur project"))}finally{bb(!1)}},bY=async()=>{ba||await bX(!1)},bZ=async()=>{ba||await bX(!0)},b$=async()=>{if(!bc||bm||bo)return;let a=be.trim(),b=bg.trim(),c=bi.trim();if(!a)return void bl("Display name is required");if(!b)return void bl("Prefix is required");if(!/^[a-zA-Z0-9_-]+$/.test(b))return void bl("Prefix must contain only letters, digits, underscores, or hyphens");if(!c)return void bl("Path is required");bn(!0),bl(null);try{let d=await fetch(`/api/projects/${encodeURIComponent(bc.id)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({displayName:a,prefix:b,path:c})});if(!d.ok){let a=await d.json().catch(()=>null);throw Error(a?.error??`Failed to update project (${d.status})`)}let e=await d.json();bt.setQueryData(bu,a=>({...a,sessions:a?.sessions??[],projects:e.projects})),bd(null),br(null)}catch(a){bl(a instanceof Error?a.message:"Failed to update Spur project")}finally{bn(!1)}},b_=async a=>{try{let b=await fetch(`/api/projects/${encodeURIComponent(a.id)}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);throw Error(a?.error??`Failed to delete project (${b.status})`)}return br(null),bc?.id===a.id&&bd(null),await bt.invalidateQueries({queryKey:bu}),!0}catch(c){let b=c instanceof Error?c.message:"Failed to delete Spur project";return br(b),bc?.id===a.id&&bl(b),!1}},b0=async()=>{bc&&!bo&&(bp(!0),await b_(bc),bp(!1))},b1=(0,e.useCallback)(async(a,b)=>{try{let c=await fetch(`/api/sessions/${encodeURIComponent(a)}/tags`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(b)});if(!c.ok){let a=await c.json().catch(()=>null);throw Error(a?.error??`Failed to update tags (${c.status})`)}await bt.invalidateQueries({queryKey:bu})}catch(a){j((0,S.gJ)(a,"Failed to update tags"))}},[bt,bu,j]),b2=(0,e.useMemo)(()=>({catalog:bA,applyTags:b1}),[bA,b1]),b3=async a=>{await bt.cancelQueries({queryKey:bu});let b=bt.getQueryData(bu);bt.setQueryData(bu,b=>b?{...b,sessions:b.sessions.map(b=>b.id===a.id?{...b,status:"running",state:"working",runtimeAlive:!0}:b)}:b);try{let b=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/restore`,{method:"POST"});if(!b.ok)throw Error(await b.text())}catch(a){throw b&&bt.setQueryData(bu,b),j((0,S.gJ)(a,"Failed to restore Spur session")),a}finally{await bt.invalidateQueries({queryKey:bu})}},b4=async(a,b)=>{let c=bD.filter(b=>b.deskKey===a.deskKey&&"killed"!==b.status&&"completed"!==b.status),d=(c.filter(b=>b.id!==a.id).length,new Set(c.map(a=>a.id)));await bt.cancelQueries({queryKey:bu});let e=bt.getQueryData(bu);bt.setQueryData(bu,a=>a?{...a,sessions:a.sessions.map(a=>d.has(a.id)?{...a,status:"completed",state:"stopped",runtimeAlive:!1,tmuxSession:null}:a)}:a);try{let c={scope:"desk",...b?{prAction:b}:{}},d=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/complete`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(c)}),f=await (0,S.Y3)(d);if(!d.ok){if((0,I.Qk)(f)){e&&bt.setQueryData(bu,e),m({session:a,payload:f});return}throw Error((0,S.$8)(f,"Failed to complete Spur session"))}let g=function(a){if("object"!=typeof a||null===a||!("completedIds"in a))return[];let b=a.completedIds;return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}(f);if(g.length>0){let a=new Set(g);bt.setQueryData(bu,b=>b?{...b,sessions:b.sessions.map(b=>a.has(b.id)?{...b,status:"completed",state:"stopped",runtimeAlive:!1,tmuxSession:null}:b)}:b)}}catch(a){throw e&&bt.setQueryData(bu,e),j((0,S.gJ)(a,"Failed to complete Spur session")),a}finally{await bt.invalidateQueries({queryKey:bu})}},b5=async a=>{if(l){o(!0);try{await b4(l.session,a),m(null)}finally{o(!1)}}},b6=(0,e.useCallback)(a=>{(0,ar.kQ)(a).then(a=>{0!==a.length&&$(b=>[...b,...a])}).catch(()=>{})},[]),b7=(0,e.useMemo)(()=>{if(!bs)return null;let a=bD.find(a=>a.id===bs);return!a||!a.runtimeAlive||(0,I.zi)(a)||!a.tmuxSession?null:a},[bD,bs]);return(0,d.jsxs)(C.Provider,{value:b2,children:[(0,d.jsxs)("main",{className:"mx-auto max-w-[1500px] px-4 py-4 pb-8 sm:px-5 lg:px-6",children:[(0,d.jsxs)("header",{className:"mb-4 flex flex-wrap items-center gap-2 sm:gap-3",children:[(0,d.jsx)(aL,{activeProjectName:bO,projects:bB,selectedProjectId:g,onSelectProject:bS,onNewProject:()=>{a1(""),a3(""),a5(""),a7(null),a9(null),a_(!0)},onEdit:a=>{bd(a),bf(a.name),bh(a.prefix),bj(a.path),bl(null)}}),bK.error>0?(0,d.jsx)(az,{icon:(0,d.jsx)(aB,{}),label:"Errors",value:bK.error,color:"var(--color-status-error)",active:"error"===aV,onClick:()=>aZ("error")}):null,bK.rate_limited>0?(0,d.jsx)(az,{icon:(0,d.jsx)(aC,{}),label:"Rate Limited",value:bK.rate_limited,color:"var(--color-status-attention)",active:"rate_limited"===aV,onClick:()=>aZ("rate_limited")}):null,(0,d.jsx)(az,{icon:(0,d.jsx)(aA,{}),label:"Needs Input",value:bK.respond,color:bK.respond>0?"var(--color-status-error)":void 0,active:"respond"===aV,onClick:()=>aZ("respond")}),(0,d.jsx)(az,{icon:(0,d.jsx)(aD,{}),label:"Working",value:bK.working,color:bK.working>0?"var(--color-status-working)":void 0,active:"working"===aV,onClick:()=>aZ("working")}),(0,d.jsx)(az,{icon:(0,d.jsx)(aC,{}),label:"Waiting",value:bK.pending,color:bK.pending>0?"var(--color-status-attention)":void 0,active:"pending"===aV,onClick:()=>aZ("pending")}),(0,d.jsx)(az,{icon:(0,d.jsx)(aF,{}),label:"Stopped",value:bK.stopped,color:bK.stopped>0?"var(--color-text-tertiary)":void 0,active:"stopped"===aV,onClick:()=>aZ("stopped")}),(0,d.jsx)(az,{icon:(0,d.jsx)(aE,{}),label:"Completed",value:bK.done,color:"done"===aV&&bK.done>0?"var(--color-status-ready)":void 0,active:"done"===aV,onClick:()=>aZ("done")}),bF.length>0?(0,d.jsx)("span",{className:"sm:ml-auto",children:(0,d.jsx)(av,{catalog:bF,value:aX,onChange:aY})}):null,(0,d.jsxs)("div",{className:`flex min-w-[12rem] flex-[999_1_16rem] flex-col gap-1 ${bF.length>0?"":"sm:ml-auto"}`,children:[(0,d.jsxs)("div",{className:"flex items-stretch border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 px-2 py-1.5",children:[(0,d.jsxs)("svg",{className:"h-3.5 w-3.5 shrink-0 text-[var(--color-text-tertiary)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("path",{d:"m21 21-4.35-4.35"})]}),(0,d.jsx)("input",{"aria-label":"Filter sessions",className:"min-w-0 flex-1 border-none bg-transparent uppercase text-[var(--color-text-primary)] outline-none",onChange:a=>q(a.target.value),onKeyDown:a=>{(0,au.tF)(a)&&(a.preventDefault(),aR.toggleRecording())},placeholder:(0,am.uT)("Filter sessions...",aR),ref:aI,value:p})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-stretch",children:[p.length>0?(0,d.jsx)("div",{className:"flex items-center border-l border-[var(--color-border-default)] px-1",children:(0,d.jsx)("button",{"aria-label":"Clear dashboard search",className:aw,onClick:()=>{q(""),aI.current?.focus()},type:"button",children:(0,d.jsx)(af.U,{})})}):null,aR.canUseVoice?(0,d.jsx)("div",{className:"flex items-center border-l border-[var(--color-border-default)] px-1",children:(0,d.jsx)(am.lv,{borderless:!0,className:aw,groupClassName:"flex items-center gap-1",voice:aR})}):null]})]}),aR.voiceError?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2 py-1.5 text-[10px] text-[var(--color-chip-error-text)]",role:"alert",children:aR.voiceError}):aR.recording||aR.voiceBusy?(0,d.jsx)("div",{className:"px-2 text-[10px] text-[var(--color-text-tertiary)]",children:(0,d.jsx)(am.cQ,{voice:aR})}):null]}),(0,d.jsxs)("div",{className:"inline-flex w-full sm:w-auto sm:shrink-0",children:[(0,d.jsx)("button",{"aria-label":"Spawn Shepherd",className:"inline-flex w-10 shrink-0 items-center justify-center border border-[var(--color-accent)] bg-[var(--color-accent)] text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)]",onClick:()=>{u(ax),s(ax),B("claude"),E(null),W("default"),Y(""),$([]),aG(!0)},title:"Spawn Shepherd",type:"button",children:(0,d.jsx)(aH,{})}),(0,d.jsx)("button",{className:"min-w-0 flex-1 whitespace-nowrap border border-[var(--color-accent)] border-l-[var(--color-text-inverse)] bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] sm:flex-none",onClick:()=>{u(null),s((()=>{let a=bQ.find(a=>a.id===g)?.id??"";return a||(bQ[0]?.id??"")})()),$([]),aG(!0)},type:"button",children:"Spawn Session"})]})]}),a$?(0,d.jsx)(aM,{displayName:a0,prefix:a2,path:a4,error:a6,missingPath:a8,submitting:ba,onDisplayNameChange:a1,onPrefixChange:a3,onPathChange:a=>{a5(a),a9(null)},onSubmit:()=>{bY()},onCreateFolder:()=>{bZ()},onClose:()=>a_(!1)}):null,bc?(0,d.jsx)(aN,{project:bc,displayName:be,prefix:bg,path:bi,error:bk,submitting:bm,deleting:bo,onDisplayNameChange:bf,onPrefixChange:bh,onPathChange:bj,onSubmit:()=>{b$()},onDelete:()=>{b0()},onClose:()=>{bm||bo||(bd(null),bl(null))}}):null,bq?(0,d.jsx)("div",{className:"mb-3 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2 py-1.5 text-[var(--color-status-error)]",role:"alert",children:bq}):null,ac?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&aG(!1)},children:(0,d.jsxs)("div",{className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-lg sm:p-5",onKeyDown:a=>{if((0,au.tF)(a)){a.preventDefault(),aQ.toggleRecording();return}(0,au.rU)(a)&&(a.preventDefault(),bV())},children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",children:"Spawn Session"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>aG(!1),type:"button",children:"✕"})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("select",{"aria-label":"Spawn project",className:`flex-1 ${an.s}`,onChange:a=>bR(a.target.value),value:r,children:[(0,d.jsx)("option",{value:"",children:"Select project"}),bQ.map(a=>(0,d.jsx)("option",{value:a.id,children:"shepherd"===a.kind?`${a.name} (Built In)`:a.name},a.id))]}),(0,d.jsx)(x.a,{ariaLabel:"Spawn agent",onChange:a=>{B(a),E(null)},value:A}),(0,d.jsx)("div",{className:"min-w-40 flex-1",children:(0,d.jsx)(y.o,{agent:A,ariaLabel:"Spawn model",onChange:E,value:D})})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("input",{"aria-label":"branch name",className:`min-w-40 flex-1 ${an.s}`,onBlur:()=>G(as(F)),onChange:a=>G(a.target.value),placeholder:"Branch name",value:F}),(0,d.jsxs)("select",{"aria-label":"workspace mode",className:an.s,onChange:a=>W(a.target.value),value:V,children:[(0,d.jsx)("option",{value:"default",children:"Default"}),(0,d.jsx)("option",{value:"worktree",children:"Worktree"}),(0,d.jsx)("option",{value:"shared",children:"Shared"})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 cursor-pointer",children:[(0,d.jsx)("input",{"aria-label":"Plan",checked:L,className:"accent-[var(--color-accent)]",onChange:a=>M(a.target.checked),type:"checkbox"}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase text-[var(--color-text-primary)]",children:"Plan"})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 cursor-pointer",children:[(0,d.jsx)("input",{"aria-label":"Self-destruct",checked:N,className:"accent-[var(--color-accent)]",onChange:a=>P(a.target.checked),type:"checkbox"}),(0,d.jsx)("span",{className:"font-bold uppercase text-[var(--color-text-primary)]",children:"Self-destruct"})]})]}),bU&&bU!==F?(0,d.jsxs)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:["will create ",bU]}):null,J&&J.exists&&!J.checkedOutAt?(0,d.jsx)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:"branch already exists — will attach instead of creating new"}):null,J&&J.exists&&J.checkedOutAt?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2.5 py-1.5 text-xs text-[var(--color-chip-error-text)]",children:"already checked out in another worktree — spawn will fail; pick a different name"}):null,J&&!J.exists&&J.remote?(0,d.jsx)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:"exists on origin — will track it"}):null,N?(0,d.jsx)("textarea",{"aria-label":"Self-destruct conditions",className:`min-h-20 w-full resize-y ${an.s}`,onChange:a=>R(a.target.value),placeholder:"Self-destruct conditions",value:Q}):null,"worktree"===V?(0,d.jsx)("input",{className:`w-full ${an.s}`,onChange:a=>Y(a.target.value),placeholder:"Base branch",value:X}):null,(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"max-h-48 space-y-2 overflow-y-auto",children:T.map((a,b)=>(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{"aria-label":`step ${b+1}`,className:`flex-1 ${an.s}`,onChange:b=>{let c,d;return c=a.id,d=b.target.value,U(a=>a.map(a=>a.id===c?{...a,value:d}:a))},placeholder:`Step ${b+1}`,value:a.value}),(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>{let b;return b=a.id,U(a=>a.filter(a=>a.id!==b))},type:"button",children:"✕"})]},a.id))}),(0,d.jsx)("button",{className:"mt-2 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 text-xs font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>{U(a=>[...a,{id:Date.now(),value:""}])},type:"button",children:"+ Step"})]}),(0,d.jsx)(ag.U,{ariaLabel:"Prompt for the new session...",attachments:Z,clearLabel:"Clear spawn prompt",minHeightClass:"min-h-[8rem] sm:min-h-[10rem]",onAddFiles:b6,onChange:z,onKeyDown:a=>{if((0,au.tF)(a)){a.preventDefault(),aQ.toggleRecording();return}(0,au.rU)(a)&&(a.preventDefault(),bV())},onRemoveAttachment:a=>$(b=>b.filter((b,c)=>c!==a)),placeholder:(0,am.uT)("Prompt for the new session...",aQ),textareaRef:aO,value:v,voice:aQ}),aQ.voiceError?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2.5 py-1.5 text-xs text-[var(--color-chip-error-text)]",children:aQ.voiceError}):null,(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:(0,d.jsx)(am.cQ,{voice:aQ})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(aj.t,{endpoint:r.trim()?`/api/projects/${encodeURIComponent(r.trim())}/slash-commands?agent=${encodeURIComponent(A)}`:null,onSelect:a=>(0,at.U)(aO.current,a.insertText,z)}),(0,d.jsx)(ah.$,{entries:aP.entries,onSelect:z}),(0,d.jsxs)("button",{className:"inline-flex min-w-32 items-center justify-center gap-2 bg-[var(--color-accent)] px-4 py-2 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:_||!r.trim(),onClick:()=>void bV(),type:"button",children:[(0,d.jsx)("span",{children:_?"Spawning...":"Spawn"}),_?null:(0,d.jsx)("span",{"aria-hidden":"true",className:"whitespace-nowrap font-mono text-[10px] font-medium normal-case tracking-normal text-[var(--color-text-tertiary)]",children:au.C9})]})]})]})]})]})}):null,bw?(0,d.jsx)("p",{className:"mt-4 text-sm text-[var(--color-text-secondary)]",children:"Loading sessions..."}):null,bw||bN?null:(0,d.jsxs)("section",{className:"mt-5",children:[(0,d.jsx)(ae,{message:bP}),bM?(0,d.jsx)("div",{className:"mt-3 flex justify-center",children:(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-primary)] transition hover:border-[var(--color-accent)] hover:text-[var(--color-accent)]",onClick:()=>{q(""),aW(null),aY(null),bS("")},type:"button",children:"Reset Filters"})}):null]}),!bw&&bN?(0,d.jsx)("section",{className:"mt-5 space-y-4",children:bL.map(a=>(0,d.jsx)(O,{collapsed:c?aS.has(a):void 0,level:a,onCompleteSession:b4,onOpenTerminal:bW,onRestoreSession:b3,projectFilterId:g||void 0,onToggle:c?aU:void 0,rows:bJ[a]},a))}):null,b7?(0,d.jsx)(ak.s,{onClose:()=>bT(null),session:b7}):null,l?(0,d.jsx)(ai.z,{busy:n,onAction:a=>void b5(a),onCancel:()=>m(null),payload:l.payload}):null]}),(0,d.jsx)(al.U,{toasts:i,onDismiss:k}),(0,d.jsx)(ad,{})]})}},76815:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,dynamic:()=>f});var d=c(66934),e=c(89691);let f="force-dynamic";function g(){return(0,d.jsx)(e.Dashboard,{})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88561:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(36030),e=c(51465),f=c(55103),g=c(30272),h=c(38722),i=c(46364),j=c(65499),k=c(55128),l=c(20974),m=c(49260),n=c(1554),o=c(50782),p=c(10401),q=c(92745),r=c(81018),s=c(261),t=c(80185),u=c(28294),v=c(26713),w=c(66096),x=c(51537),y=c(90757),z=c(93986),A=c(54094),B=c(45914),C=c(86439),D=c(21430),E=c.n(D),F=c(34782),G=c(34887),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,76815)),"/home/alek/.spur/worktrees/sp/spur-38e5/packages/web/src/app/page.tsx"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,37345))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,37318))).default(a)],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]},{layout:[()=>Promise.resolve().then(c.bind(c,97e3)),"/home/alek/.spur/worktrees/sp/spur-38e5/packages/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,21430,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,40720,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,49345,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,26388,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,37345))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,37318))).default(a)],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]}.children,J=["/home/alek/.spur/worktrees/sp/spur-38e5/packages/web/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
3
- see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},89691:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>d});let d=(0,c(24606).registerClientReference)(function(){throw Error("Attempted to call Dashboard() from the server but Dashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/alek/.spur/worktrees/sp/spur-38e5/packages/web/src/components/Dashboard.tsx","Dashboard")},93122:(a,b,c)=>{Promise.resolve().then(c.bind(c,89691))}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[5209,7331,6391,7974],()=>b(b.s=88561));module.exports=c})();
1
+ (()=>{var a={};a.id=8974,a.ids=[8974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29926:(a,b,c)=>{Promise.resolve().then(c.bind(c,98467))},33873:a=>{"use strict";a.exports=require("path")},39679:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(36030),e=c(51465),f=c(55103),g=c(30272),h=c(38722),i=c(46364),j=c(65499),k=c(55128),l=c(20974),m=c(49260),n=c(1554),o=c(50782),p=c(10401),q=c(92745),r=c(81018),s=c(261),t=c(80185),u=c(28294),v=c(26713),w=c(66096),x=c(51537),y=c(90757),z=c(93986),A=c(54094),B=c(45914),C=c(86439),D=c(21430),E=c.n(D),F=c(34782),G=c(34887),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,76815)),"/home/github-runner/actions-runner/_work/spur/spur/packages/web/src/app/page.tsx"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,37345))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,37318))).default(a)],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]},{layout:[()=>Promise.resolve().then(c.bind(c,97e3)),"/home/github-runner/actions-runner/_work/spur/spur/packages/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,21430,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,40720,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,49345,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,26388,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,37345))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,37318))).default(a)],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]}.children,J=["/home/github-runner/actions-runner/_work/spur/spur/packages/web/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
+ see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},76815:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,dynamic:()=>f});var d=c(66934),e=c(89691);let f="force-dynamic";function g(){return(0,d.jsx)(e.Dashboard,{})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89691:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>d});let d=(0,c(24606).registerClientReference)(function(){throw Error("Attempted to call Dashboard() from the server but Dashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/github-runner/actions-runner/_work/spur/spur/packages/web/src/components/Dashboard.tsx","Dashboard")},89758:(a,b,c)=>{Promise.resolve().then(c.bind(c,89691))},98467:(a,b,c)=>{"use strict";c.d(b,{Dashboard:()=>aV});var d=c(22216),e=c(43225),f=c(40518),g=c(51441),h=c(31906),i=c(36532),j=c(97348),k=c(72019),l=c(62969),m=c(72989),n=c(48664),o=class extends k.Q{constructor(a,b){super(),this.options=b,this.#a=a,this.#b=null,this.#c=(0,l.T)(),this.bindMethods(),this.setOptions(b)}#a;#d=void 0;#e=void 0;#f=void 0;#g;#h;#c;#b;#i;#j;#k;#l;#m;#n;#o=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#d.addObserver(this),p(this.#d,this.options)?this.#p():this.updateResult(),this.#q())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return q(this.#d,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return q(this.#d,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#r(),this.#s(),this.#d.removeObserver(this)}setOptions(a){let b=this.options,c=this.#d;if(this.options=this.#a.defaultQueryOptions(a),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,m.Eh)(this.options.enabled,this.#d))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#t(),this.#d.setOptions(this.options),b._defaulted&&!(0,m.f8)(this.options,b)&&this.#a.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#d,observer:this});let d=this.hasListeners();d&&r(this.#d,c,this.options,b)&&this.#p(),this.updateResult(),d&&(this.#d!==c||(0,m.Eh)(this.options.enabled,this.#d)!==(0,m.Eh)(b.enabled,this.#d)||(0,m.d2)(this.options.staleTime,this.#d)!==(0,m.d2)(b.staleTime,this.#d))&&this.#u();let e=this.#v();d&&(this.#d!==c||(0,m.Eh)(this.options.enabled,this.#d)!==(0,m.Eh)(b.enabled,this.#d)||e!==this.#n)&&this.#w(e)}getOptimisticResult(a){var b,c;let d=this.#a.getQueryCache().build(this.#a,a),e=this.createResult(d,a);return b=this,c=e,(0,m.f8)(b.getCurrentResult(),c)||(this.#f=e,this.#h=this.options,this.#g=this.#d.state),e}getCurrentResult(){return this.#f}trackResult(a,b){return new Proxy(a,{get:(a,c)=>(this.trackProp(c),b?.(c),"promise"===c&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#c.status||this.#c.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(a,c))})}trackProp(a){this.#o.add(a)}getCurrentQuery(){return this.#d}refetch({...a}={}){return this.fetch({...a})}fetchOptimistic(a){let b=this.#a.defaultQueryOptions(a),c=this.#a.getQueryCache().build(this.#a,b);return c.fetch().then(()=>this.createResult(c,b))}fetch(a){return this.#p({...a,cancelRefetch:a.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#f))}#p(a){this.#t();let b=this.#d.fetch(this.options,a);return a?.throwOnError||(b=b.catch(m.lQ)),b}#u(){this.#r();let a=(0,m.d2)(this.options.staleTime,this.#d);if(h.H.isServer()||this.#f.isStale||!(0,m.gn)(a))return;let b=(0,m.j3)(this.#f.dataUpdatedAt,a);this.#l=n.zs.setTimeout(()=>{this.#f.isStale||this.updateResult()},b+1)}#v(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#d):this.options.refetchInterval)??!1}#w(a){this.#s(),this.#n=a,!h.H.isServer()&&!1!==(0,m.Eh)(this.options.enabled,this.#d)&&(0,m.gn)(this.#n)&&0!==this.#n&&(this.#m=n.zs.setInterval(()=>{(this.options.refetchIntervalInBackground||g.m.isFocused())&&this.#p()},this.#n))}#q(){this.#u(),this.#w(this.#v())}#r(){void 0!==this.#l&&(n.zs.clearTimeout(this.#l),this.#l=void 0)}#s(){void 0!==this.#m&&(n.zs.clearInterval(this.#m),this.#m=void 0)}createResult(a,b){let c,d=this.#d,e=this.options,f=this.#f,g=this.#g,h=this.#h,i=a!==d?a.state:this.#e,{state:k}=a,n={...k},o=!1;if(b._optimisticResults){let c=this.hasListeners(),f=!c&&p(a,b),g=c&&r(a,d,b,e);(f||g)&&(n={...n,...(0,j.k)(k.data,a.options)}),"isRestoring"===b._optimisticResults&&(n.fetchStatus="idle")}let{error:q,errorUpdatedAt:t,status:u}=n;c=n.data;let v=!1;if(void 0!==b.placeholderData&&void 0===c&&"pending"===u){let a;f?.isPlaceholderData&&b.placeholderData===h?.placeholderData?(a=f.data,v=!0):a="function"==typeof b.placeholderData?b.placeholderData(this.#k?.state.data,this.#k):b.placeholderData,void 0!==a&&(u="success",c=(0,m.pl)(f?.data,a,b),o=!0)}if(b.select&&void 0!==c&&!v)if(f&&c===g?.data&&b.select===this.#i)c=this.#j;else try{this.#i=b.select,c=b.select(c),c=(0,m.pl)(f?.data,c,b),this.#j=c,this.#b=null}catch(a){this.#b=a}this.#b&&(q=this.#b,c=this.#j,t=Date.now(),u="error");let w="fetching"===n.fetchStatus,x="pending"===u,y="error"===u,z=x&&w,A=void 0!==c,B={status:u,fetchStatus:n.fetchStatus,isPending:x,isSuccess:"success"===u,isError:y,isInitialLoading:z,isLoading:z,data:c,dataUpdatedAt:n.dataUpdatedAt,error:q,errorUpdatedAt:t,failureCount:n.fetchFailureCount,failureReason:n.fetchFailureReason,errorUpdateCount:n.errorUpdateCount,isFetched:a.isFetched(),isFetchedAfterMount:n.dataUpdateCount>i.dataUpdateCount||n.errorUpdateCount>i.errorUpdateCount,isFetching:w,isRefetching:w&&!x,isLoadingError:y&&!A,isPaused:"paused"===n.fetchStatus,isPlaceholderData:o,isRefetchError:y&&A,isStale:s(a,b),refetch:this.refetch,promise:this.#c,isEnabled:!1!==(0,m.Eh)(b.enabled,a)};if(this.options.experimental_prefetchInRender){let b=void 0!==B.data,c="error"===B.status&&!b,e=a=>{c?a.reject(B.error):b&&a.resolve(B.data)},f=()=>{e(this.#c=B.promise=(0,l.T)())},g=this.#c;switch(g.status){case"pending":a.queryHash===d.queryHash&&e(g);break;case"fulfilled":(c||B.data!==g.value)&&f();break;case"rejected":c&&B.error===g.reason||f()}}return B}updateResult(){let a=this.#f,b=this.createResult(this.#d,this.options);if(this.#g=this.#d.state,this.#h=this.options,void 0!==this.#g.data&&(this.#k=this.#d),(0,m.f8)(b,a))return;this.#f=b;let c=()=>{if(!a)return!0;let{notifyOnChangeProps:b}=this.options,c="function"==typeof b?b():b;if("all"===c||!c&&!this.#o.size)return!0;let d=new Set(c??this.#o);return this.options.throwOnError&&d.add("error"),Object.keys(this.#f).some(b=>this.#f[b]!==a[b]&&d.has(b))};this.#x({listeners:c()})}#t(){let a=this.#a.getQueryCache().build(this.#a,this.options);if(a===this.#d)return;let b=this.#d;this.#d=a,this.#e=a.state,this.hasListeners()&&(b?.removeObserver(this),a.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#q()}#x(a){i.jG.batch(()=>{a.listeners&&this.listeners.forEach(a=>{a(this.#f)}),this.#a.getQueryCache().notify({query:this.#d,type:"observerResultsUpdated"})})}};function p(a,b){return!1!==(0,m.Eh)(b.enabled,a)&&void 0===a.state.data&&("error"!==a.state.status||!1!==b.retryOnMount)||void 0!==a.state.data&&q(a,b,b.refetchOnMount)}function q(a,b,c){if(!1!==(0,m.Eh)(b.enabled,a)&&"static"!==(0,m.d2)(b.staleTime,a)){let d="function"==typeof c?c(a):c;return"always"===d||!1!==d&&s(a,b)}return!1}function r(a,b,c,d){return(a!==b||!1===(0,m.Eh)(d.enabled,a))&&(!c.suspense||"error"!==a.state.status)&&s(a,c)}function s(a,b){return!1!==(0,m.Eh)(b.enabled,a)&&a.isStaleByTime((0,m.d2)(b.staleTime,a))}var t=e.createContext(function(){let a=!1;return{clearReset:()=>{a=!1},reset:()=>{a=!0},isReset:()=>a}}()),u=e.createContext(!1);u.Provider;var v=(a,b,c)=>b.fetchOptimistic(a).catch(()=>{c.clearReset()});function w(a,b){return function(a,b,c){let d=e.useContext(u),g=e.useContext(t),j=(0,f.jE)(c),k=j.defaultQueryOptions(a);j.getDefaultOptions().queries?._experimental_beforeQuery?.(k);let l=j.getQueryCache().get(k.queryHash);if(k._optimisticResults=d?"isRestoring":"optimistic",k.suspense){let a=a=>"static"===a?a:Math.max(a??1e3,1e3),b=k.staleTime;k.staleTime="function"==typeof b?(...c)=>a(b(...c)):a(b),"number"==typeof k.gcTime&&(k.gcTime=Math.max(k.gcTime,1e3))}let n=l?.state.error&&"function"==typeof k.throwOnError?(0,m.GU)(k.throwOnError,[l.state.error,l]):k.throwOnError;(k.suspense||k.experimental_prefetchInRender||n)&&!g.isReset()&&(k.retryOnMount=!1),e.useEffect(()=>{g.clearReset()},[g]);let o=!j.getQueryCache().get(k.queryHash),[p]=e.useState(()=>new b(j,k)),q=p.getOptimisticResult(k),r=!d&&!1!==a.subscribed;if(e.useSyncExternalStore(e.useCallback(a=>{let b=r?p.subscribe(i.jG.batchCalls(a)):m.lQ;return p.updateResult(),b},[p,r]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),e.useEffect(()=>{p.setOptions(k)},[k,p]),k?.suspense&&q.isPending)throw v(k,p,g);if((({result:a,errorResetBoundary:b,throwOnError:c,query:d,suspense:e})=>a.isError&&!b.isReset()&&!a.isFetching&&d&&(e&&void 0===a.data||(0,m.GU)(c,[a.error,d])))({result:q,errorResetBoundary:g,throwOnError:k.throwOnError,query:l,suspense:k.suspense}))throw q.error;if(j.getDefaultOptions().queries?._experimental_afterQuery?.(k,q),k.experimental_prefetchInRender&&!h.H.isServer()&&q.isLoading&&q.isFetching&&!d){let a=o?v(k,p,g):l?.promise;a?.catch(m.lQ).finally(()=>{p.updateResult()})}return k.notifyOnChangeProps?q:p.trackResult(q)}(a,o,b)}var x=c(38266),y=c(27258),z=c(915),A=c.n(z);function B({children:a}){return(0,d.jsx)("div",{className:"data-row group flex items-center gap-2 border-b border-[var(--color-border-subtle)] px-2 py-2 transition-colors sm:gap-3 sm:px-2.5",children:a})}function C({label:a,disabled:b,activeClass:c,onClick:e,children:f}){return(0,d.jsx)("button",{"aria-label":a,title:a,className:`inline-flex h-6 w-6 shrink-0 items-center justify-center border transition ${b?"border-transparent text-[var(--color-text-tertiary)] opacity-25 cursor-not-allowed":c}`,disabled:b,onClick:e,type:"button",children:f})}var D=c(33496);let E=(0,e.createContext)({catalog:[],applyTags:async()=>{}});function F(a){return{color:a,borderColor:`color-mix(in srgb, ${a} 55%, transparent)`,background:`color-mix(in srgb, ${a} 10%, transparent)`}}function G({session:a}){let{catalog:b,applyTags:c}=(0,e.useContext)(E),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),j=(0,e.useMemo)(()=>new Map(b.map(a=>[a.name,a.color])),[b]),k=a.tags??[],l=(0,e.useMemo)(()=>b.filter(a=>!k.includes(a.name)),[b,k]),m=b.length>0&&l.length>0;async function n(b,d){if(!h){i(!0),g(!1);try{await c(a.id,{add:b,remove:d})}catch(a){console.error("tag update failed",a)}finally{i(!1)}}}let o=k.slice(0,4),p=k.slice(4);return(0,d.jsxs)("span",{className:"relative hidden shrink-0 items-center gap-1 sm:inline-flex",children:[o.map(a=>{let b=j.get(a)??"var(--color-text-tertiary)";return(0,d.jsxs)("span",{className:"group/tag inline-flex items-center border p-1.5 text-[9px] uppercase leading-none tracking-[0.06em]",style:F(b),children:[a,(0,d.jsx)("button",{"aria-label":`Remove tag ${a}`,className:"ml-0.5 hidden shrink-0 group-hover/tag:inline-flex",disabled:h,onClick:()=>n([],[a]),type:"button",children:"\xd7"})]},a)}),p.length>0?(0,d.jsxs)("span",{className:"inline-flex items-center border border-[var(--color-border-subtle)] p-1.5 text-[9px] uppercase leading-none tracking-[0.06em] text-[var(--color-text-tertiary)]",title:p.join(", "),children:["+",p.length]}):null,m?(0,d.jsx)("button",{"aria-label":"Add tag",className:`inline-flex h-5 w-5 items-center justify-center border border-[var(--color-border-subtle)] text-[var(--color-text-tertiary)] transition hover:border-[var(--color-border-default)] hover:text-[var(--color-text-secondary)] ${f||k.length>0?"opacity-60":"opacity-0 group-hover:opacity-100"}`,disabled:h,onClick:()=>g(a=>!a),type:"button",children:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-2.5 w-2.5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})}):null,f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{"aria-hidden":"true",className:"fixed inset-0 z-20 cursor-default",onClick:()=>g(!1),tabIndex:-1,type:"button"}),(0,d.jsx)("div",{className:"absolute right-0 top-5 z-30 w-56 border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] py-1 shadow-lg",children:l.map(a=>(0,d.jsxs)("button",{className:"block w-full px-2 py-1.5 text-left transition hover:bg-[var(--color-hover-overlay)]",onClick:()=>n([a.name],[]),type:"button",children:[(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-[0.06em]",style:{color:a.color},children:a.name}),(0,d.jsx)("span",{className:"mt-0.5 block text-[10px] leading-snug text-[var(--color-text-tertiary)]",children:a.description})]},a.name))})]}):null]})}var H=c(6303),I=c(92397),J=c(60558),K=c(38311),L=c(11910);function M({open:a,session:b,onToggle:c}){let f=(0,L.z3)(b);f?.dueAt;let[g,h]=(0,e.useState)(()=>Date.now());if(!f)return null;let i="interval"===f.kind||"daily"===f.kind,j="interval"===f.kind?"Interval wake scheduled":"daily"===f.kind?"Daily wake scheduled":"Wake scheduled",k=`wake-${b.id}`;return(0,d.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,d.jsx)("button",{"aria-controls":a?k:void 0,"aria-expanded":a,"aria-label":j,className:"inline-flex h-5 w-5 shrink-0 items-center justify-center border border-[var(--color-border-subtle)] text-[var(--color-status-attention)] transition hover:border-[var(--color-status-attention)] hover:bg-[var(--color-hover-overlay)]",onClick:c,title:j,type:"button",children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"8"}),(0,d.jsx)("path",{d:"M12 8v5l3 2"}),i?(0,d.jsx)("path",{d:"M4 12a8 8 0 0 1 13.5-5.8M20 12a8 8 0 0 1-13.5 5.8"}):null]})}),a?(0,d.jsxs)("span",{className:"absolute left-0 top-6 z-30 w-[17rem] border border-[var(--color-border-strong)] bg-[var(--color-bg-elevated)] px-2.5 py-2 text-[var(--color-text-secondary)] shadow-[0_8px_30px_var(--color-shadow-menu)]",id:k,role:"status",children:[(0,d.jsxs)("span",{className:"flex items-center justify-between gap-3",children:[(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--color-status-attention)]",children:f.label}),(0,d.jsx)("span",{className:"font-mono text-[var(--color-text-primary)]",children:(0,L.TL)(f.dueAt,g)})]}),f.intervalMs?(0,d.jsxs)("span",{className:"mt-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:["every ",(0,L.re)(f.intervalMs)]}):null,f.dailyAt?(0,d.jsxs)("span",{className:"mt-1 block font-mono text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:["daily ",f.dailyAt.join(", ")]}):null,f.stopCondition?(0,d.jsxs)("span",{className:"mt-1 block min-w-0 truncate text-[var(--color-text-secondary)]",children:["until ",f.stopCondition]}):null,(0,d.jsx)("span",{className:"mt-1 block min-w-0 truncate text-[var(--color-text-tertiary)]",children:f.message})]}):null]})}function N({sidecars:a,open:b,sessionId:c,onToggle:e}){if(0===a.length)return null;let f=`sidecars-${c}`,g=`Running sidecars for ${c}`;return(0,d.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,d.jsx)("button",{"aria-controls":b?f:void 0,"aria-expanded":b,"aria-label":g,className:"inline-flex h-5 w-5 shrink-0 items-center justify-center border border-[var(--color-border-subtle)] text-[var(--color-status-ready)] transition hover:border-[var(--color-status-ready)] hover:bg-[var(--color-hover-overlay)]",onClick:e,title:g,type:"button",children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M9.5 7.5h-1.5a4.5 4.5 0 0 0 0 9h1.5"}),(0,d.jsx)("path",{d:"M14.5 7.5h1.5a4.5 4.5 0 0 1 0 9h-1.5"}),(0,d.jsx)("path",{d:"M8.5 12h7"})]})}),b?(0,d.jsxs)("span",{className:"absolute left-0 top-6 z-30 w-[14rem] border border-[var(--color-border-strong)] bg-[var(--color-bg-elevated)] px-2.5 py-2 text-[var(--color-text-secondary)]",id:f,role:"status",children:[(0,d.jsx)("span",{className:"block text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--color-status-ready)]",children:"Running Sidecars"}),(0,d.jsx)("span",{className:"mt-1 flex min-w-0 flex-col gap-1 font-mono text-[var(--color-text-primary)]",children:a.map(a=>a.url?(0,d.jsx)("a",{className:"min-w-0 break-all text-[var(--color-status-ready)] underline-offset-2 hover:underline",href:a.url,rel:"noreferrer",target:"_blank",title:a.url,children:a.name},a.name):(0,d.jsx)("span",{className:"min-w-0 break-all",children:a.name},a.name))})]}):null]})}function O({projectFilterId:a,deskMemberCount:b,session:c,onOpenTerminal:f,onCompleteSession:g,onRestoreSession:h}){let i=(0,H.Pn)(c),j=c.runtimeAlive&&!(0,K.zi)(c)&&!!c.tmuxSession,k=(0,K.ng)(c),l=("stopped"===k||"error"===k)&&(0,K.qX)(c),m=c.links.find(a=>(0,I.do)(a.label)),n=c.links.find(a=>"tracker"===a.label),o=(0,D.Y)(m),p=m?(0,I.tS)(m.url):null,[q,r]=(0,e.useState)(!1),s=("merged"===o.state||q)&&(0,K.ab)(c),t="github"===p&&!!m&&o.canMerge&&!q,u=!!(c.scheduledWake||c.intervalWake||c.dailyWake),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,E]=(0,e.useState)(!1),[F,L]=(0,e.useState)(null),O=a=>{L(b=>b===a?null:a)};return(0,d.jsxs)(B,{children:[(0,d.jsx)("span",{className:"hidden w-[7rem] shrink-0 truncate font-semibold uppercase text-[var(--color-text-primary)] sm:inline",children:c.projectName}),(0,d.jsx)("span",{className:"hidden w-[3.5rem] shrink-0 text-[var(--color-text-tertiary)] md:inline",children:c.agent}),void 0!==b&&b>1?(0,d.jsxs)("span",{className:"hidden shrink-0 items-center gap-0.5 rounded border border-[var(--color-border-subtle)] px-1 py-0.5 font-mono text-[10px] tabular-nums leading-none text-[var(--color-text-tertiary)] sm:inline-flex",title:`${b} agents on this checkout`,children:[(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3 w-3 shrink-0 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:[(0,d.jsx)("rect",{height:"14",rx:"1",width:"14",x:"8",y:"8"}),(0,d.jsx)("rect",{height:"14",opacity:"0.55",rx:"1",width:"14",x:"3",y:"3"})]}),b]}):null,u?(0,d.jsx)(M,{open:"wake"===F,session:c,onToggle:()=>O("wake")}):null,(0,d.jsx)(N,{open:"sidecars"===F,sessionId:c.id,sidecars:c.runningSidecars,onToggle:()=>O("sidecars")}),(0,d.jsx)(A(),{className:"min-w-0 flex-1 truncate text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] hover:no-underline",href:(0,J._j)(c.id,a),children:i}),(0,d.jsx)(G,{session:c}),n?(0,d.jsx)("span",{className:"hidden sm:inline-flex",children:(0,d.jsx)(D.w,{link:n})}):null,m?(0,d.jsx)("span",{className:"hidden sm:inline-flex",children:(0,d.jsx)(D.w,{link:m,prInfo:o})}):null,(0,d.jsx)("span",{className:"hidden w-[8rem] shrink-0 truncate text-right font-mono text-[var(--color-text-secondary)] lg:inline",children:c.branch}),(0,d.jsx)("span",{className:"w-[4rem] shrink-0 text-right text-[var(--color-text-tertiary)]",children:(0,H.fw)(c.lastActivityAt)}),s?(0,d.jsx)(C,{label:`Mark ${c.id} as done`,disabled:v,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(!v){w(!0);try{await g(c)}catch(a){console.error("complete failed",a),w(!1)}}},children:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}):t?(0,d.jsx)(C,{label:`Merge PR for ${c.id}`,disabled:x,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(m){y(!0);try{let a=await fetch("/api/pr-status/merge",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({url:m.url})});if(!a.ok)throw Error(`merge: ${a.status}`);(0,I.Gl)(m.url,{...o,state:"merged",canMerge:!1,fetchedAt:Date.now(),stale:!1}),r(!0)}catch(a){console.error("merge failed",a),y(!1)}}},children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M7 6a2.5 2.5 0 1 0-2.5 2.5A2.5 2.5 0 0 0 7 6Z"}),(0,d.jsx)("path",{d:"M19.5 15.5A2.5 2.5 0 1 0 17 18a2.5 2.5 0 0 0 2.5-2.5Z"}),(0,d.jsx)("path",{d:"M19.5 6A2.5 2.5 0 1 0 17 8.5 2.5 2.5 0 0 0 19.5 6Z"}),(0,d.jsx)("path",{d:"M7 6h5a5 5 0 0 1 5 5v2.5"})]})}):l?(0,d.jsx)(C,{label:`Restore session ${c.id}`,disabled:z,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-status-ready)] hover:text-[var(--color-status-ready)]",onClick:async()=>{if(!z){E(!0);try{await h(c)}catch(a){console.error("restore failed",a),E(!1)}}},children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,d.jsx)("path",{d:"M3 4v6h6"}),(0,d.jsx)("path",{d:"M10 12h4"}),(0,d.jsx)("path",{d:"m14 12-2-2"}),(0,d.jsx)("path",{d:"m14 12-2 2"})]})}):(0,d.jsx)(C,{label:`Open web terminal for ${c.id}`,disabled:!j,activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-accent)] hover:text-[var(--color-accent)]",onClick:()=>j&&f?.(c),children:(0,d.jsxs)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M4 6.75A1.75 1.75 0 0 1 5.75 5h12.5A1.75 1.75 0 0 1 20 6.75v10.5A1.75 1.75 0 0 1 18.25 19H5.75A1.75 1.75 0 0 1 4 17.25Z"}),(0,d.jsx)("path",{d:"m8 10 2.5 2L8 14.5"}),(0,d.jsx)("path",{d:"M13 15h3"})]})})]})}function P({label:a,color:b,count:c,dividerColor:e,collapsed:f,onToggle:g,children:h}){let i=(0,d.jsxs)("div",{className:"flex items-center gap-2 py-2",children:[(0,d.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full",style:{background:b}}),(0,d.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-[0.14em] text-[var(--color-text-secondary)]",children:a}),(0,d.jsx)("div",{className:"flex-1 border-t",style:{borderColor:e??`color-mix(in srgb, ${b} 25%, transparent)`}}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:c})]});return"function"==typeof g?(0,d.jsxs)("section",{children:[(0,d.jsxs)("button",{type:"button",className:"flex w-full items-center text-left",onClick:g,children:[(0,d.jsx)("div",{className:"flex-1",children:i}),(0,d.jsx)("span",{className:"ml-2 text-[10px] text-[var(--color-text-tertiary)]",children:f?"▸":"▾"})]}),f?null:h]}):(0,d.jsxs)("section",{children:[i,h]})}let Q={error:{label:"Errors",color:"var(--color-status-error)"},rate_limited:{label:"Rate Limited",color:"var(--color-status-attention)"},respond:{label:"Needs Input",color:"var(--color-status-error)"},working:{label:"Working",color:"var(--color-status-working)"},pending:{label:"Waiting",color:"var(--color-status-attention)"},stopped:{label:"Stopped",color:"var(--color-text-tertiary)",dividerColor:"var(--color-border-subtle)"},done:{label:"Completed",color:"var(--color-status-ready)"}};function R({level:a,projectFilterId:b,rows:c,collapsed:e,onToggle:f,onOpenTerminal:g,onCompleteSession:h,onRestoreSession:i}){let j=Q[a],k=c.map(a=>(0,d.jsx)(O,{deskMemberCount:a.deskMemberCount,projectFilterId:b,session:a.session,onOpenTerminal:g,onCompleteSession:h,onRestoreSession:i},a.session.id));return(0,d.jsx)(P,{label:j.label,color:j.color,count:c.length,dividerColor:j.dividerColor,collapsed:e,onToggle:f?()=>f(a):void 0,children:k})}function S(){let[a,b]=(0,e.useState)(!1),[c,d]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1);return{containerRef:(0,e.useRef)(null),open:!f&&(a||c),onBlur(a){a.currentTarget.contains(a.relatedTarget)||(d(!1),g(!1))},onMouseEnter(){g(!1),b(!0)},onMouseLeave(){g(!1),b(!1)},toggle(){g(!1),d(a=>!a)},dismiss(){g(!0),d(!1)}}}var T=c(97454),U=class extends k.Q{#a;#f=void 0;#y;#z;constructor(a,b){super(),this.#a=a,this.setOptions(b),this.bindMethods(),this.#A()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){let b=this.options;this.options=this.#a.defaultMutationOptions(a),(0,m.f8)(this.options,b)||this.#a.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#y,observer:this}),b?.mutationKey&&this.options.mutationKey&&(0,m.EN)(b.mutationKey)!==(0,m.EN)(this.options.mutationKey)?this.reset():this.#y?.state.status==="pending"&&this.#y.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#y?.removeObserver(this)}onMutationUpdate(a){this.#A(),this.#x(a)}getCurrentResult(){return this.#f}reset(){this.#y?.removeObserver(this),this.#y=void 0,this.#A(),this.#x()}mutate(a,b){return this.#z=b,this.#y?.removeObserver(this),this.#y=this.#a.getMutationCache().build(this.#a,this.options),this.#y.addObserver(this),this.#y.execute(a)}#A(){let a=this.#y?.state??(0,T.$)();this.#f={...a,isPending:"pending"===a.status,isSuccess:"success"===a.status,isError:"error"===a.status,isIdle:"idle"===a.status,mutate:this.mutate,reset:this.reset}}#x(a){i.jG.batch(()=>{if(this.#z&&this.hasListeners()){let b=this.#f.variables,c=this.#f.context,d={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};if(a?.type==="success"){try{this.#z.onSuccess?.(a.data,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(a.data,null,b,c,d)}catch(a){Promise.reject(a)}}else if(a?.type==="error"){try{this.#z.onError?.(a.error,b,c,d)}catch(a){Promise.reject(a)}try{this.#z.onSettled?.(void 0,a.error,b,c,d)}catch(a){Promise.reject(a)}}}this.listeners.forEach(a=>{a(this.#f)})})}},V=c(72233);let W=/^\d+\.\d+\.\d+$/;function X(a){if(!W.test(a))return null;let[b,c,d]=a.split(".").map(a=>Number.parseInt(a,10));return[b,c,d]}function Y({current:a,pending:b,status:c,errorMessage:f,onConfirm:g,onCancel:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null);return(0,d.jsx)("div",{"aria-labelledby":"switch-version-dialog-title","aria-modal":"true",className:"fixed inset-0 z-[60] flex items-center justify-center bg-[var(--color-modal-backdrop)]",role:"dialog",onClick:a=>{a.target===a.currentTarget&&"pending"!==c&&h()},children:(0,d.jsxs)("div",{ref:j,className:"w-[min(22rem,calc(100vw-2rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-4 shadow-[0_8px_24px_var(--color-shadow-modal-sm)]",children:[(0,d.jsx)("h2",{className:"mb-2 font-bold text-[var(--color-text-primary)]",id:"switch-version-dialog-title",children:"Switch Spur version"}),(0,d.jsxs)("p",{className:"mb-3 normal-case tracking-normal text-[var(--color-text-secondary)]",children:["Switch from ",(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:a||"?"})," to"," ",(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:b}),"? The Spur daemon will restart. Refresh this page in about 10 seconds."]}),"error"===c&&f?(0,d.jsx)("p",{className:"mb-3 normal-case tracking-normal text-[var(--color-status-attention)]","data-testid":"switch-version-error",children:f}):null,(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,d.jsx)("button",{ref:i,className:"border border-[var(--color-border-default)] px-3 py-1 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-50",disabled:"pending"===c,type:"button",onClick:h,children:"Cancel"}),(0,d.jsx)("button",{className:"border border-[var(--color-status-attention)] px-3 py-1 font-bold text-[var(--color-status-attention)] outline-none transition-colors hover:bg-[var(--color-status-attention)] hover:text-[var(--color-bg-elevated)] focus-visible:bg-[var(--color-status-attention)] focus-visible:text-[var(--color-bg-elevated)] disabled:cursor-not-allowed disabled:opacity-50",disabled:"pending"===c,type:"button",onClick:g,children:"pending"===c?"Switching…":"Switch"})]})]})})}function Z(a){return"object"==typeof a&&null!==a&&"string"==typeof a.tag&&"string"==typeof a.publishedAt}function $(){let a=S();(0,f.jE)();let[b,c]=(0,e.useState)(null),[g,h]=(0,e.useState)(null),j=(0,e.useRef)(null),k=w({queryKey:["runtime","info"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/info",{signal:a});if(!b.ok)throw Error(`runtime info ${b.status}`);let c=await b.json();if(!("object"==typeof c&&null!==c&&"version"in c&&"string"==typeof c.version))throw Error("Unexpected runtime info shape");return c}}),l=w({queryKey:["runtime","versions"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/versions",{signal:a});if(!b.ok)throw Error(`runtime versions ${b.status}`);let c=await b.json();if(!("object"==typeof c&&null!==c&&"string"==typeof c.current&&Array.isArray(c.available)&&c.available.every(Z)))throw Error("Unexpected runtime versions shape");return c},staleTime:6e4,refetchOnMount:!0}),n=function(a,b){let c=(0,f.jE)(void 0),[d]=e.useState(()=>new U(c,a));e.useEffect(()=>{d.setOptions(a)},[d,a]);let g=e.useSyncExternalStore(e.useCallback(a=>d.subscribe(i.jG.batchCalls(a)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),h=e.useCallback((a,b)=>{d.mutate(a,b).catch(m.lQ)},[d]);if(g.error&&(0,m.GU)(d.options.throwOnError,[g.error]))throw g.error;return{...g,mutate:h,mutateAsync:g.mutate}}({mutationFn:async a=>{var b,c;let d=await fetch("/api/runtime/versions/switch",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({version:a})}),e=await (0,V.Y3)(d);if(202!==d.status||"object"!=typeof e||null===e||!0!==e.accepted||"string"!=typeof e.version){let a=(0,V.$8)(e,"");throw Error((b=d.status,c=a||null,409===b?"Cannot switch — daemon is running from a source checkout.":503===b&&"npm registry unreachable"===c?"npm registry unreachable — try again in a minute.":400===b&&"version not in registry"===c?"Version not available in the npm registry yet.":400===b&&"invalid version"===c?"Version is not a valid semver release.":"Switch failed. Check the daemon log and try again."))}return e},onSuccess:b=>{h({phase:"switching",target:b.version}),c(null),a.dismiss(),j.current?.focus()}}),o=k.isError?"dev":k.data?k.data.version:"…",p=l.data?.available??[],q=l.data?.current??k.data?.version??"",r=p[0]?.tag??"",s=function(a,b){let c=X(a),d=X(b);return!!c&&!!d&&(c[0]!==d[0]?c[0]>d[0]:c[1]!==d[1]?c[1]>d[1]:c[2]>d[2])}(r,q),{dismiss:t}=a,u=(0,e.useCallback)(()=>{n.isPending||(c(null),n.reset())},[n]),v=(0,e.useCallback)(()=>{b&&n.mutate(b)},[b,n]),x=n.isPending?"pending":n.isError?"error":"idle",y=n.error?.message??null;return(0,d.jsxs)("div",{ref:a.containerRef,className:"relative",onBlur:a.onBlur,onMouseEnter:a.onMouseEnter,onMouseLeave:a.onMouseLeave,children:[(0,d.jsxs)("button",{ref:j,"aria-expanded":a.open,"aria-haspopup":"true","aria-label":"Show Spur version information",className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]",type:"button",onClick:a.toggle,children:[(0,d.jsx)("span",{children:o}),s?(0,d.jsx)("span",{className:"rounded-sm border border-[var(--color-status-attention)] px-1 py-0.5 text-[10px] font-bold leading-none text-[var(--color-status-attention)]","data-testid":"version-update-badge",children:"update available"}):null]}),g?(0,d.jsxs)("div",{"aria-live":"polite",className:`absolute bottom-full right-0 z-50 mb-1.5 flex w-[min(20rem,calc(100vw-1rem))] items-start justify-between gap-2 border bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)] ${"failed"===g.phase?"border-[var(--color-status-error)] text-[var(--color-status-error)]":"border-[var(--color-status-attention)] text-[var(--color-status-attention)]"}`,"data-testid":"version-switch-status",role:"status",children:[(0,d.jsx)("span",{children:"switching"===g.phase?`Switching Spur to ${g.target}…`:"done"===g.phase?`Spur is now running ${g.target}.`:`Switch to ${g.target} not confirmed — check ~/.spur/logs/install-and-restart.log.`}),"switching"!==g.phase?(0,d.jsx)("button",{"aria-label":"Dismiss version switch status",className:"font-bold outline-none transition-opacity hover:opacity-70 focus-visible:opacity-70",type:"button",onClick:()=>h(null),children:"\xd7"}):null]}):null,a.open&&!g?(0,d.jsxs)("div",{className:"absolute bottom-full right-0 z-50 mb-1.5 w-[min(20rem,calc(100vw-1rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Spur"}),(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",children:q||o})]}),l.data?.stale?(0,d.jsx)("div",{className:"mb-2 normal-case tracking-normal text-[var(--color-status-attention)]","data-testid":"version-registry-stale",children:"npm registry unreachable — list may be outdated"}):null,0===p.length?(0,d.jsx)("div",{className:"normal-case tracking-normal text-[var(--color-text-secondary)]",children:l.data?.registryError?"npm registry unreachable":"No releases available"}):(0,d.jsx)("ul",{className:"flex max-h-48 flex-col gap-1 overflow-y-auto",children:p.map(a=>{let b=a.tag===q,e=a.tag===r;return(0,d.jsxs)("li",{className:"flex items-center justify-between gap-3 normal-case tracking-normal","data-current":b?"true":void 0,children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-[var(--color-text-secondary)]",children:[(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",children:a.tag}),b?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"current"}):null,!b&&e&&s?(0,d.jsx)("span",{className:"text-[var(--color-status-attention)]",children:"latest"}):null]}),(0,d.jsxs)("span",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:(0,H.fw)(a.publishedAt)}),b?null:(0,d.jsx)("button",{"aria-label":`Switch Spur to ${a.tag}`,className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] font-bold text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-50","data-testid":`switch-version-${a.tag}`,disabled:n.isPending,type:"button",onClick:()=>{h(null),n.reset(),c(a.tag)},children:"Switch"})]})]},a.tag)})})]}):null,null!==b?(0,d.jsx)(Y,{current:q,errorMessage:y,pending:b,status:x,onCancel:u,onConfirm:v}):null]})}function _(a,b){let{data:c}=w({queryKey:["platform-status",a],queryFn:async({signal:c})=>{let d=await fetch(a,{signal:c});return d.ok?await d.json():{ok:!1,error:`${b} (${d.status})`,requestedAt:null,configured:!0}},refetchInterval:12e4,refetchIntervalInBackground:!1,staleTime:12e4});return c??null}function aa(a){return"error"===a?"var(--color-status-error)":"attention"===a?"var(--color-status-attention)":"ready"===a?"var(--color-status-ready)":"var(--color-text-tertiary)"}function ab(a,b){return"disk"===a?b>=85?"error":"ready":b>=85?"attention":"ready"}function ac({level:a}){let b=aa(a);return(0,d.jsx)("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 shrink-0 rounded-full",style:{backgroundColor:b,boxShadow:`0 0 4px ${b}`}})}function ad({label:a,level:b,value:c}){return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-[var(--color-text-secondary)]",children:[(0,d.jsx)(ac,{level:b}),(0,d.jsx)("span",{children:a})]}),(0,d.jsx)("span",{"aria-label":`${a} ${c} ${"error"===b?"critical":"attention"===b?"warning":"ready"===b?"healthy":"unavailable"}`,className:"font-bold",style:{color:aa(b)},children:c})]})}function ae(a){return null===a?"Checking":a.ok?"Healthy":"Error"}function af({platform:a,status:b}){let c=S(),e="github"===a?"GitHub":"GitLab",f="github"===a?I.Nb:I.xD,g=null===b?"unknown":b.ok?"ready":"error",h=ae(b).toLowerCase();return(0,d.jsxs)("div",{ref:c.containerRef,className:"relative",onBlur:c.onBlur,onMouseEnter:c.onMouseEnter,onMouseLeave:c.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":c.open,"aria-label":`${e} connection ${h}`,className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]",type:"button",onClick:c.toggle,children:[(0,d.jsx)(f,{}),(0,d.jsx)(ac,{level:g})]}),c.open?(0,d.jsxs)("div",{className:"absolute bottom-full left-0 z-50 mb-1.5 min-w-[180px] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:e}),(0,d.jsx)("span",{className:"font-bold",style:{color:aa(g)},children:ae(b)})]}),(0,d.jsx)("div",{className:"normal-case tracking-normal text-[var(--color-text-secondary)]",onClick:c.dismiss,children:null===b?"Checking authentication and API availability.":b.ok?(0,d.jsxs)(d.Fragment,{children:["Last request: ",(0,H.eB)(b.requestedAt)]}):b.error})]}):null]})}function ag(){let a=_("/api/github-status","GitHub status unavailable"),b=_("/api/gitlab-status","GitLab status unavailable"),c=function(){let{data:a}=w({queryKey:["runtime","resources"],queryFn:async({signal:a})=>{let b=await fetch("/api/runtime/resources",{signal:a});if(!b.ok)return{available:!1};let c=await b.json();return c.available&&Number.isFinite(c.cpuPercent)&&Number.isFinite(c.memoryPercent)&&Number.isFinite(c.diskPercent)?c:{available:!1}},refetchInterval:15e3,refetchIntervalInBackground:!0,staleTime:15e3});return a??{available:!1}}(),f=function(){let{data:a,status:b,isError:c}=w({queryKey:["sessions"],queryFn:m.hT});return!c&&("pending"===b&&void 0===a?void 0:void 0!==a?!1!==a.daemonAlive:void 0)}(),g=function(){let{data:a}=w({queryKey:["sessions"],queryFn:m.hT});return(0,e.useMemo)(()=>{let b=new Set;for(let c of a?.sessions??[])for(let a of c.slots?.links??[]){if(!(0,I.do)(a.label))continue;let c=(0,I.tS)(a.url);c&&b.add(c)}return b},[a?.sessions])}(),h=S(),i=function(a,b){if(!1===b)return"error";if(void 0===b)return"unknown";if(!a.available)return"ready";let c=ab("cpu",a.cpuPercent),d=ab("memory",a.memoryPercent);return"error"===ab("disk",a.diskPercent)?"error":"attention"===c||"attention"===d?"attention":"ready"}(c,f),j=void 0===f?"unknown":f?"ready":"error",k=void 0===f?"unavailable":f?"online":"offline",l="error"===i?"Critical":"attention"===i?"Warning":"ready"===i?"Healthy":"Unavailable",n=null===a||!0===a.configured||g.has("github"),o=null===b||!0===b.configured||g.has("gitlab");return(0,d.jsxs)("footer",{className:"fixed bottom-0 left-0 right-0 z-40 flex min-h-6 flex-wrap items-center gap-x-3 gap-y-1 border-t border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2 py-1 text-[10px] uppercase tracking-[0.08em] sm:px-4",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-3 gap-y-1 sm:gap-x-6",children:[(0,d.jsxs)("div",{ref:h.containerRef,className:"group/status relative",onBlur:h.onBlur,onMouseEnter:h.onMouseEnter,onMouseLeave:h.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":h.open,"aria-label":"Show aggregated system status",className:"-m-1.5 flex items-center gap-1.5 p-1.5 text-[var(--color-text-secondary)] outline-none transition-colors hover:text-[var(--color-text-primary)] focus-visible:text-[var(--color-text-primary)]","data-status":i,type:"button",onClick:h.toggle,children:[(0,d.jsx)(I.np,{}),(0,d.jsx)(ac,{level:i})]}),h.open?(0,d.jsxs)("div",{className:"absolute bottom-full left-0 z-50 mb-1.5 w-[min(16rem,calc(100vw-1rem))] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",onClick:h.dismiss,children:[(0,d.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 border-b border-[var(--color-border-subtle)] pb-2",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"System"}),(0,d.jsx)("span",{className:"font-bold",style:{color:aa(i)},children:l})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(ad,{label:"Daemon",level:j,value:k}),(0,d.jsx)(ad,{label:"CPU",level:c.available?ab("cpu",c.cpuPercent):"unknown",value:c.available?`${c.cpuPercent}%`:"unavailable"}),(0,d.jsx)(ad,{label:"RAM",level:c.available?ab("memory",c.memoryPercent):"unknown",value:c.available?`${c.memoryPercent}%`:"unavailable"}),(0,d.jsx)(ad,{label:"HDD",level:c.available?ab("disk",c.diskPercent):"unknown",value:c.available?`${c.diskPercent}%`:"unavailable"})]})]}):null]}),n?(0,d.jsx)(af,{platform:"github",status:a}):null,o?(0,d.jsx)(af,{platform:"gitlab",status:b}):null]}),(0,d.jsx)("div",{className:"ml-auto shrink-0 text-[var(--color-text-tertiary)]",children:(0,d.jsx)($,{})})]})}function ah({message:a}){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-sm border border-dashed border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-6 py-10 text-center",children:[(0,d.jsx)("div",{className:"mb-4 flex h-10 w-10 items-center justify-center rounded-sm border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-xl",children:"\uD81A\uDD13"}),(0,d.jsx)("p",{className:"max-w-xl text-sm leading-6 text-[var(--color-text-secondary)]",children:a??"No Spur sessions are visible yet. Start one with `spur spawn <project>` and it will appear here."})]})}var ai=c(82217),aj=c(9530),ak=c(72281),al=c(8457),am=c(35867),an=c(74191),ao=c(11528),ap=c(73867),aq=c(28825),ar=c(47894),as=c(15294),at=c(59172),au=c(33693);function av(a){return a.normalize("NFKD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9./-]+/g,"-").split("/").map(a=>a.replace(/-{2,}/g,"-").replace(/\.{2,}/g,".").replace(/^[-.]+|[-.]+$/g,"").replace(/(\.lock)+$/,"").replace(/[-.]+$/g,"")).filter(a=>a.length>0).join("/")}var aw=c(97406),ax=c(14694);function ay({catalog:a,value:b,onChange:c}){let[f,g]=(0,e.useState)(!1),h=b?a.find(a=>a.name===b)??null:null;return(0,d.jsxs)("div",{className:"relative inline-flex shrink-0",children:[(0,d.jsxs)("button",{"aria-label":"Filter by tag",className:`flex items-center gap-1.5 border px-2 py-1.5 uppercase transition ${h?"border-[var(--color-accent)] bg-[var(--color-accent)]/10":"border-[var(--color-border-default)] bg-[var(--color-bg-surface)] hover:border-[var(--color-text-tertiary)]"}`,onClick:()=>g(a=>!a),type:"button",children:[h?null:(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3.5 w-3.5 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M3 5h18M6 12h12M10 19h4"})}),(0,d.jsx)("span",{className:"text-[var(--color-text-primary)]",children:h?h.name:"Tags"}),(0,d.jsx)("svg",{"aria-hidden":"true",className:"h-3 w-3 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"m6 9 6 6 6-6"})})]}),f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{"aria-hidden":"true",className:"fixed inset-0 z-20 cursor-default",onClick:()=>g(!1),tabIndex:-1,type:"button"}),(0,d.jsxs)("div",{className:"absolute left-0 top-full z-30 mt-1 max-h-72 w-44 overflow-y-auto border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] py-1 shadow-lg",children:[(0,d.jsx)("button",{className:`block w-full px-2 py-1.5 text-left text-[10px] uppercase tracking-[0.08em] transition hover:bg-[var(--color-hover-overlay)] ${h?"text-[var(--color-text-secondary)]":"text-[var(--color-text-primary)]"}`,onClick:()=>{c(null),g(!1)},type:"button",children:"All tags"}),a.map(a=>(0,d.jsx)("button",{className:"flex w-full items-center px-2 py-1.5 text-left transition hover:bg-[var(--color-hover-overlay)]",onClick:()=>{c(a.name),g(!1)},type:"button",children:(0,d.jsx)("span",{className:"inline-flex items-center border p-1.5 text-[9px] uppercase leading-none tracking-[0.06em]",style:F(a.color),children:a.name})},a.name))]})]}):null]})}K.HO;let az="inline-flex h-7 w-7 shrink-0 items-center justify-center bg-transparent text-[var(--color-text-primary)] transition hover:bg-[var(--color-hover-overlay)]",aA="spur-shepherd";function aB(){return new Set}function aC({icon:a,label:b,value:c,color:e,active:f,onClick:g}){return(0,d.jsxs)("button",{className:`flex min-w-0 flex-row items-center justify-center gap-1.5 border px-1.5 py-0.5 transition sm:justify-start sm:shrink-0 ${f?"border-[var(--color-accent)] bg-[var(--color-accent)]/10":"border-transparent hover:border-[var(--color-border-default)]"}`,onClick:g,type:"button",children:[(0,d.jsx)("span",{style:e?{color:e}:void 0,children:a}),(0,d.jsxs)("span",{className:"hidden min-w-0 truncate text-[var(--color-text-secondary)] sm:inline",children:[b,":"]}),(0,d.jsx)("span",{className:"font-bold text-[var(--color-text-primary)]",style:e?{color:e}:void 0,children:c})]})}function aD({items:a,projectNameMap:b,takingKey:c,onTake:e}){return 0===a.length?null:(0,d.jsx)(P,{label:"Backlog",color:"var(--color-status-attention)",count:a.length,children:a.map(a=>{let f=`${a.projectId}:${a.backlogId}:${a.externalId}`;return(0,d.jsxs)(B,{children:[(0,d.jsxs)("a",{className:"flex min-w-0 flex-1 items-center gap-2 truncate text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)] hover:no-underline",href:a.url,rel:"noreferrer",target:"_blank",children:[(0,d.jsx)("span",{"aria-label":aP[a.provider],className:"flex shrink-0 items-center text-[var(--color-text-tertiary)]",role:"img",title:aP[a.provider],children:aO[a.provider]}),(0,d.jsx)("span",{className:"shrink-0 font-semibold uppercase text-[var(--color-text-primary)]",children:a.key}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.title})]}),(0,d.jsx)("span",{className:"hidden w-[7rem] shrink-0 truncate text-right text-[10px] uppercase tracking-[0.12em] text-[var(--color-text-tertiary)] sm:inline",children:b.get(a.projectId)??a.projectId}),(0,d.jsx)(C,{activeClass:"border-[var(--color-border-default)] text-[var(--color-text-secondary)] hover:border-[var(--color-accent)] hover:text-[var(--color-accent)]",disabled:null!==c,label:"Take task",onClick:()=>void e(a),children:(0,d.jsx)("span",{className:c===f?"animate-pulse":void 0,children:(0,d.jsx)(aN,{})})})]},f)})})}function aE(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:(0,d.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function aF(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"}),(0,d.jsx)("path",{d:"M12 9v4"}),(0,d.jsx)("path",{d:"M12 17h.01"})]})}function aG(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,d.jsx)("path",{d:"M12 6v6l4 2"})]})}function aH(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:(0,d.jsx)("path",{d:"M13 2 3 14h9l-1 8 10-12h-9l1-8z"})})}function aI(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}function aJ(){return(0,d.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("rect",{x:"5",y:"5",width:"14",height:"14"})})}function aK(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 20h9"}),(0,d.jsx)("path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"})]})}function aL(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"6",y:"8",width:"12",height:"10"}),(0,d.jsx)("path",{d:"M9 8V5"}),(0,d.jsx)("path",{d:"M15 8V5"}),(0,d.jsx)("circle",{cx:"10",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"14",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),(0,d.jsx)("path",{d:"M10 16h4"}),(0,d.jsx)("path",{d:"M4 12h2"}),(0,d.jsx)("path",{d:"M18 12h2"})]})}function aM(){return(0,d.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,d.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,d.jsx)("path",{d:"M10 11v6"}),(0,d.jsx)("path",{d:"M14 11v6"}),(0,d.jsx)("path",{d:"M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"})]})}function aN(){return(0,d.jsxs)("svg",{className:"h-3.5 w-3.5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 5v14"}),(0,d.jsx)("path",{d:"M5 12h14"})]})}let aO={jira:(0,d.jsx)(I.cJ,{})},aP={jira:"Jira"};function aQ(){return""}function aR(a,b){return"shepherd"===a.kind?-1:"shepherd"===b.kind?1:a.name.localeCompare(b.name,void 0,{sensitivity:"base"})}function aS({activeProjectName:a,projects:b,selectedProjectId:c,onSelectProject:e,onNewProject:f,onEdit:g}){let h=S();return(0,d.jsxs)("div",{ref:h.containerRef,className:"relative",onBlur:h.onBlur,onMouseEnter:h.onMouseEnter,onMouseLeave:h.onMouseLeave,children:[(0,d.jsxs)("button",{"aria-expanded":h.open,"aria-haspopup":"menu","aria-label":`Project filter: ${a}`,className:"inline-flex min-w-0 max-w-full items-center gap-3 text-[var(--color-text-primary)] transition hover:text-[var(--color-accent)]",type:"button",onClick:h.toggle,children:[(0,d.jsx)("span",{className:"text-xl text-[var(--color-accent)]",children:"\uD81A\uDD13"}),(0,d.jsxs)("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 text-xl font-bold uppercase tracking-[-0.02em] sm:text-2xl",children:[(0,d.jsx)("span",{className:"block min-w-0 truncate",children:a}),(0,d.jsx)("svg",{"aria-hidden":"true","data-testid":"project-filter-chevron",className:"pointer-events-none mt-px h-4 w-4 shrink-0",fill:"currentColor",viewBox:"0 0 16 16",children:(0,d.jsx)("path",{d:"M4 6.5 8 10.5 12 6.5Z"})})]})]}),h.open?(0,d.jsxs)("div",{className:"absolute left-0 top-full z-50 mt-1 min-w-[260px] max-w-[calc(100vw-1rem)] border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] p-2 shadow-[0_4px_12px_var(--color-shadow-modal-sm)]",role:"menu",children:[(0,d.jsxs)("button",{"aria-checked":""===c,className:`mb-1 flex w-full items-center gap-2 border px-2 py-1.5 text-left font-bold uppercase transition hover:border-[var(--color-accent)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)] ${""===c?"border-[var(--color-accent)] bg-[var(--color-accent)]/10 text-[var(--color-accent)] hover:bg-[var(--color-accent)]/25":"border-transparent text-[var(--color-text-primary)]"}`,onClick:()=>{h.dismiss(),e("")},role:"menuitemradio",type:"button",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"w-3 text-center",children:""===c?"✓":""}),(0,d.jsx)("span",{children:"All Projects"})]}),0===b.length?(0,d.jsx)("p",{className:"px-2 py-1.5 text-[var(--color-text-tertiary)]",children:"No projects yet."}):(0,d.jsx)("ul",{className:"flex flex-col",role:"group",children:b.map(a=>(0,d.jsxs)("li",{role:"none",className:"group flex items-center gap-2 border-t border-[var(--color-border-subtle)] py-1.5 transition hover:bg-[var(--color-accent)]/10",children:[a.configured?(0,d.jsxs)("button",{"aria-checked":c===a.id,className:`flex min-w-0 flex-1 items-center gap-2 border px-2 py-1.5 text-left transition hover:border-[var(--color-accent)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)] ${c===a.id?"border-[var(--color-accent)] bg-[var(--color-accent)]/10 text-[var(--color-accent)] hover:bg-[var(--color-accent)]/25":"border-transparent text-[var(--color-text-primary)]"}`,onClick:()=>{h.dismiss(),e(a.id)},role:"menuitemradio",type:"button",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-center",children:c===a.id?"✓":""}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.name}),"shepherd"===a.kind?(0,d.jsx)("span",{className:"shrink-0 border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"built-in"}):null]}):(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--color-text-primary)]",children:a.name}),"shepherd"!==a.kind||a.configured?null:(0,d.jsx)("span",{className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"built-in"}),a.configured?null:(0,d.jsx)("span",{className:"border border-[var(--color-border-default)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--color-text-tertiary)]",children:"unconfigured"}),(0,d.jsx)("button",{"aria-label":`Edit ${a.name}`,className:"border border-transparent px-1.5 py-1 text-[var(--color-text-tertiary)] transition group-hover:border-[var(--color-border-subtle)] group-hover:bg-[var(--color-accent)]/15 hover:border-[var(--color-border-strong)] hover:bg-[var(--color-accent)]/20 hover:text-[var(--color-accent)]",onClick:()=>{h.dismiss(),g(a)},role:"menuitem",type:"button",children:(0,d.jsx)(aK,{})})]},a.id))}),(0,d.jsx)("button",{className:"mt-2 w-full bg-[var(--color-accent)] px-2 py-1.5 text-left font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)]",onClick:()=>{h.dismiss(),f()},role:"menuitem",type:"button",children:"+ New project"})]}):null]})}function aT({displayName:a,prefix:b,path:c,error:e,missingPath:f,submitting:g,onDisplayNameChange:h,onPrefixChange:i,onPathChange:j,onSubmit:k,onCreateFolder:l,onClose:m}){return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&m()},children:(0,d.jsxs)("div",{className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-md sm:p-5",onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),k())},children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",children:"New project"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:m,type:"button",children:"✕"})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Display name"}),(0,d.jsx)("input",{"aria-label":"Project display name",autoFocus:!0,className:aq.s,onChange:a=>h(a.target.value),placeholder:"e.g. Spur Web",value:a})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Session prefix"}),(0,d.jsx)("input",{"aria-label":"Project session prefix",className:aq.s,onChange:a=>i(a.target.value),placeholder:"letters, digits, _ or -",value:b})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Project path"}),(0,d.jsx)("input",{"aria-label":"Project path",className:aq.s,onChange:a=>j(a.target.value),placeholder:"/absolute/path/to/repo",value:c})]}),e?(0,d.jsx)("p",{className:"mb-3 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2.5 py-1.5 text-[var(--color-status-error)]",role:"alert",children:e}):null,f?(0,d.jsxs)("div",{className:"mb-3 flex flex-col gap-2 border border-[var(--color-status-attention)] bg-[var(--color-status-attention)]/10 px-2.5 py-1.5 text-[var(--color-status-attention)]",role:"alert",children:[(0,d.jsx)("span",{children:"Folder doesn't exist. Create it?"}),(0,d.jsx)("button",{className:"self-start bg-[var(--color-accent)] px-3 py-1 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:g,onClick:l,type:"button",children:"Create folder & continue"})]}):null,(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:m,type:"button",children:"Cancel"}),(0,d.jsx)("button",{className:"bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:g,onClick:k,type:"button",children:g?"Creating…":"Create"})]})]})})}function aU({project:a,displayName:b,prefix:c,path:f,error:g,submitting:h,deleting:i,onDisplayNameChange:j,onPrefixChange:k,onPathChange:l,onSubmit:m,onDelete:n,onClose:o}){let p=!a.configured&&"shepherd"!==a.kind,q="shepherd"!==a.kind,[r,s]=(0,e.useState)(!1),t=a.configured?"Disconnect":"Delete";return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&o()},children:(0,d.jsxs)("div",{"aria-labelledby":"edit-project-title","aria-modal":"true",className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-md sm:p-5",role:"dialog",children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",id:"edit-project-title",children:"Project settings"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:o,type:"button",children:"✕"})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Display name"}),(0,d.jsx)("input",{"aria-label":"Edit project display name",className:aq.s,disabled:!p,onChange:a=>j(a.target.value),value:b})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Session prefix"}),(0,d.jsx)("input",{"aria-label":"Edit project session prefix",className:aq.s,disabled:!p,onChange:a=>k(a.target.value),value:c})]}),(0,d.jsxs)("label",{className:"mb-3 flex flex-col gap-1",children:[(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:"Project path"}),(0,d.jsx)("input",{"aria-label":"Edit project path",className:aq.s,disabled:!p,onChange:a=>l(a.target.value),value:f})]}),a.configured?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-text-tertiary)]",children:"Configured projects are edited in spur.yaml."}):null,"shepherd"===a.kind?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-text-tertiary)]",children:"Shepherd is built in and cannot be edited or deleted."}):null,g?(0,d.jsx)("p",{className:"mb-3 text-[var(--color-status-error)]",children:g}):null,r?(0,d.jsxs)("div",{className:"mb-3 flex flex-col gap-2 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2.5 py-1.5 text-[var(--color-status-error)]",role:"alert",children:[(0,d.jsx)("span",{children:a.configured?`Disconnect ${a.name}? Spur will stop tracking its spur.yaml.`:`Delete ${a.name}?`}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsxs)("button",{className:"border border-[var(--color-border-strong)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",disabled:i,onClick:()=>s(!1),type:"button",children:["Cancel ",t]}),(0,d.jsxs)("button",{className:"inline-flex items-center gap-1.5 border border-[var(--color-status-error)] px-3 py-1.5 font-bold uppercase text-[var(--color-status-error)] transition hover:bg-[var(--color-bg-surface)] disabled:cursor-not-allowed disabled:opacity-60",disabled:i,onClick:n,type:"button",children:[(0,d.jsx)(aM,{}),i?"Deleting…":`Confirm ${t}`]})]})]}):null,(0,d.jsxs)("div",{className:"mt-auto flex flex-wrap items-center justify-between gap-2 pt-2",children:[q?(0,d.jsxs)("button",{className:"inline-flex items-center gap-1.5 border border-[var(--color-status-error)] px-3 py-1.5 font-bold uppercase text-[var(--color-status-error)] transition hover:bg-[var(--color-bg-surface)] disabled:cursor-not-allowed disabled:opacity-60",disabled:i||r,onClick:()=>s(!0),type:"button",children:[(0,d.jsx)(aM,{}),t]}):(0,d.jsx)("span",{}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{className:"border border-[var(--color-border-strong)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:o,type:"button",children:"Cancel"}),p?(0,d.jsx)("button",{className:"bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:h,onClick:m,type:"button",children:h?"Saving…":"Save"}):null]})]})]})})}function aV(){let[a,b]=(0,e.useState)(aQ),c=function(a){let[b,c]=(0,e.useState)(!1);return b}(0),[g,h]=(0,e.useState)(()=>{let a=new URLSearchParams(aQ());return a.get("project")?.trim()??""}),{toasts:i,showErrorToast:j,dismissToast:k}=(0,as.Y)(),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(null),[v,z]=(0,e.useState)(""),[A,B]=(0,e.useState)("claude"),[C,D]=(0,e.useState)(null),[F,G]=(0,e.useState)(""),[H,I]=(0,e.useState)(null),[L,M]=(0,e.useState)(!1),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)(""),[S,T]=(0,e.useState)([]),[U,W]=(0,e.useState)("default"),[X,Y]=(0,e.useState)(""),[Z,$]=(0,e.useState)([]),[_,aa]=(0,e.useState)(!1),ab=(0,e.useRef)(!1),[ac,ad]=(0,e.useState)(null),[ae,af]=(0,e.useState)(!1),aK=(0,e.useRef)(null),aM=(0,e.useRef)(null),aN=(0,ar.u)("spur:input-history:spawn-prompt"),aO=(0,at.C)({contextKey:"spawn",onTranscribed:a=>z(b=>b.trim()?`${b}
3
+ ${a}`:a)}),aP=(0,at.C)({contextKey:"dashboard-search",onTranscribed:q}),[aV,aW]=(0,e.useState)(aB),aX=(0,e.useCallback)(a=>{aW(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),window.localStorage.setItem("spur:mobile-collapsed-categories",JSON.stringify([...c])),c})},[]),[aY,aZ]=(0,e.useState)(null),[a$,a_]=(0,e.useState)(()=>null),a0=a=>aZ(b=>b===a?null:a),[a1,a2]=(0,e.useState)(!1),[a3,a4]=(0,e.useState)(""),[a5,a6]=(0,e.useState)(""),[a7,a8]=(0,e.useState)(""),[a9,ba]=(0,e.useState)(null),[bb,bc]=(0,e.useState)(null),[bd,be]=(0,e.useState)(!1),[bf,bg]=(0,e.useState)(null),[bh,bi]=(0,e.useState)(""),[bj,bk]=(0,e.useState)(""),[bl,bm]=(0,e.useState)(""),[bn,bo]=(0,e.useState)(null),[bp,bq]=(0,e.useState)(!1),[br,bs]=(0,e.useState)(!1),[bt,bu]=(0,e.useState)(null);(0,e.useMemo)(()=>new URLSearchParams(a).get("project")?.trim()??"",[a]);let bv=(0,e.useMemo)(()=>(0,J.qZ)(new URLSearchParams(a)),[a]),bw=(0,f.jE)(),bx=["sessions"],{data:by,isPending:bz,error:bA}=w({queryKey:bx,queryFn:async({signal:a})=>{let b=await fetch("/api/sessions",{signal:a});if(!b.ok)throw Error(`sessions ${b.status}`);return await b.json()},refetchInterval:5e3,refetchIntervalInBackground:!0,placeholderData:a=>a}),bB=by?.sessions??[],bC=by?.backlog??[],bD=by?.projects??[],bE=(0,e.useMemo)(()=>by?.tags??[],[by?.tags]);(0,e.useRef)(null);let bF=(0,e.useMemo)(()=>[...bD].sort(aR),[bD]),bG=(0,e.useMemo)(()=>(function(a,b){let c=new Map(a.map(a=>[a.id,a.name]));for(let a of b)c.has(a.project)||c.set(a.project,a.project);return c})(bD,bB),[bD,bB]),bH=(0,e.useMemo)(()=>bB.map(a=>(0,K.MH)(a,bG.get(a.project))),[bG,bB]),bI=(0,e.useMemo)(()=>g?bH.filter(a=>a.projectId===g):bH,[bH,g]),bJ=(0,e.useMemo)(()=>{let a=new Set(bI.flatMap(a=>a.tags));return bE.filter(b=>a.has(b.name))},[bI,bE]),bK=(0,e.useMemo)(()=>{if(!a$)return bI;let a=new Set(bI.filter(a=>a.tags.includes(a$)).map(a=>a.deskKey));return bI.filter(b=>a.has(b.deskKey))},[bI,a$]),bL=(0,e.useMemo)(()=>{let a=p.trim().toLowerCase();if(!a)return bK;let b=new Set(bK.filter(b=>b.id.toLowerCase().includes(a)||(b.title??"").toLowerCase().includes(a)||b.prompt.toLowerCase().includes(a)||b.projectName.toLowerCase().includes(a)||(b.branch??"").toLowerCase().includes(a)).map(a=>a.deskKey));return bK.filter(a=>b.has(a.deskKey))},[bK,p]),bM=(0,e.useMemo)(()=>{let a=p.trim().toLowerCase();return bC.filter(b=>(!g||b.projectId===g)&&(!a||b.key.toLowerCase().includes(a)||b.title.toLowerCase().includes(a)||b.projectId.toLowerCase().includes(a)))},[bC,g,p]),bN=(0,e.useMemo)(()=>(0,K.O1)(bL),[bL]),bO=(0,e.useMemo)(()=>{let a={error:[],rate_limited:[],respond:[],working:[],pending:[],stopped:[],done:[]};for(let b of bN)a[b.lane].push(b);return a},[bN]),bP=(0,e.useMemo)(()=>({error:bO.error.length,rate_limited:bO.rate_limited.length,respond:bO.respond.length,working:bO.working.length,pending:bO.pending.length,stopped:bO.stopped.length,done:bO.done.length}),[bO]),bQ=(0,e.useMemo)(()=>K.HO.filter(a=>bO[a].length>0&&(null===aY?"done"!==a:a===aY)),[aY,bO]),bR=g.length>0||p.trim().length>0||null!==aY||null!==a$,bS=bQ.length>0,bT=null===aY&&bM.length>0,bU=g?bF.find(a=>a.id===g)?.name??g:"All Projects",bV=bR?`No sessions match the current filters${g?` in ${bU}`:""}.`:bO.done.length>0?"No current sessions are visible.":void 0,bW=(0,e.useMemo)(()=>bF.filter(a=>a.configured),[bF]),bX=a=>{let b=a.trim();u(null),s(b)},bY=a=>{h(a),!ae&&a&&s(a)},bZ=a=>{},b$=(0,e.useMemo)(()=>av(F),[F]),b_=async()=>{let a=r.trim(),b=v.trim();if(a&&!ab.current){ab.current=!0,aa(!0);try{let c=S.map(a=>a.value.trim()).filter(a=>a.length>0),d=function(a,b){if("worktree"===a){let a=b.trim();return a?{worktree:!0,defaultBranch:a}:{worktree:!0}}if("shared"===a)return{worktree:!1}}(U,X),e={projectId:a,prompt:b,agent:A};null!==C&&(e.model=C);let f=(0,au.ZM)(Z);f.length>0&&(e.attachments=f);let g=av(F);if(g&&(e.branch=g),L&&(e.planMode=!0),N){let a=P.trim();e.selfDestruct={enabled:!0,...a?{conditions:a}:{}}}c.length>0&&(e.steps=c),d&&(e.overrides=d);let h=await fetch("/api/spawn",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!h.ok)throw Error(await h.text());aN.saveEntry(b);let i=await h.json();bw.setQueryData(bx,a=>{let b=(a?.sessions??[]).filter(a=>a.id!==i.id);return{...a??{},sessions:[i,...b],projects:a?.projects??[]}}),z(""),D(null),G(""),M(!1),O(!1),Q(""),T([]),W("default"),Y(""),$([]),u(null),af(!1),bX(a)}catch(a){j((0,V.gJ)(a,"Failed to spawn Spur session"))}finally{ab.current=!1,aa(!1)}}},b0=async a=>{let b=`${a.projectId}:${a.backlogId}:${a.externalId}`;if(!ac){ad(b);try{let b=await fetch("/api/backlog/take",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:a.projectId,backlogId:a.backlogId,externalId:a.externalId})});if(!b.ok)throw Error(await b.text());let c=await b.json();bw.setQueryData(bx,a=>{let b=(a?.sessions??[]).filter(a=>a.id!==c.session.id),d=a?.backlog??[];return{...a??{},sessions:[c.session,...b],projects:a?.projects??[],backlog:d.filter(a=>a.projectId!==c.item.projectId||a.backlogId!==c.item.backlogId||a.externalId!==c.item.externalId)}}),await bw.invalidateQueries({queryKey:bx})}catch(a){j((0,V.gJ)(a,"Failed to take backlog item"))}finally{ad(null)}}},b1=a=>{bZ(a.id)},b2=async a=>{let b=a3.trim(),c=a5.trim(),d=a7.trim();if(!b)return void ba("Display name is required");if(!c)return void ba("Prefix is required");if(!/^[a-zA-Z0-9_-]+$/.test(c))return void ba("Prefix must contain only letters, digits, underscores, or hyphens");if(!d)return void ba("Path is required");be(!0),ba(null),a&&bc(null);try{let e=a?{displayName:b,prefix:c,path:d,createMissing:!0}:{displayName:b,prefix:c,path:d},f=await fetch("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)});if(!f.ok){let b=await f.json().catch(()=>null),c=b?.error??`Failed to create project (${f.status})`,d="path does not exist: ";if(!a&&c.startsWith(d))return void bc(c.slice(d.length));throw Error(c)}let g=await f.json(),h=await fetch("/api/spawn",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:g.id,prompt:"",bootstrap:!0})});if(!h.ok){let a=await h.json().catch(()=>null);throw Error(a?.error??`Project created but bootstrap session failed (${h.status})`)}let i=await h.json();a2(!1),bc(null),await bw.invalidateQueries({queryKey:bx}),bZ(i.id)}catch(a){ba((0,V.gJ)(a,"Failed to create Spur project"))}finally{be(!1)}},b3=async()=>{bd||await b2(!1)},b4=async()=>{bd||await b2(!0)},b5=async()=>{if(!bf||bp||br)return;let a=bh.trim(),b=bj.trim(),c=bl.trim();if(!a)return void bo("Display name is required");if(!b)return void bo("Prefix is required");if(!/^[a-zA-Z0-9_-]+$/.test(b))return void bo("Prefix must contain only letters, digits, underscores, or hyphens");if(!c)return void bo("Path is required");bq(!0),bo(null);try{let d=await fetch(`/api/projects/${encodeURIComponent(bf.id)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({displayName:a,prefix:b,path:c})});if(!d.ok){let a=await d.json().catch(()=>null);throw Error(a?.error??`Failed to update project (${d.status})`)}let e=await d.json();bw.setQueryData(bx,a=>({...a,sessions:a?.sessions??[],projects:e.projects})),bg(null),bu(null)}catch(a){bo(a instanceof Error?a.message:"Failed to update Spur project")}finally{bq(!1)}},b6=async a=>{try{let b=await fetch(`/api/projects/${encodeURIComponent(a.id)}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>null);throw Error(a?.error??`Failed to delete project (${b.status})`)}return bu(null),bf?.id===a.id&&bg(null),await bw.invalidateQueries({queryKey:bx}),!0}catch(c){let b=c instanceof Error?c.message:"Failed to delete Spur project";return bu(b),bf?.id===a.id&&bo(b),!1}},b7=async()=>{bf&&!br&&(bs(!0),await b6(bf),bs(!1))},b8=(0,e.useCallback)(async(a,b)=>{try{let c=await fetch(`/api/sessions/${encodeURIComponent(a)}/tags`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(b)});if(!c.ok){let a=await c.json().catch(()=>null);throw Error(a?.error??`Failed to update tags (${c.status})`)}await bw.invalidateQueries({queryKey:bx})}catch(a){j((0,V.gJ)(a,"Failed to update tags"))}},[bw,bx,j]),b9=(0,e.useMemo)(()=>({catalog:bE,applyTags:b8}),[bE,b8]),ca=async a=>{await bw.cancelQueries({queryKey:bx});let b=bw.getQueryData(bx);bw.setQueryData(bx,b=>b?{...b,sessions:b.sessions.map(b=>b.id===a.id?{...b,status:"running",state:"working",runtimeAlive:!0}:b)}:b);try{let b=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/restore`,{method:"POST"});if(!b.ok)throw Error(await b.text())}catch(a){throw b&&bw.setQueryData(bx,b),j((0,V.gJ)(a,"Failed to restore Spur session")),a}finally{await bw.invalidateQueries({queryKey:bx})}},cb=async(a,b)=>{let c=bH.filter(b=>b.deskKey===a.deskKey&&"killed"!==b.status&&"completed"!==b.status),d=(c.filter(b=>b.id!==a.id).length,new Set(c.map(a=>a.id)));await bw.cancelQueries({queryKey:bx});let e=bw.getQueryData(bx);bw.setQueryData(bx,a=>a?{...a,sessions:a.sessions.map(a=>d.has(a.id)?{...a,status:"completed",state:"stopped",runtimeAlive:!1,tmuxSession:null}:a)}:a);try{let c={scope:"desk",...b?{prAction:b}:{}},d=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/complete`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(c)}),f=await (0,V.Y3)(d);if(!d.ok){if((0,K.Qk)(f)){e&&bw.setQueryData(bx,e),m({session:a,payload:f});return}throw Error((0,V.$8)(f,"Failed to complete Spur session"))}let g=function(a){if("object"!=typeof a||null===a||!("completedIds"in a))return[];let b=a.completedIds;return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}(f);if(g.length>0){let a=new Set(g);bw.setQueryData(bx,b=>b?{...b,sessions:b.sessions.map(b=>a.has(b.id)?{...b,status:"completed",state:"stopped",runtimeAlive:!1,tmuxSession:null}:b)}:b)}}catch(a){throw e&&bw.setQueryData(bx,e),j((0,V.gJ)(a,"Failed to complete Spur session")),a}finally{await bw.invalidateQueries({queryKey:bx})}},cc=async a=>{if(l){o(!0);try{await cb(l.session,a),m(null)}finally{o(!1)}}},cd=(0,e.useCallback)(a=>{(0,au.kQ)(a).then(a=>{0!==a.length&&$(b=>[...b,...a])}).catch(()=>{})},[]),ce=(0,e.useMemo)(()=>{if(!bv)return null;let a=bH.find(a=>a.id===bv);return!a||!a.runtimeAlive||(0,K.zi)(a)||!a.tmuxSession?null:a},[bH,bv]);return(0,d.jsxs)(E.Provider,{value:b9,children:[(0,d.jsxs)("main",{className:"mx-auto max-w-[1500px] px-4 py-4 pb-8 sm:px-5 lg:px-6",children:[(0,d.jsxs)("header",{className:"mb-4 flex flex-wrap items-center gap-2 sm:gap-3",children:[(0,d.jsx)(aS,{activeProjectName:bU,projects:bF,selectedProjectId:g,onSelectProject:bY,onNewProject:()=>{a4(""),a6(""),a8(""),ba(null),bc(null),a2(!0)},onEdit:a=>{bg(a),bi(a.name),bk(a.prefix),bm(a.path),bo(null)}}),bP.error>0?(0,d.jsx)(aC,{icon:(0,d.jsx)(aF,{}),label:"Errors",value:bP.error,color:"var(--color-status-error)",active:"error"===aY,onClick:()=>a0("error")}):null,bP.rate_limited>0?(0,d.jsx)(aC,{icon:(0,d.jsx)(aG,{}),label:"Rate Limited",value:bP.rate_limited,color:"var(--color-status-attention)",active:"rate_limited"===aY,onClick:()=>a0("rate_limited")}):null,(0,d.jsx)(aC,{icon:(0,d.jsx)(aE,{}),label:"Needs Input",value:bP.respond,color:bP.respond>0?"var(--color-status-error)":void 0,active:"respond"===aY,onClick:()=>a0("respond")}),(0,d.jsx)(aC,{icon:(0,d.jsx)(aH,{}),label:"Working",value:bP.working,color:bP.working>0?"var(--color-status-working)":void 0,active:"working"===aY,onClick:()=>a0("working")}),(0,d.jsx)(aC,{icon:(0,d.jsx)(aG,{}),label:"Waiting",value:bP.pending,color:bP.pending>0?"var(--color-status-attention)":void 0,active:"pending"===aY,onClick:()=>a0("pending")}),(0,d.jsx)(aC,{icon:(0,d.jsx)(aJ,{}),label:"Stopped",value:bP.stopped,color:bP.stopped>0?"var(--color-text-tertiary)":void 0,active:"stopped"===aY,onClick:()=>a0("stopped")}),(0,d.jsx)(aC,{icon:(0,d.jsx)(aI,{}),label:"Completed",value:bP.done,color:"done"===aY&&bP.done>0?"var(--color-status-ready)":void 0,active:"done"===aY,onClick:()=>a0("done")}),bJ.length>0?(0,d.jsx)("span",{className:"sm:ml-auto",children:(0,d.jsx)(ay,{catalog:bJ,value:a$,onChange:a_})}):null,(0,d.jsxs)("div",{className:`flex min-w-[12rem] flex-[999_1_16rem] flex-col gap-1 ${bJ.length>0?"":"sm:ml-auto"}`,children:[(0,d.jsxs)("div",{className:"flex items-stretch border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 px-2 py-1.5",children:[(0,d.jsxs)("svg",{className:"h-3.5 w-3.5 shrink-0 text-[var(--color-text-tertiary)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,d.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,d.jsx)("path",{d:"m21 21-4.35-4.35"})]}),(0,d.jsx)("input",{"aria-label":"Filter sessions",className:"min-w-0 flex-1 border-none bg-transparent uppercase text-[var(--color-text-primary)] outline-none",onChange:a=>q(a.target.value),onKeyDown:a=>{(0,ax.tF)(a)&&(a.preventDefault(),aP.toggleRecording())},placeholder:(0,ap.uT)("Filter sessions...",aP),ref:aK,value:p})]}),(0,d.jsxs)("div",{className:"flex shrink-0 items-stretch",children:[p.length>0?(0,d.jsx)("div",{className:"flex items-center border-l border-[var(--color-border-default)] px-1",children:(0,d.jsx)("button",{"aria-label":"Clear dashboard search",className:az,onClick:()=>{q(""),aK.current?.focus()},type:"button",children:(0,d.jsx)(ai.U,{})})}):null,aP.canUseVoice?(0,d.jsx)("div",{className:"flex items-center border-l border-[var(--color-border-default)] px-1",children:(0,d.jsx)(ap.lv,{borderless:!0,className:az,groupClassName:"flex items-center gap-1",voice:aP})}):null]})]}),aP.voiceError?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2 py-1.5 text-[10px] text-[var(--color-chip-error-text)]",role:"alert",children:aP.voiceError}):aP.recording||aP.voiceBusy?(0,d.jsx)("div",{className:"px-2 text-[10px] text-[var(--color-text-tertiary)]",children:(0,d.jsx)(ap.cQ,{voice:aP})}):null]}),(0,d.jsxs)("div",{className:"inline-flex w-full sm:w-auto sm:shrink-0",children:[(0,d.jsx)("button",{"aria-label":"Spawn Shepherd",className:"inline-flex w-10 shrink-0 items-center justify-center border border-[var(--color-accent)] bg-[var(--color-accent)] text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)]",onClick:()=>{u(aA),s(aA),B("claude"),D(null),W("default"),Y(""),$([]),af(!0)},title:"Spawn Shepherd",type:"button",children:(0,d.jsx)(aL,{})}),(0,d.jsx)("button",{className:"min-w-0 flex-1 whitespace-nowrap border border-[var(--color-accent)] border-l-[var(--color-text-inverse)] bg-[var(--color-accent)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] sm:flex-none",onClick:()=>{u(null),s((()=>{let a=bW.find(a=>a.id===g)?.id??"";return a||(bW[0]?.id??"")})()),$([]),af(!0)},type:"button",children:"Spawn Session"})]})]}),a1?(0,d.jsx)(aT,{displayName:a3,prefix:a5,path:a7,error:a9,missingPath:bb,submitting:bd,onDisplayNameChange:a4,onPrefixChange:a6,onPathChange:a=>{a8(a),bc(null)},onSubmit:()=>{b3()},onCreateFolder:()=>{b4()},onClose:()=>a2(!1)}):null,bf?(0,d.jsx)(aU,{project:bf,displayName:bh,prefix:bj,path:bl,error:bn,submitting:bp,deleting:br,onDisplayNameChange:bi,onPrefixChange:bk,onPathChange:bm,onSubmit:()=>{b5()},onDelete:()=>{b7()},onClose:()=>{bp||br||(bg(null),bo(null))}}):null,bt?(0,d.jsx)("div",{className:"mb-3 border border-[var(--color-status-error)] bg-[var(--color-status-error)]/10 px-2 py-1.5 text-[var(--color-status-error)]",role:"alert",children:bt}):null,ae?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-modal-backdrop)]",onClick:a=>{a.target===a.currentTarget&&af(!1)},children:(0,d.jsxs)("div",{className:"flex w-full max-h-[calc(100vh-1rem)] flex-col overflow-hidden border border-[var(--color-border-default)] bg-[var(--color-bg-base)] p-4 shadow-[0_20px_60px_var(--color-shadow-modal-lg)] sm:max-h-[calc(100vh-2rem)] sm:w-full sm:max-w-lg sm:p-5",onKeyDown:a=>{if((0,ax.tF)(a)){a.preventDefault(),aO.toggleRecording();return}(0,ax.rU)(a)&&(a.preventDefault(),b_())},children:[(0,d.jsxs)("div",{className:"mb-4 flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-sm font-bold uppercase tracking-[0.1em] text-[var(--color-text-primary)]",children:"Spawn Session"}),(0,d.jsx)("button",{className:"text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>af(!1),type:"button",children:"✕"})]}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto",children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("select",{"aria-label":"Spawn project",className:`flex-1 ${aq.s}`,onChange:a=>bX(a.target.value),value:r,children:[(0,d.jsx)("option",{value:"",children:"Select project"}),bW.map(a=>(0,d.jsx)("option",{value:a.id,children:"shepherd"===a.kind?`${a.name} (Built In)`:a.name},a.id))]}),(0,d.jsx)(x.a,{ariaLabel:"Spawn agent",onChange:a=>{B(a),D(null)},value:A}),(0,d.jsx)("div",{className:"min-w-40 flex-1",children:(0,d.jsx)(y.o,{agent:A,ariaLabel:"Spawn model",onChange:D,value:C})})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("input",{"aria-label":"branch name",className:`min-w-40 flex-1 ${aq.s}`,onBlur:()=>G(av(F)),onChange:a=>G(a.target.value),placeholder:"Branch name",value:F}),(0,d.jsxs)("select",{"aria-label":"workspace mode",className:aq.s,onChange:a=>W(a.target.value),value:U,children:[(0,d.jsx)("option",{value:"default",children:"Default"}),(0,d.jsx)("option",{value:"worktree",children:"Worktree"}),(0,d.jsx)("option",{value:"shared",children:"Shared"})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 cursor-pointer",children:[(0,d.jsx)("input",{"aria-label":"Plan",checked:L,className:"accent-[var(--color-accent)]",onChange:a=>M(a.target.checked),type:"checkbox"}),(0,d.jsx)("span",{className:"text-xs font-bold uppercase text-[var(--color-text-primary)]",children:"Plan"})]}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 cursor-pointer",children:[(0,d.jsx)("input",{"aria-label":"Self-destruct",checked:N,className:"accent-[var(--color-accent)]",onChange:a=>O(a.target.checked),type:"checkbox"}),(0,d.jsx)("span",{className:"font-bold uppercase text-[var(--color-text-primary)]",children:"Self-destruct"})]})]}),b$&&b$!==F?(0,d.jsxs)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:["will create ",b$]}):null,H&&H.exists&&!H.checkedOutAt?(0,d.jsx)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:"branch already exists — will attach instead of creating new"}):null,H&&H.exists&&H.checkedOutAt?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2.5 py-1.5 text-xs text-[var(--color-chip-error-text)]",children:"already checked out in another worktree — spawn will fail; pick a different name"}):null,H&&!H.exists&&H.remote?(0,d.jsx)("p",{className:"text-xs text-[var(--color-text-tertiary)]",children:"exists on origin — will track it"}):null,N?(0,d.jsx)("textarea",{"aria-label":"Self-destruct conditions",className:`min-h-20 w-full resize-y ${aq.s}`,onChange:a=>Q(a.target.value),placeholder:"Self-destruct conditions",value:P}):null,"worktree"===U?(0,d.jsx)("input",{className:`w-full ${aq.s}`,onChange:a=>Y(a.target.value),placeholder:"Base branch",value:X}):null,(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"max-h-48 space-y-2 overflow-y-auto",children:S.map((a,b)=>(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{"aria-label":`step ${b+1}`,className:`flex-1 ${aq.s}`,onChange:b=>{let c,d;return c=a.id,d=b.target.value,T(a=>a.map(a=>a.id===c?{...a,value:d}:a))},placeholder:`Step ${b+1}`,value:a.value}),(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 text-[var(--color-text-tertiary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>{let b;return b=a.id,T(a=>a.filter(a=>a.id!==b))},type:"button",children:"✕"})]},a.id))}),(0,d.jsx)("button",{className:"mt-2 border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-2.5 py-2 text-xs font-bold uppercase text-[var(--color-text-secondary)] transition hover:text-[var(--color-text-primary)]",onClick:()=>{T(a=>[...a,{id:Date.now(),value:""}])},type:"button",children:"+ Step"})]}),(0,d.jsx)(aj.U,{ariaLabel:"Prompt for the new session...",attachments:Z,clearLabel:"Clear spawn prompt",minHeightClass:"min-h-[8rem] sm:min-h-[10rem]",onAddFiles:cd,onChange:z,onKeyDown:a=>{if((0,ax.tF)(a)){a.preventDefault(),aO.toggleRecording();return}(0,ax.rU)(a)&&(a.preventDefault(),b_())},onRemoveAttachment:a=>$(b=>b.filter((b,c)=>c!==a)),placeholder:(0,ap.uT)("Prompt for the new session...",aO),textareaRef:aM,value:v,voice:aO}),aO.voiceError?(0,d.jsx)("div",{className:"border border-[var(--color-chip-error-border)] bg-[var(--color-chip-error-bg)] px-2.5 py-1.5 text-xs text-[var(--color-chip-error-text)]",children:aO.voiceError}):null,(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text-tertiary)]",children:(0,d.jsx)(ap.cQ,{voice:aO})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(am.t,{endpoint:r.trim()?`/api/projects/${encodeURIComponent(r.trim())}/slash-commands?agent=${encodeURIComponent(A)}`:null,onSelect:a=>(0,aw.U)(aM.current,a.insertText,z)}),(0,d.jsx)(ak.$,{entries:aN.entries,onSelect:z}),(0,d.jsxs)("button",{className:"inline-flex min-w-32 items-center justify-center gap-2 bg-[var(--color-accent)] px-4 py-2 font-bold uppercase text-[var(--color-text-inverse)] transition hover:bg-[var(--color-accent-hover)] disabled:cursor-not-allowed disabled:opacity-60",disabled:_||!r.trim(),onClick:()=>void b_(),type:"button",children:[(0,d.jsx)("span",{children:_?"Spawning...":"Spawn"}),_?null:(0,d.jsx)("span",{"aria-hidden":"true",className:"whitespace-nowrap font-mono text-[10px] font-medium normal-case tracking-normal text-[var(--color-text-tertiary)]",children:ax.C9})]})]})]})]})]})}):null,bz?(0,d.jsx)("p",{className:"mt-4 text-sm text-[var(--color-text-secondary)]",children:"Loading sessions..."}):null,bz||bS||bT?null:(0,d.jsxs)("section",{className:"mt-5",children:[(0,d.jsx)(ah,{message:bV}),bR?(0,d.jsx)("div",{className:"mt-3 flex justify-center",children:(0,d.jsx)("button",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] px-3 py-1.5 font-bold uppercase text-[var(--color-text-primary)] transition hover:border-[var(--color-accent)] hover:text-[var(--color-accent)]",onClick:()=>{q(""),aZ(null),a_(null),bY("")},type:"button",children:"Reset Filters"})}):null]}),!bz&&(bT||bS)?(0,d.jsxs)("section",{className:"mt-5 space-y-4",children:[bT?(0,d.jsx)(aD,{items:bM,projectNameMap:bG,takingKey:ac,onTake:b0}):null,bQ.map(a=>(0,d.jsx)(R,{collapsed:c?aV.has(a):void 0,level:a,onCompleteSession:cb,onOpenTerminal:b1,onRestoreSession:ca,projectFilterId:g||void 0,onToggle:c?aX:void 0,rows:bO[a]},a))]}):null,ce?(0,d.jsx)(an.s,{onClose:()=>bZ(null),session:ce}):null,l?(0,d.jsx)(al.z,{busy:n,onAction:a=>void cc(a),onCancel:()=>m(null),payload:l.payload}):null]}),(0,d.jsx)(ao.U,{toasts:i,onDismiss:k}),(0,d.jsx)(ag,{})]})}}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[5209,7331,6391,5158],()=>b(b.s=39679));module.exports=c})();