@wular/coder 0.3.17 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +18 -16
  2. package/bin/coder.mjs +3 -1
  3. package/dist/actions-Mk3FSlpJ.js +20 -0
  4. package/dist/adapter-B0oYCI0S.js +1 -0
  5. package/dist/adapter-BKVzTDnn.js +1 -0
  6. package/dist/adapter-DPInwbJG.js +1 -0
  7. package/dist/adapter-DaiJMOYo.js +1 -0
  8. package/dist/adapter-PeKziOUg.js +1 -0
  9. package/dist/add-BxpLHnvD.js +1 -0
  10. package/dist/add-CE-70LFs.js +1 -0
  11. package/dist/add-U-pty9qJ.js +6 -0
  12. package/dist/add-ej0X9e3a.js +1 -0
  13. package/dist/add-json-CEa-6luW.js +1 -0
  14. package/dist/agent-BsYx3Odz.js +3 -0
  15. package/dist/agent-JdtZozvP.js +1 -0
  16. package/dist/alias-DX-Bm86x.js +2 -0
  17. package/dist/app-BT5f7zL5.js +1 -0
  18. package/dist/approvals-C-AvFt6s.js +2 -0
  19. package/dist/approve-DOmpQRNd.js +2 -0
  20. package/dist/apps-CjfrZyM5.js +1 -0
  21. package/dist/archive-BUB8gFKD.js +4 -0
  22. package/dist/archive-BziJ1rQ-.js +3 -0
  23. package/dist/archive-sweep-CtBcARgN.js +1 -0
  24. package/dist/args-BOEEdpWk.js +1 -0
  25. package/dist/ask-dE3U3ss2.js +4 -0
  26. package/dist/auth-BFny--17.js +1 -0
  27. package/dist/auth-DWHIzqbA.js +1 -0
  28. package/dist/builtin/coder/agent.json +24 -0
  29. package/dist/builtin/coder/system.md +17 -0
  30. package/dist/chat-3Znsevah.js +1 -0
  31. package/dist/chat-B_yhNTo0.js +13 -0
  32. package/dist/chat-bridge-BS9WtP3X.js +2 -0
  33. package/dist/cli-BilSDkvE.js +9 -0
  34. package/dist/cli.d.ts +71 -1
  35. package/dist/cli.js +1 -91
  36. package/dist/client-D9IoAuDD.js +1 -0
  37. package/dist/config-Da_cwoxI.js +3 -0
  38. package/dist/create-C_iMJV4Y.js +1 -0
  39. package/dist/credentials-B1jv6dkg.js +1 -0
  40. package/dist/dash/manifest.json +3427 -0
  41. package/dist/dash/public/assets/apple-touch-icon.png +0 -0
  42. package/dist/dash/public/assets/chunks/agent-pills-69c965aae1737cef.js +1 -0
  43. package/dist/dash/public/assets/chunks/agent-settings-form-a1ce70812eea3f20.js +1 -0
  44. package/dist/dash/public/assets/chunks/agents-grid-f62180478e43c192.js +1 -0
  45. package/dist/dash/public/assets/chunks/badge-d07f35e9abc80e14.js +1 -0
  46. package/dist/dash/public/assets/chunks/card-be04148b64223a52.js +1 -0
  47. package/dist/dash/public/assets/chunks/combo-32c321a7a84fa902.js +1 -0
  48. package/dist/dash/public/assets/chunks/composer-aec9c3c691f1f79a.js +1 -0
  49. package/dist/dash/public/assets/chunks/composer-data-6f7608fed13f3dd7.js +1 -0
  50. package/dist/dash/public/assets/chunks/composer-e56860d72742379e.js +1 -0
  51. package/dist/dash/public/assets/chunks/confirm-b4e2c16aef4b3431.js +1 -0
  52. package/dist/dash/public/assets/chunks/connect-apps-a5a63941e287c33f.js +1 -0
  53. package/dist/dash/public/assets/chunks/connect-repositories-e4c049b5b4384623.js +1 -0
  54. package/dist/dash/public/assets/chunks/credentials-list-2b7d0c771b89f9c5.js +2 -0
  55. package/dist/dash/public/assets/chunks/custom-range-53b70e0d9eeae84e.js +1 -0
  56. package/dist/dash/public/assets/chunks/editor-691d2bcecb1ecb87.js +7 -0
  57. package/dist/dash/public/assets/chunks/engines-list-a5fe1671601ce3b0.js +1 -0
  58. package/dist/dash/public/assets/chunks/field-9e12e5fc8774b6e5.js +1 -0
  59. package/dist/dash/public/assets/chunks/format-eb03fc9d9744d960.js +1 -0
  60. package/dist/dash/public/assets/chunks/heads-4041a925d63ab116.js +1 -0
  61. package/dist/dash/public/assets/chunks/instructions-4e0d18b9b40edbd7.js +2 -0
  62. package/dist/dash/public/assets/chunks/instructions-b00959bd4bb70502.js +1 -0
  63. package/dist/dash/public/assets/chunks/list-d7eb9e02cf261fbe.js +1 -0
  64. package/dist/dash/public/assets/chunks/mcp-list-a450533109045ef5.js +1 -0
  65. package/dist/dash/public/assets/chunks/model-options-15c53331a2f28a4f.js +1 -0
  66. package/dist/dash/public/assets/chunks/models-list-1e273c6843858148.js +1 -0
  67. package/dist/dash/public/assets/chunks/paged-bc6fa0c2b9d52ed7.js +1 -0
  68. package/dist/dash/public/assets/chunks/platform-actions-87f3f76ec1b840cb.js +1 -0
  69. package/dist/dash/public/assets/chunks/runners-list-fc7cdae4fa93e78b.js +1 -0
  70. package/dist/dash/public/assets/chunks/runtime-246221e985d863e5-1.js +2 -0
  71. package/dist/dash/public/assets/chunks/segmented-6091dfb2f954799f.js +1 -0
  72. package/dist/dash/public/assets/chunks/select-dd09a6b9544cfde2.js +1 -0
  73. package/dist/dash/public/assets/chunks/sentinel-ff7143a47fd22835.js +1 -0
  74. package/dist/dash/public/assets/chunks/shared-init-246221e985d863e5-2.js +1 -0
  75. package/dist/dash/public/assets/chunks/shared-init-8f2ac936c95a7f7b.js +1 -0
  76. package/dist/dash/public/assets/chunks/shared-init-986901c810947c12.js +5 -0
  77. package/dist/dash/public/assets/chunks/shared-init-baceed9fd2d43661.js +2 -0
  78. package/dist/dash/public/assets/chunks/tail-5a5bfcd308535d70.js +1 -0
  79. package/dist/dash/public/assets/chunks/task-actions-7919ca0e901131f4.js +1 -0
  80. package/dist/dash/public/assets/chunks/task-fa8b82e95e771c4a.js +1 -0
  81. package/dist/dash/public/assets/chunks/task-view-e8a0f99c992fa11e.js +3 -0
  82. package/dist/dash/public/assets/chunks/tasks-list-7b72f5b295349532.js +1 -0
  83. package/dist/dash/public/assets/chunks/toolbar-9b18a5d26dee37c3.js +1 -0
  84. package/dist/dash/public/assets/chunks/versions-list-8cdf3a41c56b2152.js +1 -0
  85. package/dist/dash/public/assets/chunks/wular-pnext-246221e985d863e5-0.js +1 -0
  86. package/dist/dash/public/assets/connect-382b1729a7ae7808.css +1 -0
  87. package/dist/dash/public/assets/dash-9e02d5d1a6d42ee3.css +1 -0
  88. package/dist/dash/public/assets/dash-account-04859899c1838ada.css +1 -0
  89. package/dist/dash/public/assets/dash-agents-9e678137267dec07.css +1 -0
  90. package/dist/dash/public/assets/dash-agents-new-26fa27b17ef9b8d8.css +1 -0
  91. package/dist/dash/public/assets/dash-agents-param-slug-b975c48f8abf3444.css +1 -0
  92. package/dist/dash/public/assets/dash-agents-param-slug-edit-e13fda599bb04843.css +1 -0
  93. package/dist/dash/public/assets/dash-agents-param-slug-platforms-70292932cb27bc96.css +1 -0
  94. package/dist/dash/public/assets/dash-agents-param-slug-settings-71f9a86251723fcc.css +1 -0
  95. package/dist/dash/public/assets/dash-agents-param-slug-tasks-fb8eb2ed71006601.css +1 -0
  96. package/dist/dash/public/assets/dash-agents-param-slug-usage-7c8740f1cdd52c71.css +1 -0
  97. package/dist/dash/public/assets/dash-settings-8eb818da462227e8.css +1 -0
  98. package/dist/dash/public/assets/dash-settings-param-tab-849a1a9542e273f5.css +1 -0
  99. package/dist/dash/public/assets/dash-tasks-81e510e0b6931b42.css +1 -0
  100. package/dist/dash/public/assets/dash-tasks-param-id-bbd2a83342f2ec10.css +1 -0
  101. package/dist/dash/public/assets/dash-usage-8e0259e03eaed1bd.css +1 -0
  102. package/dist/dash/public/assets/favicon.ico +0 -0
  103. package/dist/dash/public/assets/favicon.svg +1 -0
  104. package/dist/dash/public/assets/fonts/LICENSE-fira-code +93 -0
  105. package/dist/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
  106. package/dist/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
  107. package/dist/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
  108. package/dist/dash/public/assets/global-d2adbf01910d9df5.css +1 -0
  109. package/dist/dash/public/assets/login-c129b1ce237be260.css +1 -0
  110. package/dist/dash/public/assets/pnext-client-073464b8f422ef57.js +1 -0
  111. package/dist/dash/public/assets/pnext-client-0b6720fdec66eeb0.js +1 -0
  112. package/dist/dash/public/assets/pnext-client-1e9cb2f4f6387a87.js +1 -0
  113. package/dist/dash/public/assets/pnext-client-2f0e78dd006fed0f.js +1 -0
  114. package/dist/dash/public/assets/pnext-client-3c62e2aa2cbe9fe1.js +1 -0
  115. package/dist/dash/public/assets/pnext-client-43a88896ed42dd39.js +1 -0
  116. package/dist/dash/public/assets/pnext-client-4cf2e27d0b9c0365.js +1 -0
  117. package/dist/dash/public/assets/pnext-client-587008fa987d3073.js +1 -0
  118. package/dist/dash/public/assets/pnext-client-676360cc86f31573.js +1 -0
  119. package/dist/dash/public/assets/pnext-client-813427605f424145.js +1 -0
  120. package/dist/dash/public/assets/pnext-client-82de7cf6dfc35b98.js +1 -0
  121. package/dist/dash/public/assets/pnext-client-831e8004c09f0b5b.js +1 -0
  122. package/dist/dash/public/assets/pnext-client-9b557fe468a45ca3.js +1 -0
  123. package/dist/dash/public/assets/pnext-client-ab7c900c802fe827.js +1 -0
  124. package/dist/dash/public/assets/pnext-client-d87d00e402811f0c.js +1 -0
  125. package/dist/dash/public/assets/pnext-client-fbdb7c1da7eda7e5.js +1 -0
  126. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/boot-B2MFTRO2.js +28 -0
  127. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/build-tier-XJJSL5FR.js +2702 -0
  128. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2HFY3DQT.js +206 -0
  129. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2ICEVELW.js +832 -0
  130. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-3UPROT2C.js +33 -0
  131. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4P5CMIYT.js +1580 -0
  132. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4TKZKZ3Q.js +129 -0
  133. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-5RDEILQB.js +435 -0
  134. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-62KEQM43.js +23 -0
  135. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-6KQSWT6D.js +829 -0
  136. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-7DCNCW6O.js +722 -0
  137. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-B4THCTQP.js +20 -0
  138. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-C2LIV2MM.js +170 -0
  139. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-CCATPVTW.js +376 -0
  140. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-COXJAPTU.js +87 -0
  141. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-E6IXL2NJ.js +6268 -0
  142. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FLGRBFAH.js +1196 -0
  143. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FTJVHFWD.js +59 -0
  144. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-H523KSIH.js +5149 -0
  145. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-HT6KKX6A.js +18 -0
  146. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JESFYECC.js +436 -0
  147. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JRPJM2XY.js +15 -0
  148. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L2IWDUXG.js +105 -0
  149. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L5P4Y4UC.js +181 -0
  150. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-NQE46AZN.js +645 -0
  151. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PA4QEARJ.js +127 -0
  152. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PZ5AXOLW.js +7144 -0
  153. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-SNVPTULL.js +2395 -0
  154. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-T3QZT3PG.js +218 -0
  155. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-VC5O2SDP.js +70 -0
  156. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-WZX4V6CM.js +229 -0
  157. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-XUUIDXY5.js +625 -0
  158. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-ZHFDO3PR.js +263 -0
  159. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/compile-CE2DN7ZA.js +16 -0
  160. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-UREY7XJT.js +14 -0
  161. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-loader-UI2XE3PZ.js +15 -0
  162. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/entry.js +217 -0
  163. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/generate-I2PPTDFD.js +14 -0
  164. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/modules-UVOCE4C2.js +46 -0
  165. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/pipeline-UW47K537.js +961 -0
  166. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/proxy-ITGOVJBW.js +24 -0
  167. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/register-4SA55SWT.js +12577 -0
  168. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/router-JNKHLBCZ.js +503 -0
  169. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/routes-PD6J2NXW.js +52 -0
  170. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/tsconfig-defaults-ZXEH7RQK.js +13 -0
  171. package/dist/default-Bobztoxf.js +1 -0
  172. package/dist/default-vYPT26DR.js +1 -0
  173. package/dist/delete-D8gEwoOj.js +4 -0
  174. package/dist/delete-z1_86nf6.js +2 -0
  175. package/dist/disable-DVKd-0Xb.js +1 -0
  176. package/dist/discover-Df-a8K4R.js +3 -0
  177. package/dist/discover-Dvr_3_Xr.js +1 -0
  178. package/dist/dispatch-BKeAch9E.js +14 -0
  179. package/dist/docs-BX65z2Iu.js +2 -0
  180. package/dist/docs-DKJnqZqt.js +2 -0
  181. package/dist/enable-C8Zf_wpN.js +1 -0
  182. package/dist/env-CRf6wkM2.js +1 -0
  183. package/dist/exec-RZFLclKX.js +11 -0
  184. package/dist/executor-BvAA7Cgw.js +10 -0
  185. package/dist/flow/builtin/review.d.ts +157 -0
  186. package/dist/flow/builtin/review.js +19 -0
  187. package/dist/flow/index.d.ts +1 -1
  188. package/dist/flow/index.js +1 -1
  189. package/dist/flow-17k25MHt.js +1 -0
  190. package/dist/github-actions-DwUzm4hC.js +24 -0
  191. package/dist/http-Bkg_OQ6r.js +1 -0
  192. package/dist/{index-BQ-b77or.d.ts → index-DT7EST00.d.ts} +116 -238
  193. package/dist/init-CoMfFxbG.js +1 -0
  194. package/dist/integrations-5xCaXSd-.js +1 -0
  195. package/dist/integrations-BAgdVDhj.js +5 -0
  196. package/dist/lib/broker.js +3 -3
  197. package/dist/list-BAKvxSbh.js +4 -0
  198. package/dist/list-BYiG8Zav.js +2 -0
  199. package/dist/list-BxEywhHU.js +1 -0
  200. package/dist/list-C5w01-8q.js +1 -0
  201. package/dist/list-CIW2joV1.js +1 -0
  202. package/dist/list-DX-z3SBp.js +3 -0
  203. package/dist/list-DpCf4G-H.js +4 -0
  204. package/dist/list-VToARh3C.js +1 -0
  205. package/dist/load-BpEsAn51.js +2 -0
  206. package/dist/local-H3uvqEbq.js +1 -0
  207. package/dist/log-view-dg0TlKLA.js +1 -0
  208. package/dist/login-BFxX4jJy.js +1 -0
  209. package/dist/login-DkkslfBx.js +1 -0
  210. package/dist/logout-BHAtw4Z8.js +1 -0
  211. package/dist/maintenance-C5FklUw3.js +1 -0
  212. package/dist/match-CXAjDhg7.js +1 -0
  213. package/dist/mcp-BgKb2Cdk.js +1 -0
  214. package/dist/mcp-CCZOAo06.js +1 -0
  215. package/dist/mcp-server-DGzme0YX.js +1 -0
  216. package/dist/migrate-C4vM7DQN.js +2 -0
  217. package/dist/migrate-N-85_N7J.js +1 -0
  218. package/dist/model-Bs1StDo3.js +1 -0
  219. package/dist/models-_5LVGC3m.js +1 -0
  220. package/dist/output-BKeyLbvt.js +5 -0
  221. package/dist/prompt-CEuBMNhk.js +7 -0
  222. package/dist/push-CUC55Bqd.js +1 -0
  223. package/dist/queue-6io_NOP3.js +116 -0
  224. package/dist/refresh-BIrmrWYq.js +1 -0
  225. package/dist/remote-miQNTVRa.js +1 -0
  226. package/dist/remove-B93LNkZI.js +1 -0
  227. package/dist/remove-C5_xggx7.js +1 -0
  228. package/dist/remove-CuH8a3L9.js +1 -0
  229. package/dist/remove-eQ8y5C5p.js +1 -0
  230. package/dist/rename-CYfy03FE.js +1 -0
  231. package/dist/result-BEtQZHaY.js +5 -0
  232. package/dist/result-BzaM3inj.js +15 -0
  233. package/dist/resume-DYzKvyEw.js +3 -0
  234. package/dist/review-oIBeECZE.js +7 -0
  235. package/dist/rolldown-runtime-DT7IzrpZ.js +1 -0
  236. package/dist/rotate-key-IdMYH7gg.js +1 -0
  237. package/dist/run-BDYl0CKl.js +2 -0
  238. package/dist/run-CTtd0Znc.js +5 -0
  239. package/dist/run-CawRGnOg.js +2 -0
  240. package/dist/runner-D7ScbIHJ.js +1 -0
  241. package/dist/runner-sUpWJ_k0.js +1 -0
  242. package/dist/schema-CU2iFkp8.js +1 -0
  243. package/dist/sdk.d.ts +1166 -191
  244. package/dist/sdk.js +1 -1
  245. package/dist/serve-BTeomYxW.js +1 -0
  246. package/dist/serve-CE8YV2e9.js +1 -0
  247. package/dist/serve-CPnmrKyf.js +2 -0
  248. package/dist/serve-CQKZxzFE.js +4 -0
  249. package/dist/serve-GmRO89s5.js +12 -0
  250. package/dist/server-Kb22cWfF.js +1 -0
  251. package/dist/setup-host-GFTUzzZJ.js +6 -0
  252. package/dist/shared-DVtzWhUT.js +1 -0
  253. package/dist/show-CMUg8SJu.js +1 -0
  254. package/dist/show-COTZEYgc.js +1 -0
  255. package/dist/status-D26U--p8.js +1 -0
  256. package/dist/steer-C6uARLp5.js +4 -0
  257. package/dist/stop-BrGI3hSS.js +1 -0
  258. package/dist/stop-ByCAlbmN.js +3 -0
  259. package/dist/store-B94tSate.js +42 -0
  260. package/dist/store-DzqXS2wT.js +8 -0
  261. package/dist/task-C6VAg5WU.js +1 -0
  262. package/dist/task-CgOKgkEG.js +1 -0
  263. package/dist/task-DeglY79z.js +5 -0
  264. package/dist/test-NEbhlxvo.js +1 -0
  265. package/dist/tools-D0Zfs8Hx.js +1 -0
  266. package/dist/types-D0q15RJa.js +1 -0
  267. package/dist/types-Dve7Z0ZP.d.ts +389 -0
  268. package/dist/unalias-C9NqmSDq.js +1 -0
  269. package/dist/update-BTxYQj7Z.js +2 -0
  270. package/dist/upgrade-hA0yWBvx.js +2 -0
  271. package/dist/usage-BhqoCjvE.js +1 -0
  272. package/dist/usage-C4d9X2Uq.js +1 -0
  273. package/dist/watch-CSdj24ct.js +5 -0
  274. package/dist/watch-DtRuC0Wc.js +8 -0
  275. package/dist/wire-BeT1Axeo.js +1 -0
  276. package/dist/worker-CXndxmGF.js +9 -0
  277. package/dist/worker-DX7P9kWl.js +1 -0
  278. package/dist/workflow-Dcmdooi8.js +1 -0
  279. package/docs/agents/coder.md +26 -0
  280. package/docs/agents/index.md +120 -0
  281. package/docs/config.md +51 -30
  282. package/docs/dash.md +64 -0
  283. package/docs/flows.md +20 -15
  284. package/docs/mcp.md +62 -0
  285. package/docs/models.md +41 -23
  286. package/docs/review.md +41 -0
  287. package/docs/sdk.md +57 -38
  288. package/docs/self-host.md +188 -0
  289. package/migrations/0000_initial.sql +252 -0
  290. package/migrations/meta/0000_snapshot.json +1787 -0
  291. package/migrations/meta/_journal.json +13 -0
  292. package/package.json +37 -7
  293. package/plugins/agents/skills/coder/SKILL.md +14 -60
  294. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  295. package/plugins/claude/commands/setup.md +2 -2
  296. package/plugins/claude/skills/dispatch/SKILL.md +14 -58
  297. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  298. package/plugins/cursor/README.md +5 -5
  299. package/plugins/cursor/assets/logo.png +0 -0
  300. package/plugins/cursor/skills/coder/SKILL.md +14 -59
  301. package/src/client/index.ts +573 -0
  302. package/src/client/types.ts +506 -0
  303. package/src/core/errors.ts +72 -0
  304. package/src/core/task/log-view.ts +173 -0
  305. package/src/server/auth/sign-in.ts +14 -0
  306. package/src/server/dash/api/load.ts +62 -0
  307. package/src/server/dash/api/types.ts +11 -0
  308. package/src/server/dash/app/connect/page.tsx +42 -0
  309. package/src/server/dash/app/dash/account/loading.tsx +11 -0
  310. package/src/server/dash/app/dash/account/notify.tsx +42 -0
  311. package/src/server/dash/app/dash/account/page.css +81 -0
  312. package/src/server/dash/app/dash/account/page.tsx +126 -0
  313. package/src/server/dash/app/dash/account/sign-out.tsx +24 -0
  314. package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +10 -0
  315. package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +143 -0
  316. package/src/server/dash/app/dash/agents/(list)/connect-apps.tsx +46 -0
  317. package/src/server/dash/app/dash/agents/(list)/loading.tsx +14 -0
  318. package/src/server/dash/app/dash/agents/(list)/page.css +72 -0
  319. package/src/server/dash/app/dash/agents/(list)/page.tsx +89 -0
  320. package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +135 -0
  321. package/src/server/dash/app/dash/agents/[slug]/(tabs)/loading.tsx +5 -0
  322. package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.css +21 -0
  323. package/src/server/dash/app/dash/agents/[slug]/(tabs)/page.tsx +173 -0
  324. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/loading.tsx +18 -0
  325. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.css +87 -0
  326. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.tsx +258 -0
  327. package/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/platform-actions.tsx +111 -0
  328. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.css +114 -0
  329. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/agent-settings-form.tsx +294 -0
  330. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/loading.tsx +5 -0
  331. package/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.tsx +54 -0
  332. package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/loading.tsx +5 -0
  333. package/src/server/dash/app/dash/agents/[slug]/(tabs)/tasks/page.tsx +14 -0
  334. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/loading.tsx +31 -0
  335. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.css +12 -0
  336. package/src/server/dash/app/dash/agents/[slug]/(tabs)/usage/page.tsx +163 -0
  337. package/src/server/dash/app/dash/agents/[slug]/(tabs)/versions-list.tsx +53 -0
  338. package/src/server/dash/app/dash/agents/[slug]/edit/loading.tsx +31 -0
  339. package/src/server/dash/app/dash/agents/[slug]/edit/page.tsx +91 -0
  340. package/src/server/dash/app/dash/agents/agent/agent-pills.css +27 -0
  341. package/src/server/dash/app/dash/agents/agent/agent-pills.tsx +133 -0
  342. package/src/server/dash/app/dash/agents/agent/hero.css +40 -0
  343. package/src/server/dash/app/dash/agents/agent/hero.tsx +60 -0
  344. package/src/server/dash/app/dash/agents/agent/instructions.css +29 -0
  345. package/src/server/dash/app/dash/agents/agent/instructions.tsx +82 -0
  346. package/src/server/dash/app/dash/agents/editor/connect-repositories.ts +16 -0
  347. package/src/server/dash/app/dash/agents/editor/editor.css +263 -0
  348. package/src/server/dash/app/dash/agents/editor/editor.tsx +774 -0
  349. package/src/server/dash/app/dash/agents/editor/import-picker.css +48 -0
  350. package/src/server/dash/app/dash/agents/editor/import-picker.tsx +253 -0
  351. package/src/server/dash/app/dash/agents/editor/names.ts +35 -0
  352. package/src/server/dash/app/dash/agents/new/loading.tsx +25 -0
  353. package/src/server/dash/app/dash/agents/new/page.tsx +72 -0
  354. package/src/server/dash/app/dash/layout.css +265 -0
  355. package/src/server/dash/app/dash/layout.tsx +332 -0
  356. package/src/server/dash/app/dash/page.tsx +14 -0
  357. package/src/server/dash/app/dash/settings/[tab]/credentials-list.css +94 -0
  358. package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +619 -0
  359. package/src/server/dash/app/dash/settings/[tab]/credentials.tsx +36 -0
  360. package/src/server/dash/app/dash/settings/[tab]/engines-list.css +16 -0
  361. package/src/server/dash/app/dash/settings/[tab]/engines-list.tsx +135 -0
  362. package/src/server/dash/app/dash/settings/[tab]/list.css +98 -0
  363. package/src/server/dash/app/dash/settings/[tab]/list.tsx +215 -0
  364. package/src/server/dash/app/dash/settings/[tab]/loading.tsx +6 -0
  365. package/src/server/dash/app/dash/settings/[tab]/mcp-list.css +43 -0
  366. package/src/server/dash/app/dash/settings/[tab]/mcp-list.tsx +290 -0
  367. package/src/server/dash/app/dash/settings/[tab]/models-list.tsx +513 -0
  368. package/src/server/dash/app/dash/settings/[tab]/page.tsx +89 -0
  369. package/src/server/dash/app/dash/settings/[tab]/runners-list.css +153 -0
  370. package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +457 -0
  371. package/src/server/dash/app/dash/settings/layout.tsx +50 -0
  372. package/src/server/dash/app/dash/settings/model-options.ts +117 -0
  373. package/src/server/dash/app/dash/settings/page.tsx +7 -0
  374. package/src/server/dash/app/dash/settings/settings-head.tsx +24 -0
  375. package/src/server/dash/app/dash/settings/tunnel-guide.tsx +28 -0
  376. package/src/server/dash/app/dash/tasks/[id]/activity.tsx +202 -0
  377. package/src/server/dash/app/dash/tasks/[id]/loading.tsx +31 -0
  378. package/src/server/dash/app/dash/tasks/[id]/page.tsx +30 -0
  379. package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +164 -0
  380. package/src/server/dash/app/dash/tasks/[id]/task-view.css +407 -0
  381. package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +513 -0
  382. package/src/server/dash/app/dash/tasks/composer-data.ts +96 -0
  383. package/src/server/dash/app/dash/tasks/composer.css +316 -0
  384. package/src/server/dash/app/dash/tasks/composer.tsx +890 -0
  385. package/src/server/dash/app/dash/tasks/list/status.css +50 -0
  386. package/src/server/dash/app/dash/tasks/list/status.tsx +20 -0
  387. package/src/server/dash/app/dash/tasks/list/task.ts +45 -0
  388. package/src/server/dash/app/dash/tasks/list/tasks-list.css +85 -0
  389. package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +402 -0
  390. package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +96 -0
  391. package/src/server/dash/app/dash/tasks/page.tsx +53 -0
  392. package/src/server/dash/app/dash/token-from-hash.tsx +17 -0
  393. package/src/server/dash/app/dash/usage/custom-range.tsx +63 -0
  394. package/src/server/dash/app/dash/usage/day-chart.css +109 -0
  395. package/src/server/dash/app/dash/usage/day-chart.tsx +110 -0
  396. package/src/server/dash/app/dash/usage/loading.tsx +17 -0
  397. package/src/server/dash/app/dash/usage/metric.ts +13 -0
  398. package/src/server/dash/app/dash/usage/page.tsx +117 -0
  399. package/src/server/dash/app/dash/usage/range-bar.css +13 -0
  400. package/src/server/dash/app/dash/usage/range-bar.tsx +69 -0
  401. package/src/server/dash/app/dash/usage/stats.css +52 -0
  402. package/src/server/dash/app/dash/usage/stats.tsx +19 -0
  403. package/src/server/dash/app/dash/usage/top-agents.css +40 -0
  404. package/src/server/dash/app/dash/usage/top-agents.tsx +138 -0
  405. package/src/server/dash/app/dash/usage/usage.css +0 -0
  406. package/src/server/dash/app/globals.css +692 -0
  407. package/src/server/dash/app/layout.tsx +52 -0
  408. package/src/server/dash/app/login/page.css +26 -0
  409. package/src/server/dash/app/login/page.tsx +57 -0
  410. package/src/server/dash/app/page.tsx +5 -0
  411. package/src/server/dash/app/responsive.css +49 -0
  412. package/src/server/dash/app/zone.tsx +13 -0
  413. package/src/server/dash/comps/frame/auth-panel.css +60 -0
  414. package/src/server/dash/comps/frame/auth-panel.tsx +44 -0
  415. package/src/server/dash/comps/frame/drawer.css +28 -0
  416. package/src/server/dash/comps/frame/drawer.tsx +39 -0
  417. package/src/server/dash/comps/frame/heads.ts +41 -0
  418. package/src/server/dash/comps/frame/loading-card.tsx +65 -0
  419. package/src/server/dash/comps/frame/page-head.css +83 -0
  420. package/src/server/dash/comps/frame/page-head.tsx +71 -0
  421. package/src/server/dash/comps/frame/stream.tsx +50 -0
  422. package/src/server/dash/comps/frame/task-toasts.tsx +214 -0
  423. package/src/server/dash/comps/frame/theme-choices.tsx +46 -0
  424. package/src/server/dash/comps/nav/current-link.tsx +53 -0
  425. package/src/server/dash/comps/nav/side-toggle.tsx +30 -0
  426. package/src/server/dash/comps/nav/to.ts +22 -0
  427. package/src/server/dash/comps/ui/badge.css +64 -0
  428. package/src/server/dash/comps/ui/badge.tsx +41 -0
  429. package/src/server/dash/comps/ui/card.css +93 -0
  430. package/src/server/dash/comps/ui/card.tsx +77 -0
  431. package/src/server/dash/comps/ui/collapse.css +32 -0
  432. package/src/server/dash/comps/ui/collapse.tsx +49 -0
  433. package/src/server/dash/comps/ui/combo.tsx +154 -0
  434. package/src/server/dash/comps/ui/confirm.css +36 -0
  435. package/src/server/dash/comps/ui/confirm.tsx +67 -0
  436. package/src/server/dash/comps/ui/field.css +25 -0
  437. package/src/server/dash/comps/ui/field.tsx +34 -0
  438. package/src/server/dash/comps/ui/icon.css +22 -0
  439. package/src/server/dash/comps/ui/icon.tsx +17 -0
  440. package/src/server/dash/comps/ui/icons.ts +44 -0
  441. package/src/server/dash/comps/ui/menu.css +178 -0
  442. package/src/server/dash/comps/ui/menu.tsx +152 -0
  443. package/src/server/dash/comps/ui/segmented.css +44 -0
  444. package/src/server/dash/comps/ui/segmented.tsx +58 -0
  445. package/src/server/dash/comps/ui/select.css +103 -0
  446. package/src/server/dash/comps/ui/select.tsx +250 -0
  447. package/src/server/dash/comps/ui/sentinel.css +58 -0
  448. package/src/server/dash/comps/ui/sentinel.tsx +67 -0
  449. package/src/server/dash/comps/ui/tabs.css +81 -0
  450. package/src/server/dash/comps/ui/tabs.tsx +32 -0
  451. package/src/server/dash/comps/ui/tail.css +12 -0
  452. package/src/server/dash/comps/ui/tail.tsx +37 -0
  453. package/src/server/dash/comps/ui/toast.css +72 -0
  454. package/src/server/dash/comps/ui/toolbar.css +143 -0
  455. package/src/server/dash/comps/ui/toolbar.tsx +93 -0
  456. package/src/server/dash/package.json +5 -0
  457. package/src/server/dash/pnext-env.d.ts +4 -0
  458. package/src/server/dash/pnext.config.ts +5 -0
  459. package/src/server/dash/public/assets/apple-touch-icon.png +0 -0
  460. package/src/server/dash/public/assets/favicon.ico +0 -0
  461. package/src/server/dash/public/assets/favicon.svg +1 -0
  462. package/src/server/dash/public/assets/fonts/LICENSE-fira-code +93 -0
  463. package/src/server/dash/public/assets/fonts/fira-code-latin-400-normal-717ee080.woff2 +0 -0
  464. package/src/server/dash/public/assets/fonts/fira-code-latin-500-normal-530b6706.woff2 +0 -0
  465. package/src/server/dash/public/assets/fonts/fira-code-latin-700-normal-98730669.woff2 +0 -0
  466. package/src/server/dash/tsconfig.json +10 -0
  467. package/src/server/dash/utils/client.ts +19 -0
  468. package/src/server/dash/utils/format.ts +75 -0
  469. package/src/server/dash/utils/paged.ts +184 -0
  470. package/src/server/dash/utils/range.ts +117 -0
  471. package/dist/app-server-bHl6RBZ2.js +0 -3
  472. package/dist/runtime-X5Bgf1qH.js +0 -26
  473. package/dist/upgrade-piLxMgEv.js +0 -37
@@ -0,0 +1 @@
1
+ import{$2a as p}from"./shared-init-986901c810947c12.js";import{$1i as g,$1k as u}from"./shared-init-8f2ac936c95a7f7b.js";function L(){let c=u(null);return g(()=>{let r=c.current,e=r.nextElementSibling??r.parentElement.nextElementSibling,t=e.closest(".page"),h=()=>{let s=e.classList.contains("stuck"),o=e.offsetHeight;e.classList.toggle("stuck",!s);let n=e.offsetHeight;return e.classList.toggle("stuck",s),Math.max(0,s?n-o:o-n)},i,l=()=>{i?.disconnect();let s=56-h();i=new IntersectionObserver(([o])=>{let n=!o.isIntersecting&&o.boundingClientRect.top<s;if(n===e.classList.contains("stuck"))return;let d=e.offsetHeight;t&&(t.style.paddingBottom=`${d}px`),e.classList.toggle("stuck",n),e.style.marginBottom=n?`${d-e.offsetHeight}px`:"",t&&(t.style.paddingBottom="")},{rootMargin:`${-s}px 0px 0px 0px`}),i.observe(r)};l();let f=e.offsetWidth,a=new ResizeObserver(()=>{t?.style.setProperty("--head",`${e.offsetHeight}px`),e.offsetWidth!==f&&(f=e.offsetWidth,l())});return a.observe(e,{box:"border-box"}),()=>{i?.disconnect(),a.disconnect(),t?.style.removeProperty("--head")}},[]),p("i",{class:"sentinel",ref:c})}export{L as a};
@@ -0,0 +1 @@
1
+ var u={observedLocationKey:a()};function a(){return location.pathname+location.search}var L=[];function s(){return L.splice(0)}var w,$;function y(t){return/^[\u0000-\u0020]*javascript:/i.test(t)}function _(t){return y(t)?(w?w(t):window.dispatchEvent(new CustomEvent("pnext:blocked-javascript-url",{detail:t})),!0):!1}function o(t){let e;try{e=new URL(t,location.href)}catch{return null}return e.origin!==location.origin||$?.(e)?null:e}function m(t){let e=t.target;return e instanceof Element?e.closest("a[data-pnext-link]"):null}function c(t){if(t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return null;let e=m(t);if(!e||e.target&&e.target!=="_self"||e.hasAttribute("download"))return null;let n=e.getAttribute("data-pnext-blocked-href")??e.getAttribute("href");if(!n)return null;if(_(n))return t.preventDefault(),null;let r=e.getAttribute("data-pnext-replace")==="true",h=o(n);return h?{link:e,url:h,replace:r,scroll:e.getAttribute("data-pnext-scroll")!=="false"}:(r&&(t.preventDefault(),window.location.replace(n)),null)}var l=new Map;window.__PNEXT_REGISTER_ENTRY__=(t,e)=>{let n=b(t);l.has(n)||l.set(n,e)};function k(){return(window.__PNEXT_ROUTER_IMPORTS__??0)>0}function b(t){return new URL(t,location.href).href}var E;function p(t){return E??=import("./runtime-246221e985d863e5-1.js").then(async e=>(await Promise.all(s().map(n=>n())),e)),E.then(t)}function x(t,e){return p(n=>n.softNavigate(t,e))}function N(t,e){let n=o(t);if(!n){if(e?.strict)try{new URL(t,location.href)}catch{throw new Error(`Cannot prefetch '${t}' because it cannot be converted to a URL.`)}return Promise.resolve(null)}return p(r=>r.prefetchRoute(n.href,e))}var P=3e3,i=[],f=!1,R=!1,d;function g(t){let e=c(t);e&&(t.preventDefault(),i.push(e),d??=setTimeout(()=>{let n=i[0];n&&(location.href=n.url.href)},P),v())}function T(){f=!0,v()}function v(){return p(t=>{R||(R=!0,document.removeEventListener("click",g),window.removeEventListener("popstate",T),t.installRouterFull()),clearTimeout(d),d=void 0;let e=i;i=[];for(let n of e)t.commitLinkNavigation(n);f&&(f=!1,t.onPopState())})}function A(t){typeof requestIdleCallback=="function"?requestIdleCallback(()=>t(),{timeout:1e3}):setTimeout(t,1)}function U(){window.__PNEXT_ROUTER_INSTALLED__||(window.__PNEXT_ROUTER_INSTALLED__=!0,"scrollRestoration"in history&&(history.scrollRestoration="manual"),u.activeRouteKey=a(),document.addEventListener("click",g),window.addEventListener("popstate",T),A(()=>void v()))}export{x as $0a,N as $0b,U as $0c,u as $1a,a as $1b,s as $1c,_ as $1d,o as $1e,m as $1f,c as $1g,l as $1h,k as $1i,b as $1j};
@@ -0,0 +1 @@
1
+ var nt,b,Ot,ne,O,Nt,Lt,Ut,_t,Y,F,jt,ct,it,ut,re,K={},Q=[],oe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,rt=Array.isArray;function I(t,e){for(var n in e)t[n]=e[n];return t}function ft(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function E(t,e,n){var o,_,r,a={};for(r in e)r=="key"?o=e[r]:r=="ref"?_=e[r]:a[r]=e[r];if(arguments.length>2&&(a.children=arguments.length>3?nt.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(r in t.defaultProps)a[r]===void 0&&(a[r]=t.defaultProps[r]);return Z(t,a,o,_,null)}function Z(t,e,n,o,_){var r={type:t,props:e,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:_??++Ot,__i:-1,__u:0};return _==null&&b.vnode!=null&&b.vnode(r),r}function X(t){return t.children}function j(t,e){this.props=t,this.context=e}function W(t,e){if(e==null)return t.__?W(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?W(t):null}function _e(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,o=[],_=[],r=I({},e);r.__v=e.__v+1,b.vnode&&b.vnode(r),pt(t.__P,r,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,o,n??W(e),!!(32&e.__u),_),r.__v=e.__v,r.__.__k[r.__i]=r,Ft(o,r,_),e.__e=e.__=null,r.__e!=n&&Bt(r)}}function Bt(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),Bt(t)}function Ct(t){(!t.__d&&(t.__d=!0)&&O.push(t)&&!tt.__r++||Nt!=b.debounceRendering)&&((Nt=b.debounceRendering)||Lt)(tt)}function tt(){try{for(var t,e=1;O.length;)O.length>e&&O.sort(Ut),t=O.shift(),e=O.length,_e(t)}finally{O.length=tt.__r=0}}function Dt(t,e,n,o,_,r,a,p,m,s,v){var l,y,h,C,S,k,g,x=o&&o.__k||Q,H=e.length;for(m=le(n,e,x,m,H),l=0;l<H;l++)(h=n.__k[l])!=null&&(y=h.__i!=-1&&x[h.__i]||K,h.__i=l,k=pt(t,h,y,_,r,a,p,m,s,v),C=h.__e,h.ref&&y.ref!=h.ref&&(y.ref&&dt(y.ref,null,h),v.push(h.ref,h.__c||C,h)),S==null&&C!=null&&(S=C),(g=!!(4&h.__u))||y.__k===h.__k?(m=Wt(h,m,t,g),g&&y.__e&&(y.__e=null)):typeof h.type=="function"&&k!==void 0?m=k:C&&(m=C.nextSibling),h.__u&=-7);return n.__e=S,m}function le(t,e,n,o,_){var r,a,p,m,s,v=n.length,l=v,y=0;for(t.__k=new Array(_),r=0;r<_;r++)(a=e[r])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=t.__k[r]=Z(null,a,null,null,null):rt(a)?a=t.__k[r]=Z(X,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=t.__k[r]=Z(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[r]=a,m=r+y,a.__=t,a.__b=t.__b+1,p=null,(s=a.__i=ie(a,n,m,l))!=-1&&(l--,(p=n[s])&&(p.__u|=2)),p==null||p.__v==null?(s==-1&&(_>v?y--:_<v&&y++),typeof a.type!="function"&&(a.__u|=4)):s!=m&&(s==m-1?y--:s==m+1?y++:(s>m?y--:y++,a.__u|=4))):t.__k[r]=null;if(l)for(r=0;r<v;r++)(p=n[r])!=null&&(2&p.__u)==0&&(p.__e==o&&(o=W(p)),qt(p,p));return o}function Wt(t,e,n,o){var _,r;if(typeof t.type=="function"){for(_=t.__k,r=0;_&&r<_.length;r++)_[r]&&(_[r].__=t,e=Wt(_[r],e,n,o));return e}t.__e!=e&&(o&&(e&&t.type&&!e.parentNode&&(e=W(t)),n.insertBefore(t.__e,e||null)),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function ie(t,e,n,o){var _,r,a,p=t.key,m=t.type,s=e[n],v=s!=null&&(2&s.__u)==0;if(s===null&&p==null||v&&p==s.key&&m==s.type)return n;if(o>(v?1:0)){for(_=n-1,r=n+1;_>=0||r<e.length;)if((s=e[a=_>=0?_--:r++])!=null&&(2&s.__u)==0&&p==s.key&&m==s.type)return a}return-1}function Et(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||oe.test(e)?n:n+"px"}function V(t,e,n,o,_){var r,a;t:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof o=="string"&&(t.style.cssText=o=""),o)for(e in o)n&&e in n||Et(t.style,e,"");if(n)for(e in n)o&&n[e]==o[e]||Et(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")r=e!=(e=e.replace(jt,"$1")),a=e.toLowerCase(),e=a in t||e=="onFocusOut"||e=="onFocusIn"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?o?n[F]=o[F]:(n[F]=ct,t.addEventListener(e,r?ut:it,r)):t.removeEventListener(e,r?ut:it,r);else{if(_=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break t}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function St(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[Y]==null)e[Y]=ct++;else if(e[Y]<n[F])return;return n(b.event?b.event(e):e)}}}function pt(t,e,n,o,_,r,a,p,m,s){var v,l,y,h,C,S,k,g,x,H,T,A,z,U,D,P=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(m=!!(32&n.__u),r=[p=e.__e=n.__e]),(v=b.__b)&&v(e);t:if(typeof P=="function")try{if(g=e.props,x=P.prototype&&P.prototype.render,H=(v=P.contextType)&&o[v.__c],T=v?H?H.props.value:v.__:o,n.__c?k=(l=e.__c=n.__c).__=l.__E:(x?e.__c=l=new P(g,T):(e.__c=l=new j(g,T),l.constructor=P,l.render=ae),H&&H.sub(l),l.state||(l.state={}),l.__n=o,y=l.__d=!0,l.__h=[],l._sb=[]),x&&l.__s==null&&(l.__s=l.state),x&&P.getDerivedStateFromProps!=null&&(l.__s==l.state&&(l.__s=I({},l.__s)),I(l.__s,P.getDerivedStateFromProps(g,l.__s))),h=l.props,C=l.state,l.__v=e,y)x&&P.getDerivedStateFromProps==null&&l.componentWillMount!=null&&l.componentWillMount(),x&&l.componentDidMount!=null&&l.__h.push(l.componentDidMount);else{if(x&&P.getDerivedStateFromProps==null&&g!==h&&l.componentWillReceiveProps!=null&&l.componentWillReceiveProps(g,T),e.__v==n.__v||!l.__e&&l.shouldComponentUpdate!=null&&l.shouldComponentUpdate(g,l.__s,T)===!1){e.__v!=n.__v&&(l.props=g,l.state=l.__s,l.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(M){M&&(M.__=e)}),Q.push.apply(l.__h,l._sb),l._sb=[],l.__h.length&&a.push(l);break t}l.componentWillUpdate!=null&&l.componentWillUpdate(g,l.__s,T),x&&l.componentDidUpdate!=null&&l.__h.push(function(){l.componentDidUpdate(h,C,S)})}if(l.context=T,l.props=g,l.__P=t,l.__e=!1,A=b.__r,z=0,x)l.state=l.__s,l.__d=!1,A&&A(e),v=l.render(l.props,l.state,l.context),Q.push.apply(l.__h,l._sb),l._sb=[];else do l.__d=!1,A&&A(e),v=l.render(l.props,l.state,l.context),l.state=l.__s;while(l.__d&&++z<25);l.state=l.__s,l.getChildContext!=null&&(o=I(I({},o),l.getChildContext())),x&&!y&&l.getSnapshotBeforeUpdate!=null&&(S=l.getSnapshotBeforeUpdate(h,C)),U=v!=null&&v.type===X&&v.key==null?Xt(v.props.children):v,p=Dt(t,rt(U)?U:[U],e,n,o,_,r,a,p,m,s),l.base=e.__e,e.__u&=-161,l.__h.length&&a.push(l),k&&(l.__E=l.__=null)}catch(M){if(e.__v=null,m||r!=null)if(M.then){for(e.__u|=m?160:128;p&&p.nodeType==8&&p.nextSibling;)p=p.nextSibling;r[r.indexOf(p)]=null,e.__e=p}else{for(D=r.length;D--;)ft(r[D]);at(e)}else e.__e=n.__e,e.__k=n.__k,M.then||at(e);b.__e(M,e,n)}else r==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):p=e.__e=ue(n.__e,e,n,o,_,r,a,m,s);return(v=b.diffed)&&v(e),128&e.__u?void 0:p}function at(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(at))}function Ft(t,e,n){for(var o=0;o<n.length;o++)dt(n[o],n[++o],n[++o]);b.__c&&b.__c(e,t),t.some(function(_){try{t=_.__h,_.__h=[],t.some(function(r){r.call(_)})}catch(r){b.__e(r,_.__v)}})}function Xt(t){return typeof t!="object"||t==null||t.__b>0?t:rt(t)?t.map(Xt):t.constructor!==void 0?null:I({},t)}function ue(t,e,n,o,_,r,a,p,m){var s,v,l,y,h,C,S,k=n.props||K,g=e.props,x=e.type;if(x=="svg"?_="http://www.w3.org/2000/svg":x=="math"?_="http://www.w3.org/1998/Math/MathML":_||(_="http://www.w3.org/1999/xhtml"),r!=null){for(s=0;s<r.length;s++)if((h=r[s])&&"setAttribute"in h==!!x&&(x?h.localName==x:h.nodeType==3)){t=h,r[s]=null;break}}if(t==null){if(x==null)return document.createTextNode(g);t=document.createElementNS(_,x,g.is&&g),p&&(b.__m&&b.__m(e,r),p=!1),r=null}if(x==null)k===g||p&&t.data==g||(t.data=g);else{if(r=x=="textarea"&&g.defaultValue!=null?null:r&&nt.call(t.childNodes),!p&&r!=null)for(k={},s=0;s<t.attributes.length;s++)k[(h=t.attributes[s]).name]=h.value;for(s in k)h=k[s],s=="dangerouslySetInnerHTML"?l=h:s=="children"||s in g||s=="value"&&"defaultValue"in g||s=="checked"&&"defaultChecked"in g||V(t,s,null,h,_);for(s in g)h=g[s],s=="children"?y=h:s=="dangerouslySetInnerHTML"?v=h:s=="value"?C=h:s=="checked"?S=h:p&&typeof h!="function"||k[s]===h||V(t,s,h,k[s],_);if(v)p||l&&(v.__html==l.__html||v.__html==t.innerHTML)||(t.innerHTML=v.__html),e.__k=[];else if(l&&(t.innerHTML=""),Dt(e.type=="template"?t.content:t,rt(y)?y:[y],e,n,o,x=="foreignObject"?"http://www.w3.org/1999/xhtml":_,r,a,r?r[0]:n.__k&&W(n,0),p,m),r!=null)for(s=r.length;s--;)ft(r[s]);p&&x!="textarea"||(s="value",x=="progress"&&C==null?t.removeAttribute("value"):C!=null&&(C!==t[s]||x=="progress"&&!C||x=="option"&&C!=k[s])&&V(t,s,C,k[s],_),s="checked",S!=null&&S!=t[s]&&V(t,s,S,k[s],_))}return t}function dt(t,e,n){try{if(typeof t=="function"){var o=typeof t.__u=="function";o&&t.__u(),o&&e==null||(t.__u=t(e))}else t.current=e}catch(_){b.__e(_,n)}}function qt(t,e,n){var o,_;if(b.unmount&&b.unmount(t),(o=t.ref)&&(o.current&&o.current!=t.__e||dt(o,null,e)),(o=t.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){b.__e(r,e)}o.base=o.__P=null}if(o=t.__k)for(_=0;_<o.length;_++)o[_]&&qt(o[_],e,n||typeof t.type!="function");n||ft(t.__e),t.__c=t.__=t.__e=void 0}function ae(t,e,n){return this.constructor(t,n)}function L(t,e,n){var o,_,r,a;e==document&&(e=document.documentElement),b.__&&b.__(t,e),_=(o=typeof n=="function")?null:n&&n.__k||e.__k,r=[],a=[],pt(e,t=(!o&&n||e).__k=E(X,null,[t]),_||K,K,e.namespaceURI,!o&&n?[n]:_?null:e.firstChild?nt.call(e.childNodes):null,r,!o&&n?n:_?_.__e:e.firstChild,o,a),Ft(r,t,a)}function ot(t,e){L(t,e,ot)}nt=Q.slice,b={__e:function(t,e,n,o){for(var _,r,a;e=e.__;)if((_=e.__c)&&!_.__)try{if((r=_.constructor)&&r.getDerivedStateFromError!=null&&(_.setState(r.getDerivedStateFromError(t)),a=_.__d),_.componentDidCatch!=null&&(_.componentDidCatch(t,o||{}),a=_.__d),a)return _.__E=_}catch(p){t=p}throw t}},Ot=0,ne=function(t){return t!=null&&t.constructor===void 0},j.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=I({},this.state),typeof t=="function"&&(t=t(I({},n),this.props)),t&&I(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),Ct(this))},j.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Ct(this))},j.prototype.render=X,O=[],Lt=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ut=function(t,e){return t.__v.__b-e.__v.__b},tt.__r=0,_t=Math.random().toString(8),Y="__d"+_t,F="__a"+_t,jt=/(PointerCapture)$|Capture$/i,ct=0,it=St(!1),ut=St(!0),re=0;var B,w,lt,At,et=0,zt=[],N=b,Pt=N.__b,Tt=N.__r,$t=N.diffed,Ht=N.__c,Rt=N.unmount,It=N.__;function q(t,e){N.__h&&N.__h(w,t,et||e),et=0;var n=w.__H||(w.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function se(t){return et=1,Gt(Yt,t)}function Gt(t,e,n){var o=q(B++,2);if(o.t=t,!o.__c&&(o.__=[n?n(e):Yt(void 0,e),function(p){var m=o.__N?o.__N[0]:o.__[0],s=o.t(m,p);m!==s&&(o.__N=[s,o.__[1]],o.__c.setState({}))}],o.__c=w,!w.__f)){var _=function(p,m,s){if(!o.__c.__H)return!0;var v=o.__c.__H.__.filter(function(y){return y.__c});if(v.every(function(y){return!y.__N}))return!r||r.call(this,p,m,s);var l=o.__c.props!==p;return v.some(function(y){if(y.__N){var h=y.__[0];y.__=y.__N,y.__N=void 0,h!==y.__[0]&&(l=!0)}}),r&&r.call(this,p,m,s)||l};w.__f=!0;var r=w.shouldComponentUpdate,a=w.componentWillUpdate;w.componentWillUpdate=function(p,m,s){if(this.__e){var v=r;r=void 0,_(p,m,s),r=v}a&&a.call(this,p,m,s)},w.shouldComponentUpdate=_}return o.__N||o.__}function ht(t,e){var n=q(B++,3);!N.__s&&mt(n.__H,e)&&(n.__=t,n.u=e,w.__H.__h.push(n))}function ce(t,e){var n=q(B++,4);!N.__s&&mt(n.__H,e)&&(n.__=t,n.u=e,w.__h.push(n))}function fe(t){return et=5,Vt(function(){return{current:t}},[])}function Vt(t,e){var n=q(B++,7);return mt(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function pe(){var t=q(B++,11);if(!t.__){for(var e=w.__v;e!==null&&!e.__m&&e.__!==null;)e=e.__;var n=e.__m||(e.__m=[0,0]);t.__="P"+n[0]+"-"+n[1]++}return t.__}function de(){for(var t;t=zt.shift();){var e=t.__H;if(t.__P&&e)try{e.__h.some(J),e.__h.some(st),e.__h=[]}catch(n){e.__h=[],N.__e(n,t.__v)}}}N.__b=function(t){w=null,Pt&&Pt(t)},N.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),It&&It(t,e)},N.__r=function(t){Tt&&Tt(t),B=0;var e=(w=t.__c).__H;e&&(lt===w?(e.__h=[],w.__h=[],e.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.some(J),e.__h.some(st),e.__h=[],B=0)),lt=w},N.diffed=function(t){$t&&$t(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(zt.push(e)!==1&&At===N.requestAnimationFrame||((At=N.requestAnimationFrame)||he)(de)),e.__H.__.some(function(n){n.u&&(n.__H=n.u),n.u=void 0})),lt=w=null},N.__c=function(t,e){e.some(function(n){try{n.__h.some(J),n.__h=n.__h.filter(function(o){return!o.__||st(o)})}catch(o){e.some(function(_){_.__h&&(_.__h=[])}),e=[],N.__e(o,n.__v)}}),Ht&&Ht(t,e)},N.unmount=function(t){Rt&&Rt(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.some(function(o){try{J(o)}catch(_){e=_}}),n.__H=void 0,e&&N.__e(e,n.__v))};var Mt=typeof requestAnimationFrame=="function";function he(t){var e,n=function(){clearTimeout(o),Mt&&cancelAnimationFrame(e),setTimeout(t)},o=setTimeout(n,35);Mt&&(e=requestAnimationFrame(n))}function J(t){var e=w,n=t.__c;typeof n=="function"&&(t.__c=void 0,n()),w=e}function st(t){var e=w;t.__c=t.__(),w=e}function mt(t,e){return!t||t.length!==e.length||e.some(function(n,o){return n!==t[o]})}function Yt(t,e){return typeof e=="function"?e(t):e}var me="$$pnext_typed_array",ve="$$pnext_array_buffer",ye="$$pnext_ref",xt="__pnextPromise",ge="$$pnextErrorReset";function xe(t,e){if(t===null||typeof t!="object")return t;let n=o=>{for(let _ of Object.keys(o)){let r=o[_];if(r===null||typeof r!="object"||ArrayBuffer.isView(r))continue;let a=r,p=Ce(t,a)??e?.(a)??Ne(a)??be(a);if(p!==void 0){o[_]=p;continue}n(a)}};return n(t),t}function be(t){return t[ge]===!0?we:void 0}function we(){location.reload()}function ke(t){let e=globalThis[t];return typeof e=="function"&&"BYTES_PER_ELEMENT"in e?e:void 0}function Zt(t){return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}function Ne(t){let e=t[ve];if(typeof e=="string")return Zt(e).buffer;let n=t[me];if(n===null||typeof n!="object")return;let{type:o,data:_}=n;if(typeof o!="string"||typeof _!="string")return;let r=ke(o);return r?new r(Zt(_).buffer):void 0}function Ce(t,e){let n=e[ye];if(!Array.isArray(n))return;let o=t;for(let _ of n){if(o===null||typeof o!="object")return;o=o[String(_)]}return o}function Ee(t){return t.includes(xt)}function Se(t,e){return bt(t,new Set,e)}var Ae=new Set(["params","searchParams"]);function bt(t,e,n,o){if(t===null||typeof t!="object"||e.has(t))return t;if(xt in t){let r=t[xt],a=Pe(r);return!n||!o||!Ae.has(o)||r===null||typeof r!="object"?a:n(a,o,r)}if(e.add(t),Array.isArray(t)){for(let r=0;r<t.length;r++)t[r]=bt(t[r],e,n);return t}if(Object.getPrototypeOf(t)!==Object.prototype)return t;let _=t;for(let r of Object.keys(_))_[r]=bt(_[r],e,n,r);return t}function Pe(t){let e=Promise.resolve(t);return e.status="fulfilled",e.value=t,e}var Jt="data-pnext-static-slot",Kt="$$pnext_slot";function Te(t){return t.includes(Kt)}async function $e(t,e,n,o){return await Qt(t,e,n,o,new Set)}async function Qt(t,e,n,o,_){if(t===null||typeof t!="object"||_.has(t))return t;let r=t[Kt];if(typeof r=="string"){let m=e.querySelector(`[${Jt}="${He(r)}"]`);return m?o("pnext-static-slot",{[Jt]:r,style:{display:"contents"}},await n(m)):null}let a=Object.getPrototypeOf(t);if(!Array.isArray(t)&&a!==Object.prototype&&a!==null)return t;_.add(t);let p=t;for(let m of Object.keys(p))p[m]=await Qt(p[m],e,n,o,_);return t}function He(t){return t.replace(/["\\]/g,"\\$&")}function Re(t,e){let n=e.__pnextMask??=[e.getAttribute("data-pnext-id"),0];Object.defineProperty(t,"__m",{enumerable:!0,get(){return(this.__c||this).__pnextMask??=n}})}function vt(t,e,n,o,_){let r=o!==void 0?t(e,n,o):t(e,n);return Re(r,_),r}function yt(t,e,n,o){let _=Ie(t);return Te(t)?$e(_,e,n,o):_}function Ie(t){let e=JSON.parse(t||"{}"),n=xe(e);return Ee(t||"")?Se(n):n}function Me(t){let e=t.getAttribute("data-pnext-error-message")??"",n=t.getAttribute("data-pnext-error-digest");return E(function(){let o=new Error(e);throw n&&(o.digest=n),o},null)}function gt(t){let e={};for(let n of t.attributes)e[n.name]=n.value;return e}function Oe(t){return t.parentElement?.closest("pnext-client")}var Le=class extends j{componentDidMount(){this.base&&(this.base.__pnextHole=this)}componentWillUnmount(){this.base&&this.base.__pnextHole===this&&(this.base.__pnextHole=void 0)}componentWillReceiveProps(t){t.children!==this.props.children&&this.setState({adopted:void 0})}render(t,e){return E("pnext-hole",t.attrs,e.adopted!==void 0?e.adopted:t.children)}};function Ue(t){let e=t;for(;e.parentElement&&getComputedStyle(e).display==="contents";)e=e.parentElement;return e}async function je(t,e){let n=t.__pnextMounting;if(n&&(await n,t.__pnextLive&&!t.__pnextIncoming))return;let o=e();t.__pnextMounting=o;try{await o}finally{t.__pnextMounting===o&&(t.__pnextMounting=void 0)}}function Be(){if(typeof customElements>"u"||window.__PNEXT_HOST_MEASURE__)return;window.__PNEXT_HOST_MEASURE__=!0;let t=_=>_.style.display==="contents"||getComputedStyle(_).display==="contents"?_.parentElement:null;class e extends HTMLElement{getBoundingClientRect(){let r=t(this);return r?r.getBoundingClientRect():super.getBoundingClientRect()}getClientRects(){let r=t(this);return r?r.getClientRects():super.getClientRects()}}for(let _ of["clientWidth","clientHeight","offsetWidth","offsetHeight","offsetTop","offsetLeft"])Object.defineProperty(e.prototype,_,{configurable:!0,get(){let r=t(this);return r?r[_]:0}});for(let _ of["pnext-client","pnext-dynamic","pnext-static-children"])customElements.get(_)||customElements.define(_,class extends e{});let n=_=>_ instanceof e?t(_)??_:_,o=window.ResizeObserver;o&&(window.ResizeObserver=class extends o{observe(_,r){super.observe(n(_),r)}unobserve(_){super.unobserve(n(_))}})}Be();function De(t,e){if(!e)return!1;for(let n of e)if(t===n||n instanceof Node&&t.contains&&t.contains(n))return!0;return!1}function We(t){let e=t.islands??[],n=t.Page,o=t.shell,_=new Set,r,a,p;function m(i,u){let f=i.getAttribute&&i.getAttribute("data-pnext-ssr-failed")!=null;(i.hasChildNodes()&&!f?ot:L)(u,i),i.__pnextLive=L,_.add(i)}let s=new Map(e.map(i=>[i.id,i]));function v(i,u){if(i.moveBefore&&i.isConnected&&u.isConnected)try{i.moveBefore(u,null);return}catch{}i.append(u)}function l(i,u){let f=i.__pnextCaptured;if(f){if(i.__pnextCaptured=void 0,u)for(let c of[...f.childNodes])v(u,c);f.remove()}}function y(i){for(let u of i.querySelectorAll("img[loading=lazy]"))if(!(u.complete||u.currentSrc))for(let f of["src","srcset"]){let c=u.getAttribute(f);c!==null&&(u.removeAttribute(f),u.setAttribute(f,c))}}async function h(i){let u=i.__pnextAdopting;if(u)return u;let f=i.__pnextHole;if(!f)return l(i,i);let c=(async()=>{let d=i.__pnextCaptured,$=await A(d??i);l(i),i.replaceChildren(),f.setState({adopted:$??null},()=>y(i))})();i.__pnextAdopting=c;try{await c}finally{i.__pnextAdopting===c&&(i.__pnextAdopting=void 0)}}async function C(i,u){let f;for(let c=i.parentElement;c&&c!==u;c=c.parentElement)if(c.localName==="pnext-hole"){if(c.__pnextHole){f=c;break}f??=c}if(f&&!f.__pnextHole&&!f.__pnextCaptured&&u.__pnextMounting){let c=document.createElement("pnext-hole-capture");c.hidden=!0,document.body.append(c),f.__pnextCaptured=c;for(let d of[...f.childNodes])v(c,d)}if(await u.__pnextMounting?.catch(()=>{}),!(!f||!f.__pnextCaptured&&!i.isConnected))return h(f)}function S(){let i=[],u=0;for(let f of e)for(let c of document.querySelectorAll(`[data-pnext-client="${f.id}"]`)){if(c.closest("[data-pnext-stream]"))continue;let d=Oe(c);if(d){i.push(C(c,d));continue}if(!(c.__pnextLive&&!c.__pnextIncoming)){if(u+=1,f.load&&f.options?.load==="visible"&&!c.__pnextIncoming){H(c,f);continue}i.push(k(c,f))}}return{mounted:u,done:Promise.all(i)}}function k(i,u){return je(i,()=>x(i,u))}async function g(i){return i.Component??await i.load()}async function x(i,u){let f=await g(u),c=i.getAttribute("data-pnext-props")??"{}",d=i.__pnextIncoming;i.__pnextIncoming=void 0;let $=i.__pnextStreamGrafted;if(i.__pnextStreamGrafted=void 0,d&&i.__pnextLive===L&&!$){if(d!==i){let G=vt(E,f,await yt(c,d,A,E),await T(d,u.id),i);L(G,i)}_.add(i);return}d&&(i.replaceChildren(...d.childNodes),i.__pnextLive=void 0,i.__pnextMask=[d.getAttribute("data-pnext-id"),0]);let R=vt(E,f,await yt(c,i,A,E),await T(i,u.id),i);m(i,R)}function H(i,u){if(typeof IntersectionObserver>"u"){k(i,u);return}let f=new IntersectionObserver(c=>{c.some(d=>d.isIntersecting)&&(f.disconnect(),k(i,u))},u.options);f.observe(Ue(i))}async function T(i,u){let f=i.querySelector(`[data-pnext-static-children="${u}"]`);if(!f)return;let c=f.localName==="template",d=c?f.content:f;c&&window.__PNEXT_MATERIALIZE_CLIENT_ISLANDS__&&window.__PNEXT_MATERIALIZE_CLIENT_ISLANDS__(d);let $=await A(d);if(n){let R=d.querySelector?.("#pnext-page");R?.parentNode&&R.replaceWith(...R.childNodes)}return c&&f.remove(),E("pnext-static-children",{"data-pnext-static-children":u,style:{display:"contents"}},$)}async function A(i){let u=(await Promise.all(Array.from(i.childNodes,z))).filter(f=>f!=null&&f!==!1);if(u.length!==0)return u.length===1?u[0]:u}async function z(i){if(i.nodeType===3)return i.textContent;if(i.nodeType!==1)return null;let u=i;if(u.localName==="pnext-boundary-error")return Me(u);if(u.localName==="pnext-hole")return E(Le,{attrs:gt(u)},await A(u));if(u.localName==="pnext-client"){let f=u.getAttribute("data-pnext-client"),c=f?s.get(f):void 0;if(!c)return E(u.localName,gt(u),await A(u));let d=u.getAttribute("data-pnext-props")??"{}",$=await T(u,c.id),R=await g(c);return vt(E,R,await yt(d,u,A,E),$,u)}return n&&u.id==="pnext-page"?E(n,D()):E(u.localName,gt(u),await A(u))}async function U(){await r,!document.getElementById("pnext-page")?.closest("pnext-client")&&P()}function D(){let i=window.__PNEXT_PROPS__??{},u=(f,c)=>{let d=Promise.resolve(c);return d.status="fulfilled",d.value=c,d};return{...i,params:u("params",i.params??{}),searchParams:u("searchParams",i.searchParams??Object.fromEntries(new URLSearchParams(location.search)))}}function P(){if(document.documentElement.hasAttribute("data-pnext-ssr-error"))return;let i=window.__PNEXT_CLIENT_PAGE_ROOT__;if(i&&_.has(i))return;let u=M();u&&(window.__PNEXT_CLIENT_PAGE_ROOT__=u,m(u,E(n,D())))}function M(){let i=document.getElementById("pnext-page");if(!i||!i.parentNode||i.closest("pnext-client")||i.closest("pnext-layout[data-pnext-segment]"))return i;let u=i.parentNode,f="";for(let G of i.attributes)f+=" "+G.name+'="'+G.value+'"';let c=f.replace(/</g,"&lt;").replace(/>/g,"&gt;"),d=document.createComment("pnext-page:"+c),$=document.createComment("/pnext-page");for(u.insertBefore(d,i);i.firstChild;)u.insertBefore(i.firstChild,i);u.replaceChild($,i);let R=te(d,$,u);return R.__pnextAnchors=[d,$],R}function te(i,u,f){return{nodeType:1,namespaceURI:f.namespaceURI,get firstChild(){let c=i.nextSibling;return c===u?null:c},get childNodes(){let c=[];for(let d=i.nextSibling;d&&d!==u;d=d.nextSibling)c.push(d);return c},hasChildNodes(){return i.nextSibling!==u},insertBefore(c,d){return f.insertBefore(c,d??u)},appendChild(c){return f.insertBefore(c,u)},removeChild(c){return f.removeChild(c)},contains(c){for(let d=i.nextSibling;d&&d!==u;d=d.nextSibling)if(d===c||d.contains&&d.contains(c))return!0;return!1},closest(c){return f.closest?f.closest(c):null}}}function ee(){return e.length>0&&(a=S(),r=a.done.then(()=>a.mounted)),n&&(e.length>0?p=U():P()),window.__PNEXT_ACTIVE_ENTRY__={unmount:kt},r}function wt(){return e.length>0&&(a=S(),r=a.done.then(()=>a.mounted)),n&&(e.length>0?p=U():P()),r}window.__PNEXT_MOUNT_ISLANDS__=wt;function kt(i){for(let c of _)De(c,i)||(L(null,c),c.__pnextLive=void 0);let u=window.__PNEXT_CLIENT_PAGE_ROOT__,f=!1;if(u&&i)for(let c of i)c===u&&(f=!0);_.clear(),f&&_.add(u)}return{mountRoute:ee,remountRoute:wt,unmountRoute:kt}}function Fe(){return ht(()=>{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;t&&!document.cookie.includes(`tz=${encodeURIComponent(t)}`)&&(document.cookie=`tz=${encodeURIComponent(t)}; path=/; max-age=31536000; samesite=lax`)},[]),null}export{We as $0a,Fe as $0b,b as $1a,E as $1b,X as $1c,j as $1d,L as $1e,ot as $1f,se as $1g,Gt as $1h,ht as $1i,ce as $1j,fe as $1k,Vt as $1l,pe as $1m};
@@ -0,0 +1,5 @@
1
+ import{$1a as p}from"./shared-init-8f2ac936c95a7f7b.js";var v=0;function l(e,t,s,n,o,r){t||(t={});var a,d,h=t;if("ref"in h)for(d in h={},t)d=="ref"?a=t[d]:h[d]=t[d];var m={type:e,props:h,key:s,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--v,__i:-1,__u:0,__source:o,__self:r};if(typeof e=="function"&&(a=e.defaultProps))for(d in a)h[d]===void 0&&(h[d]=a[d]);return p.vnode&&p.vnode(m),m}function w({d:e,class:t}){return l("svg",{class:t?`ic ${t}`:"ic",viewBox:"0 0 24 24","aria-hidden":"true",children:l("path",{d:e})})}function k(){return l("svg",{class:"coder-mark",viewBox:"0 0 16 16","aria-hidden":"true",children:l("path",{d:"M5 0h3v3h-3zM9 0h3v3h-3zM13 0h3v3h-3zM0 4h3v3h-3zM0 9h3v3h-3zM5 13h3v3h-3zM9 13h3v3h-3zM13 13h3v3h-3z"})})}var c=class extends Error{code;hint;taskId;payload;approval;result;runId;status;constructor(e,t,s={}){super(t),this.name="CoderError",this.code=e,Object.assign(this,s)}},$=class extends c{constructor(e,t,s="",n){super("server",t,{status:e,...n?{hint:n}:{}}),this.authenticate=s}};function q(e){try{let t=new URL(e).hostname.toLowerCase();return t==="localhost"||t==="[::1]"||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function C(e){let t;try{t=new URL(e)}catch{throw new c("invalid-option","Give the server as a URL, e.g. https://agents.example.com.")}if(t.protocol!=="https:"&&!(t.protocol==="http:"&&q(t.origin)))throw new c("invalid-option","Coder servers require HTTPS unless they are loopback.",{hint:"Use https://, or http://localhost for a local server."});if(t.username||t.password||t.search||t.hash)throw new c("invalid-option","The server must be an origin without credentials, query, or fragment.");return t.toString().replace(/\/+$/,"")}var u=(e,t,s)=>`/admin/credentials/${encodeURIComponent(e)}${t}${s?"?workspace":""}`,i=(e,t)=>{let s=new URLSearchParams;"cursor"in t&&typeof t.cursor=="string"&&s.set("cursor",t.cursor);for(let[n,o]of Object.entries(t))n!=="cursor"&&o!==void 0&&o!==!1&&o!==""&&s.set(n,o===!0?"1":Array.isArray(o)?o.join(","):String(o));return`${e}?${s}`},U=new Set(["completed","failed","cancelled"]),y=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,s={}){if(this.cookie="cookie"in t,this.url=e?C(e):"",!this.cookie&&!this.url)throw new c("invalid-option","Bearer clients need a server URL.");this.token="token"in t?t.token:void 0,this.fetchImpl=s.fetch??((n,o)=>fetch(n,o)),this.organization=s.organization,this.renewal=s.renewal,this.onError=s.onError}request(e,t={}){let s=this.read(e,t);return s.catch(()=>{}),s}async read(e,t){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let s=await this.send(e,t);s.status===401&&this.renewal&&/invalid_token/.test(s.headers.get("www-authenticate")??"")&&(this.token=await this.renewal.renew(),s=await this.send(e,t));let n=await s.text().catch(()=>""),o={},r;try{n&&s.status!==204&&(o=JSON.parse(n))}catch{if(s.ok)throw new c("server",`The server answered ${s.status} with a body that is not JSON.`);this.cookie&&n&&(r=n)}if(!s.ok){let a=new $(s.status,o.error??o.message??r??`The server answered ${s.status}.`,s.headers.get("www-authenticate")??"",o.hint);throw this.onError?.(a),a}return o}send(e,t){let s=new Headers(t.headers);return t.body&&!s.has("content-type")&&s.set("content-type","application/json"),this.cookie||s.set("authorization",`Bearer ${this.token}`),this.organization&&s.set("x-coder-organization",this.organization),this.fetchImpl(`${this.url}${e}`,{...t,headers:s,...this.cookie?{credentials:"same-origin"}:{}}).catch(n=>{throw n instanceof c||n.name==="AbortError"?n:new c("server",this.url?`No Coder server answers at ${this.url}: ${n.message}`:"The server did not answer. Check the connection and try again.")})}post(e,t){return this.request(e,{method:"POST",...t!==void 0?{body:JSON.stringify(t)}:{}})}me(){return this.request("/me")}info(){return this.request("/api/auth/capabilities")}linkAccount(e){return this.post("/connect",{token:e})}signOut(){return this.post("/api/auth/sign-out",{})}agents={list:e=>this.request(i("/admin/agents",{...e,...e?.connect?{connect:1}:{}})),get:(e,t)=>this.request(i(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{}})),versions:(e,t={})=>this.request(i(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"DELETE"}),preview:(e,t)=>this.request(i("/admin/agents/import",{repo:e,ref:t})),version:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/versions/${t}`),put:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(t)}).then(s=>({id:e,version:s.version,unchanged:s.unchanged})),settings:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/settings`,{method:"PATCH",body:JSON.stringify(t)}),import:(e,t,s)=>this.post("/admin/agents/import",{repo:e,ref:t,...s?{agents:s}:{}})};folders={list:()=>this.request("/admin/folders"),check:e=>this.post("/admin/folders/check",{path:e}),clone:e=>this.post("/admin/folders/clone",{url:e}),pick:()=>this.post("/admin/folders/pick",{})};tasks={run:e=>this.post("/admin/tasks",e),list:e=>this.request(i("/admin/tasks",{limit:20,...e,...e?.archived?{archived:1}:{},...e?.summary?{summary:1}:{},...e?.counts?{counts:1}:{}})),get:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`),logs:(e,t=-1,s)=>this.request(i(`/admin/tasks/${encodeURIComponent(e)}/logs`,{after:t,limit:s})),stream:(e,t=-1,s)=>this.send(`/admin/tasks/${encodeURIComponent(e)}/stream?after=${t}`,{headers:{accept:"text/event-stream"},signal:s}),cancel:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/cancel`),steer:(e,t)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t}),ask:(e,t)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/ask`,{question:t}),approve:(e,t,s)=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:s}),archive:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/archive`),delete:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`,{method:"DELETE"}),create:e=>this.post("/admin/tasks",e),continue:(e,t,s={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/continue`,{text:t,...s}),wait:async(e,t={})=>{let s=-1;for(;;){let n=await this.tasks.stream(e,s);if(!n.ok||!n.body){let r=await this.tasks.get(e);if(U.has(r.status))return r;if(n.status===401)continue;throw new c("server",`The task stream answered ${n.status}.`)}let o=!1;for await(let r of g(n.body))if(r.event==="log"){let a=JSON.parse(r.data);s=a.seq,t.onLog?.(a)}else r.event==="end"&&(o=!0);if(o)return this.tasks.get(e)}}};credentials={list:e=>this.request(i("/admin/credentials",e??{})),add:e=>this.post("/admin/credentials",e),remove:(e,{workspace:t}={})=>this.request(u(e,"",t),{method:"DELETE"}),setDefault:(e,{workspace:t}={})=>this.post(u(e,"/default",t)),login:e=>this.post("/admin/logins",{engine:e}),loginStatus:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`),loginCode:(e,t)=>this.post(`/admin/logins/${encodeURIComponent(e)}`,{code:t}),cancelLogin:e=>this.request(`/admin/logins/${encodeURIComponent(e)}`,{method:"DELETE"})};runners={list:()=>this.request("/admin/runners"),add:e=>this.post("/admin/runners",e),pair:e=>this.post("/admin/runners/pair",e),update:(e,t)=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),test:e=>this.post(`/admin/runners/${encodeURIComponent(e)}/test`,{}),remove:e=>this.request(`/admin/runners/${encodeURIComponent(e)}`,{method:"DELETE"})};integrations={list:()=>this.request("/admin/integrations")};repositories={list:()=>this.request("/admin/repositories")};engines={status:()=>this.request("/admin/engines/status"),login:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/login`,{}),logout:e=>this.post(`/admin/engines/${encodeURIComponent(e)}/logout`,{})};apps={list:e=>this.request(i("/admin/apps",{agent:e})),install:(e,t)=>this.post(i(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t}))};installations={list:e=>this.request(i("/admin/installations",{agent:e}))};connections={add:e=>this.post("/admin/connections",e)};config={get:()=>this.request("/admin/config"),put:e=>this.request("/admin/config",{method:"PUT",body:JSON.stringify(e)}),patch:e=>this.request("/admin/config",{method:"PATCH",headers:{"content-type":"application/merge-patch+json"},body:JSON.stringify(e)})};models={list:()=>this.request("/admin/models"),add:e=>this.post("/admin/models",e),probe:e=>this.post("/admin/models/probe",e),remove:e=>this.request(`/admin/models/${encodeURIComponent(e)}`,{method:"DELETE"}),alias:(e,t)=>this.post(`/admin/models/${encodeURIComponent(e)}/alias`,{spec:t}),enable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/enable`),disable:e=>this.post(`/admin/models/${encodeURIComponent(e)}/disable`)};mcp={list:()=>this.request("/admin/mcp"),add:e=>this.post("/admin/mcp",e),remove:e=>this.request(`/admin/mcp/${encodeURIComponent(e)}`,{method:"DELETE"}),search:e=>this.request(i("/admin/mcp-registry",{q:e}))};flows={list:e=>this.request(i("/admin/flows",{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(i("/admin/pulls",{repo:e}))};review(e){return this.post("/admin/review",e)}usage(e={}){return this.request(i("/admin/usage/totals",{...e,since:e.since??Date.now()-10080*60*1e3}))}usageRows(e){return this.request(i("/admin/usage",{installation:e}))}};async function*g(e){let t=new TextDecoder,s="";for await(let n of e){s+=t.decode(n,{stream:!0});let o;for(;(o=s.indexOf(`
2
+
3
+ `))>=0;){let r=s.slice(0,o);s=s.slice(o+2);let a="message",d=[];for(let h of r.split(`
4
+ `))h.startsWith("event: ")?a=h.slice(7):h.startsWith("data: ")&&d.push(h.slice(6));d.length&&(yield{event:a,data:d.join(`
5
+ `)})}}}var f=new y("",{cookie:!0},{onError(e){e.status===401&&(e.authenticate||/^Sign in/.test(e.message))&&(location.href=`/login?return=${encodeURIComponent(location.pathname+location.search)}`)}});async function I(){let{url:e}=await f.signOut();location.href=e??"/?signed_out=1"}export{w as $0a,k as $0b,g as $1a,f as $1b,I as $1c,l as $2a};
@@ -0,0 +1,2 @@
1
+ function b(e,t={}){let r=fe(me(e,t.params??{})),a=ve(t.search),n=be(t.hash);return`${r}${a}${n}`}function pe(){return window.__PNEXT_TRAILING_SLASH__===!0}function I(){let e=window.__PNEXT_PREFETCH__;return e===void 0?"visible":e}function fe(e){let[,t="",r=""]=/^([^?#]*)([\s\S]*)$/.exec(e)??[];return t.startsWith("/")?pe()?t==="/"||t.endsWith("/")||/\.[^/]+$/.test(t)?e:`${t}/${r}`:t==="/"||!t.endsWith("/")||/\.[^/]+\/$/.test(t)?e:`${t.replace(/\/+$/,"")}${r}`:e}function me(e,t){let r=e.replace(/\[\[\.\.\.([^\]]+)\]\]/g,(a,n)=>C(t[n],!0)).replace(/\[\.\.\.([^\]]+)\]/g,(a,n)=>C(t[n],!0)).replace(/\[([^\]]+)\]/g,(a,n)=>C(t[n],!1));return we(r)}function we(e){return e.length<=1?e:e.replace(/\/+$/,"")||"/"}function C(e,t){if(Array.isArray(e)){let r=e.map(a=>encodeURIComponent(a));return t?r.join("/"):r[0]??""}return encodeURIComponent(e??"")}function ve(e){if(!e)return"";let t=(e instanceof URLSearchParams?e:ge(e)).toString();return t?`?${t}`:""}function ge(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e)){let n=Array.isArray(a)?a:[a];for(let s of n)s!=null&&t.append(r,String(s))}return t}function be(e){return e?e.startsWith("#")?e:`#${e}`:""}import{$1b as $e,$1i as Me,$1k as ye}from"./shared-init-8f2ac936c95a7f7b.js";function $({href:e,params:t,prefetch:r,replace:a,scroll:n,search:s,hash:i,onClick:l,onNavigate:p,onPrefetchStart:w,onPrefetchFinish:o,children:c,...f}){let m=b(e,{params:t??{},search:s,hash:i}),v=r??I(),P=ke(w,o);return $e("a",{...f,ref:P,href:m,"data-pnext-link":!0,"data-prefetch":v===!1?"false":v,"data-pnext-replace":a?"true":void 0,"data-pnext-scroll":n===!1?"false":void 0,onClick:he=>{let x=he;if(l?.(x),x.defaultPrevented||!p||!xe(x))return;let W=_e();p(W),W.defaultPrevented&&x.preventDefault()}},c)}function ke(e,t){let r=ye(null);return Me(()=>{let a=r.current;if(!a||!e&&!t)return;let n=()=>e?.(),s=()=>t?.();return a.addEventListener("pnext:prefetchstart",n),a.addEventListener("pnext:prefetchfinish",s),()=>{a.removeEventListener("pnext:prefetchstart",n),a.removeEventListener("pnext:prefetchfinish",s)}},[e,t]),r}function _e(){return{defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}}}function xe(e){return e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.currentTarget.target&&!e.currentTarget.download}import{f as Ee,i as Se,j as K,k as F}from"./wular-pnext-246221e985d863e5-0.js";import{$0a as Y,$0b as Le}from"./shared-init-246221e985d863e5-2.js";import{$1a as Pe,$1d as Ce}from"./shared-init-246221e985d863e5-2.js";import{$1a as Ie,$1g as G,$1i as Q}from"./shared-init-8f2ac936c95a7f7b.js";var E=class extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}},Te=class extends URLSearchParams{append(){throw new E}delete(){throw new E}set(){throw new E}sort(){throw new E}};Ee();function A(){return Ae}var Ae={push(e,...[t]){z(T(e,t),"push",t?.scroll)},replace(e,...[t]){z(T(e,t),"replace",t?.scroll)},prefetch(e,...[t]){Le(T(e,t),{strict:!0,full:t?.kind==="full",onInvalidate:t?.onInvalidate})},refresh(){Y(window.location.href,{replace:!0,scroll:!1})},back(){window.history.back()},forward(){window.history.forward()},get bfcacheId(){return je().bfcacheId??""}};function T(e,t){return He(t)?b(e,t):String(e)}function He(e){return!!(e&&("params"in e||"search"in e||"hash"in e))}function g(){return ee().pathname}function Re(){return new Te(ee().search)}function H(){let e=Ie,t=e.__h,r;e.__h=(s,...i)=>{r=s.__P,t?.(s,...i)};let[a,n]=G(!1);return e.__h=t,Q(()=>{let s=r?.closest("a[data-pnext-link]");if(!s)return;let i=s.__pnextHints??=new Set;return i.add(n),()=>i.delete(n)},[]),{pending:a}}function ee(){let e=X(),[,t]=G(()=>J(e));return Q(()=>{Oe();let r=()=>t(a=>{let n=J(X());return a===n?a:n});return K().add(r),r(),()=>K().delete(r)},[]),e}function J(e){return`${e.pathname}${e.search}${e.hash}`}function X(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function je(){let e=history.state??{},t=window.__PNEXT_ROUTE__??{},r=typeof e.__pnextBfcacheId=="string"?e.__pnextBfcacheId:void 0;return r?{...t,bfcacheId:r}:t}function z(e,t,r=!0){if(Ce(e))return;let a=new URL(e,window.location.href);if(a.origin!==window.location.origin){let n=globalThis;n.__pnextMpaNavigation=(n.__pnextMpaNavigation??0)+1,requestAnimationFrame(()=>requestAnimationFrame(()=>{t==="replace"?window.location.replace(a.href):window.location.assign(a.href)}));return}if(a.pathname!==window.location.pathname||a.search!==window.location.search){Y(a.href,{replace:t==="replace",scroll:r});return}t==="replace"?window.history.replaceState(history.state,"",a):window.history.pushState(history.state,"",a),Se(a,{scroll:r}),Pe.settleLink?.()}function Oe(){if(window.__PNEXT_HISTORY_PATCHED__)return;window.__PNEXT_HISTORY_PATCHED__=!0;let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history);function r(a){let n=window.history.state??{},s={};for(let l of Object.keys(n))l.startsWith("__pnext")&&(s[l]=n[l]);if(Object.keys(s).length===0)return a;let i=a??{};return Object.keys(i).some(l=>l.startsWith("__pnext"))?a:{...i,...s}}window.history.pushState=function(a,n,s){let i=window.location.href,l=e(r(a),n,s);return window.location.href!==i&&F(),l},window.history.replaceState=function(a,n,s){let i=window.location.href,l=t(r(a),n,s);return window.location.href!==i&&F(),l}}import{$1a as Ne,$1b as Ue}from"./shared-init-986901c810947c12.js";import{$2a as h}from"./shared-init-986901c810947c12.js";import{$1c as Ve,$1g as te,$1i as M,$1k as qe}from"./shared-init-8f2ac936c95a7f7b.js";function ne({status:e}){return h("span",{class:`st ${e}`,children:[h("i",{}),se[e]??e]})}var se={queued:"waiting for slot",running:"running",waiting:"needs approval",completed:"completed",failed:"failed",cancelled:"cancelled"},y="coder:watched",oe="coder:notify",S="coder:toast",R=new Set(["completed","failed","cancelled"]),Be=new Set([...R,"waiting"]),Ze=20,De=3,ae=3,We=8e3,Ke=2**31-1,L=()=>{try{return JSON.parse(localStorage.getItem(y)??"{}")??{}}catch{return{}}},ie=e=>{let t=Object.entries(e).sort(([,r],[,a])=>a.at-r.at).slice(0,Ze);localStorage.setItem(y,JSON.stringify(Object.fromEntries(t))),dispatchEvent(new Event(y))},Fe=(e,t)=>dispatchEvent(new CustomEvent(S,{detail:{title:e,line:t}}));function le(e,t,r){let a=L(),n=a[e];!n&&R.has(t)||n?.status===t&&(!r||n.title===r)||(a[e]={title:r||n?.title||e,status:t,at:n?.at??Date.now()},ie(a))}var re=e=>/^\/dash\/tasks\/([^/]+)$/.exec(e)?.[1];function Je(e){let t=n=>typeof n=="string"?n.trim().split(`
2
+ `)[0]:"",r=e.approval??{},a=typeof e.result=="object"?e.result?.output:e.result;return e.status==="waiting"?t(r.summary)||t(r.reason)||t(r.kind)||"It is waiting for your approval.":e.status==="completed"?t(a)||"It finished.":t(e.error)||(e.status==="failed"?"It failed.":"It was stopped.")}function Xe({id:e,onStatus:t}){return M(()=>{let r=new AbortController;return(async()=>{for(;!r.signal.aborted;){try{let a=await Ue.tasks.stream(e,Ke,r.signal);if(a.status===404){let n=L();return delete n[e],ie(n)}if(!a.ok||!a.body)return;for await(let n of Ne(a.body))if(n.event==="status")t(e,JSON.parse(n.data));else if(n.event==="end")return}catch{if(r.signal.aborted)return}await new Promise(a=>setTimeout(a,1e3))}})(),()=>r.abort()},[e]),null}function ze({toast:e,dismiss:t}){return M(()=>{let r=setTimeout(()=>t(e.key),We);return()=>clearTimeout(r)},[]),h("div",{class:e.id?"toast":"toast err",onClick:()=>t(e.key),children:[h("p",{class:"toast-head",children:[e.id?h($,{class:"cover",href:"/dash/tasks/[id]",params:{id:e.id},children:e.title}):h("span",{class:"cover",children:e.title}),e.status?h(ne,{status:e.status}):null]}),h("p",{class:"toast-line",children:e.line})]})}function Ye(){let e=g(),t=A(),[r,a]=te({}),[n,s]=te([]),i=qe(re(e));i.current=re(e),M(()=>{let o=()=>a(L());return o(),addEventListener(y,o),addEventListener("storage",o),()=>{removeEventListener(y,o),removeEventListener("storage",o)}},[]),M(()=>{let o=c=>{let{title:f,line:m}=c.detail;s(v=>[{key:`${S}:${Date.now()}`,title:f,line:m},...v].slice(0,ae))};return addEventListener(S,o),()=>removeEventListener(S,o)},[]),M(()=>{if(!n.length)return;let o=c=>c.key==="Escape"&&s([]);return addEventListener("keydown",o),()=>removeEventListener("keydown",o)},[n.length]);let l=o=>s(c=>c.filter(f=>f.key!==o)),p=(o,c)=>{let f=L()[o];if(!f||f.status===c.status||(le(o,c.status),!Be.has(c.status)||i.current===o))return;let m={key:`${o}:${Date.now()}`,id:o,title:f.title,status:c.status,line:Je(c)};if(s(P=>[m,...P].slice(0,ae)),localStorage.getItem(oe)!=="1"||typeof Notification>"u"||Notification.permission!=="granted")return;let v=new Notification(`${m.title} (${se[m.status]})`,{body:m.line,tag:o});v.onclick=()=>{focus(),t.push("/dash/tasks/[id]",{params:{id:o}})}},w=Object.entries(r).filter(([o,c])=>!R.has(c.status)&&o!==i.current).sort(([,o],[,c])=>c.at-o.at).slice(0,De);return h(Ve,{children:[w.map(([o])=>h(Xe,{id:o,onStatus:p},o)),h("section",{class:"toasts","aria-label":"Task updates","aria-live":"polite",children:n.map(o=>h(ze,{toast:o,dismiss:l},o.key))})]})}var Ge="M12 8V4H8M6 8h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2ZM2 14h2M20 14h2M15 13v2M9 13v2",Qe="M22 12h-4l-3 9L9 3l-3 9H2",et="M3 3v18h18M18 17V9M13 17V5M8 17v-3",j="m15 18-6-6 6-6",tt="m6 9 6 6 6-6",O="m9 18 6-6-6-6",N="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M6.3 17.7l-1.4 1.4M19.1 4.9l-1.4 1.4",U="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",V="M4 4h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM8 20h8M12 16v4",at="M2 15.5a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0M21 2l-9.6 9.6M15.5 7.5l3 3L22 7l-3-3",q="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9",rt="m12 3 1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9ZM19 3v4M17 5h4",nt="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2ZM10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0M14 13h3M7 13h3",B="M4 6h16M4 12h16M4 18h16",st="M18 6 6 18M6 6l12 12",k="M20 6 9 17l-5-5",ot="M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",it="M12 5v14M5 12h14",lt="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12Z",ct="M4 12h12M12 6l6 6-6 6",ut="M16 4h4v4M20 4l-7 7M4 20l6-6M16 20h4v-4M20 20l-5-5M4 4l5 5",dt="M4 11a7 7 0 1 0 14 0a7 7 0 1 0 -14 0M20 20l-3.5-3.5",ht="m21.7 18-8-14a2 2 0 0 0-3.4 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.7-3M12 9v4M12 17h.01",pt="m4 17 6-6-6-6M12 19h8",ft="M12 7v5l3 2M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",mt="M9 2v6M15 2v6M6 8h12v4a6 6 0 0 1-12 0ZM12 18v4",wt="M9 9h11v11H9ZM5 15H4V4h11v1",vt="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6";import{$0a as ce}from"./shared-init-986901c810947c12.js";import{$2a as u}from"./shared-init-986901c810947c12.js";import{$1c as gt,$1k as bt,$1m as ue}from"./shared-init-8f2ac936c95a7f7b.js";function $t({summary:e,summaryClass:t,label:r,align:a="right",wide:n,class:s,children:i}){let l=ue();return u("span",{class:`menu ${a}${s?` ${s}`:""}`,children:[u("button",{popovertarget:l,type:"button",class:t,"aria-label":r,title:r,children:e}),u("div",{id:l,class:n?"pop wide":"pop",popover:"auto",onBeforeToggle:p=>{if(p.newState!=="open")return;let w=p.currentTarget,o=w.parentElement?.querySelector("button")?.getBoundingClientRect();if(!o)return;let c=a==="up"?o.top-20:window.innerHeight-o.bottom-20;w.style.maxHeight=`${Math.max(120,Math.round(c))}px`},onClick:p=>{p.target.closest("a, button:not([data-keep])")&&p.currentTarget.hidePopover()},children:i})]})}function Mt({icon:e,title:t,sub:r,href:a,onClick:n,danger:s}){let i=u(gt,{children:[e?u(ce,{d:e}):null,u("span",{class:"grow",children:[t,r?u("small",{children:r}):null]})]}),l=`pop-item${r?" rich":""}${s?" danger":""}`;return a?u("a",{class:l,href:a,.../^https?:\/\//.test(a)?{target:"_blank",rel:"noreferrer"}:{},children:i}):u("button",{type:"button",class:l,onClick:n,children:i})}function yt({label:e,children:t}){let r=ue(),a=bt(null),n=s=>i=>{i.pointerType==="mouse"&&a.current.togglePopover(s)};return u("span",{class:"more",onPointerEnter:n(!0),onPointerLeave:n(!1),children:[u("button",{popovertarget:r,type:"button",children:e}),u("div",{id:r,ref:a,class:"more-list scroll-box",popover:"auto",children:t})]})}function kt({on:e,onPick:t,children:r}){return u("button",{type:"button",role:"menuitemradio","aria-checked":e,class:e?"pop-item on":"pop-item",onClick:t,children:[u("span",{class:"grow",children:r}),e?u(ce,{d:k}):null]})}import{$0a as _}from"./shared-init-986901c810947c12.js";import{$1c as _t}from"./shared-init-986901c810947c12.js";import{$2a as d}from"./shared-init-986901c810947c12.js";import{$1c as de,$1g as D,$1i as Z,$1j as xt,$1k as Et}from"./shared-init-8f2ac936c95a7f7b.js";function St(){let[e,t]=D(!1),r=g();return Z(()=>t(!1),[r]),Z(()=>{if(document.documentElement.classList.toggle("drawer",e),!e)return;let a=n=>n.key==="Escape"&&t(!1);return addEventListener("keydown",a),()=>removeEventListener("keydown",a)},[e]),d(de,{children:[d("button",{type:"button",class:"icon-btn only-m","aria-label":"Open navigation",onClick:()=>t(!e),children:d(_,{d:B})}),d("div",{class:"scrim",onClick:()=>t(!1)})]})}var Lt="side";function Pt({collapsed:e}){let[t,r]=D(e);return d("button",{type:"button",class:"icon-btn side-toggle","aria-label":t?"Expand sidebar":"Collapse sidebar",title:t?"Expand sidebar":"Collapse sidebar",onClick:()=>{let a=!t;r(a),document.querySelector(".app")?.classList.toggle("side-min",a),document.cookie=`${Lt}=${a?"min":""}; path=/; max-age=${a?31536e3:0}; samesite=lax`},children:d(_,{d:t?O:j})})}function Ct({class:e,icon:t,children:r}){return d("button",{type:"button",class:e,onClick:()=>void _t().catch(()=>location.reload()),children:[t?d(_,{d:q}):null,r]})}var It=e=>{let t=e.params??{};return e.href.replace(/\[([^\]]+)\]/g,(r,a)=>encodeURIComponent(String(t[a]??"")))};function Tt(e,t){let r=new URLSearchParams((e instanceof URLSearchParams,e));for(let[a,n]of Object.entries(t))r.set(a,n);return r}function At({within:e,children:t,onClick:r,...a}){let n=g(),s=n===It(a)||e!==void 0&&(n===e||n.startsWith(`${e}/`)),i=Et(null);return d($,{...a,"aria-current":s?"page":void 0,onClick:l=>{i.current=l.currentTarget,r?.(l)},children:[t,d(Ht,{anchor:i,current:s})]})}function Ht({anchor:e,current:t}){let{pending:r}=H();return xt(()=>{e.current&&(r&&!t?e.current.setAttribute("data-pending",""):e.current.removeAttribute("data-pending"))},[r,t]),null}function Rt(){return Z(()=>{let e=/(?:^|&)token=([^&]+)/.exec(location.hash.slice(1))?.[1];if(!e)return;history.replaceState(null,"",location.pathname+location.search);let t=document.getElementById("token-form");t&&(t.elements.namedItem("token").value=decodeURIComponent(e),t.submit())},[]),null}var jt=3600*24*365,Ot=[["light","Light",N],["dark","Dark",U],["system","System",V]];function Nt({theme:e}){let[t,r]=D(e),a=n=>{let s=document.documentElement;n==="system"?delete s.dataset.theme:s.dataset.theme=n,document.cookie=`theme=${n}; path=/; max-age=${jt}; samesite=lax`,r(n)};return d(de,{children:Ot.map(([n,s,i])=>d("button",{type:"button",class:"pop-item",role:"menuitemradio","aria-checked":t===n,onClick:()=>a(n),children:[d(_,{d:i}),d("span",{class:"grow",children:s}),d(_,{d:k})]},n))})}export{$ as $0a,ne as $1a,oe as $1b,Fe as $1c,le as $1d,Ye as $1e,$t as $2a,Mt as $2b,yt as $2c,kt as $2d,St as $3a,Pt as $3b,Ct as $3c,Tt as $3d,At as $3e,Rt as $3f,Nt as $3g,A as $4a,g as $4b,Re as $4c,H as $4d,wt as $5A,vt as $5B,Ge as $5a,Qe as $5b,et as $5c,j as $5d,tt as $5e,O as $5f,N as $5g,U as $5h,V as $5i,at as $5j,q as $5k,rt as $5l,nt as $5m,B as $5n,st as $5o,k as $5p,ot as $5q,it as $5r,lt as $5s,ct as $5t,ut as $5u,dt as $5v,ht as $5w,pt as $5x,ft as $5y,mt as $5z,b as $6a,I as $6b};
@@ -0,0 +1 @@
1
+ import{c as o}from"./card-be04148b64223a52.js";import{$2a as t}from"./shared-init-986901c810947c12.js";import{$1c as n}from"./shared-init-8f2ac936c95a7f7b.js";function p({sentinel:i,more:l,busy:r,error:e,retry:a,noun:s}){return!l&&!e?null:t("div",{class:e?"tail err":"tail",ref:i,role:"status",children:e?t(n,{children:[e," ",t("button",{type:"button",class:"btn ghost sm",onClick:a,children:"Retry"})]}):r?t(o,{label:`Loading more ${s}`,inline:!0}):null})}export{p as a};
@@ -0,0 +1 @@
1
+ import{a as C}from"./confirm-b4e2c16aef4b3431.js";import{a as w}from"./card-be04148b64223a52.js";import{b as k}from"./field-9e12e5fc8774b6e5.js";import{g as f}from"./format-eb03fc9d9744d960.js";import{$4a as h}from"./shared-init-baceed9fd2d43661.js";import{$2a as g,$2b as m}from"./shared-init-baceed9fd2d43661.js";import{$5q as y}from"./shared-init-baceed9fd2d43661.js";import{$0a as b}from"./shared-init-986901c810947c12.js";import{$1b as c}from"./shared-init-986901c810947c12.js";import{$2a as t}from"./shared-init-986901c810947c12.js";import{$1c as d,$1g as l}from"./shared-init-8f2ac936c95a7f7b.js";function T(e){if(!e||typeof e!="object")return{};let s=e,r=(...i)=>i.map(o=>s[o]).find(o=>typeof o=="string");return{id:r("id"),action:r("kind","tool"),reason:r("summary","reason")}}var E={approve:"Decision sent.",archive:"Archived.",ask:"Question sent.",cancel:"Stop requested.",continue:"Sent.",steer:"Steer sent."};function A(e){let[s,r]=l(""),[i,o]=l("");return{error:s,outcome:i,setError:r,run:async(n,a={})=>{r(""),o("");try{return n==="approve"?await c.tasks.approve(e,a.approvalId??"",a.decision??"decline"):n==="ask"?await c.tasks.ask(e,a.question??""):n==="continue"||n==="steer"?await c.tasks[n](e,a.text??""):await c.tasks[n](e),o(E[n]),!0}catch(p){return r(f(p)),!1}}}}function D({error:e,outcome:s}){return e?t(k,{value:e}):t("span",{class:"flash",role:"status",children:s})}function Q({task:e,live:s}){let r=h(),i=A(e.task.id),[o,u]=l(!!e.archivedAt),[n,a]=l(),p=()=>{a("busy"),i.setError(""),c.tasks.delete(e.task.id).then(()=>r.push("/dash/tasks")).catch(x=>{a(void 0),i.setError(f(x))})},v=()=>void i.run("archive").then(u);return t(d,{children:[t(D,{...i}),s?t("button",{type:"button",class:"btn outline",onClick:()=>void i.run("cancel"),children:"Stop"}):o?null:t("button",{type:"button",class:"btn outline archive",onClick:v,children:"Archive"}),t(g,{summary:t(b,{d:y}),summaryClass:"icon-btn",label:"More actions",children:[s&&!o?t(m,{title:"Archive",onClick:v}):null,t(m,{title:"Delete",danger:!0,onClick:()=>a("ask")})]}),t(C,{open:!!n,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:n==="busy",onConfirm:p,onClose:()=>a(void 0)})]})}function j({task:e}){let s=A(e.task.id),{id:r,action:i,reason:o}=T(e.approval),u=n=>void s.run("approve",{approvalId:r,decision:n});return t(w,{tone:"accent",title:"Approval needed",actions:e.task.flow==="default"?t(d,{children:[t(D,{...s}),t("button",{type:"button",class:"btn outline sm",onClick:()=>u("decline"),children:"Deny"}),t("button",{type:"button",class:"btn sm",onClick:()=>u("accept"),children:"Allow"})]}):void 0,children:t("div",{class:"body",children:[t("p",{class:"muted",children:"The task is paused until someone decides."}),t("p",{class:"approval",children:["The agent wants to run ",t("b",{children:i??"a tool"}),"."]}),o?t("p",{class:"muted",children:o}):null]})})}export{T as a,A as b,Q as c,j as d};
@@ -0,0 +1 @@
1
+ var i=[["","Recent"],["active","Active"],["waiting","Needs approval"],["running","Running"],["queued","Queued"],["completed","Completed"],["failed","Failed"],["cancelled","Cancelled"],["archived","Archived"]];function a(t){let{status:e,...s}=t;return e==="archived"?{...s,archived:!0}:{...s,status:e}}var r=[["","All sources"],["dashboard","Dashboard"],["cli","CLI"],["schedule","Schedule"]],o=t=>(r.find(([e])=>e===t)??[t,t])[1],c=t=>t.status==="queued"||t.status==="running"||t.status==="waiting",d=t=>t.task.name?.trim()||t.task.prompt?.trim()||t.task.event?.text?.trim()||`${t.task.event?.type??"task"} on ${t.task.agent}`,l=t=>t.split(/[\\/]/).filter(Boolean).at(-1)??t;export{i as a,a as b,r as c,o as d,c as e,d as f,l as g};
@@ -0,0 +1,3 @@
1
+ "use client";import{b as jt,c as Vt,d as Kt}from"./heads-4041a925d63ab116.js";import{b as Lt,c as Wt,d as Nt}from"./task-actions-7919ca0e901131f4.js";import"./confirm-b4e2c16aef4b3431.js";import{a as Ft}from"./badge-d07f35e9abc80e14.js";import{a as $t,b as Ht}from"./instructions-4e0d18b9b40edbd7.js";import{d as et,e as st,f as J,g as Dt}from"./task-fa8b82e95e771c4a.js";import{a as U,c as tt}from"./card-be04148b64223a52.js";import"./field-9e12e5fc8774b6e5.js";import{a as pt,b as gt,d as H,g as vt}from"./format-eb03fc9d9744d960.js";import"./sentinel-ff7143a47fd22835.js";import{$1a as zt,$1c as It,$1d as Rt}from"./shared-init-baceed9fd2d43661.js";import{$4c as bt}from"./shared-init-baceed9fd2d43661.js";import"./wular-pnext-246221e985d863e5-0.js";import{$0a as _t}from"./shared-init-baceed9fd2d43661.js";import"./shared-init-baceed9fd2d43661.js";import{$2a as At}from"./shared-init-baceed9fd2d43661.js";import{$5A as Ct,$5a as St,$5b as Z,$5c as yt,$5e as B,$5j as wt,$5l as kt,$5o as Tt,$5p as V,$5s as Et,$5t as xt,$5w as Mt,$5x as Ot}from"./shared-init-baceed9fd2d43661.js";import{$0a as L}from"./shared-init-986901c810947c12.js";import{$1a as mt,$1b as Q}from"./shared-init-986901c810947c12.js";import{$2a as a}from"./shared-init-986901c810947c12.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1c as D,$1g as E,$1h as dt,$1i as z,$1j as $,$1k as F,$1l as ft}from"./shared-init-8f2ac936c95a7f7b.js";var ee=n=>n.includes("approval")||n==="sidecar-decision"||n==="auto-review";function Y(n,o){return o?n.split(`${o}/`).join("").split(o).join("."):n}var X=class{constructor(o){this.cwd=o}prevKind=null;lastAssistant="";lastTool=null;lastToolText="";lastUsageTotal=0;get lastAssistantMessage(){return this.lastAssistant}reduce(o){let t=o.entry,s=t?String(t.kind??"status"):"line",e={seq:o.seq,at:o.at,kind:"status",title:"",sourceKind:s,separated:!1,tone:"muted"};if(!t)e.kind=o.level==="err"?"error":o.level==="sys"?"status":"line",e.title=Y(o.line,this.cwd),o.level==="err"&&(e.tone="error");else if(s==="usage"){let i=t.tokens;if(!i)return[];let r=this.lastUsageTotal>0,l=i.total-this.lastUsageTotal;if(!r||l<Math.max(2e4,this.lastUsageTotal*.2))return this.lastUsageTotal=Math.max(this.lastUsageTotal,i.total),[];this.lastUsageTotal=i.total,e.kind="usage",e.tokens=i,e.title=`ctx ${Pt(i.input+i.cachedInput)} \xB7 out ${Pt(i.output)}`}else if(ee(s)&&(t.decision||!t.message)){e.kind="approval";let i=s==="sidecar-decision"?"sidecar":s==="auto-review"?"auto-review":"approval",r=t.riskLevel?`(${String(t.riskLevel)} risk)`:"",l=Y(t.summary?String(t.summary):"",this.cwd),c=l.slice(l.indexOf(": ")+2),u=l&&c&&this.lastToolText.includes(c)?"":l,d=u?"":String(t.method??"");e.title=`${[i,String(t.decision??""),r,d].filter(Boolean).join(" ")}${u?` \xB7 ${u}`:""}`,e.detail=Y(t.reason?String(t.reason):"",this.cwd)}else{let i=t.message?String(t.message):String(t.kind??"");if(!i&&!(s==="tool-result"&&(t.exitCode!=null||t.isError)))return[];if(e.title=Y(i,this.cwd),s==="assistant")e.kind="assistant",e.tone=void 0,this.lastAssistant=e.title;else if(s==="error"||s==="steer")e.kind=s,e.tone=s==="error"?"error":"warning";else if(s==="reasoning")e.kind="reasoning",e.durationMs=typeof t.durationMs=="number"?t.durationMs:0;else if(s==="tool")e.kind="tool",this.lastTool=t.tool?String(t.tool):null,this.lastToolText=e.title;else if(s==="tool-result"){e.kind="tool-result",e.exitCode=typeof t.exitCode=="number"?t.exitCode:void 0,e.tone=e.exitCode!==void 0&&e.exitCode!==0||t.isError===!0?"error":"muted",e.durationMs=typeof t.durationMs=="number"?t.durationMs:0;let r=t.tool?String(t.tool):null;r&&r!==this.lastTool&&(e.tool=r)}}return this.prevKind!==null&&(e.separated=["assistant","error","steer"].includes(s)||s==="reasoning"&&this.prevKind!=="reasoning"||s==="tool"&&["assistant","reasoning"].includes(this.prevKind)),this.prevKind=s,[e]}};function Pt(n){return n<1e3?String(n):n<1e6?`${(n/1e3).toFixed(n<1e4?1:0)}k`:`${(n/1e6).toFixed(1)}M`}function qt(n,o,t){let s=new Array(n);return new Proxy(s,{get(e,i,r){if(typeof i=="string"){let l=i.charCodeAt(0);if(l>=48&&l<=57){let c=+i;if(Number.isInteger(c)&&c>=0&&c<n){let u=e[c];if(!u){let d=o[c*2];u=e[c]={index:c,key:t(c),start:d,size:o[c*2+1],end:d+o[c*2+1],lane:0}}return u}}if(i==="length")return n}return Reflect.get(e,i,r)}})}function N(n,o,t){let s=t.initialDeps??[],e,i=!0;function r(){var l;let u=0,d=n();if(!(d.length!==s.length||d.some((w,m)=>s[m]!==w)))return e;s=d;let h=0;return e=o(...d),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(e),i=!1,e}return r.updateDeps=l=>{s=l},r}function nt(n,o){if(n===void 0)throw new Error(`Unexpected undefined${o?`: ${o}`:""}`);return n}var Bt=(n,o)=>Math.abs(n-o)<1.01,Ut=(n,o,t)=>{let s;return function(...e){n.clearTimeout(s),s=n.setTimeout(()=>o.apply(this,e),t)}};var P,it=()=>{if(P!==void 0)return P;if(typeof navigator>"u")return P=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return P=!0;let n=navigator.maxTouchPoints;return P=navigator.platform==="MacIntel"&&n!==void 0&&n>0};var se=n=>n,ne=n=>{let o=Math.max(n.startIndex-n.overscan,0),s=Math.min(n.endIndex+n.overscan,n.count-1)-o+1,e=new Array(s);for(let i=0;i<s;i++)e[i]=o+i;return e};var q={passive:!0},Jt=(n,o)=>{let t=n.scrollElement;if(!t)return;let s=()=>{o({width:t.innerWidth,height:t.innerHeight})};return s(),t.addEventListener("resize",s,q),()=>{t.removeEventListener("resize",s)}},ie=typeof window>"u"?!0:"onscrollend"in window,oe=(n,o,t)=>{let s=n.scrollElement;if(!s)return;let e=n.targetWindow;if(!e)return;let i=n.options.useScrollendEvent&&ie,r=0,l=i?null:Ut(e,()=>o(r,!1),n.options.isScrollingResetDelay),c=p=>()=>{r=t(s),l?.(),o(r,p)},u=c(!0),d=c(!1);return s.addEventListener("scroll",u,q),i&&s.addEventListener("scrollend",d,q),()=>{s.removeEventListener("scroll",u),i&&s.removeEventListener("scrollend",d)}};var Yt=(n,o)=>oe(n,o,t=>n.options.horizontal?t.scrollX:t.scrollY),re=(n,o,t)=>{if(t.options.useCachedMeasurements){let s=t.indexFromElement(n),e=t.options.getItemKey(s);return t.itemSizeCache.get(e)??t.options.estimateSize(s)}if(o?.borderBoxSize){let s=o.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!o){let s=t.indexFromElement(n),e=t.options.getItemKey(s),i=t.itemSizeCache.get(e);if(i!==void 0)return i}return n[t.options.horizontal?"offsetWidth":"offsetHeight"]},le=(n,{adjustments:o=0,behavior:t},s)=>{var e,i;(i=(e=s.scrollElement)==null?void 0:e.scrollTo)==null||i.call(e,{[s.options.horizontal?"left":"top"]:n+o,behavior:t})},Xt=le;var G=class{constructor(o){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,s,e;return((e=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:e.call(s))??Date.now()},this.observer=(()=>{let t=null,s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(e=>{e.forEach(i=>{let r=()=>{let l=i.target,c=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);for(let[u,d]of this.elementsCache)if(d===l){this.elementsCache.delete(u);break}return}this.shouldMeasureDuringScroll(c)&&this.resizeItem(c,this.options.measureElement(l,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()})}));return{disconnect:()=>{var e;(e=s())==null||e.disconnect(),t=null},observe:e=>{var i;return(i=s())==null?void 0:i.observe(e,{box:"border-box"})},unobserve:e=>{var i;return(i=s())==null?void 0:i.unobserve(e)}}})(),this.range=null,this.setOptions=t=>{var s,e;let i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:se,rangeExtractor:ne,onChange:()=>{},measureElement:re,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(let h in t){let w=t[h];w!==void 0&&(i[h]=w)}let r=this.options,l=null,c=null,u=!1;if(r!==void 0&&r.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){let h=r.count,w=i.count,m=this.getMeasurements(),k=h>0?((s=m[0])==null?void 0:s.key)??r.getItemKey(0):null,y=h>0?((e=m[h-1])==null?void 0:e.key)??r.getItemKey(h-1):null;if(w!==h||h>0&&w>0&&(i.getItemKey(0)!==k||i.getItemKey(w-1)!==y)){u=!0;let b=h>0?this.getVirtualItemForOffset(this.getScrollOffset())??m[0]:null;b&&(l=[b.key,this.getScrollOffset()-b.start]);let O=i.followOnAppend===!0?"auto":i.followOnAppend||null;O&&w>h&&this.isAtEnd(r.scrollEndThreshold)&&(h===0||i.getItemKey(w-1)!==y)&&(c=O)}}this.options=i,u&&(this.pendingMin=0,this.itemSizeCacheVersion++);let d=!1,p=0;if(l&&this.scrollOffset!==null){let[h,w]=l,m=this.getMeasurements(),{count:k,getItemKey:y}=this.options,v=0;for(;v<k&&y(v)!==h;)v++;if(v<k){let x=m[v];if(x){let b=x.start+w;b!==this.scrollOffset&&(p=b-this.scrollOffset,this.scrollOffset=b,d=!0)}}}(d||c)&&(this.pendingScrollAnchor=[d?l[0]:null,d?l[1]:0,c,p])},this.notify=t=>{var s,e;(e=(s=this.options).onChange)==null||e.call(s,this,t)},this.maybeNotify=N(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;let s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}if(this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,r)=>{this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=r?this.getScrollOffset()<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=r,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){let i=this.scrollElement,r=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},l=()=>{this._iosTouching=!1,!(!it()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",r,q),i.addEventListener("touchend",l,q),this.unsubs.push(()=>{i.removeEventListener("touchstart",r),i.removeEventListener("touchend",l),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let e=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,e&&this.scrollElement&&this.options.enabled){let[i,r,l,c]=e;i!==null&&!l&&(it()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?c!==0&&(this._iosDeferredAdjustment+=c):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),l&&this.scrollToEnd({behavior:l})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;let e=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=e,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,s)=>{let e=new Map,i=new Map;for(let r=s-1;r>=0;r--){let l=t[r];if(e.has(l.lane))continue;let c=i.get(l.lane);if(c==null||l.end>c.end?i.set(l.lane,l):l.end<c.end&&e.set(l.lane,!0),e.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((r,l)=>r.end===l.end?r.index-l.index:r.end-l.end)[0]:void 0},this.getMeasurementOptions=N(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,s,e,i,r,l,c)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:e,getItemKey:i,enabled:r,lanes:l,laneAssignmentMode:c}),{key:!1}),this.getMeasurements=N(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:e,getItemKey:i,enabled:r,lanes:l,laneAssignmentMode:c},u)=>{let d=this.itemSizeCache;if(!r)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(let m of this.laneAssignments.keys())m>=t&&this.laneAssignments.delete(m);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(m=>{this.itemSizeCache.set(m.key,m.size)}));let p=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),l===1){let m=this.options.gap,k=t*2,y=this._flatMeasurements;if(!y||y.length<k){let b=new Float64Array(k);y&&p>0&&b.set(y.subarray(0,p*2)),y=b,this._flatMeasurements=y}let v;if(p===0)v=s+e;else{let b=p-1;v=y[b*2]+y[b*2+1]+m}for(let b=p;b<t;b++){let O=i(b),A=d.get(O),C=typeof A=="number"?A:this.options.estimateSize(b);y[b*2]=v,y[b*2+1]=C,v+=C+m}let x=qt(t,y,i);return this.measurementsCache=x,x}let h=this.measurementsCache.slice(0,p),w=new Array(l).fill(void 0);for(let m=0;m<p;m++){let k=h[m];k&&(w[k.lane]=m)}for(let m=p;m<t;m++){let k=i(m),y=this.laneAssignments.get(m),v,x,b=c==="estimate"||d.has(k);if(y!==void 0&&this.options.lanes>1){v=y;let _=w[v],W=_!==void 0?h[_]:void 0;x=W?W.end+this.options.gap:s+e}else{let _=this.options.lanes===1?h[m-1]:this.getFurthestMeasurement(h,m);x=_?_.end+this.options.gap:s+e,v=_?_.lane:m%this.options.lanes,this.options.lanes>1&&b&&this.laneAssignments.set(m,v)}let O=d.get(k),A=typeof O=="number"?O:this.options.estimateSize(m),C=x+A;h[m]={index:m,start:x,size:A,end:C,key:k,lane:v},w[v]=m}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=N(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,e,i)=>this.range=t.length>0&&s>0?ae({measurements:t,outerSize:s,scrollOffset:e,lanes:i,flat:i===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=N(()=>{let t=null,s=null,e=this.calculateRange();return e&&(t=e.startIndex,s=e.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,e,i,r)=>i===null||r===null?[]:t({startIndex:i,endIndex:r,overscan:s,count:e}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{let s=this.options.indexAttribute,e=t.getAttribute(s);return e?parseInt(e,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;let e=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(e!==void 0&&this.range){let i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,e-i),l=Math.min(this.options.count-1,e+i);return t>=r&&t<=l}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((r,l)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(l))});return}let s=this.indexFromElement(t),e=this.options.getItemKey(s),i=this.elementsCache.get(e);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(e,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var e,i;if(t<0||t>=this.options.count)return;let r,l,c,u=this._flatMeasurements;if(this.options.lanes===1&&u!==null)c=this.options.getItemKey(t),l=u[t*2],r=u[t*2+1];else{let h=this.measurementsCache[t];if(!h)return;c=h.key,l=h.start,r=h.size}let d=this.itemSizeCache.get(c)??r,p=s-d;if(p!==0){let h=this.options.anchorTo==="end"&&((e=this.scrollState)==null?void 0:e.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,w=h?this.getTotalSize():0,m=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:c,start:l,size:r,end:l+r,lane:0},p,this):l<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(c)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(c,s),this.itemSizeCacheVersion++,h?this.applyScrollAdjustment(this.getTotalSize()-w):m&&this.applyScrollAdjustment(p),this.notify(!1)}},this.getVirtualItems=N(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{let e=[];for(let i=0,r=t.length;i<r;i++){let l=t[i],c=s[l];e.push(c)}return e},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{let s=this.getMeasurements();if(s.length===0)return;let e=this._flatMeasurements,i=this.options.lanes===1&&e!=null,r=Gt(0,s.length-1,i?l=>e[l*2]:l=>nt(s[l]).start,t);return nt(s[r])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,e=0)=>{if(!this.scrollElement)return 0;let i=this.getSize(),r=this.getScrollOffset();s==="auto"&&(s=t>=r+i?"end":"start"),s==="center"?t+=(e-i)/2:s==="end"&&(t-=i);let l=this.getMaxScrollOffset();return Math.max(Math.min(l,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));let e=this.getSize(),i=this.getScrollOffset(),r=this.measurementsCache[t];if(!r)return;if(s==="auto")if(r.end>=i+e-this.options.scrollPaddingEnd)s="end";else if(r.start<=i+this.options.scrollPaddingStart)s="start";else return[i,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];let l=s==="end"?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,s,r.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:e="auto"}={})=>{let i=this.getOffsetForAlignment(t,s),r=this.now();this.scrollState={index:null,align:s,behavior:e,startedAt:r,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:e="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));let i=this.getOffsetForIndex(t,s);if(!i)return;let[r,l]=i,c=this.now();this.scrollState={index:t,align:l,behavior:e,startedAt:c,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{let e=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:i,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;let s=this.getMeasurements(),e;if(s.length===0)e=this.options.paddingStart;else if(this.options.lanes===1){let i=s.length-1,r=this._flatMeasurements;r!=null?e=r[i*2]+r[i*2+1]:e=((t=s[i])==null?void 0:t.end)??0}else{let i=Array(this.options.lanes).fill(null),r=s.length-1;for(;r>=0&&i.some(l=>l===null);){let l=s[r];i[l.lane]===null&&(i[l.lane]=l.end),r--}e=Math.max(...i.filter(l=>l!==null))}return Math.max(e-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let t=[];if(this.itemSizeCache.size===0)return t;let s=this.getMeasurements();for(let e of s)e&&this.itemSizeCache.has(e.key)&&t.push({index:e.index,key:e.key,start:e.start,size:e.size,end:e.end,lane:e.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:e})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:e,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(o)}applyScrollAdjustment(o,t){o!==0&&(it()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=o:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=o,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,e=s?s[0]:this.scrollState.lastTargetOffset,i=1,r=e!==this.scrollState.lastTargetOffset;if(!r&&Bt(e,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==e&&this._scrollToOffset(e,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,r){let l=this.getSize()||600,c=Math.abs(e-this.getScrollOffset()),u=this.scrollState.behavior==="smooth"&&c>l;this.scrollState.lastTargetOffset=e,u||(this.scrollState.behavior="auto"),this._scrollToOffset(e,{adjustments:void 0,behavior:u?"smooth":"auto"})}this.scheduleScrollReconcile()}},Gt=(n,o,t,s)=>{for(;n<=o;){let e=(n+o)/2|0,i=t(e);if(i<s)n=e+1;else if(i>s)o=e-1;else return e}return n>0?n-1:0};function ae({measurements:n,outerSize:o,scrollOffset:t,lanes:s,flat:e}){let i=n.length-1,r=e?d=>e[d*2]:d=>n[d].start,l=e?d=>e[d*2]+e[d*2+1]:d=>n[d].end;if(n.length<=s)return{startIndex:0,endIndex:i};let c=Gt(0,i,r,t),u=c;if(s===1)for(;u<i&&l(u)<t+o;)u++;else if(s>1){let d=Array(s).fill(0);for(;u<i&&d.some(h=>h<t+o);){let h=n[u];d[h.lane]=h.end,u++}let p=Array(s).fill(t+o);for(;c>=0&&p.some(h=>h>=t);){let h=n[c];p[h.lane]=h.start,c--}c=Math.max(0,c-c%s),u=Math.min(i,u+(s-1-u%s))}return{startIndex:c,endIndex:u}}var ce={assistant:Et,tool:Ot,"tool-result":V,approval:wt,status:Z,error:Mt,line:Z,reasoning:kt,steer:xt,usage:yt},ue=n=>!!n.detail||n.title.length>120||n.title.includes(`
2
+ `),he=()=>innerHeight+scrollY>=document.documentElement.scrollHeight-48;function de(n,o){let[,t]=dt(i=>i+1,0),s={count:n,estimateSize:()=>30,overscan:16,getScrollElement:()=>window,observeElementRect:Jt,observeElementOffset:Yt,scrollToFn:Xt,scrollMargin:o.current?o.current.getBoundingClientRect().top+scrollY:0,onChange:()=>t(0)},[e]=E(()=>new G(s));return e.setOptions(s),$(()=>e._didMount(),[]),$(()=>e._willUpdate()),e}function fe({row:n,tz:o,open:t,onToggle:s}){let e=F(null),[i,r]=E(!1);$(()=>{e.current&&r(e.current.scrollWidth>e.current.clientWidth)},[n.title]);let l=t||i||ue(n),c=n.tone==="error",u=n.kind==="tool-result"?[n.tool,n.exitCode!==void 0?`exit ${n.exitCode}`:void 0,n.durationMs?H(n.durationMs):void 0].filter(Boolean).join(" \xB7 "):n.kind==="reasoning"&&n.durationMs?H(n.durationMs):"";return a(l?"button":"div",{type:l?"button":void 0,class:`act ${n.kind}${n.tone?` ${n.tone}`:""}${n.separated?" sep":""}${t?" open":""}`,"aria-expanded":l?t:void 0,onClick:l?s:void 0,children:[a("time",{children:gt(n.at,o)}),a(L,{d:n.kind==="tool-result"&&c?Tt:ce[n.kind]}),a("span",{class:"act-text",children:[a("span",{class:"act-title",ref:e,children:n.title}),u?a("span",{class:"act-detail",children:u}):null,n.detail?a("span",{class:"act-detail",children:n.detail}):null]}),l?a(L,{d:B,class:"act-chev"}):null]})}function Qt({rows:n,live:o,tz:t}){let s=F(null),[e,i]=E(new Set),[r,l]=E(o),c=de(n.length,s);return z(()=>{let u=()=>l(he());return addEventListener("scroll",u,{passive:!0}),()=>removeEventListener("scroll",u)},[]),$(()=>{r&&scrollTo({top:document.documentElement.scrollHeight})},[n.length]),n.length?a(D,{children:[a("div",{class:"act-list",ref:s,style:`height:${c.getTotalSize()}px`,role:"log","aria-live":"off",children:c.getVirtualItems().map(u=>{let d=n[u.index];return a("div",{class:"act-slot","data-index":u.index,ref:c.measureElement,style:`transform:translateY(${u.start-c.options.scrollMargin}px)`,children:a(fe,{row:d,tz:t,open:e.has(d.seq),onToggle:()=>i(p=>{let h=new Set(p);return h.delete(d.seq)||h.add(d.seq),h})})},d.seq)})}),r?null:a("button",{type:"button",class:"jump",onClick:()=>{l(!0),scrollTo({top:document.documentElement.scrollHeight})},children:"Jump to latest"})]}):a("p",{class:"act-empty muted",children:o?"Nothing yet. Events appear here as the task runs.":"No activity recorded."})}var me=["Conversation","Activity"];function rt(n,o){if(typeof n=="string")return n;if(!n||typeof n!="object")return o;let t=n;for(let s of["output","answer","message"])if(typeof t[s]=="string")return t[s];return o}var pe=n=>typeof n=="object"&&n!==null&&Array.isArray(n.findings)&&n.findings.every(o=>typeof o=="object"&&o!==null&&"file"in o&&"summary"in o);function ge({findings:n}){return n.length?a("ul",{class:"findings",children:n.map((o,t)=>a("li",{class:`finding ${o.severity}`,children:[a("p",{class:"finding-head",children:[a("span",{class:"sev",children:o.severity}),a("span",{class:"loc",children:[o.file,":",o.line]}),o.category?a("span",{class:"cat",children:o.category}):null]}),a("p",{class:"finding-sum",children:o.summary}),o.failure_scenario?a("p",{class:"finding-why muted",children:o.failure_scenario}):null]},t))}):a("p",{class:"body muted",children:"No findings."})}function ve({value:n}){let o=rt(n,"Result received."),t;if(/^\s*[[{]/.test(o))try{t=JSON.parse(o)}catch{}return pe(t)?a(ge,{findings:t.findings}):t&&typeof t=="object"?a("pre",{class:"body json",children:JSON.stringify(t,null,2)}):a("div",{class:"body md",children:Ht(o)})}function be(){let n=bt();return a(Vt,{...jt(n.get("from"),{href:"/dash/tasks",params:{},label:"Tasks"}),back:n.get("back")})}function Se({id:n}){let[o,t]=E(!1),s=o?"Copied":"Copy task id";return z(()=>{if(!o)return;let e=setTimeout(()=>t(!1),1500);return()=>clearTimeout(e)},[o]),a("button",{type:"button",class:o?"copy copied":"copy","aria-label":s,title:s,onClick:()=>void navigator.clipboard.writeText(n).then(()=>t(!0)),children:a(L,{d:o?V:Ct})})}function ye({task:n,tz:o}){let t=st(n),s=n.task.event?.integration??n.task.source,e=n.task.event?.type??(n.task.flow!=="default"?n.task.flow:void 0);return a(Kt,{back:a(be,{}),title:J(n).split(`
3
+ `)[0],meta:a(D,{children:[a(zt,{status:n.status}),n.archivedAt?a(Ft,{children:"archived"}):null]}),lead:a(D,{children:[a("span",{class:"task-id",children:n.task.id}),a(Se,{id:n.task.id}),a("span",{children:pt(n.createdAt,o)}),n.startedAt&&n.finishedAt?a("span",{children:H(n.finishedAt-n.startedAt)}):null,a("span",{children:e?`${et(s)} ${e}`:et(s)}),n.task.cwd?a("span",{title:n.task.cwd,children:Dt(n.task.cwd)}):null,a(_t,{class:"agent-link",href:"/dash/agents/[slug]",params:{slug:n.task.agent},search:{from:`/dash/tasks/${n.task.id}`},children:[a(L,{d:St}),n.task.agent]})]}),actions:a(Wt,{task:n,live:t})})}function we(n){let o=F();return ft(()=>{let t=o.current??={log:new X,rows:[],seen:0};for(let s of n.slice(t.seen))t.rows.push(...t.log.reduce(s));return t.seen=n.length,[...t.rows]},[n])}function ds({initial:n,tz:o}){let[t,s]=E(n),[e,i]=E(n.logs??[]),[r,l]=E((n.logs?.length??0)<ot),[c,u]=E("conversation"),[d,p]=E([]),[h,w]=E(!1),[m,k]=E(0),y=F(t.answer?.length??0),[v,x]=E(!1),[b,O]=E(""),A=F(n.logs?.at(-1)?.seq??-1),C=F(null),_=F(null);z(()=>{let f=_.current,g=f?.closest(".page");if(!f||!g)return;let T=new ResizeObserver(()=>g.style.setProperty("--reply",`${f.offsetHeight}px`));return T.observe(f),()=>T.disconnect()},[t.task.flow]);let W=Lt(t.task.id),I=st(t),lt=t.task.flow==="default",Zt=we(e);z(()=>Rt(t.task.id,t.status,J(t)),[t.status]),z(()=>{W.error&&It("Not sent",W.error)},[W.error]);let at=f=>{let g=f.filter(T=>T.seq>A.current);g.length&&(A.current=g.at(-1).seq,i(T=>[...T,...g]))};z(()=>{I&&lt&&C.current?.focus()},[]),z(()=>{r||Q.tasks.logs(t.task.id,A.current,ot).then(f=>{at(f),f.length<ot&&l(!0)}).catch(f=>O(vt(f)))},[r,e.length]),z(()=>{if(!r||!I)return;let f=new AbortController;return(async()=>{for(;!f.signal.aborted;){try{let T=await Q.tasks.stream(t.task.id,A.current,f.signal);if(!T.ok||!T.body){O("Live updates stopped.");return}O("");for await(let S of mt(T.body))if(S.event==="log")at([JSON.parse(S.data)]);else if(S.event==="status")s(M=>({...M,...JSON.parse(S.data)}));else if(S.event==="end")return}catch{if(f.signal.aborted)return}O("Reconnecting."),await new Promise(T=>setTimeout(T,1e3))}})(),()=>f.abort()},[r,I]);let j=t.turns??[{prompt:t.task.prompt??t.task.event?.text??J(t),result:t.result,error:t.error,finishedAt:t.finishedAt}],ct=async()=>{let f=C.current?.value.trim();if(!f||h)return;let g=I?v?"ask":"steer":"continue";if(g==="ask"){C.current.value="",p(S=>[...S,{kind:g,text:f,turn:j.length-1}]),k(S=>S+1),W.run(g,{question:f}).then(S=>{if(k(M=>M-1),S)return u("conversation");p(M=>M.filter(R=>R.text!==f||R.kind!==g))});return}w(!0),await W.run(g,{text:f}).finally(()=>w(!1))&&(C.current.value="",g==="continue"?s(S=>({...S,status:"queued",result:void 0,error:void 0,finishedAt:void 0,turns:[...j.map((M,R)=>R===j.length-1?{...M,finishedAt:M.finishedAt??Date.now()}:M),{prompt:f}]})):(p(S=>[...S,{kind:g,text:f,turn:j.length-1}]),u("activity")))},ut=f=>{x(f),setTimeout(()=>C.current?.focus())},ke=t.result;return a(D,{children:[a(ye,{task:t,tz:o}),t.fallbacks?.map((f,g)=>a("p",{class:"flash",role:"status",children:[f.engine," was unavailable. ",f.detail," This task is using ",f.next,"."]},g)),a("nav",{class:"tabs",role:"tablist","aria-label":"Task",children:me.map(f=>{let g=f.toLowerCase();return a("button",{type:"button",role:"tab","aria-selected":c===g,"aria-current":c===g?"page":void 0,onClick:()=>u(g),children:f},g)})}),b?a("p",{class:"flash err",role:"status",children:b}):null,c==="activity"?a(Qt,{rows:Zt,live:I,tz:o}):a("div",{class:"convo",children:j.map((f,g)=>{let T=g===j.length-1;return a(D,{children:[a("div",{class:"turn prompt",children:[a("p",{class:"who",children:"Prompt"}),a($t,{class:"prose",children:f.prompt})]}),T&&t.approval?a(Nt,{task:t}):null,T?(t.answer??[]).slice(0,y.current).map((S,M)=>a("div",{class:"turn answer",children:[a("p",{class:"who",children:"Answer"}),a("div",{class:"prose",children:rt(S,"Answer received.")})]},`a${M}`)):null,d.filter(S=>S.turn===g).map((S,M)=>{let R=S.kind==="ask"?d.filter(te=>te.kind==="ask").indexOf(S):-1,ht=R<0?void 0:t.answer?.[y.current+R];return a("div",{class:R<0?"turn you":"turn you qa",children:[a("p",{class:"who",children:S.kind==="ask"?"You asked":"You steered"}),a("div",{class:"prose",children:S.text}),R<0?null:a("div",{class:"answer",children:[a("p",{class:"who",children:"Answer"}),ht===void 0?a(tt,{inline:!0,dots:!0,label:"Answering without interrupting the run."}):a("div",{class:"prose",children:rt(ht,"Answer received.")})]})]},M)}),f.result?a(U,{title:"Result",children:a(ve,{value:f.result})}):T&&I?a(U,{title:"Result",children:a("div",{class:"body waiting",children:a(tt,{inline:!0,dots:!0,label:"The result appears here when the task finishes."})})}):null,f.error?a(U,{tone:"danger",title:"Error",children:a("div",{class:"body prose",children:f.error})}):null]},g)})}),lt?a("form",{ref:_,class:"reply",onSubmit:f=>{f.preventDefault(),ct()},children:a("div",{class:"reply-box",children:[I?a(At,{summary:a(D,{children:[v?"Ask":"Steer",a(L,{d:B})]}),summaryClass:"mode",label:"Send as",align:"up",wide:!0,children:[a("button",{type:"button",class:"pop-item rich",role:"menuitemradio","aria-checked":!v,onClick:()=>ut(!1),children:[a("span",{class:"grow",children:["Steer",a("small",{children:"Change course while it works."})]}),a(L,{d:V})]}),a("button",{type:"button",class:"pop-item rich",role:"menuitemradio","aria-checked":v,onClick:()=>ut(!0),children:[a("span",{class:"grow",children:["Ask",a("small",{children:"A question that does not interrupt it."})]}),a(L,{d:V})]})]}):null,a("textarea",{ref:C,rows:1,"aria-label":"Message",autofocus:I,placeholder:I?v?"Ask about the run without interrupting it.":"Steer the agent while it works.":"Continue the conversation.",onKeyDown:f=>{f.key!=="Enter"||f.shiftKey||f.isComposing||(f.preventDefault(),ct())}}),a("button",{class:"btn sm",disabled:h,"aria-busy":h||m>0,children:"Send"})]})}):a("p",{class:"muted no-reply",children:"This flow takes no follow-ups."})]})}var ot=500;export{ot as LOG_CHUNK,ds as TaskView};
@@ -0,0 +1 @@
1
+ "use client";import{a as pt}from"./task-actions-7919ca0e901131f4.js";import{a as mt}from"./confirm-b4e2c16aef4b3431.js";import{a as ut}from"./tail-5a5bfcd308535d70.js";import{a as it,b as lt,c as ct,d as dt}from"./toolbar-9b18a5d26dee37c3.js";import{b as nt,e as rt}from"./paged-bc6fa0c2b9d52ed7.js";import{c as at}from"./badge-d07f35e9abc80e14.js";import{a as ot}from"./composer-aec9c3c691f1f79a.js";import"./connect-repositories-e4c049b5b4384623.js";import"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import{a as X}from"./select-dd09a6b9544cfde2.js";import{a as Y,b as Z,c as tt,d as L,e as q,f as et,g as st}from"./task-fa8b82e95e771c4a.js";import{a as W,b as P}from"./card-be04148b64223a52.js";import{b as x}from"./field-9e12e5fc8774b6e5.js";import{a as F,c as _,d as G,e as A,g as K}from"./format-eb03fc9d9744d960.js";import"./sentinel-ff7143a47fd22835.js";import{$1a as Q}from"./shared-init-baceed9fd2d43661.js";import"./shared-init-baceed9fd2d43661.js";import"./wular-pnext-246221e985d863e5-0.js";import{$0a as J}from"./shared-init-baceed9fd2d43661.js";import"./shared-init-baceed9fd2d43661.js";import{$2a as M,$2b as b,$2d as $}from"./shared-init-baceed9fd2d43661.js";import{$5i as j,$5q as z,$5x as B,$5y as V,$5z as H}from"./shared-init-baceed9fd2d43661.js";import{$0a as I}from"./shared-init-986901c810947c12.js";import{$1b as f}from"./shared-init-986901c810947c12.js";import{$2a as t}from"./shared-init-986901c810947c12.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1c as T,$1g as C,$1i as D}from"./shared-init-8f2ac936c95a7f7b.js";var Tt={dashboard:j,cli:B,schedule:V},Ct=4e3;function Rt(e,d,i){let r=Math.round((d-e)/6e4);return r<1?"just now":r<60?`${r} min ago`:r<1440?`${Math.round(r/60)} h ago`:_(e,i)}function At({task:e,back:d,scoped:i,tz:r,now:o,onDone:l,onError:u}){let v=e.startedAt===void 0?void 0:(e.finishedAt??o)-e.startedAt,g=e.task.event?.integration??e.task.source??"dashboard",n=e.task.event?.type??(e.task.flow==="default"?void 0:e.task.flow);return t("tr",{children:[t("td",{children:[t(J,{class:"cover",href:"/dash/tasks/[id]",params:{id:e.task.id},search:d?{back:d}:void 0,children:et(e)}),t("span",{class:"sub",children:[i?null:`${e.task.agent} \xB7 `,t(at,{value:e.task.id}),n?` \xB7 ${n}`:null,e.task.cwd?t("span",{title:e.task.cwd,children:` \xB7 ${st(e.task.cwd)}`}):null]})]}),t("td",{children:t(Q,{status:e.status})}),t("td",{children:t("span",{class:"source",title:L(g),children:[t(I,{d:Tt[g]??H}),L(g)]})}),t("td",{class:"when",title:F(e.createdAt,r),children:Rt(e.createdAt,o,r)}),t("td",{class:"num",children:[G(v),t("span",{class:"row-acts",children:t(St,{task:e,onDone:l,onError:u})})]})]})}function St({task:e,onDone:d,onError:i}){let[r,o]=C(),l=(u,v)=>{i(""),(u==="approve"?f.tasks.approve(e.task.id,pt(e.approval).id??"",v??"decline"):u==="delete"?f.tasks.delete(e.task.id):f.tasks[u](e.task.id)).then(()=>d(u),n=>i(K(n))).finally(()=>o(void 0))};return t(T,{children:[t(M,{summary:t(I,{d:z}),summaryClass:"icon-btn",label:"Task actions",align:"right",children:[e.approval?t(b,{title:"Approve",onClick:()=>l("approve","accept")}):null,e.approval?t(b,{title:"Deny",onClick:()=>l("approve","decline")}):null,q(e)?t(b,{title:"Stop",onClick:()=>l("cancel")}):null,e.archivedAt?null:t(b,{title:"Archive",onClick:()=>l("archive")}),t(b,{title:"Delete",danger:!0,onClick:()=>o("ask")})]}),t(mt,{open:!!r,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:r==="busy",onConfirm:()=>{o("busy"),l("delete")},onClose:()=>o(void 0)})]})}function Zt({first:e,platforms:d,agents:i=[],filters:r,agent:o,head:l,missing:u,tz:v,now:g}){let{values:n,set:h,query:a}=lt(r),ft=it(r),gt=o?`&agent=${encodeURIComponent(o)}`:"",ht=o?`/dash/agents/${encodeURIComponent(o)}/tasks`:"/dash/tasks",kt=a||o?`${ht}${a?`?${a}`:""}`:void 0,y={limit:rt,summary:!0,counts:!0,...Z(n),agent:o??n.agent},w=nt({name:`tasks${gt}`,fetchPage:s=>f.tasks.list({...y,cursor:s}),query:a,first:e,initial:ft}),[S,O]=C({rows:{}}),[bt,N]=C([]);D(()=>N([]),[a]);let[vt,yt]=C(""),E=w.rows.filter(s=>!bt.includes(s.task.id)).map(s=>S.rows[s.task.id]??s),m=(S.query===a?S.counts:void 0)??w.meta.counts,U=E.some(q)||!!m?.active;return D(()=>{if(!U)return;let s=c=>Object.fromEntries(c.map(k=>[k.task.id,k])),p=setInterval(()=>{Promise.all([f.tasks.list({...y,cursor:""}),y.status?f.tasks.list({...y,status:void 0,counts:!1,cursor:""}):void 0]).then(([c,k])=>O(R=>({rows:{...R.rows,...s(k?.items??[]),...s(c.items)},counts:c.counts,query:a}))).catch(()=>{})},Ct);return()=>clearInterval(p)},[U,a,o]),t(T,{children:[t(dt,{head:l,children:[t(ct,{value:n.q,label:"Search tasks",onInput:s=>h("q",s,250)}),t(X,{label:"Status",value:n.status,options:Y,onChange:s=>h("status",s)}),t(M,{class:"filter-more",label:"More filters",summaryClass:`field-btn${n.source||n.agent?" on":""}`,summary:"Filter",children:[t("p",{class:"pop-label",children:"Source"}),t("div",{role:"group","aria-label":"Source",children:[...tt,...d].map(([s,p])=>t($,{on:n.source===s,onPick:()=>h("source",s),children:p},s))}),o?null:t(T,{children:[t("p",{class:"pop-label",children:"Agent"}),t("div",{role:"group","aria-label":"Agent",children:[["","All agents"],...n.agent&&!i.some(([s])=>s===n.agent)?[[n.agent,n.agent]]:[],...i].map(([s,p])=>t($,{on:n.agent===s,onPick:()=>h("agent",s),children:p},s))})]})]})]}),u?t(ot,{}):null,t(W,{title:"Tasks",count:m?A(m.all):void 0,actions:m?t(T,{children:[t(x,{value:vt}),m.active?t("button",{type:"button",class:"badge acc",onClick:()=>h("status","active"),children:[A(m.active)," active"]}):null,m.waiting?t("button",{type:"button",class:"badge warn",onClick:()=>h("status","waiting"),children:[A(m.waiting)," awaiting approval"]}):null]}):void 0,children:[E.length?t("div",{class:"table-scroll",children:t("table",{class:"rows tasks stacked","aria-busy":w.stale,children:[t("thead",{children:t("tr",{children:[t("th",{children:"Task"}),t("th",{children:"Status"}),t("th",{children:"Source"}),t("th",{children:"Created"}),t("th",{class:"num",children:"Duration"})]})}),t("tbody",{children:E.map(s=>t(At,{task:s,back:kt,scoped:!!o,tz:v,now:g,onError:yt,onDone:p=>{(p==="delete"||p==="archive"&&n.status!=="archived")&&N(c=>[...c,s.task.id]),f.tasks.list({...y,cursor:""}).then(c=>O(k=>({rows:{...k.rows,...Object.fromEntries(c.items.map(R=>[R.task.id,R]))},counts:c.counts,query:a}))).catch(()=>{})}},s.task.id))})]})}):w.stale?null:a?t(P,{title:"No tasks match",children:"Try another search or filter."}):t(P,{title:"No tasks yet",children:o?"Tasks appear here as this agent runs.":"Type what you want done in the box above and press Enter. Tasks from the dashboard, the CLI and platforms like GitHub show up here, newest first."}),t(ut,{noun:"tasks",...w})]})]})}export{Zt as TasksList};
@@ -0,0 +1 @@
1
+ import{c as T,d as b}from"./paged-bc6fa0c2b9d52ed7.js";import{a as y}from"./sentinel-ff7143a47fd22835.js";import{$5v as h}from"./shared-init-baceed9fd2d43661.js";import{$0a as g}from"./shared-init-986901c810947c12.js";import{$2a as e}from"./shared-init-986901c810947c12.js";import{$1c as f,$1g as c,$1i as u,$1k as v}from"./shared-init-8f2ac936c95a7f7b.js";var C=t=>new URLSearchParams(Object.entries(t).filter(([,r])=>r)).toString();function L(t){let[r,s]=c(t),[l,p]=c(t),i=v();return u(()=>{let n=b(Object.keys(t));Object.keys(t).some(o=>n[o]!==t[o])&&(s(n),p(n))},[]),u(()=>()=>clearTimeout(i.current),[]),{values:r,set:(n,o,d=0)=>{let a={...r,[n]:o};s(a),clearTimeout(i.current);let m=()=>{p(a),T(a)};d?i.current=setTimeout(m,d):m()},query:C(l)}}function Q({value:t,label:r,onInput:s}){return e("label",{class:"search",children:[e(g,{d:h}),e("input",{type:"search",value:t,placeholder:r,"aria-label":r,onInput:l=>s(l.currentTarget.value)})]})}function U({head:t,action:r,children:s}){return t?e(f,{children:[e(y,{}),e("header",{class:"head tools",children:[e("div",{children:[e("h1",{children:t.title}),t.lead?e("p",{class:"lead",children:t.lead}):null]}),e("div",{class:"filters",children:s}),r?e("div",{class:"actions",children:r}):null]})]}):e("div",{class:"filters",children:[s,r?e("span",{class:"end",children:r}):null]})}export{C as a,L as b,Q as c,U as d};
@@ -0,0 +1 @@
1
+ "use client";import{a as c}from"./tail-5a5bfcd308535d70.js";import{b as a,e as l}from"./paged-bc6fa0c2b9d52ed7.js";import{a as p}from"./badge-d07f35e9abc80e14.js";import"./card-be04148b64223a52.js";import{a as n}from"./format-eb03fc9d9744d960.js";import{$1b as s}from"./shared-init-986901c810947c12.js";import{$2a as e}from"./shared-init-986901c810947c12.js";import{$1c as m}from"./shared-init-8f2ac936c95a7f7b.js";function B({agent:t,current:r,first:d,tz:f}){let i=a({name:`versions|${t}`,fetchPage:o=>s.agents.versions(t,{cursor:o,limit:l}),query:"",first:d,initial:""});return e(m,{children:[e("ul",{class:"versions",children:i.rows.map(o=>e("li",{children:[e(p,{tone:o.version===r?"acc":void 0,children:["v",o.version]}),e("span",{class:"muted grow",children:[o.version===r&&"current",o.importedFrom!=="upload"&&o.importedFrom&&`${o.importedFrom}${o.commit?` at ${o.commit.slice(0,7)}`:""}`].filter(Boolean).join(", ")}),e("span",{class:"when",children:n(o.createdAt,f)})]},o.version))}),e(c,{noun:"versions",...i})]})}export{B as VersionsList};
@@ -0,0 +1 @@
1
+ import{$1a as o,$1b as i}from"./shared-init-246221e985d863e5-2.js";var a="__pnextBfcacheId";function s(){let t=history.state;return t&&typeof t=="object"?t:{}}function c(t=s()){let n=t[a];return typeof n=="string"?n:void 0}function d(t){return`${t}${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function p(){return d("b_")}function l(){return d("e")}function v(){let t=s(),n=t.__pnextEntry,r=typeof n=="string";if(o.renderedEntryId=r?n:l(),!(c(t)&&r))try{history.replaceState({...t,__pnextEntry:o.renderedEntryId,[a]:c(t)??p()},"",location.href)}catch{}}var f;function h(t){f=t}function m(t,n={}){f?.(t,n)}function S(){return window.__PNEXT_LOCATION_LISTENERS__??=new Set,window.__PNEXT_LOCATION_LISTENERS__}function E(){if(o.observedLocationKey=i(),!(e>0))for(let t of[...S()])t()}var e=0;function I(t){e++;try{t()}finally{e--}}var g=new Set;function L(){for(let t of[...g])t()}var y=new Set;function C(){for(let t of[...y])t()}export{a,s as b,c,p as d,l as e,v as f,f as g,h,m as i,S as j,E as k,I as l,L as m,C as n};
@@ -0,0 +1 @@
1
+ .field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}
@@ -0,0 +1 @@
1
+ .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:5;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small,.pop-item small{color:var(--muted);font-size:11.5px}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){.only-m{display:none}}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast.err .toast-head .cover{color:var(--bad)}.toast.err .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}
@@ -0,0 +1 @@
1
+ .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:5;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small,.pop-item small{color:var(--muted);font-size:11.5px}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){.only-m{display:none}}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast.err .toast-head .cover{color:var(--bad)}.toast.err .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.sheet>div{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:24px;padding:20px;border-top:1px solid var(--line)}.sheet>div:first-child{border-top:0}.sheet .label b{display:block;font-size:10.5px;font-weight:500}.sheet .label span{display:block;margin-top:6px;color:var(--muted)}.sheet .value{display:flex;align-items:center;gap:12px;min-width:0}.sheet .value b,.sheet .value .muted{display:block}.sheet .notify{display:flex;align-items:center;gap:10px;cursor:pointer}.sheet input.switch{appearance:none;position:relative;flex:none;width:30px;height:18px;margin:0;border:1px solid var(--line2);background:var(--wash2);cursor:pointer}.sheet input.switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--muted);transition:transform .15s}.sheet input.switch:checked{border-color:var(--deep);background:var(--deep)}.sheet input.switch:checked:after{transform:translate(12px);background:#fff}.sheet input.switch:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.sheet input.switch:disabled{opacity:.5;cursor:default}@media(max-width:760px){.sheet>div{grid-template-columns:minmax(0,1fr);gap:12px}}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck .back{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn)}.card.danger{border-color:var(--bad)}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}
@@ -0,0 +1 @@
1
+ .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:5;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small,.pop-item small{color:var(--muted);font-size:11.5px}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){.only-m{display:none}}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast.err .toast-head .cover{color:var(--bad)}.toast.err .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.agent-card{position:relative;display:flex;flex-direction:column;gap:14px;height:100%;padding:18px;border:1px solid var(--line2);background:var(--panel)}.agent-card:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--line2);transition:background .15s}.agent-card:hover{background:var(--tile)}.agent-card:hover:before{background:var(--deep)}.bc-head{display:flex;align-items:center;gap:12px}.bc-head h3{font-size:14px;font-weight:700;overflow-wrap:anywhere}.agent-card .pills a{position:relative;z-index:1}.mark{display:grid;place-items:center;flex:none;width:36px;height:36px;background:var(--blue);color:#fff;font-weight:700}.lead-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;flex:1;overflow:hidden;color:var(--muted)}.pfs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0;font-size:12px}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck .back{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.composer{display:flex;flex-wrap:wrap;padding:5px 5px 5px 8px;border:1px solid var(--line2);background:var(--field)}.composer:has(textarea:focus){border-color:var(--acc)}.composer textarea{flex:1 1 100%;width:auto;field-sizing:content;min-height:22px;max-height:8lh;margin:6px 0;padding:0 4px;border:0;background:none;box-shadow:none;resize:none}.composer textarea:focus{box-shadow:none}.composer-line{display:flex;align-items:center;gap:2px;width:100%;height:30px;min-width:0}.composer-line .select{flex:0 1 auto;max-width:220px}.composer-line .select>button,.composer-line .quiet{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.composer-line .select>button:hover,.composer-line .quiet:hover{background:var(--wash)}.composer-line .send{flex:none;margin-left:4px}.composer-line .send[aria-busy=true] .ic{visibility:hidden}.composer>.flash{flex-basis:100%;margin:0 4px 2px}.composer-settings:popover-open{display:block;width:min(320px,calc(100vw - 32px));overflow-y:auto;padding:6px}.composer-settings>.pop-label:not(:first-child){margin-top:10px}.composer-settings .pop-item{width:100%;min-height:30px;font-size:12px}.composer-settings .pop-group{margin:6px 10px 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.composer-settings .select{margin:2px 6px 4px}.set-label{font-size:11px;color:var(--muted)}.composer-settings .select>button{min-height:30px;padding:4px 8px 4px 10px;font-size:12px}.model-pick input[aria-expanded=true]{cursor:text}.model-pick input[aria-expanded=true]::placeholder{color:var(--dim)}.model-pick>.ic{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}.model-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1;max-height:260px;overflow-y:auto;padding:4px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;scrollbar-width:thin}.model-list .pop-item>.ic{visibility:hidden}.model-list .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.model-list .pop-item,.composer-slash .pop-item{gap:10px;padding:6px 10px}.model-list .pop-item:hover,.composer-slash .pop-item:hover{background:none}.model-list .pop-item.on,.composer-slash .pop-item.on{background:var(--wash2)}.model-list small,.composer-slash small{font-size:11px;color:var(--dim);white-space:nowrap}.composer-slash{max-height:min(360px,50vh);overflow-y:auto}.composer-slash .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-slash>.loading{padding:6px 10px}.notice.slim{flex-wrap:nowrap;gap:10px;padding:8px 8px 8px 14px;font-size:12px}.notice.slim .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card>.notice.slim{margin:12px 16px 0}dialog.compose-dialog{width:min(760px,calc(100vw - 32px));margin:14vh auto auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}dialog.compose-dialog::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.compose-dialog>header{display:flex;align-items:baseline;gap:10px;padding:10px 6px 0 16px}.compose-dialog h2{font-size:15px;font-weight:700}.compose-dialog>header .icon-btn{align-self:center;width:30px;height:30px;margin-left:auto}.compose-dialog .composer,.compose-dialog>.loading,.compose-dialog>.flash,.compose-dialog>.notice{margin:10px 16px 16px}@media(max-width:760px){.composer-settings:popover-open{right:16px!important;grid-template-columns:minmax(0,1fr);gap:4px}.notice.slim .grow{white-space:normal}.composer-settings .set-label:not(:first-child){margin-top:6px}}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-chev{display:inline-grid;place-items:center;flex:none;align-self:stretch;aspect-ratio:1;width:auto;border:0;background:none;color:var(--dim);cursor:pointer}.pop-chev:focus-visible{outline-offset:-2px}.pop-chev:hover,.pop-chev[aria-expanded=true]{color:var(--fg);background:var(--wash)}.pop-chev .ic{width:14px;height:14px;transition:rotate .15s}.pop-chev[aria-expanded=true] .ic{rotate:90deg}.pop-sub{padding-left:32px}.composer-line .folder{display:contents}.composer-line input.folder-path{flex:0 1 260px;min-width:0;min-height:0;height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px}.composer-line input.folder-path:focus{border-color:var(--line2);box-shadow:none}.composer-line .folder-busy{flex:none;font-size:11.5px;color:var(--muted)}.composer>.folder-hint{flex:1 1 100%;padding:0 8px 4px;font-size:11px;color:var(--muted)}.composer>.flash{flex:1 1 100%;padding:2px 8px 4px}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn)}.card.danger{border-color:var(--bad)}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item .pop-path{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.link-pill{color:var(--acc);text-transform:none;letter-spacing:.02em}.link-pill .ic{width:12px;height:12px}.pf{display:inline-flex;flex:none;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.brand-icon{width:12px;height:12px;flex:none}.brand-icon>svg{display:block;width:100%;height:100%}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.tail{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;color:var(--dim);font-size:11.5px}.tail.err{color:var(--bad)}
@@ -0,0 +1 @@
1
+ .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:5;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small,.pop-item small{color:var(--muted);font-size:11.5px}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){.only-m{display:none}}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast.err .toast-head .cover{color:var(--bad)}.toast.err .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck .back{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn)}.card.danger{border-color:var(--bad)}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.fixed{padding:7px 0;color:var(--muted)}.agent-new{display:flex;flex-direction:column;gap:20px}.agent-new .btn[aria-pressed=true]{border-color:var(--deep);background:var(--accbg)}.templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tile{width:100%;padding:10px 14px;border:1px solid var(--line2);background:var(--tile);text-align:left;font:inherit;color:inherit;cursor:pointer}.tile[aria-checked=true]{border-color:var(--deep);box-shadow:inset 3px 0 0 var(--deep)}.tile b,.tile small{display:block}.tile small{color:var(--muted);font-size:11.5px;margin-top:2px}.agent-form{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px}.agent-main{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}.form-part{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:16px 18px;border:1px solid var(--line2);background:var(--panel)}.form-part h2{font-size:15px;font-weight:700}.form-part h2+.muted,.part-head+.muted{margin-top:-6px}.part-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.part-head .search{flex:0 1 240px;min-width:0}.md-preview{min-height:232px;max-height:240px;overflow:auto;padding:8px 10px;border:1px solid var(--line2);background:var(--field)}.listen{border:1px solid var(--line2)}.listen>li+li{border-top:1px solid var(--line2)}.listen-row{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer}.listen-row b,.listen-row small{display:block}.listen-row small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-mark{display:grid;place-items:center;flex:none;width:28px;height:28px;background:var(--wash2);color:var(--muted);font-size:12px;font-weight:700}.listen li.on .pf-mark{background:var(--wash2)}.listen input.switch{appearance:none;position:relative;width:30px;height:18px;border:1px solid var(--line2);background:var(--wash2)}.listen input.switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--muted);transition:transform .15s}.listen input.switch:checked{border-color:var(--deep);background:var(--deep)}.listen input.switch:checked:after{transform:translate(12px);background:#fff}.listen input.switch:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.triggers{display:grid;gap:8px;padding:0 12px 12px 52px}.triggers .chips{gap:6px}.match{display:flex;align-items:center;gap:10px}.match span{flex:none;font-size:11.5px;color:var(--muted)}.listen .match input.mono{min-width:0;min-height:30px;padding:4px 8px}.listen-none{padding:12px}.run:not([open]){gap:0}.run-body{display:grid;gap:14px}.run>summary{display:flex;align-items:baseline;gap:12px;list-style:none;cursor:pointer}.run>summary::-webkit-details-marker{display:none}.run>summary .grow{font-size:12px}.run>summary .ic{align-self:center;width:14px;height:14px;color:var(--muted);transform:rotate(-90deg);transition:transform .15s}.run[open]>summary .ic{transform:none}.agent-side{position:sticky;top:calc(var(--stuck) + 16px);display:grid;gap:10px}.side-label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.agent-card.preview{height:auto;min-height:160px}.agent-card.preview:before{background:var(--deep)}.summary{color:var(--muted)}@media(max-width:760px){.templates,.agent-form{grid-template-columns:minmax(0,1fr)}.agent-side{position:static}.triggers{padding-left:12px}.run-body .seg-btns>button{padding:0 8px}.page .agent-new .stuck .actions>:not(:last-child,[role=alert]){display:none}.page .agent-new .stuck .actions>:last-child{display:inline-flex}}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.agent-card{position:relative;display:flex;flex-direction:column;gap:14px;height:100%;padding:18px;border:1px solid var(--line2);background:var(--panel)}.agent-card:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--line2);transition:background .15s}.agent-card:hover{background:var(--tile)}.agent-card:hover:before{background:var(--deep)}.bc-head{display:flex;align-items:center;gap:12px}.bc-head h3{font-size:14px;font-weight:700;overflow-wrap:anywhere}.agent-card .pills a{position:relative;z-index:1}.mark{display:grid;place-items:center;flex:none;width:36px;height:36px;background:var(--blue);color:#fff;font-weight:700}.lead-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;flex:1;overflow:hidden;color:var(--muted)}.pfs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0;font-size:12px}.link-pill{color:var(--acc);text-transform:none;letter-spacing:.02em}.link-pill .ic{width:12px;height:12px}.pf{display:inline-flex;flex:none;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.brand-icon{width:12px;height:12px;flex:none}.brand-icon>svg{display:block;width:100%;height:100%}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.hero{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.hero>.grow{flex:1 1 280px}.hero-mark{display:grid;place-items:center;flex:none;width:64px;height:64px;background:var(--blue);color:#fff;font-size:26px;font-weight:700}@media(max-width:760px){.hero{gap:14px}.hero-mark{width:48px;height:48px;font-size:20px}.hero .lead{display:-webkit-box;min-height:2lh;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item .pop-path{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.seg-btns{display:flex;border:1px solid var(--line2)}.seg-btns>a,.seg-btns>button,.seg-btns .menu>button{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-left:1px solid var(--line2);background:var(--panel);font-size:10.5px;letter-spacing:.14em;color:var(--muted);cursor:pointer}.seg-btns>button{border-top:0;border-right:0;border-bottom:0;text-transform:uppercase}.seg-btns>:first-child{border-left:0}.seg-btns>a:hover,.seg-btns>button:hover,.seg-btns .menu>button:hover{color:var(--fg)}.seg-btns [aria-current],.seg-btns [aria-checked=true],.seg-btns .on>button{background:var(--accbg);color:var(--acc)}.seg-btns>button:disabled{opacity:.45;color:var(--muted);cursor:not-allowed}.form-actions.end{justify-content:flex-end}.import{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px}.import-repos,.import-preview,.import-agents{display:grid;gap:12px}.import-preview{min-height:240px;padding:20px;border:1px solid var(--line2);background:var(--panel)}.import-preview h3{font-size:14px;font-weight:700}.repo-list{--max: 420px;min-height:240px;border:1px solid var(--line2);background:var(--panel)}.repo-list .pop-item .ic{color:var(--dim)}.repo-list .pop-item[aria-pressed=true]{background:var(--accbg);box-shadow:inset 2px 0 0 var(--acc)}.picks-list{display:grid;gap:12px}.picks-list b{font-weight:500}.picks-list .badge{margin-left:6px}.md{overflow-wrap:anywhere}.md :where(h3,h4,h5,h6){margin:0;font-size:13px;font-weight:700}.md h3{font-size:14px}.md ul{padding-left:20px;list-style:disc}.md ol{padding-left:20px;list-style:decimal}.md pre{margin:0;padding:8px 12px;overflow-x:auto;background:var(--wash)}.md pre code{padding:0;background:none}.collapse{position:relative}.collapse:not(.open){padding-bottom:6px}.collapse-box{box-sizing:content-box;max-height:calc(var(--lines) * 1lh + 44px);overflow:hidden}.collapse.open>.collapse-box{max-height:none}.collapse.long:not(.open)>.collapse-box{mask-image:linear-gradient(#000 calc(100% - 52px),transparent calc(100% - 36px))}.collapse>.btn.more-toggle{position:absolute;z-index:1;left:50%;bottom:6px;translate:-50% 0}.collapse.open>.btn.more-toggle{position:static;display:flex;margin:0 auto 12px;translate:none}
@@ -0,0 +1 @@
1
+ .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:5;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small,.pop-item small{color:var(--muted);font-size:11.5px}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){.only-m{display:none}}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;position-try-fallbacks:flip-block;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled{cursor:default}.pop-item:disabled:hover{background:none}.pop-item small{display:block}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.pop .add-models{margin-top:4px;color:var(--muted)}.pop .add-models .ic{width:14px;height:14px}.toasts{position:fixed;top:16px;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none}.toast{position:relative;display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast.err .toast-head .cover{color:var(--bad)}.toast.err .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck .back{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn)}.card.danger{border-color:var(--bad)}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none;box-shadow:inset 0 -1px var(--line2)}.page .tabs:not(.vertical){height:40px;margin-top:-8px;position:sticky;top:calc(56px + var(--head, 0px));z-index:9;background:var(--bg)}.tabs a,.tabs>button{display:flex;flex:none;align-items:center;gap:8px;padding:10px 12px;border:0;border-bottom:2px solid transparent;background:none;font-size:10.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.tabs a:hover,.tabs>button:hover{color:var(--fg)}.tabs:focus{outline:none}.tabs a:focus-visible,.tabs>button:focus-visible{outline-offset:-2px}.tabs a[aria-current],.tabs a[data-pending],.tabs>button[aria-current]{color:var(--fg);border-bottom-color:var(--fg)}.tabs:has(a[data-pending]) a[aria-current]:not([data-pending]){color:var(--muted);border-bottom-color:transparent}.tabs .count{color:var(--dim)}@property --tabs-fade{syntax: "<length>"; inherits: false; initial-value: 0px;}@keyframes tabs-fade{0%{--tabs-fade: 40px}to{--tabs-fade: 0px}}.tabs{mask-image:linear-gradient(to left,transparent,#000 var(--tabs-fade));animation:tabs-fade linear both;animation-timeline:scroll(self inline)}.tabs[aria-hidden]>*{visibility:hidden}.hero{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap}.hero>.grow{flex:1 1 280px}.hero-mark{display:grid;place-items:center;flex:none;width:64px;height:64px;background:var(--blue);color:#fff;font-size:26px;font-weight:700}@media(max-width:760px){.hero{gap:14px}.hero-mark{width:48px;height:48px;font-size:20px}.hero .lead{display:-webkit-box;min-height:2lh;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.link-pill{color:var(--acc);text-transform:none;letter-spacing:.02em}.link-pill .ic{width:12px;height:12px}.pf{display:inline-flex;flex:none;align-items:center;gap:7px;color:var(--muted);white-space:nowrap}.brand-icon{width:12px;height:12px;flex:none}.brand-icon>svg{display:block;width:100%;height:100%}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.tasks{table-layout:fixed;min-width:720px}.tasks th:nth-child(2){width:160px}.tasks th:nth-child(3){width:140px}.tasks th:nth-child(4){width:130px}.tasks th:nth-child(5){width:150px}.tasks td{padding-block:9px;vertical-align:middle}.tasks .cover{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.tasks td:first-child .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks td:first-child .sub{margin-top:1px}@media(max-width:760px){.tasks{min-width:0}.tasks td:nth-child(3){display:flex;align-items:center;justify-self:end}.tasks td.when,.tasks td.num{font-size:11.5px}.tasks td.num{justify-self:end;color:var(--muted)}}.source{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.source .ic{color:var(--dim)}.tasks th.num,.tasks td.num{padding-right:64px}.tasks td.num{position:relative}.row-acts{position:absolute;top:50%;right:8px;z-index:1;translate:0 -50%;opacity:0;transition:opacity .12s}.tasks tr:is(:hover,:focus-within) .row-acts,.row-acts:has(.pop:popover-open){opacity:1}dialog.confirm{width:min(420px,calc(100vw - 32px));margin:auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;text-align:left;white-space:normal;box-shadow:0 12px 32px #0000002e}dialog.confirm::backdrop{background:#00000073}dialog.confirm form{display:grid;gap:8px;padding:20px}dialog.confirm h2{font-size:15px;font-weight:700;overflow-wrap:anywhere}dialog.confirm p{color:var(--muted)}dialog.confirm .actions{justify-content:flex-end;margin-top:12px}.btn.destructive{background:var(--bad);border-color:var(--bad);color:var(--bg)}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item .pop-path{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.tail{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 14px;color:var(--dim);font-size:11.5px}.tail.err{color:var(--bad)}.composer{display:flex;flex-wrap:wrap;padding:5px 5px 5px 8px;border:1px solid var(--line2);background:var(--field)}.composer:has(textarea:focus){border-color:var(--acc)}.composer textarea{flex:1 1 100%;width:auto;field-sizing:content;min-height:22px;max-height:8lh;margin:6px 0;padding:0 4px;border:0;background:none;box-shadow:none;resize:none}.composer textarea:focus{box-shadow:none}.composer-line{display:flex;align-items:center;gap:2px;width:100%;height:30px;min-width:0}.composer-line .select{flex:0 1 auto;max-width:220px}.composer-line .select>button,.composer-line .quiet{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px;color:var(--muted);white-space:nowrap;cursor:pointer}.composer-line .select>button:hover,.composer-line .quiet:hover{background:var(--wash)}.composer-line .send{flex:none;margin-left:4px}.composer-line .send[aria-busy=true] .ic{visibility:hidden}.composer>.flash{flex-basis:100%;margin:0 4px 2px}.composer-settings:popover-open{display:block;width:min(320px,calc(100vw - 32px));overflow-y:auto;padding:6px}.composer-settings>.pop-label:not(:first-child){margin-top:10px}.composer-settings .pop-item{width:100%;min-height:30px;font-size:12px}.composer-settings .pop-group{margin:6px 10px 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.composer-settings .select{margin:2px 6px 4px}.set-label{font-size:11px;color:var(--muted)}.composer-settings .select>button{min-height:30px;padding:4px 8px 4px 10px;font-size:12px}.model-pick input[aria-expanded=true]{cursor:text}.model-pick input[aria-expanded=true]::placeholder{color:var(--dim)}.model-pick>.ic{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}.model-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1;max-height:260px;overflow-y:auto;padding:4px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;scrollbar-width:thin}.model-list .pop-item>.ic{visibility:hidden}.model-list .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.model-list .pop-item,.composer-slash .pop-item{gap:10px;padding:6px 10px}.model-list .pop-item:hover,.composer-slash .pop-item:hover{background:none}.model-list .pop-item.on,.composer-slash .pop-item.on{background:var(--wash2)}.model-list small,.composer-slash small{font-size:11px;color:var(--dim);white-space:nowrap}.composer-slash{max-height:min(360px,50vh);overflow-y:auto}.composer-slash .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-slash>.loading{padding:6px 10px}.notice.slim{flex-wrap:nowrap;gap:10px;padding:8px 8px 8px 14px;font-size:12px}.notice.slim .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card>.notice.slim{margin:12px 16px 0}dialog.compose-dialog{width:min(760px,calc(100vw - 32px));margin:14vh auto auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}dialog.compose-dialog::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.compose-dialog>header{display:flex;align-items:baseline;gap:10px;padding:10px 6px 0 16px}.compose-dialog h2{font-size:15px;font-weight:700}.compose-dialog>header .icon-btn{align-self:center;width:30px;height:30px;margin-left:auto}.compose-dialog .composer,.compose-dialog>.loading,.compose-dialog>.flash,.compose-dialog>.notice{margin:10px 16px 16px}@media(max-width:760px){.composer-settings:popover-open{right:16px!important;grid-template-columns:minmax(0,1fr);gap:4px}.notice.slim .grow{white-space:normal}.composer-settings .set-label:not(:first-child){margin-top:6px}}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-chev{display:inline-grid;place-items:center;flex:none;align-self:stretch;aspect-ratio:1;width:auto;border:0;background:none;color:var(--dim);cursor:pointer}.pop-chev:focus-visible{outline-offset:-2px}.pop-chev:hover,.pop-chev[aria-expanded=true]{color:var(--fg);background:var(--wash)}.pop-chev .ic{width:14px;height:14px;transition:rotate .15s}.pop-chev[aria-expanded=true] .ic{rotate:90deg}.pop-sub{padding-left:32px}.composer-line .folder{display:contents}.composer-line input.folder-path{flex:0 1 260px;min-width:0;min-height:0;height:28px;padding:3px 8px;border:1px solid transparent;background:none;font-size:11.5px}.composer-line input.folder-path:focus{border-color:var(--line2);box-shadow:none}.composer-line .folder-busy{flex:none;font-size:11.5px;color:var(--muted)}.composer>.folder-hint{flex:1 1 100%;padding:0 8px 4px;font-size:11px;color:var(--muted)}.composer>.flash{flex:1 1 100%;padding:2px 8px 4px}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px 20px;margin:0}.facts dt{font-size:10px;color:var(--muted)}.facts dd{margin:4px 0 0;overflow-wrap:anywhere}.versions li{display:flex;align-items:first baseline;gap:14px;padding:12px 16px;border-top:1px solid var(--line)}.md{overflow-wrap:anywhere}.md :where(h3,h4,h5,h6){margin:0;font-size:13px;font-weight:700}.md h3{font-size:14px}.md ul{padding-left:20px;list-style:disc}.md ol{padding-left:20px;list-style:decimal}.md pre{margin:0;padding:8px 12px;overflow-x:auto;background:var(--wash)}.md pre code{padding:0;background:none}.collapse{position:relative}.collapse:not(.open){padding-bottom:6px}.collapse-box{box-sizing:content-box;max-height:calc(var(--lines) * 1lh + 44px);overflow:hidden}.collapse.open>.collapse-box{max-height:none}.collapse.long:not(.open)>.collapse-box{mask-image:linear-gradient(#000 calc(100% - 52px),transparent calc(100% - 36px))}.collapse>.btn.more-toggle{position:absolute;z-index:1;left:50%;bottom:6px;translate:-50% 0}.collapse.open>.btn.more-toggle{position:static;display:flex;margin:0 auto 12px;translate:none}