@wular/coder 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +69 -70
  2. package/dist/actions-FzDNxMFf.js +20 -0
  3. package/dist/{adapter-BKVzTDnn.js → adapter-7SEiVsmp.js} +1 -1
  4. package/dist/{adapter-B0oYCI0S.js → adapter-BLEfUqoQ.js} +1 -1
  5. package/dist/{adapter-DPInwbJG.js → adapter-H4GlcKQz.js} +1 -1
  6. package/dist/{add-CE-70LFs.js → add-B50dIJGd.js} +1 -1
  7. package/dist/{add-BxpLHnvD.js → add-D7X3gxap.js} +1 -1
  8. package/dist/{add-ej0X9e3a.js → add-DOEUHIe7.js} +1 -1
  9. package/dist/{add-U-pty9qJ.js → add-QExQhTzi.js} +1 -1
  10. package/dist/{add-json-CEa-6luW.js → add-json-Ck4KIZrT.js} +1 -1
  11. package/dist/{agent-JdtZozvP.js → agent-BPtnEf1q.js} +1 -1
  12. package/dist/{agent-BsYx3Odz.js → agent-BlQ_dNNm.js} +2 -2
  13. package/dist/{alias-DX-Bm86x.js → alias-BwQBovke.js} +1 -1
  14. package/dist/{app-BT5f7zL5.js → app-y6BYm2eH.js} +1 -1
  15. package/dist/{approvals-C-AvFt6s.js → approvals-Cc9cq5T1.js} +2 -2
  16. package/dist/{approve-DOmpQRNd.js → approve-oO9k2fnK.js} +2 -2
  17. package/dist/{apps-CjfrZyM5.js → apps-CU2YalX8.js} +1 -1
  18. package/dist/{archive-BziJ1rQ-.js → archive-C5c_HQS1.js} +2 -2
  19. package/dist/{archive-BUB8gFKD.js → archive-CemlWlVY.js} +2 -2
  20. package/dist/archive-sweep-ehg-fWIt.js +1 -0
  21. package/dist/{args-BOEEdpWk.js → args-DcBCtXhz.js} +1 -1
  22. package/dist/{ask-dE3U3ss2.js → ask-Chu7Twu_.js} +2 -2
  23. package/dist/auth-BOyXPOtu.js +1 -0
  24. package/dist/auth-XbqKSbcD.js +1 -0
  25. package/dist/{chat-bridge-BS9WtP3X.js → chat-bridge-DXgZItGP.js} +1 -1
  26. package/dist/{chat-B_yhNTo0.js → chat-cknlIhVh.js} +1 -1
  27. package/dist/{cli-BilSDkvE.js → cli-B1ObVrL4.js} +5 -5
  28. package/dist/cli.d.ts +1 -1
  29. package/dist/cli.js +1 -1
  30. package/dist/{client-D9IoAuDD.js → client-31YzOj-i.js} +1 -1
  31. package/dist/{config-Da_cwoxI.js → config-DAE_qHYA.js} +1 -1
  32. package/dist/{create-C_iMJV4Y.js → create-CM8B8JxD.js} +1 -1
  33. package/dist/credentials-BXD4Qptk.js +1 -0
  34. package/dist/dash/manifest.json +934 -1014
  35. package/dist/dash/public/assets/chunks/{agent-pills-c9c4ac4d4a10df83.js → agent-pills-b6a6da91c9559d9f.js} +1 -1
  36. package/dist/dash/public/assets/chunks/{agent-settings-form-8be2ddab074aba6d.js → agent-settings-form-b615c677046cd6f2.js} +1 -1
  37. package/dist/dash/public/assets/chunks/agents-grid-f2e7b4ff9e11b6e3.js +1 -0
  38. package/dist/dash/public/assets/chunks/{badge-676b01e0c615bf7b.js → badge-215c7b2631dafc69.js} +1 -1
  39. package/dist/dash/public/assets/chunks/{card-e0901d68b79dfa93.js → card-e86dcc81326d2b14.js} +1 -1
  40. package/dist/dash/public/assets/chunks/{combo-41234c24668b1db1.js → combo-09e246dc9a517fa8.js} +1 -1
  41. package/dist/dash/public/assets/chunks/composer-417166b029f48c47.js +1 -0
  42. package/dist/dash/public/assets/chunks/composer-645ae8fa97a35280.js +1 -0
  43. package/dist/dash/public/assets/chunks/{confirm-f2fe4ba9905a89c6.js → confirm-5ae484241ad888fd.js} +1 -1
  44. package/dist/dash/public/assets/chunks/{connect-apps-aa2a3d82e48ed8c3.js → connect-apps-4147c45f45fde2b1.js} +1 -1
  45. package/dist/dash/public/assets/chunks/{connect-repositories-5389ec8701a3deac.js → connect-repositories-77591110836bdf03.js} +1 -1
  46. package/dist/dash/public/assets/chunks/credentials-list-e005a0783ec93465.js +2 -0
  47. package/dist/dash/public/assets/chunks/{custom-range-4761ab14f05149df.js → custom-range-463e119af4681c61.js} +1 -1
  48. package/dist/dash/public/assets/chunks/{editor-bfe8cd854f8001be.js → editor-804b84f4fe6539cd.js} +4 -4
  49. package/dist/dash/public/assets/chunks/{engines-list-f1191390f5715b39.js → engines-list-ceab51f13c690e8c.js} +1 -1
  50. package/dist/dash/public/assets/chunks/{field-901f1f35c18c39c9.js → field-aa0a4b98a976781e.js} +1 -1
  51. package/dist/dash/public/assets/chunks/filter-91144ac2eec6297f.js +1 -0
  52. package/dist/dash/public/assets/chunks/format-105c706345987fb2.js +1 -0
  53. package/dist/dash/public/assets/chunks/heads-a42817b32d2d7f08.js +1 -0
  54. package/dist/dash/public/assets/chunks/{instructions-052fa45a9daf6db6.js → instructions-3a1dcaff2d868aa5.js} +1 -1
  55. package/dist/dash/public/assets/chunks/instructions-6c6f981fffaa31e4.js +1 -0
  56. package/dist/dash/public/assets/chunks/{list-1d259660d7612c5f.js → list-7270361464fc3c04.js} +1 -1
  57. package/dist/dash/public/assets/chunks/{mcp-list-e3bebbbe831393b8.js → mcp-list-2e715d48666b54ad.js} +1 -1
  58. package/dist/dash/public/assets/chunks/{models-list-44f857a469ca04d5.js → models-list-d3c40f94c761a6e5.js} +1 -1
  59. package/dist/dash/public/assets/chunks/paged-3ddb6077bef42752.js +1 -0
  60. package/dist/dash/public/assets/chunks/{platform-actions-d1426602049926d2.js → platform-actions-271ec3b99a64280b.js} +1 -1
  61. package/dist/dash/public/assets/chunks/runners-list-767e49c7d0ec833a.js +1 -0
  62. package/dist/dash/public/assets/chunks/{segmented-358ff2b4992b8384.js → segmented-de4386ccaac7304d.js} +1 -1
  63. package/dist/dash/public/assets/chunks/{select-7ae25fd8a7d6c338.js → select-a90307706cffa6e0.js} +1 -1
  64. package/dist/dash/public/assets/chunks/{sentinel-c972a33dc69a5135.js → sentinel-b5e032b38604dfd3.js} +1 -1
  65. package/dist/dash/public/assets/chunks/shared-init-7f81ae7bc8c82438.js +2 -0
  66. package/dist/dash/public/assets/chunks/shared-init-933c7f9ee85be766.js +5 -0
  67. package/dist/dash/public/assets/chunks/{tail-7c27aab8ba268bd9.js → tail-4891e727ee526792.js} +1 -1
  68. package/dist/dash/public/assets/chunks/task-actions-ce854925a2dc78fd.js +1 -0
  69. package/dist/dash/public/assets/chunks/task-ddfddeaf07fb684c.js +1 -0
  70. package/dist/dash/public/assets/chunks/task-view-c37dcee08f21a279.js +5 -0
  71. package/dist/dash/public/assets/chunks/tasks-list-baef587999f322d8.js +1 -0
  72. package/dist/dash/public/assets/chunks/{toolbar-a75d2570f07cbb70.js → toolbar-8d98313606ad8a2d.js} +1 -1
  73. package/dist/dash/public/assets/chunks/{versions-list-fc2e0d2a7382e049.js → versions-list-532690efd9f1b0ea.js} +1 -1
  74. package/dist/dash/public/assets/dash-49ca85b59ac65c20.css +1 -0
  75. package/dist/dash/public/assets/dash-account-edc56e85dbaaabe0.css +1 -0
  76. package/dist/dash/public/assets/dash-agents-edba57b67e4005d0.css +1 -0
  77. package/dist/dash/public/assets/dash-agents-new-fe22253fbada2fbf.css +1 -0
  78. package/dist/dash/public/assets/dash-agents-param-slug-adf52e9dacb2d825.css +1 -0
  79. package/dist/dash/public/assets/dash-agents-param-slug-edit-a2937a347689ef29.css +1 -0
  80. package/dist/dash/public/assets/dash-agents-param-slug-platforms-265ba13db32a460d.css +1 -0
  81. package/dist/dash/public/assets/dash-agents-param-slug-settings-8afc52eb0372bc4b.css +1 -0
  82. package/dist/dash/public/assets/dash-agents-param-slug-tasks-6193e646be68dbd2.css +1 -0
  83. package/dist/dash/public/assets/dash-agents-param-slug-usage-ceadb3a1c911c402.css +1 -0
  84. package/dist/dash/public/assets/dash-settings-cf1997cd7f72e518.css +1 -0
  85. package/dist/dash/public/assets/dash-settings-param-tab-b44dac8e79a560e6.css +1 -0
  86. package/dist/dash/public/assets/dash-tasks-916c7100a8058aa3.css +1 -0
  87. package/dist/dash/public/assets/dash-tasks-param-id-194a6ffc20e872f2.css +1 -0
  88. package/dist/dash/public/assets/dash-usage-40940b289f85e0b6.css +1 -0
  89. package/dist/dash/public/assets/pnext-client-13aee92bef5c9e3f.js +1 -0
  90. package/dist/dash/public/assets/pnext-client-1f2686b2044f0df6.js +1 -0
  91. package/dist/dash/public/assets/pnext-client-26130234ebad7067.js +1 -0
  92. package/dist/dash/public/assets/pnext-client-311e35b0076bf406.js +1 -0
  93. package/dist/dash/public/assets/pnext-client-4ade1bf75c9c3d87.js +1 -0
  94. package/dist/dash/public/assets/pnext-client-61cd31b687ede1da.js +1 -0
  95. package/dist/dash/public/assets/pnext-client-61db65dc4223217a.js +1 -0
  96. package/dist/dash/public/assets/pnext-client-6ea656e7705e3f2a.js +1 -0
  97. package/dist/dash/public/assets/pnext-client-7fd0f793f0322cb9.js +1 -0
  98. package/dist/dash/public/assets/pnext-client-88159c0840fcfa4a.js +1 -0
  99. package/dist/dash/public/assets/pnext-client-b03f0c47c066b4f3.js +1 -0
  100. package/dist/dash/public/assets/{pnext-client-1b9ab0963a8ff77b.js → pnext-client-d6478835f543f901.js} +1 -1
  101. package/dist/dash/public/assets/pnext-client-dadb8359021ed590.js +1 -0
  102. package/dist/dash/public/assets/pnext-client-de07532d6aaebf2c.js +1 -0
  103. package/dist/dash/public/assets/pnext-client-f87a31890c8ff224.js +1 -0
  104. package/dist/dash/public/assets/pnext-client-ffe1c123a8e2a350.js +1 -0
  105. package/dist/dash/server/bundle-0.1.6-b29ec45cb963d47f/entry.js +2 -0
  106. package/dist/{default-vYPT26DR.js → default-BMvUMTFp.js} +1 -1
  107. package/dist/default-B_nKaX0-.js +1 -0
  108. package/dist/{delete-D8gEwoOj.js → delete-Bjteibld.js} +2 -2
  109. package/dist/{delete-z1_86nf6.js → delete-riCIKZwj.js} +2 -2
  110. package/dist/{disable-DVKd-0Xb.js → disable-DQC56YFy.js} +1 -1
  111. package/dist/{discover-Dvr_3_Xr.js → discover-Qanr5TEO.js} +1 -1
  112. package/dist/{discover-Df-a8K4R.js → discover-lgTYwoQp.js} +2 -2
  113. package/dist/dispatch-BsW_1m7e.js +14 -0
  114. package/dist/{docs-DKJnqZqt.js → docs-DFs7lOJp.js} +1 -1
  115. package/dist/{docs-BX65z2Iu.js → docs-DKROso-4.js} +2 -2
  116. package/dist/{enable-C8Zf_wpN.js → enable-D2DqZvcU.js} +1 -1
  117. package/dist/{env-CRf6wkM2.js → env-YRY3I60r.js} +1 -1
  118. package/dist/exec-DuUkLMqg.js +11 -0
  119. package/dist/executor-vMppVLB6.js +10 -0
  120. package/dist/flow/builtin/review.js +1 -1
  121. package/dist/flow/index.d.ts +1 -1
  122. package/dist/flow/index.js +1 -1
  123. package/dist/{flow-17k25MHt.js → flow-DmERAnR8.js} +1 -1
  124. package/dist/{github-actions-DwUzm4hC.js → github-actions-C_NkHVJq.js} +1 -1
  125. package/dist/http-D01Udu4u.js +1 -0
  126. package/dist/{index-CZjFX5zV.d.ts → index-B1L4zXZH.d.ts} +2 -1
  127. package/dist/{init-CoMfFxbG.js → init-Bd6JHzBc.js} +1 -1
  128. package/dist/integrations-B2CavXR1.js +5 -0
  129. package/dist/integrations-D1Dwy1kt.js +1 -0
  130. package/dist/lib/broker.js +2 -2
  131. package/dist/{list-DX-z3SBp.js → list-4Uo-0v9s.js} +1 -1
  132. package/dist/{list-BAKvxSbh.js → list-B0ujEZhd.js} +3 -3
  133. package/dist/{list-BYiG8Zav.js → list-B5oa1Bhy.js} +2 -2
  134. package/dist/{list-BxEywhHU.js → list-BjE_l6la.js} +1 -1
  135. package/dist/{list-VToARh3C.js → list-Ck9ibCs1.js} +1 -1
  136. package/dist/{list-CIW2joV1.js → list-DhgK4Zc4.js} +1 -1
  137. package/dist/{list-DpCf4G-H.js → list-KvL7AUhD.js} +2 -2
  138. package/dist/{list-C5w01-8q.js → list-byYLBl1U.js} +1 -1
  139. package/dist/{load-BpEsAn51.js → load-SnZd7xG1.js} +1 -1
  140. package/dist/{local-H3uvqEbq.js → local-BRy1EUq2.js} +1 -1
  141. package/dist/log-view-DeJstSkw.js +3 -0
  142. package/dist/{login-DkkslfBx.js → login-C-ahtDKV.js} +1 -1
  143. package/dist/{login-BFxX4jJy.js → login-zpwke8g1.js} +1 -1
  144. package/dist/{logout-BHAtw4Z8.js → logout-CI6Kf-T6.js} +1 -1
  145. package/dist/{maintenance-C5FklUw3.js → maintenance-BAzr9Jlr.js} +1 -1
  146. package/dist/{match-CXAjDhg7.js → match-DxV1d49D.js} +1 -1
  147. package/dist/{mcp-BgKb2Cdk.js → mcp-CmcL1MCG.js} +1 -1
  148. package/dist/{mcp-CCZOAo06.js → mcp-mhXwtGQT.js} +1 -1
  149. package/dist/{migrate-N-85_N7J.js → migrate-Czh3TEK5.js} +1 -1
  150. package/dist/{migrate-C4vM7DQN.js → migrate-w7KfzUAR.js} +1 -1
  151. package/dist/{model-Bs1StDo3.js → model-JRoTH9QK.js} +1 -1
  152. package/dist/models-C-S7HqSb.js +1 -0
  153. package/dist/{prompt-CEuBMNhk.js → prompt-CMXmt2l9.js} +4 -4
  154. package/dist/{push-CUC55Bqd.js → push-B8BhTyZs.js} +1 -1
  155. package/dist/queue-CirjEskI.js +117 -0
  156. package/dist/refresh-Bmy2r1Ee.js +1 -0
  157. package/dist/{remote-miQNTVRa.js → remote-CxFnEjZl.js} +1 -1
  158. package/dist/{remove-B93LNkZI.js → remove-C15WLaXT.js} +1 -1
  159. package/dist/{remove-C5_xggx7.js → remove-CTZYjjSr.js} +1 -1
  160. package/dist/{remove-eQ8y5C5p.js → remove-CTl-H0f0.js} +1 -1
  161. package/dist/{remove-CuH8a3L9.js → remove-DX2FVo5b.js} +1 -1
  162. package/dist/rename-D1g4TnHQ.js +1 -0
  163. package/dist/{result-BEtQZHaY.js → result-D49VN8PM.js} +3 -3
  164. package/dist/result-DGWyUHYU.js +18 -0
  165. package/dist/{resume-DYzKvyEw.js → resume-ywzc7z6A.js} +2 -2
  166. package/dist/{review-oIBeECZE.js → review-ZC0xG8XY.js} +2 -2
  167. package/dist/{rotate-key-IdMYH7gg.js → rotate-key-Bf8_99ck.js} +1 -1
  168. package/dist/{run-CTtd0Znc.js → run-D7SJ-ieT.js} +2 -2
  169. package/dist/run-DoRQSC_K.js +2 -0
  170. package/dist/{run-CawRGnOg.js → run-ukCf2Mdy.js} +1 -1
  171. package/dist/runner-D-REfOUe.js +1 -0
  172. package/dist/{runner-sUpWJ_k0.js → runner-wDYhkVsM.js} +1 -1
  173. package/dist/schema-DoNO0dPh.js +1 -0
  174. package/dist/sdk.d.ts +4 -2
  175. package/dist/sdk.js +1 -1
  176. package/dist/serve-BJ_Mbm2m.js +8 -0
  177. package/dist/{serve-CPnmrKyf.js → serve-C1MMhM1F.js} +2 -2
  178. package/dist/{serve-GmRO89s5.js → serve-DtrOHaoS.js} +2 -2
  179. package/dist/{serve-CE8YV2e9.js → serve-P9pFkEnE.js} +1 -1
  180. package/dist/{serve-BTeomYxW.js → serve-yjSw0B1a.js} +1 -1
  181. package/dist/{server-Kb22cWfF.js → server-DDWTnmbx.js} +1 -1
  182. package/dist/{setup-host-GFTUzzZJ.js → setup-host-L6Rnn5Cz.js} +1 -1
  183. package/dist/{shared-DVtzWhUT.js → shared-XsUX_ZZb.js} +1 -1
  184. package/dist/{show-COTZEYgc.js → show-CU-jqJ90.js} +1 -1
  185. package/dist/{show-CMUg8SJu.js → show-DVJmB2u-.js} +1 -1
  186. package/dist/{status-D26U--p8.js → status-CBydR7LE.js} +1 -1
  187. package/dist/{steer-C6uARLp5.js → steer-Cm_sHZqs.js} +2 -2
  188. package/dist/{stop-BrGI3hSS.js → stop-DJS7DAPJ.js} +1 -1
  189. package/dist/{stop-ByCAlbmN.js → stop-TrebIIuv.js} +2 -2
  190. package/dist/store-BrNMqJgk.js +42 -0
  191. package/dist/store-j8icrG0v.js +19 -0
  192. package/dist/task-C8lmcNsf.js +1 -0
  193. package/dist/{task-DeglY79z.js → task-CpUI19o2.js} +4 -4
  194. package/dist/task-CvSqiwxo.js +1 -0
  195. package/dist/{test-NEbhlxvo.js → test-CDKz4jY_.js} +1 -1
  196. package/dist/{tools-D0Zfs8Hx.js → tools-DBFeoosk.js} +1 -1
  197. package/dist/{types-I5Cwtl_K.d.ts → types-DMGBYB_K.d.ts} +3 -1
  198. package/dist/{unalias-C9NqmSDq.js → unalias-BfQFBnuK.js} +1 -1
  199. package/dist/{update-BTxYQj7Z.js → update-C4FFOie8.js} +1 -1
  200. package/dist/{upgrade-hA0yWBvx.js → upgrade-DLJqMnUQ.js} +2 -2
  201. package/dist/{usage-BhqoCjvE.js → usage-CSh-xwQ2.js} +1 -1
  202. package/dist/{usage-C4d9X2Uq.js → usage-D8mc4qXK.js} +1 -1
  203. package/dist/{watch-DtRuC0Wc.js → watch-CQu-tJKZ.js} +2 -2
  204. package/dist/{watch-CSdj24ct.js → watch-DmwaEvoi.js} +2 -2
  205. package/dist/{wire-BeT1Axeo.js → wire-DzGLZ3-O.js} +1 -1
  206. package/dist/worker-BLKTMLqa.js +1 -0
  207. package/dist/worker-nHemduM_.js +9 -0
  208. package/dist/{workflow-Dcmdooi8.js → workflow-IrouAus_.js} +1 -1
  209. package/docs/cli.md +145 -0
  210. package/docs/mcp.md +1 -1
  211. package/migrations/0000_initial.sql +8 -0
  212. package/migrations/meta/0000_snapshot.json +75 -1
  213. package/migrations/meta/_journal.json +1 -1
  214. package/package.json +3 -2
  215. package/plugins/agents/skills/coder/SKILL.md +1 -0
  216. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  217. package/plugins/claude/skills/dispatch/SKILL.md +1 -1
  218. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  219. package/plugins/cursor/skills/coder/SKILL.md +1 -0
  220. package/src/client/index.ts +10 -2
  221. package/src/client/types.ts +18 -0
  222. package/src/core/defaults.ts +36 -0
  223. package/src/core/task/log-view.ts +120 -6
  224. package/src/server/dash/app/dash/agents/(list)/agent-menu.tsx +4 -0
  225. package/src/server/dash/app/dash/agents/(list)/agents-grid.tsx +18 -35
  226. package/src/server/dash/app/dash/agents/(list)/loading.tsx +7 -1
  227. package/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.tsx +2 -1
  228. package/src/server/dash/app/dash/layout.css +58 -1
  229. package/src/server/dash/app/dash/layout.tsx +29 -7
  230. package/src/server/dash/app/dash/settings/[tab]/credentials-list.tsx +20 -13
  231. package/src/server/dash/app/dash/settings/[tab]/page.tsx +1 -1
  232. package/src/server/dash/app/dash/settings/[tab]/runners-list.tsx +13 -12
  233. package/src/server/dash/app/dash/tasks/[id]/activity.tsx +49 -4
  234. package/src/server/dash/app/dash/tasks/[id]/task-actions.tsx +43 -6
  235. package/src/server/dash/app/dash/tasks/[id]/task-view.css +52 -31
  236. package/src/server/dash/app/dash/tasks/[id]/task-view.tsx +143 -51
  237. package/src/server/dash/app/dash/tasks/composer.css +4 -0
  238. package/src/server/dash/app/dash/tasks/composer.tsx +6 -5
  239. package/src/server/dash/app/dash/tasks/list/task.ts +29 -1
  240. package/src/server/dash/app/dash/tasks/list/tasks-list.css +20 -7
  241. package/src/server/dash/app/dash/tasks/list/tasks-list.tsx +256 -109
  242. package/src/server/dash/app/dash/tasks/list/tasks-section.tsx +9 -13
  243. package/src/server/dash/app/dash/tasks/page.tsx +3 -35
  244. package/src/server/dash/comps/frame/loading-card.tsx +4 -3
  245. package/src/server/dash/comps/frame/page-head.css +10 -0
  246. package/src/server/dash/comps/frame/page-head.tsx +3 -2
  247. package/src/server/dash/comps/frame/task-toasts.tsx +196 -50
  248. package/src/server/dash/comps/nav/side-toggle.tsx +16 -5
  249. package/src/server/dash/comps/ui/card.css +1 -0
  250. package/src/server/dash/comps/ui/filter.css +64 -0
  251. package/src/server/dash/comps/ui/filter.tsx +336 -0
  252. package/src/server/dash/comps/ui/icons.ts +2 -0
  253. package/src/server/dash/comps/ui/menu.tsx +9 -1
  254. package/src/server/dash/comps/ui/select.tsx +2 -2
  255. package/src/server/dash/comps/ui/toast.css +3 -2
  256. package/src/server/dash/comps/ui/toolbar.css +14 -0
  257. package/src/server/dash/utils/client.ts +21 -0
  258. package/src/server/dash/utils/format.ts +12 -4
  259. package/src/server/dash/utils/paged.ts +14 -6
  260. package/dist/actions-Mk3FSlpJ.js +0 -20
  261. package/dist/archive-sweep-CtBcARgN.js +0 -1
  262. package/dist/auth-BFny--17.js +0 -1
  263. package/dist/auth-DWHIzqbA.js +0 -1
  264. package/dist/credentials-B1jv6dkg.js +0 -1
  265. package/dist/dash/public/assets/chunks/agents-grid-951584b6f4c4314e.js +0 -1
  266. package/dist/dash/public/assets/chunks/composer-5534be50bc12385e.js +0 -1
  267. package/dist/dash/public/assets/chunks/composer-d10d4b1d54c4f751.js +0 -1
  268. package/dist/dash/public/assets/chunks/credentials-list-bc5bfcab058176c5.js +0 -2
  269. package/dist/dash/public/assets/chunks/format-eb03fc9d9744d960.js +0 -1
  270. package/dist/dash/public/assets/chunks/heads-f3bcd289663d48fa.js +0 -1
  271. package/dist/dash/public/assets/chunks/instructions-d0a4b0d95009c262.js +0 -1
  272. package/dist/dash/public/assets/chunks/paged-bc6fa0c2b9d52ed7.js +0 -1
  273. package/dist/dash/public/assets/chunks/runners-list-1901af8a5dea1f09.js +0 -1
  274. package/dist/dash/public/assets/chunks/shared-init-88cce66bb3cfe1e5.js +0 -5
  275. package/dist/dash/public/assets/chunks/shared-init-ffb3397e494137c9.js +0 -2
  276. package/dist/dash/public/assets/chunks/task-actions-8e1d93c788d001df.js +0 -1
  277. package/dist/dash/public/assets/chunks/task-fa8b82e95e771c4a.js +0 -1
  278. package/dist/dash/public/assets/chunks/task-view-6d7618d2820a5cb4.js +0 -3
  279. package/dist/dash/public/assets/chunks/tasks-list-f4784e5cbd0ed785.js +0 -1
  280. package/dist/dash/public/assets/dash-9e02d5d1a6d42ee3.css +0 -1
  281. package/dist/dash/public/assets/dash-account-04859899c1838ada.css +0 -1
  282. package/dist/dash/public/assets/dash-agents-9e678137267dec07.css +0 -1
  283. package/dist/dash/public/assets/dash-agents-new-26fa27b17ef9b8d8.css +0 -1
  284. package/dist/dash/public/assets/dash-agents-param-slug-b975c48f8abf3444.css +0 -1
  285. package/dist/dash/public/assets/dash-agents-param-slug-edit-e13fda599bb04843.css +0 -1
  286. package/dist/dash/public/assets/dash-agents-param-slug-platforms-70292932cb27bc96.css +0 -1
  287. package/dist/dash/public/assets/dash-agents-param-slug-settings-71f9a86251723fcc.css +0 -1
  288. package/dist/dash/public/assets/dash-agents-param-slug-tasks-fb8eb2ed71006601.css +0 -1
  289. package/dist/dash/public/assets/dash-agents-param-slug-usage-7c8740f1cdd52c71.css +0 -1
  290. package/dist/dash/public/assets/dash-settings-8eb818da462227e8.css +0 -1
  291. package/dist/dash/public/assets/dash-settings-param-tab-849a1a9542e273f5.css +0 -1
  292. package/dist/dash/public/assets/dash-tasks-81e510e0b6931b42.css +0 -1
  293. package/dist/dash/public/assets/dash-tasks-param-id-bbd2a83342f2ec10.css +0 -1
  294. package/dist/dash/public/assets/dash-usage-8e0259e03eaed1bd.css +0 -1
  295. package/dist/dash/public/assets/pnext-client-03b03b254e525e82.js +0 -1
  296. package/dist/dash/public/assets/pnext-client-1c7859bb888f4ef0.js +0 -1
  297. package/dist/dash/public/assets/pnext-client-3c748afe963fb05d.js +0 -1
  298. package/dist/dash/public/assets/pnext-client-4f47c2cae220f107.js +0 -1
  299. package/dist/dash/public/assets/pnext-client-6ab9fd9b53b794d2.js +0 -1
  300. package/dist/dash/public/assets/pnext-client-6c241786342498e4.js +0 -1
  301. package/dist/dash/public/assets/pnext-client-80b56d420f02b808.js +0 -1
  302. package/dist/dash/public/assets/pnext-client-83135c17bae850a3.js +0 -1
  303. package/dist/dash/public/assets/pnext-client-8e6fa4302ae0396f.js +0 -1
  304. package/dist/dash/public/assets/pnext-client-932c9d8cc0717fc8.js +0 -1
  305. package/dist/dash/public/assets/pnext-client-a42ae63d4de113f9.js +0 -1
  306. package/dist/dash/public/assets/pnext-client-d2ee6f8c1e337032.js +0 -1
  307. package/dist/dash/public/assets/pnext-client-d513f65ec23b7f20.js +0 -1
  308. package/dist/dash/public/assets/pnext-client-ecb88e2a8a109954.js +0 -1
  309. package/dist/dash/public/assets/pnext-client-f1545ee6270bbf9a.js +0 -1
  310. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/boot-B2MFTRO2.js +0 -30
  311. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/build-tier-XJJSL5FR.js +0 -2704
  312. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2HFY3DQT.js +0 -208
  313. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-2ICEVELW.js +0 -834
  314. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-3UPROT2C.js +0 -35
  315. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4P5CMIYT.js +0 -1582
  316. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-4TKZKZ3Q.js +0 -131
  317. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-5RDEILQB.js +0 -437
  318. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-62KEQM43.js +0 -25
  319. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-6KQSWT6D.js +0 -831
  320. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-7DCNCW6O.js +0 -724
  321. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-B4THCTQP.js +0 -22
  322. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-C2LIV2MM.js +0 -172
  323. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-CCATPVTW.js +0 -378
  324. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-COXJAPTU.js +0 -89
  325. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-E6IXL2NJ.js +0 -6270
  326. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FLGRBFAH.js +0 -1198
  327. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-FTJVHFWD.js +0 -61
  328. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-H523KSIH.js +0 -5151
  329. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-HT6KKX6A.js +0 -20
  330. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JESFYECC.js +0 -438
  331. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-JRPJM2XY.js +0 -17
  332. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L2IWDUXG.js +0 -107
  333. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-L5P4Y4UC.js +0 -183
  334. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-NQE46AZN.js +0 -647
  335. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PA4QEARJ.js +0 -129
  336. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-PZ5AXOLW.js +0 -7146
  337. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-SNVPTULL.js +0 -2397
  338. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-T3QZT3PG.js +0 -220
  339. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-VC5O2SDP.js +0 -72
  340. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-WZX4V6CM.js +0 -231
  341. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-XUUIDXY5.js +0 -627
  342. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/chunk-ZHFDO3PR.js +0 -265
  343. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/compile-CE2DN7ZA.js +0 -18
  344. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-UREY7XJT.js +0 -16
  345. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/config-loader-UI2XE3PZ.js +0 -17
  346. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/entry.js +0 -219
  347. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/generate-I2PPTDFD.js +0 -16
  348. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/modules-UVOCE4C2.js +0 -48
  349. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/pipeline-UW47K537.js +0 -963
  350. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/proxy-ITGOVJBW.js +0 -26
  351. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/register-4SA55SWT.js +0 -12579
  352. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/router-JNKHLBCZ.js +0 -505
  353. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/routes-PD6J2NXW.js +0 -54
  354. package/dist/dash/server/bundle-0.1.5-1508b6c99c0d1e68/tsconfig-defaults-ZXEH7RQK.js +0 -15
  355. package/dist/default-Bobztoxf.js +0 -1
  356. package/dist/dispatch-BKeAch9E.js +0 -14
  357. package/dist/exec-RZFLclKX.js +0 -11
  358. package/dist/executor-BvAA7Cgw.js +0 -10
  359. package/dist/http-Bkg_OQ6r.js +0 -1
  360. package/dist/integrations-5xCaXSd-.js +0 -1
  361. package/dist/integrations-BAgdVDhj.js +0 -5
  362. package/dist/log-view-dg0TlKLA.js +0 -1
  363. package/dist/models-_5LVGC3m.js +0 -1
  364. package/dist/queue-6io_NOP3.js +0 -116
  365. package/dist/refresh-BIrmrWYq.js +0 -1
  366. package/dist/rename-CYfy03FE.js +0 -1
  367. package/dist/result-BzaM3inj.js +0 -15
  368. package/dist/run-BDYl0CKl.js +0 -2
  369. package/dist/runner-D7ScbIHJ.js +0 -1
  370. package/dist/schema-CU2iFkp8.js +0 -1
  371. package/dist/serve-CQKZxzFE.js +0 -4
  372. package/dist/store-B94tSate.js +0 -42
  373. package/dist/store-DzqXS2wT.js +0 -8
  374. package/dist/task-C6VAg5WU.js +0 -1
  375. package/dist/task-CgOKgkEG.js +0 -1
  376. package/dist/worker-CXndxmGF.js +0 -9
  377. package/dist/worker-DX7P9kWl.js +0 -1
  378. package/src/server/dash/app/dash/token-from-hash.tsx +0 -17
@@ -1 +1 @@
1
- import{$5e as S,$5p as T,$5r as W}from"./shared-init-ffb3397e494137c9.js";import{$1a as M}from"./shared-init-88cce66bb3cfe1e5.js";import{$2a as r}from"./shared-init-88cce66bb3cfe1e5.js";import{$1c as R,$1g as b,$1j as D,$1k as x,$1m as U}from"./shared-init-8f2ac936c95a7f7b.js";var z=10;function ne({label:$,options:o,value:P,defaultValue:B,onChange:F,name:L,disabled:V,headings:C,subs:k,action:c}){let[q,G]=b(B??o[0]?.[0]??""),u=Math.max(0,o.findIndex(([t])=>t===(P??q))),A=o[u]?.[0]??"",[a,K]=b(!1),[i,l]=b(u),[H,N]=b(""),w=x(null),p=x(null),v=x({text:"",at:0}),f=U(),h=(t=u)=>{l(t),K(!0)},m=(t=!0)=>{K(!1),t&&w.current?.focus()},g=t=>{if(c&&t===o.length){m(),c.onPick();return}let s=o[t]?.[0];m(),!(s===void 0||s===A)&&(P===void 0&&G(s),F?.(s))},O=(t,s)=>{let e=Date.now(),n=e-v.current.at>600?t:v.current.text+t;v.current={text:n,at:e};let d=/^(.)\1*$/.test(n)?n[0]:n,E=d.length===1?s+1:s;for(let y=0;y<o.length;y++){let I=(E+y)%o.length;if(o[I][1].toLowerCase().startsWith(d.toLowerCase()))return I}return-1},J=t=>{let s=o.length-1+(c?1:0),e=t.key;if(!a){if(["ArrowDown","ArrowUp","Enter"," "].includes(e))h();else if(e==="Home")h(0);else if(e==="End")h(s);else if(e.length===1&&!t.ctrlKey&&!t.metaKey){let n=O(e,u);if(n>=0)h(n);else return}else return;t.preventDefault();return}if(e==="ArrowDown")l(Math.min(s,i+1));else if(e==="ArrowUp"&&t.altKey)g(i);else if(e==="ArrowUp")l(Math.max(0,i-1));else if(e==="Home")l(0);else if(e==="End")l(s);else if(e==="PageDown")l(Math.min(s,i+z));else if(e==="PageUp")l(Math.max(0,i-z));else if(e==="Enter"||e===" "&&Date.now()-v.current.at>600)g(i);else if(e==="Escape")t.stopPropagation(),m();else if(e==="Tab"){g(i);return}else if(e.length===1&&!t.ctrlKey&&!t.metaKey){let n=O(e,i);n>=0&&l(n)}else return;t.preventDefault()};return D(()=>{if(!a)return;p.current?.showPopover();let t=()=>{let e=w.current?.getBoundingClientRect(),n=p.current;if(!e||!n)return;let d=innerHeight-e.bottom-12,E=d<Math.min(n.scrollHeight,240)&&e.top>d;N(`left:${Math.round(Math.min(e.left,innerWidth-n.offsetWidth-8))}px;min-width:${Math.round(e.width)}px;`+(E?`bottom:${Math.round(innerHeight-e.top+4)}px;max-height:${Math.round(Math.min(480,e.top-12))}px`:`top:${Math.round(e.bottom+4)}px;max-height:${Math.round(Math.min(480,d))}px`))};t();let s=e=>{let n=e.target;!w.current?.contains(n)&&!p.current?.contains(n)&&m(!1)};return addEventListener("resize",t),addEventListener("scroll",t,!0),document.addEventListener("pointerdown",s),()=>{removeEventListener("resize",t),removeEventListener("scroll",t,!0),document.removeEventListener("pointerdown",s)}},[a]),D(()=>{a&&p.current?.querySelector(`[data-index="${i}"]`)?.scrollIntoView({block:"nearest"})},[a,i,H]),r("span",{class:"select",children:[r("button",{ref:w,type:"button",role:"combobox","data-keep":!0,"aria-label":$,"aria-haspopup":"listbox","aria-expanded":a,"aria-controls":`${f}-list`,"aria-activedescendant":a?`${f}-${i}`:void 0,disabled:V,onClick:t=>{t.preventDefault(),a?m():h()},onKeyDown:J,children:[r("span",{class:"grow",children:o[u]?.[1]??""}),r(M,{d:S})]}),L?r("input",{type:"hidden",name:L,value:A}):null,a?r("div",{ref:p,id:`${f}-list`,class:"pop select-pop",popover:"manual",role:"listbox","aria-label":$,style:H||"visibility:hidden",onMouseDown:t=>t.preventDefault(),children:[o.map(([t,s],e)=>r(R,{children:[C?.[t]?r("p",{class:"pop-label",children:C[t]}):null,r("div",{id:`${f}-${e}`,"data-index":e,role:"option","aria-selected":e===u,class:e===i?"pop-item on":"pop-item",onPointerMove:()=>e!==i&&l(e),onClick:n=>{n.preventDefault(),g(e)},children:[r("span",{class:"grow",children:[s,k?.[t]?r("small",{class:"pop-path",children:r("bdi",{dir:"ltr",children:k[t]})}):null]}),r(M,{d:T})]})]},t)),c?r("div",{id:`${f}-${o.length}`,"data-index":o.length,role:"option","aria-selected":!1,class:i===o.length?"pop-item action on":"pop-item action",onPointerMove:()=>i!==o.length&&l(o.length),onClick:t=>{t.preventDefault(),g(o.length)},children:[r(M,{d:c.icon??W}),r("span",{class:"grow",children:c.label})]}):null]}):null]})}export{ne as a};
1
+ import{$0e as S,$0p as T,$0r as W}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as M}from"./shared-init-933c7f9ee85be766.js";import{$1a as r}from"./shared-init-933c7f9ee85be766.js";import{$1c as R,$1g as b,$1j as D,$1k as x,$1m as U}from"./shared-init-8f2ac936c95a7f7b.js";var z=10;function ne({label:$,options:o,value:P,defaultValue:B,onChange:F,name:L,disabled:V,headings:C,subs:k,action:c}){let[q,G]=b(B??o[0]?.[0]??""),u=Math.max(0,o.findIndex(([t])=>t===(P??q))),A=o[u]?.[0]??"",[a,K]=b(!1),[i,l]=b(u),[H,N]=b(""),w=x(null),p=x(null),v=x({text:"",at:0}),f=U(),h=(t=u)=>{l(t),K(!0)},m=(t=!0)=>{K(!1),t&&w.current?.focus()},g=t=>{if(c&&t===o.length){m(),c.onPick();return}let s=o[t]?.[0];m(),!(s===void 0||s===A)&&(P===void 0&&G(s),F?.(s))},O=(t,s)=>{let e=Date.now(),n=e-v.current.at>600?t:v.current.text+t;v.current={text:n,at:e};let d=/^(.)\1*$/.test(n)?n[0]:n,E=d.length===1?s+1:s;for(let y=0;y<o.length;y++){let I=(E+y)%o.length;if(o[I][1].toLowerCase().startsWith(d.toLowerCase()))return I}return-1},J=t=>{let s=o.length-1+(c?1:0),e=t.key;if(!a){if(["ArrowDown","ArrowUp","Enter"," "].includes(e))h();else if(e==="Home")h(0);else if(e==="End")h(s);else if(e.length===1&&!t.ctrlKey&&!t.metaKey){let n=O(e,u);if(n>=0)h(n);else return}else return;t.preventDefault();return}if(e==="ArrowDown")l(Math.min(s,i+1));else if(e==="ArrowUp"&&t.altKey)g(i);else if(e==="ArrowUp")l(Math.max(0,i-1));else if(e==="Home")l(0);else if(e==="End")l(s);else if(e==="PageDown")l(Math.min(s,i+z));else if(e==="PageUp")l(Math.max(0,i-z));else if(e==="Enter"||e===" "&&Date.now()-v.current.at>600)g(i);else if(e==="Escape")t.stopPropagation(),m();else if(e==="Tab"){g(i);return}else if(e.length===1&&!t.ctrlKey&&!t.metaKey){let n=O(e,i);n>=0&&l(n)}else return;t.preventDefault()};return D(()=>{if(!a)return;p.current?.showPopover();let t=()=>{let e=w.current?.getBoundingClientRect(),n=p.current;if(!e||!n)return;let d=innerHeight-e.bottom-12,E=d<Math.min(n.scrollHeight,240)&&e.top>d;N(`left:${Math.round(Math.min(e.left,innerWidth-n.offsetWidth-8))}px;min-width:${Math.round(e.width)}px;`+(E?`bottom:${Math.round(innerHeight-e.top+4)}px;max-height:${Math.round(Math.min(560,e.top-12))}px`:`top:${Math.round(e.bottom+4)}px;max-height:${Math.round(Math.min(560,d))}px`))};t();let s=e=>{let n=e.target;!w.current?.contains(n)&&!p.current?.contains(n)&&m(!1)};return addEventListener("resize",t),addEventListener("scroll",t,!0),document.addEventListener("pointerdown",s),()=>{removeEventListener("resize",t),removeEventListener("scroll",t,!0),document.removeEventListener("pointerdown",s)}},[a]),D(()=>{a&&p.current?.querySelector(`[data-index="${i}"]`)?.scrollIntoView({block:"nearest"})},[a,i,H]),r("span",{class:"select",children:[r("button",{ref:w,type:"button",role:"combobox","data-keep":!0,"aria-label":$,"aria-haspopup":"listbox","aria-expanded":a,"aria-controls":`${f}-list`,"aria-activedescendant":a?`${f}-${i}`:void 0,disabled:V,onClick:t=>{t.preventDefault(),a?m():h()},onKeyDown:J,children:[r("span",{class:"grow",children:o[u]?.[1]??""}),r(M,{d:S})]}),L?r("input",{type:"hidden",name:L,value:A}):null,a?r("div",{ref:p,id:`${f}-list`,class:"pop select-pop",popover:"manual",role:"listbox","aria-label":$,style:H||"visibility:hidden",onMouseDown:t=>t.preventDefault(),children:[o.map(([t,s],e)=>r(R,{children:[C?.[t]?r("p",{class:"pop-label",children:C[t]}):null,r("div",{id:`${f}-${e}`,"data-index":e,role:"option","aria-selected":e===u,class:e===i?"pop-item on":"pop-item",onPointerMove:()=>e!==i&&l(e),onClick:n=>{n.preventDefault(),g(e)},children:[r("span",{class:"grow",children:[s,k?.[t]?r("small",{class:"pop-path",children:r("bdi",{dir:"ltr",children:k[t]})}):null]}),r(M,{d:T})]})]},t)),c?r("div",{id:`${f}-${o.length}`,"data-index":o.length,role:"option","aria-selected":!1,class:i===o.length?"pop-item action on":"pop-item action",onPointerMove:()=>i!==o.length&&l(o.length),onClick:t=>{t.preventDefault(),g(o.length)},children:[r(M,{d:c.icon??W}),r("span",{class:"grow",children:c.label})]}):null]}):null]})}export{ne as a};
@@ -1 +1 @@
1
- import{$2a as p}from"./shared-init-88cce66bb3cfe1e5.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};
1
+ import{$1a as p}from"./shared-init-933c7f9ee85be766.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,2 @@
1
+ var Le="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",Se="M22 12h-4l-3 9L9 3l-3 9H2",Ce="M3 3v18h18M18 17V9M13 17V5M8 17v-3",H="m15 18-6-6 6-6",Pe="m6 9 6 6 6-6",j="m9 18 6-6-6-6",R="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",O="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",N="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",Te="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",V="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9",Ie="m12 3 1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9ZM19 3v4M17 5h4",Ae="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",U="M4 6h16M4 12h16M4 18h16",He="M18 6 6 18M6 6l12 12",_="M20 6 9 17l-5-5",je="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",Re="M12 5v14M5 12h14",Oe="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12Z",Ne="M4 12h12M12 6l6 6-6 6",Ve="M16 4h4v4M20 4l-7 7M4 20l6-6M16 20h4v-4M20 20l-5-5M4 4l5 5",Ue="M4 11a7 7 0 1 0 14 0a7 7 0 1 0 -14 0M20 20l-3.5-3.5",qe="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",Ze="m4 17 6-6-6-6M12 19h8",Be="M4 20h16a2 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 2Z",De="M12 7v5l3 2M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",We="M9 2v6M15 2v6M6 8h12v4a6 6 0 0 1-12 0ZM12 18v4",Fe="M9 9h11v11H9ZM5 15H4V4h11v1",ze="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6";function L(e,t={}){let r=Xe(Je(e,t.params??{})),a=Ge(t.search),n=et(t.hash);return`${r}${a}${n}`}function Ke(){return window.__PNEXT_TRAILING_SLASH__===!0}function Z(){let e=window.__PNEXT_PREFETCH__;return e===void 0?"visible":e}function Xe(e){let[,t="",r=""]=/^([^?#]*)([\s\S]*)$/.exec(e)??[];return t.startsWith("/")?Ke()?t==="/"||t.endsWith("/")||/\.[^/]+$/.test(t)?e:`${t}/${r}`:t==="/"||!t.endsWith("/")||/\.[^/]+\/$/.test(t)?e:`${t.replace(/\/+$/,"")}${r}`:e}function Je(e,t){let r=e.replace(/\[\[\.\.\.([^\]]+)\]\]/g,(a,n)=>q(t[n],!0)).replace(/\[\.\.\.([^\]]+)\]/g,(a,n)=>q(t[n],!0)).replace(/\[([^\]]+)\]/g,(a,n)=>q(t[n],!1));return Ye(r)}function Ye(e){return e.length<=1?e:e.replace(/\/+$/,"")||"/"}function q(e,t){if(Array.isArray(e)){let r=e.map(a=>encodeURIComponent(a));return t?r.join("/"):r[0]??""}return encodeURIComponent(e??"")}function Ge(e){if(!e)return"";let t=(e instanceof URLSearchParams?e:Qe(e)).toString();return t?`?${t}`:""}function Qe(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 et(e){return e?e.startsWith("#")?e:`#${e}`:""}import{$1b as tt,$1i as at,$1k as rt}from"./shared-init-8f2ac936c95a7f7b.js";function S({href:e,params:t,prefetch:r,replace:a,scroll:n,search:s,hash:i,onClick:l,onNavigate:f,onPrefetchStart:m,onPrefetchFinish:w,children:o,...d}){let u=L(e,{params:t??{},search:s,hash:i}),p=r??Z(),E=nt(m,w);return tt("a",{...d,ref:E,href:u,"data-pnext-link":!0,"data-prefetch":p===!1?"false":p,"data-pnext-replace":a?"true":void 0,"data-pnext-scroll":n===!1?"false":void 0,onClick:c=>{let b=c;if(l?.(b),b.defaultPrevented||!f||!ot(b))return;let x=st();f(x),x.defaultPrevented&&b.preventDefault()}},o)}function nt(e,t){let r=rt(null);return at(()=>{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 st(){return{defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}}}function ot(e){return e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.currentTarget.target&&!e.currentTarget.download}import{f as it,i as lt,j as ne,k as se}from"./wular-pnext-246221e985d863e5-0.js";import{$0a as ce,$0b as ct}from"./shared-init-246221e985d863e5-2.js";import{$1a as dt,$1d as ut}from"./shared-init-246221e985d863e5-2.js";import{$1a as pt,$1g as de,$1i as ue}from"./shared-init-8f2ac936c95a7f7b.js";var I=class extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}},ht=class extends URLSearchParams{append(){throw new I}delete(){throw new I}set(){throw new I}sort(){throw new I}};it();function D(){return ft}var ft={push(e,...[t]){le(B(e,t),"push",t?.scroll)},replace(e,...[t]){le(B(e,t),"replace",t?.scroll)},prefetch(e,...[t]){ct(B(e,t),{strict:!0,full:t?.kind==="full",onInvalidate:t?.onInvalidate})},refresh(){ce(window.location.href,{replace:!0,scroll:!1})},back(){window.history.back()},forward(){window.history.forward()},get bfcacheId(){return wt().bfcacheId??""}};function B(e,t){return mt(t)?L(e,t):String(e)}function mt(e){return!!(e&&("params"in e||"search"in e||"hash"in e))}function $(){return pe().pathname}function vt(){return new ht(pe().search)}function W(){let e=pt,t=e.__h,r;e.__h=(s,...i)=>{r=s.__P,t?.(s,...i)};let[a,n]=de(!1);return e.__h=t,ue(()=>{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 pe(){let e=ie(),[,t]=de(()=>oe(e));return ue(()=>{gt();let r=()=>t(a=>{let n=oe(ie());return a===n?a:n});return ne().add(r),r(),()=>ne().delete(r)},[]),e}function oe(e){return`${e.pathname}${e.search}${e.hash}`}function ie(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function wt(){let e=history.state??{},t=window.__PNEXT_ROUTE__??{},r=typeof e.__pnextBfcacheId=="string"?e.__pnextBfcacheId:void 0;return r?{...t,bfcacheId:r}:t}function le(e,t,r=!0){if(ut(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){ce(a.href,{replace:t==="replace",scroll:r});return}t==="replace"?window.history.replaceState(history.state,"",a):window.history.pushState(history.state,"",a),lt(a,{scroll:r}),dt.settleLink?.()}function gt(){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&&se(),l},window.history.replaceState=function(a,n,s){let i=window.location.href,l=t(r(a),n,s);return window.location.href!==i&&se(),l}}import{$2a as bt,$2b as yt}from"./shared-init-933c7f9ee85be766.js";import{$1a as g}from"./shared-init-933c7f9ee85be766.js";import{$1g as he,$1i as M,$1k as k}from"./shared-init-8f2ac936c95a7f7b.js";function we({status:e}){return g("span",{class:`st ${e}`,children:[g("i",{}),ge[e]??e]})}var ge={queued:"waiting for slot",running:"running",waiting:"needs approval",completed:"completed",failed:"failed",cancelled:"cancelled"},C="coder:watched",be="coder:notify",A="coder:toast",Y=new Set(["completed","failed","cancelled"]),Mt=new Set([...Y,"waiting"]),$t=20,fe=3,kt=8e3,me="coder:events",F="coder:task",z="coder:task-replay",K="coder:task-reset",X="coder:task-resync",Et=6e4,xt=200,J=()=>{try{return JSON.parse(localStorage.getItem(C)??"{}")??{}}catch{return{}}},ye=e=>{let t=Object.entries(e).sort(([,r],[,a])=>a.at-r.at).slice(0,$t);localStorage.setItem(C,JSON.stringify(Object.fromEntries(t))),dispatchEvent(new Event(C))},Me=(e,t,r)=>dispatchEvent(new CustomEvent(A,{detail:{title:e,line:t,err:r}})),_t=(e,t)=>Me(e,t,!0);function $e(e,t,r){let a=J(),n=a[e];!n&&Y.has(t)||n?.status===t&&(!r||n.title===r)||(a[e]={title:r||n?.title||e,status:t,at:n?.at??Date.now()},ye(a))}var ve=e=>/^\/dash\/tasks\/([^/]+)$/.exec(e)?.[1];function Lt(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 ke(e,t,r){let a=k({on:e,reset:t,resync:r});a.current={on:e,reset:t,resync:r},M(()=>{let n=l=>a.current.on(l.detail),s=()=>a.current.reset?.(),i=()=>a.current.resync?.();return addEventListener(F,n),addEventListener(K,s),addEventListener(X,i),dispatchEvent(new CustomEvent(z,{detail:l=>a.current.on(l)})),()=>{removeEventListener(F,n),removeEventListener(K,s),removeEventListener(X,i)}},[])}function St(e,t){let r=k(e);r.current=e;let a=k(),n=[...e].sort().join(",");M(()=>{let s=new Map,i=c=>{s.delete(c.id),s.set(c.id,c),s.size>xt&&s.delete(s.keys().next().value),dispatchEvent(new CustomEvent(F,{detail:c}))},l=c=>{for(let b of s.values())c.detail(b)};addEventListener(z,l);let f=typeof BroadcastChannel<"u"&&navigator.locks?new BroadcastChannel(me):void 0,m=new AbortController,w,o=()=>{},d,u=c=>{w=c.id??w,c.event&&i(c.event),c.resync&&dispatchEvent(new Event(X)),c.reset&&(s.clear(),dispatchEvent(new Event(K)))};f?.addEventListener("message",({data:c})=>{if(!c.hello)return u(c);d??=setTimeout(()=>{d=void 0,a.current?.abort.abort(),o()},300)}),f?.postMessage({hello:!0});let p=async()=>{t.current=!0;let c=setInterval(()=>{f?.postMessage({resync:!0}),u({resync:!0})},Et);try{await E()}finally{clearInterval(c)}},E=async()=>{for(;!m.signal.aborted;){let c=new AbortController,b=()=>c.abort();m.signal.addEventListener("abort",b);let x=r.current;a.current={key:[...x].sort().join(","),abort:c};let te=1e3;try{let y=await yt.tasks.events(x,w,c.signal);if(y.status===404)return void(t.current=!1);if(!y.ok||!y.body)te=[401,403].includes(y.status)?6e4:5e3;else for await(let{event:T,data:_e,id:ae}of bt(y.body)){if(c.signal.aborted)break;let re={...ae?{id:ae}:{},...T==="task"?{event:JSON.parse(_e)}:{},...T==="reset"?{reset:!0}:{}};f?.postMessage(re),u(re)}}catch{}m.signal.removeEventListener("abort",b),!c.signal.aborted&&(await new Promise(y=>{let T=setTimeout(y,te);o=()=>{clearTimeout(T),y()}}),o=()=>{})}};return f?navigator.locks.request(me,{signal:m.signal},p).catch(()=>{}):p(),()=>{m.abort(),o(),clearTimeout(d),f?.close(),removeEventListener(z,l)}},[]),M(()=>{a.current&&a.current.key!==n&&a.current.abort.abort()},[n])}function Ct({toast:e,dismiss:t}){return M(()=>{let r=setTimeout(()=>t(e.key),kt);return()=>clearTimeout(r)},[]),g("div",{class:e.err?"toast err":"toast",onClick:()=>t(e.key),children:[g("p",{class:"toast-head",children:[e.id?g(S,{class:"cover",href:"/dash/tasks/[id]",params:{id:e.id},children:e.title}):g("span",{class:"cover",children:e.title}),e.status?g(we,{status:e.status}):null]}),g("p",{class:"toast-line",children:e.line})]})}function Pt(){let e=$(),t=D(),[r,a]=he({}),[n,s]=he([]),i=k(ve(e));i.current=ve(e);let l=k({}),f=k(!1);M(()=>{let o=()=>{let d=J();for(let[u,p]of Object.entries(d))l.current[u]??=p.status;a(d)};return o(),addEventListener(C,o),addEventListener("storage",o),()=>{removeEventListener(C,o),removeEventListener("storage",o)}},[]),M(()=>{let o=d=>{let u=d.detail;s(p=>[{key:`${A}:${Date.now()}`,...u},...p].slice(0,fe))};return addEventListener(A,o),()=>removeEventListener(A,o)},[]),M(()=>{if(!n.length)return;let o=d=>d.key==="Escape"&&s([]);return addEventListener("keydown",o),()=>removeEventListener("keydown",o)},[n.length]);let m=o=>s(d=>d.filter(u=>u.key!==o));ke(o=>{let d=J(),u=d[o.id];if(!u)return;if(o.deleted)return delete d[o.id],ye(d);let p=l.current[o.id]??u.status;l.current[o.id]=o.status,p!==o.status&&w(o.id,{...o,result:o.result??void 0,error:o.error??void 0},u)});let w=(o,d,u)=>{if($e(o,d.status),!Mt.has(d.status)||i.current===o)return;let p={key:`${o}:${Date.now()}`,id:o,title:u.title,status:d.status,line:Lt(d)};if(s(c=>[p,...c].slice(0,fe)),!f.current||localStorage.getItem(be)!=="1"||typeof Notification>"u"||Notification.permission!=="granted")return;let E=new Notification(`${p.title} (${ge[p.status]})`,{body:p.line,tag:o});E.onclick=()=>{focus(),t.push("/dash/tasks/[id]",{params:{id:o}})}};return St(Object.entries(r).filter(([,o])=>!Y.has(o.status)).map(([o])=>o),f),g("section",{class:"toasts","aria-label":"Task updates","aria-live":"polite",children:n.map(o=>g(Ct,{toast:o,dismiss:m},o.key))})}import{$0a as P}from"./shared-init-933c7f9ee85be766.js";import{$2c as Tt}from"./shared-init-933c7f9ee85be766.js";import{$1a as v}from"./shared-init-933c7f9ee85be766.js";import{$1c as Ee,$1g as Q,$1i as G,$1j as It,$1k as At}from"./shared-init-8f2ac936c95a7f7b.js";var Ht=e=>{let t=e.params??{};return e.href.replace(/\[([^\]]+)\]/g,(r,a)=>encodeURIComponent(String(t[a]??"")))};function jt(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 Rt({within:e,children:t,onClick:r,...a}){let n=$(),s=n===Ht(a)||e!==void 0&&(n===e||n.startsWith(`${e}/`)),i=At(null);return v(S,{...a,"aria-current":s?"page":void 0,onClick:l=>{i.current=l.currentTarget,r?.(l)},children:[t,v(Ot,{anchor:i,current:s})]})}function Ot({anchor:e,current:t}){let{pending:r}=W();return It(()=>{e.current&&(r&&!t?e.current.setAttribute("data-pending",""):e.current.removeAttribute("data-pending"))},[r,t]),null}var Nt=3600*24*365,Vt=[["light","Light",R],["dark","Dark",O],["system","System",N]];function Ut({theme:e}){let[t,r]=Q(e),a=n=>{let s=document.documentElement;n==="system"?delete s.dataset.theme:s.dataset.theme=n,document.cookie=`theme=${n}; path=/; max-age=${Nt}; samesite=lax`,r(n)};return v(Ee,{children:Vt.map(([n,s,i])=>v("button",{type:"button",class:"pop-item",role:"menuitemradio","aria-checked":t===n,onClick:()=>a(n),children:[v(P,{d:i}),v("span",{class:"grow",children:s}),v(P,{d:_})]},n))})}function qt({class:e,icon:t,children:r}){return v("button",{type:"button",class:e,onClick:()=>void Tt().catch(()=>location.reload()),children:[t?v(P,{d:V}):null,r]})}var Zt="side";function Bt({collapsed:e}){let[t,r]=Q(e);return G(()=>{let a=document.querySelector(".app");if(!a)return;let n=()=>r(a.classList.contains("side-min"));n();let s=new MutationObserver(n);return s.observe(a,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),v("button",{type:"button",class:"icon-btn side-toggle","aria-label":t?"Expand sidebar":"Collapse sidebar","data-tip":t?"Expand sidebar":"Collapse sidebar",onClick:()=>{let a=!t;document.querySelector(".app")?.classList.toggle("side-min",a),document.cookie=`${Zt}=${a?"min":"max"}; path=/; max-age=31536000; samesite=lax`},children:v(P,{d:t?j:H})})}function Dt(){let[e,t]=Q(!1),r=$();return G(()=>t(!1),[r]),G(()=>{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]),v(Ee,{children:[v("button",{type:"button",class:"icon-btn only-m","aria-label":"Open navigation",onClick:()=>t(!e),children:v(P,{d:U})}),v("div",{class:"scrim",onClick:()=>t(!1)})]})}import{$0a as ee}from"./shared-init-933c7f9ee85be766.js";import{$1a as h}from"./shared-init-933c7f9ee85be766.js";import{$1c as Wt,$1k as Ft,$1m as xe}from"./shared-init-8f2ac936c95a7f7b.js";function zt({summary:e,summaryClass:t,label:r,tip:a,align:n="right",wide:s,class:i,children:l}){let f=xe();return h("span",{class:`menu ${n}${i?` ${i}`:""}`,children:[h("button",{popovertarget:f,type:"button",class:t,"aria-label":r,title:a?void 0:r,"data-tip":a,children:e}),h("div",{id:f,class:s?"pop wide":"pop",popover:"auto",onBeforeToggle:m=>{if(m.newState!=="open")return;let w=m.currentTarget,o=w.parentElement?.querySelector("button")?.getBoundingClientRect();if(!o)return;let d=n==="up"?o.top-20:window.innerHeight-o.bottom-20;w.style.maxHeight=`${Math.max(120,Math.round(d))}px`},onClick:m=>{m.target.closest("a, button:not([data-keep])")&&m.currentTarget.hidePopover()},children:l})]})}function Kt({icon:e,title:t,sub:r,href:a,onClick:n,danger:s}){let i=h(Wt,{children:[e?h(ee,{d:e}):null,h("span",{class:"grow",children:[t,r?h("small",{children:r}):null]})]}),l=`pop-item${r?" rich":""}${s?" danger":""}`;return a?h("a",{class:l,href:a,.../^https?:\/\//.test(a)?{target:"_blank",rel:"noreferrer"}:{},children:i}):h("button",{type:"button",class:l,onClick:n,children:i})}function Xt({label:e,children:t}){let r=xe(),a=Ft(null),n=s=>i=>{i.pointerType==="mouse"&&a.current.togglePopover(s)};return h("span",{class:"more",onPointerEnter:n(!0),onPointerLeave:n(!1),children:[h("button",{popovertarget:r,type:"button",children:e}),h("div",{id:r,ref:a,class:"more-list scroll-box",popover:"auto",children:t})]})}function Jt({on:e,onPick:t,icon:r,children:a}){return h("button",{type:"button",role:"menuitemradio","aria-checked":e,class:e?"pop-item on":"pop-item",onClick:t,children:[typeof r=="string"?h(ee,{d:r}):r,h("span",{class:"grow",children:a}),e?h(ee,{d:_}):null]})}export{We as $0A,Fe as $0B,ze as $0C,Le as $0a,Se as $0b,Ce as $0c,H as $0d,Pe as $0e,j as $0f,R as $0g,O as $0h,N as $0i,Te as $0j,V as $0k,Ie as $0l,Ae as $0m,U as $0n,He as $0o,_ as $0p,je as $0q,Re as $0r,Oe as $0s,Ne as $0t,Ve as $0u,Ue as $0v,qe as $0w,Ze as $0x,Be as $0y,De as $0z,S as $1a,L as $2a,Z as $2b,we as $3a,be as $3b,Me as $3c,_t as $3d,$e as $3e,ke as $3f,Pt as $3g,jt as $4a,Rt as $4b,Ut as $4c,qt as $4d,Bt as $4e,Dt as $4f,zt as $5a,Kt as $5b,Xt as $5c,Jt as $5d,D as $6a,$ as $6b,vt as $6c,W as $6d};
@@ -0,0 +1,5 @@
1
+ import{$1a as u}from"./shared-init-8f2ac936c95a7f7b.js";var v=0;function m(e,t,s,n,i,a){t||(t={});var r,d,h=t;if("ref"in h)for(d in h={},t)d=="ref"?r=t[d]:h[d]=t[d];var c={type:e,props:h,key:s,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--v,__i:-1,__u:0,__source:i,__self:a};if(typeof e=="function"&&(r=e.defaultProps))for(d in r)h[d]===void 0&&(h[d]=r[d]);return u.vnode&&u.vnode(c),c}function w({d:e,class:t}){return m("svg",{class:t?`ic ${t}`:"ic",viewBox:"0 0 24 24","aria-hidden":"true",children:m("path",{d:e})})}function k(){return m("svg",{class:"coder-mark",viewBox:"0 0 16 16","aria-hidden":"true",children:m("path",{d:"M5 0h3v3h-3zM9 0h3v3h-3zM13 0h3v3h-3zM0 4h3v3h-3zM0 9h3v3h-3zM5 13h3v3h-3zM9 13h3v3h-3zM13 13h3v3h-3z"})})}var l=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 l{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 y(e){let t;try{t=new URL(e)}catch{throw new l("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 l("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 l("invalid-option","The server must be an origin without credentials, query, or fragment.");return t.toString().replace(/\/+$/,"")}var p=(e,t,s)=>`/admin/credentials/${encodeURIComponent(e)}${t}${s?"?workspace":""}`,o=(e,t)=>{let s=new URLSearchParams;"cursor"in t&&typeof t.cursor=="string"&&s.set("cursor",t.cursor);for(let[n,i]of Object.entries(t))n!=="cursor"&&i!==void 0&&i!==!1&&i!==""&&s.set(n,i===!0?"1":Array.isArray(i)?i.join(","):String(i));return`${e}?${s}`},C=new Set(["completed","failed","cancelled"]),U=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,s={}){if(this.cookie="cookie"in t,this.url=e?y(e):"",!this.cookie&&!this.url)throw new l("invalid-option","Bearer clients need a server URL.");this.token="token"in t?t.token:void 0,this.fetchImpl=s.fetch??((n,i)=>fetch(n,i)),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(()=>""),i={},a;try{n&&s.status!==204&&(i=JSON.parse(n))}catch{if(s.ok)throw new l("server",`The server answered ${s.status} with a body that is not JSON.`);this.cookie&&n&&(a=n)}if(!s.ok){let r=new $(s.status,i.error??i.message??a??`The server answered ${s.status}.`,s.headers.get("www-authenticate")??"",i.hint);throw this.onError?.(r),r}return i}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 l||n.name==="AbortError"?n:new l("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(o("/admin/agents",{...e,...e?.connect?{connect:1}:{}})),get:(e,t)=>this.request(o(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{}})),versions:(e,t={})=>this.request(o(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"DELETE"}),preview:(e,t)=>this.request(o("/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(o("/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(o(`/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}),events:(e,t,s)=>this.send(o("/admin/events",{tasks:e}),{headers:{accept:"text/event-stream",...t?{"last-event-id":t}:{}},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 a=await this.tasks.get(e);if(C.has(a.status))return a;if(n.status===401)continue;throw new l("server",`The task stream answered ${n.status}.`)}let i=!1;for await(let a of g(n.body))if(a.event==="log"){let r=JSON.parse(a.data);s=r.seq,t.onLog?.(r)}else a.event==="end"&&(i=!0);if(i)return this.tasks.get(e)}}};credentials={list:e=>this.request(o("/admin/credentials",e??{})),add:e=>this.post("/admin/credentials",e),remove:(e,{workspace:t}={})=>this.request(p(e,"",t),{method:"DELETE"}),setDefault:(e,{workspace:t}={})=>this.post(p(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(o("/admin/apps",{agent:e})),install:(e,t)=>this.post(o(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t}))};installations={list:e=>this.request(o("/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(o("/admin/mcp-registry",{q:e}))};flows={list:e=>this.request(o("/admin/flows",{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(o("/admin/pulls",{repo:e}))};review(e){return this.post("/admin/review",e)}usage(e={}){return this.request(o("/admin/usage/totals",{...e,since:e.since??Date.now()-10080*60*1e3}))}usageRows(e){return this.request(o("/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 i;for(;(i=s.indexOf(`
2
+
3
+ `))>=0;){let a=s.slice(0,i);s=s.slice(i+2);let r="message",d,h=[];for(let c of a.split(`
4
+ `))c.startsWith("event: ")?r=c.slice(7):c.startsWith("data: ")?h.push(c.slice(6)):c.startsWith("id: ")&&(d=c.slice(4));(h.length||d)&&(yield{event:r,data:h.join(`
5
+ `),...d?{id:d}:{}})}}}var f=new U("",{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"}function R(e,t){let s,n=!1,i=()=>{n||(s=setTimeout(a,t))},a=()=>{if(document.visibilityState==="hidden")return i();e().catch(()=>{}).finally(i)};return i(),()=>{n=!0,clearTimeout(s)}}export{w as $0a,k as $0b,m as $1a,g as $2a,f as $2b,I as $2c,R as $2d};
@@ -1 +1 @@
1
- import{c as o}from"./card-e0901d68b79dfa93.js";import{$2a as t}from"./shared-init-88cce66bb3cfe1e5.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};
1
+ import{c as o}from"./card-e86dcc81326d2b14.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.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 x}from"./confirm-5ae484241ad888fd.js";import{a as T}from"./card-e86dcc81326d2b14.js";import{b as h}from"./field-aa0a4b98a976781e.js";import{g as b}from"./format-105c706345987fb2.js";import{$3c as k,$3d as D}from"./shared-init-7f81ae7bc8c82438.js";import{$6a as w}from"./shared-init-7f81ae7bc8c82438.js";import{$5a as A,$5b as m}from"./shared-init-7f81ae7bc8c82438.js";import{$0q as C}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as g}from"./shared-init-933c7f9ee85be766.js";import{$2b as u}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import{$1c as v,$1g as c,$1i as y}from"./shared-init-8f2ac936c95a7f7b.js";function R(e){if(!e||typeof e!="object")return{};let s=e,n=(...r)=>r.map(i=>s[i]).find(i=>typeof i=="string");return{id:n("id"),action:n("kind","tool"),reason:n("summary","reason")}}var S={approve:"Decision sent.",archive:"Archived.",ask:"Question sent.",cancel:"Stop requested.",continue:"Sent.",steer:"Steer sent."};function E(e){let[s,n]=c(""),[r,i]=c("");return{error:s,outcome:r,setError:n,run:async(o,a={})=>{n(""),i("");try{return o==="approve"?await u.tasks.approve(e,a.approvalId??"",a.decision??"decline"):o==="ask"?await u.tasks.ask(e,a.question??""):o==="continue"||o==="steer"?await u.tasks[o](e,a.text??""):await u.tasks[o](e),i(S[o]),!0}catch(l){return n(b(l)),!1}}}}function M({error:e,outcome:s}){return e?t(h,{value:e}):t("span",{class:"flash",role:"status",children:s})}function J({task:e,live:s}){let n=w(),r=E(e.task.id),[i,f]=c(!!e.archivedAt),[o,a]=c(),l=()=>{a("busy"),r.setError(""),u.tasks.delete(e.task.id).then(()=>n.push("/dash/tasks")).catch(p=>{a(void 0),r.setError(b(p))})},d=()=>void r.run("archive").then(f);return t(v,{children:[t(M,{...r}),s?t("button",{type:"button",class:"btn outline",onClick:()=>void r.run("cancel"),children:"Stop"}):i?null:t("button",{type:"button",class:"btn outline archive",onClick:d,children:"Archive"}),t(A,{summary:t(g,{d:C}),summaryClass:"icon-btn",label:"More actions",children:[s&&!i?t(m,{title:"Archive",onClick:d}):null,t(m,{title:"Copy task id",onClick:()=>void navigator.clipboard.writeText(e.task.id).then(()=>k("Copied",e.task.id))}),t(m,{title:"Delete",danger:!0,onClick:()=>a("ask")})]}),t(x,{open:!!o,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:o==="busy",onConfirm:l,onClose:()=>a(void 0)})]})}function K({task:e}){let s=E(e.task.id),[n,r]=c(),[i,f]=c(),{id:o,action:a,reason:l}=R(e.approval),d=async p=>{r(p);let B=await s.run("approve",{approvalId:o,decision:p});r(void 0),B&&(f(o),k(p==="accept"?"Allowed":"Denied","The task continues."))};return y(()=>{s.error&&D("Not sent",s.error)},[s.error]),o&&i===o?null:t(T,{tone:"accent",title:"Approval needed",actions:e.task.flow==="default"?t(v,{children:[t("button",{type:"button",class:"btn outline sm",disabled:!!n,"aria-busy":n==="decline",onClick:()=>void d("decline"),children:"Deny"}),t("button",{type:"button",class:"btn sm",disabled:!!n,"aria-busy":n==="accept",onClick:()=>void d("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:a??"a tool"}),"."]}),l?t("p",{class:"muted",children:l}):null]})})}export{R as a,E as b,J as c,K as d};
@@ -0,0 +1 @@
1
+ var r=t=>t==="failed"?0:t==="completed"?3:t==="cancelled"?2:1,n=(t,e)=>t.rank-e.rank||e.createdAt-t.createdAt||(e.id<t.id?-1:e.id>t.id?1:0);var m=[["","Recent"],["active","Active"],["waiting","Needs approval"],["running","Running"],["queued","Queued"],["completed","Completed"],["failed","Failed"],["cancelled","Cancelled"],["archived","Archived"]];function g(t){let{status:e,...s}=t;return e==="archived"?{...s,archived:!0}:{...s,status:e}}var l=[["","All sources"],["dashboard","Dashboard"],["cli","CLI"],["schedule","Schedule"]],f=t=>(l.find(([e])=>e===t)??[t,t])[1],T=t=>t.status==="queued"||t.status==="running"||t.status==="waiting",a=t=>({rank:r(t.status),createdAt:t.createdAt,id:t.task.id}),d=(t,e)=>n(a(t),a(e));function R(t,e){let s=new Set(e.map(i=>i.task.id));return[...e,...t.filter(i=>!s.has(i.task.id))].sort(d)}function x(t,e,s={}){let i=new Set(t.map(o=>o.task.id));return[...e.filter(o=>!i.has(o.task.id)),...t].map(o=>s[o.task.id]??o).sort(d)}var w=t=>t.task.name?.trim()||t.task.prompt?.trim()||t.task.event?.text?.trim()||`${t.task.event?.type??"task"} on ${t.task.agent}`,h=t=>t.split(/[\\/]/).filter(Boolean).at(-1)??t;export{m as a,g as b,l as c,f as d,T as e,d as f,R as g,x as h,w as i,h as j};
@@ -0,0 +1,5 @@
1
+ "use client";import{b as Qt,c as Zt,d as te}from"./heads-a42817b32d2d7f08.js";import{b as Yt,c as Xt,d as Gt}from"./task-actions-ce854925a2dc78fd.js";import"./confirm-5ae484241ad888fd.js";import{a as Jt}from"./badge-215c7b2631dafc69.js";import{a as ee,b as se}from"./instructions-3a1dcaff2d868aa5.js";import{d as ht,e as N,i as tt,j as Ut}from"./task-ddfddeaf07fb684c.js";import{a as Z,c as ut}from"./card-e86dcc81326d2b14.js";import"./field-aa0a4b98a976781e.js";import{a as lt,b as Ot,d as K,g as at}from"./format-105c706345987fb2.js";import"./sentinel-b5e032b38604dfd3.js";import{$3a as Kt,$3d as Bt,$3e as Ht,$3f as qt}from"./shared-init-7f81ae7bc8c82438.js";import{$6c as _t}from"./shared-init-7f81ae7bc8c82438.js";import"./wular-pnext-246221e985d863e5-0.js";import{$1a as It}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import{$5a as Pt}from"./shared-init-7f81ae7bc8c82438.js";import{$0A as Vt,$0a as zt,$0b as ct,$0c as Rt,$0e as G,$0j as Dt,$0l as Lt,$0o as dt,$0p as B,$0s as Ft,$0t as Wt,$0w as jt,$0x as Q,$0y as Nt,$0z as $t}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as O}from"./shared-init-933c7f9ee85be766.js";import{$2a as Ct,$2b as U}from"./shared-init-933c7f9ee85be766.js";import{$1a as a}from"./shared-init-933c7f9ee85be766.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1c as L,$1g as E,$1h as rt,$1i as C,$1j as P,$1k as z,$1l as At}from"./shared-init-8f2ac936c95a7f7b.js";var ne=n=>n.includes("approval")||n==="sidecar-decision"||n==="auto-review",ge=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function j(n,r){return r?n.split(`${r}/`).join("").split(r).join("."):n}var et=class{constructor(r,t={}){this.cwd=r;this.opts=t}prevKind=null;lastAssistant="";lastToolText="";openCalls=[];callIds=new WeakMap;approval;approvals=new Map;lastUsageTotal=0;get lastAssistantMessage(){return this.lastAssistant}reduce(r){let t=r.entry,e=t?String(t.kind??"status"):"line",i=t?e==="tool-result"?this.close(r,t):ne(e)?this.decide(r,t,e):void 0:void 0;if(i)return this.prevKind=e,[i];let s={seq:r.seq,at:r.at,kind:"status",title:"",sourceKind:e,separated:!1,tone:"muted"};if(!t)s.kind=r.level==="err"?"error":r.level==="sys"?"status":"line",s.title=j(r.line,this.cwd),r.level==="err"&&(s.tone="error");else if(e==="usage"){let o=t.tokens;if(!o)return[];let l=this.lastUsageTotal>0,c=o.total-this.lastUsageTotal;if(!l||c<Math.max(2e4,this.lastUsageTotal*.2))return this.lastUsageTotal=Math.max(this.lastUsageTotal,o.total),[];this.lastUsageTotal=o.total,s.kind="usage",s.tokens=o,s.title=`ctx ${ie(o.input+o.cachedInput)} \xB7 out ${ie(o.output)}`}else if(e==="approval-decision"&&t.decision==="escalate"||e==="approval-escalated"){let o=j(t.summary?String(t.summary):"",this.cwd),l=/^(?:run command: |Run command\. |Apply file changes\. |\w+: )?([\s\S]*)$/.exec(o)[1],c=String(t.method??""),h=c&&!c.includes("/")?c:this.openCalls.at(-1)?.tool,u=l.startsWith("{")?"":l.split(/\s+/)[0],p=j(t.reason?String(t.reason):"",this.cwd);s.kind="approval",s.title=["Approval",[h,u].filter(Boolean).join(" ")].filter(Boolean).join(" \xB7 "),s.detail=[l,p&&`Policy \xB7 ${p}`].filter(Boolean).join(`
2
+ `),s.state=e==="approval-escalated"?"waiting":"escalated",e==="approval-escalated"?this.approvals.set(String(t.approvalId),s):this.approval=s}else if(ne(e)&&(t.decision||!t.message)){s.kind="approval";let o=e==="sidecar-decision"?"sidecar":e==="auto-review"?"auto-review":"approval",l=t.riskLevel?`(${String(t.riskLevel)} risk)`:"",c=j(t.summary?String(t.summary):"",this.cwd),h=c.slice(c.indexOf(": ")+2),u=c&&h&&this.lastToolText.includes(h)?"":c,p=u?"":String(t.method??"");s.title=`${[o,String(t.decision??""),l,p].filter(Boolean).join(" ")}${u?` \xB7 ${u}`:""}`,s.detail=j(t.reason?String(t.reason):"",this.cwd)}else{let o=t.message?String(t.message):String(t.kind??"");if(!o&&!(e==="tool-result"&&(t.exitCode!=null||t.isError)))return[];s.title=j(o,this.cwd),e==="assistant"?(s.kind="assistant",s.tone=void 0,this.lastAssistant=s.title):e==="error"||e==="steer"?(s.kind=e,s.tone=e==="error"?"error":"warning"):e==="reasoning"?(s.kind="reasoning",s.durationMs=typeof t.durationMs=="number"?t.durationMs:0):e==="tool"?(s.kind="tool",t.tool&&(s.tool=String(t.tool)),this.lastToolText=s.title,t.callId&&this.callIds.set(s,String(t.callId)),this.openCalls.push(s)):e==="tool-result"&&(s.kind="tool-result",s.title=this.output(o),s.exitCode=typeof t.exitCode=="number"?t.exitCode:void 0,s.tone=s.exitCode!==void 0&&s.exitCode!==0||t.isError===!0?"error":"muted",s.durationMs=typeof t.durationMs=="number"?t.durationMs:0,t.tool&&(s.tool=String(t.tool)))}return this.prevKind!==null&&(s.separated=["assistant","error","steer"].includes(e)||e==="reasoning"&&this.prevKind!=="reasoning"||e==="tool"&&["assistant","reasoning"].includes(this.prevKind)),this.prevKind=e,[s]}close(r,t){let e=t.tool?String(t.tool):void 0,i=t.callId?this.openCalls.findIndex(h=>this.callIds.get(h)===String(t.callId)):-1,s=i>=0?i:e?this.openCalls.findIndex(h=>h.tool===e):this.openCalls.length-1;if(s<0)return;let[o]=this.openCalls.splice(s,1),l=typeof t.exitCode=="number"?t.exitCode:void 0,c=typeof t.durationMs=="number"?t.durationMs:r.at-o.at||0;return{...o,result:{ok:!l&&t.isError!==!0,exitCode:l,durationMs:Math.max(0,c),detail:this.output(t.message?String(t.message):"")}}}decide(r,t,e){let i=String(t.approvalId??""),s=t.decision==="accept";if(e==="sidecar-decision"&&this.approval){let l=j(t.reason?String(t.reason):"",this.cwd),c={...this.approval,detail:[this.approval.detail,l&&`Sidecar \xB7 ${l}`].filter(Boolean).join(`
3
+ `)};return t.decision==="escalate"?this.approval=c:(this.approval=void 0,ft(c,r,`${s?"accepted":"denied"} by sidecar`,s))}if(e==="approval-escalated"&&this.approval){let l={...this.approval,state:"waiting"};return this.approval=void 0,this.approvals.set(i,l),l}let o=this.approvals.get(i);if(!(!o||e!=="approval-answered"&&e!=="approval-timeout"))return this.approvals.delete(i),e==="approval-timeout"?ft(o,r,"timed out",!1):ft(o,r,`${s?"accepted":"denied"} by reviewer`,s)}output(r){return j(this.opts.keepAnsi?r:r.replace(ge,""),this.cwd)}};function ft(n,r,t,e){return{...n,state:t,result:{ok:e,durationMs:Math.max(0,r.at-n.at||0),detail:""}}}function ie(n){return n<1e3?String(n):n<1e6?`${(n/1e3).toFixed(n<1e4?1:0)}k`:`${(n/1e6).toFixed(1)}M`}function oe(n,r,t){let e=new Array(n);return new Proxy(e,{get(i,s,o){if(typeof s=="string"){let l=s.charCodeAt(0);if(l>=48&&l<=57){let c=+s;if(Number.isInteger(c)&&c>=0&&c<n){let h=i[c];if(!h){let u=r[c*2];h=i[c]={index:c,key:t(c),start:u,size:r[c*2+1],end:u+r[c*2+1],lane:0}}return h}}if(s==="length")return n}return Reflect.get(i,s,o)}})}function $(n,r,t){let e=t.initialDeps??[],i,s=!0;function o(){var l;let h=0,u=n();if(!(u.length!==e.length||u.some((v,m)=>e[m]!==v)))return i;e=u;let f=0;return i=r(...u),t?.onChange&&!(s&&t.skipInitialOnChange)&&t.onChange(i),s=!1,i}return o.updateDeps=l=>{e=l},o}function pt(n,r){if(n===void 0)throw new Error(`Unexpected undefined${r?`: ${r}`:""}`);return n}var re=(n,r)=>Math.abs(n-r)<1.01,le=(n,r,t)=>{let e;return function(...i){n.clearTimeout(e),e=n.setTimeout(()=>r.apply(this,i),t)}};var J,mt=()=>{if(J!==void 0)return J;if(typeof navigator>"u")return J=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return J=!0;let n=navigator.maxTouchPoints;return J=navigator.platform==="MacIntel"&&n!==void 0&&n>0};var ve=n=>n,be=n=>{let r=Math.max(n.startIndex-n.overscan,0),e=Math.min(n.endIndex+n.overscan,n.count-1)-r+1,i=new Array(e);for(let s=0;s<e;s++)i[s]=r+s;return i};var Y={passive:!0},ae=(n,r)=>{let t=n.scrollElement;if(!t)return;let e=()=>{r({width:t.innerWidth,height:t.innerHeight})};return e(),t.addEventListener("resize",e,Y),()=>{t.removeEventListener("resize",e)}},Se=typeof window>"u"?!0:"onscrollend"in window,ye=(n,r,t)=>{let e=n.scrollElement;if(!e)return;let i=n.targetWindow;if(!i)return;let s=n.options.useScrollendEvent&&Se,o=0,l=s?null:le(i,()=>r(o,!1),n.options.isScrollingResetDelay),c=p=>()=>{o=t(e),l?.(),r(o,p)},h=c(!0),u=c(!1);return e.addEventListener("scroll",h,Y),s&&e.addEventListener("scrollend",u,Y),()=>{e.removeEventListener("scroll",h),s&&e.removeEventListener("scrollend",u)}};var ce=(n,r)=>ye(n,r,t=>n.options.horizontal?t.scrollX:t.scrollY),ke=(n,r,t)=>{if(t.options.useCachedMeasurements){let e=t.indexFromElement(n),i=t.options.getItemKey(e);return t.itemSizeCache.get(i)??t.options.estimateSize(e)}if(r?.borderBoxSize){let e=r.borderBoxSize[0];if(e)return Math.round(e[t.options.horizontal?"inlineSize":"blockSize"])}if(!r){let e=t.indexFromElement(n),i=t.options.getItemKey(e),s=t.itemSizeCache.get(i);if(s!==void 0)return s}return n[t.options.horizontal?"offsetWidth":"offsetHeight"]},we=(n,{adjustments:r=0,behavior:t},e)=>{var i,s;(s=(i=e.scrollElement)==null?void 0:i.scrollTo)==null||s.call(i,{[e.options.horizontal?"left":"top"]:n+r,behavior:t})},de=we;var st=class{constructor(r){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,e,i;return((i=(e=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:e.now)==null?void 0:i.call(e))??Date.now()},this.observer=(()=>{let t=null,e=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(i=>{i.forEach(s=>{let o=()=>{let l=s.target,c=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);for(let[h,u]of this.elementsCache)if(u===l){this.elementsCache.delete(h);break}return}this.shouldMeasureDuringScroll(c)&&this.resizeItem(c,this.options.measureElement(l,s,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var i;(i=e())==null||i.disconnect(),t=null},observe:i=>{var s;return(s=e())==null?void 0:s.observe(i,{box:"border-box"})},unobserve:i=>{var s;return(s=e())==null?void 0:s.unobserve(i)}}})(),this.range=null,this.setOptions=t=>{var e,i;let s={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:ve,rangeExtractor:be,onChange:()=>{},measureElement:ke,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 f in t){let v=t[f];v!==void 0&&(s[f]=v)}let o=this.options,l=null,c=null,h=!1;if(o!==void 0&&o.enabled&&s.enabled&&s.anchorTo==="end"&&this.scrollElement!==null){let f=o.count,v=s.count,m=this.getMeasurements(),T=f>0?((e=m[0])==null?void 0:e.key)??o.getItemKey(0):null,k=f>0?((i=m[f-1])==null?void 0:i.key)??o.getItemKey(f-1):null;if(v!==f||f>0&&v>0&&(s.getItemKey(0)!==T||s.getItemKey(v-1)!==k)){h=!0;let y=f>0?this.getVirtualItemForOffset(this.getScrollOffset())??m[0]:null;y&&(l=[y.key,this.getScrollOffset()-y.start]);let A=s.followOnAppend===!0?"auto":s.followOnAppend||null;A&&v>f&&this.isAtEnd(o.scrollEndThreshold)&&(f===0||s.getItemKey(v-1)!==k)&&(c=A)}}this.options=s,h&&(this.pendingMin=0,this.itemSizeCacheVersion++);let u=!1,p=0;if(l&&this.scrollOffset!==null){let[f,v]=l,m=this.getMeasurements(),{count:T,getItemKey:k}=this.options,S=0;for(;S<T&&k(S)!==f;)S++;if(S<T){let x=m[S];if(x){let y=x.start+v;y!==this.scrollOffset&&(p=y-this.scrollOffset,this.scrollOffset=y,u=!0)}}}(u||c)&&(this.pendingScrollAnchor=[u?l[0]:null,u?l[1]:0,c,p])},this.notify=t=>{var e,i;(i=(e=this.options).onChange)==null||i.call(e,this,t)},this.maybeNotify=$(()=>(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 e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,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(s=>{this.observer.observe(s)}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,o)=>{this._intendedScrollOffset!==null&&Math.abs(s-this._intendedScrollOffset)<1.5&&(s=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=o,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){let s=this.scrollElement,o=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},l=()=>{this._iosTouching=!1,!(!mt()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};s.addEventListener("touchstart",o,Y),s.addEventListener("touchend",l,Y),this.unsubs.push(()=>{s.removeEventListener("touchstart",o),s.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 i=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,i&&this.scrollElement&&this.options.enabled){let[s,o,l,c]=i;s!==null&&!l&&(mt()&&(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(),e=this.getMaxScrollOffset();if(t<0||t>e)return;let i=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=i,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,e)=>{let i=new Map,s=new Map;for(let o=e-1;o>=0;o--){let l=t[o];if(i.has(l.lane))continue;let c=s.get(l.lane);if(c==null||l.end>c.end?s.set(l.lane,l):l.end<c.end&&i.set(l.lane,!0),i.size===this.options.lanes)break}return s.size===this.options.lanes?Array.from(s.values()).sort((o,l)=>o.end===l.end?o.index-l.index:o.end-l.end)[0]:void 0},this.getMeasurementOptions=$(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,e,i,s,o,l,c)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMin=null,{count:t,paddingStart:e,scrollMargin:i,getItemKey:s,enabled:o,lanes:l,laneAssignmentMode:c}),{key:!1}),this.getMeasurements=$(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:e,scrollMargin:i,getItemKey:s,enabled:o,lanes:l,laneAssignmentMode:c},h)=>{let u=this.itemSizeCache;if(!o)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,T=t*2,k=this._flatMeasurements;if(!k||k.length<T){let y=new Float64Array(T);k&&p>0&&y.set(k.subarray(0,p*2)),k=y,this._flatMeasurements=k}let S;if(p===0)S=e+i;else{let y=p-1;S=k[y*2]+k[y*2+1]+m}for(let y=p;y<t;y++){let A=s(y),R=u.get(A),I=typeof R=="number"?R:this.options.estimateSize(y);k[y*2]=S,k[y*2+1]=I,S+=I+m}let x=oe(t,k,s);return this.measurementsCache=x,x}let f=this.measurementsCache.slice(0,p),v=new Array(l).fill(void 0);for(let m=0;m<p;m++){let T=f[m];T&&(v[T.lane]=m)}for(let m=p;m<t;m++){let T=s(m),k=this.laneAssignments.get(m),S,x,y=c==="estimate"||u.has(T);if(k!==void 0&&this.options.lanes>1){S=k;let D=v[S],W=D!==void 0?f[D]:void 0;x=W?W.end+this.options.gap:e+i}else{let D=this.options.lanes===1?f[m-1]:this.getFurthestMeasurement(f,m);x=D?D.end+this.options.gap:e+i,S=D?D.lane:m%this.options.lanes,this.options.lanes>1&&y&&this.laneAssignments.set(m,S)}let A=u.get(T),R=typeof A=="number"?A:this.options.estimateSize(m),I=x+R;f[m]={index:m,start:x,size:R,end:I,key:T,lane:S},v[S]=m}return this.measurementsCache=f,f},{key:!1,debug:()=>this.options.debug}),this.calculateRange=$(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,e,i,s)=>this.range=t.length>0&&e>0?Te({measurements:t,outerSize:e,scrollOffset:i,lanes:s,flat:s===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=$(()=>{let t=null,e=null,i=this.calculateRange();return i&&(t=i.startIndex,e=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,e]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,e]},(t,e,i,s,o)=>s===null||o===null?[]:t({startIndex:s,endIndex:o,overscan:e,count:i}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{let e=this.options.indexAttribute,i=t.getAttribute(e);return i?parseInt(i,10):(console.warn(`Missing attribute name '${e}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var e;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;let i=this.scrollState.index??((e=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:e.index);if(i!==void 0&&this.range){let s=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,i-s),l=Math.min(this.options.count-1,i+s);return t>=o&&t<=l}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((o,l)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(l))});return}let e=this.indexFromElement(t),i=this.options.getItemKey(e),s=this.elementsCache.get(i);s!==t&&(s&&this.observer.unobserve(s),this.observer.observe(t),this.elementsCache.set(i,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(e)&&this.resizeItem(e,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,e)=>{var i,s;if(t<0||t>=this.options.count)return;let o,l,c,h=this._flatMeasurements;if(this.options.lanes===1&&h!==null)c=this.options.getItemKey(t),l=h[t*2],o=h[t*2+1];else{let f=this.measurementsCache[t];if(!f)return;c=f.key,l=f.start,o=f.size}let u=this.itemSizeCache.get(c)??o,p=e-u;if(p!==0){let f=this.options.anchorTo==="end"&&((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,v=f?this.getTotalSize():0,m=((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:c,start:l,size:o,end:l+o,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,e),this.itemSizeCacheVersion++,f?this.applyScrollAdjustment(this.getTotalSize()-v):m&&this.applyScrollAdjustment(p),this.notify(!1)}},this.getVirtualItems=$(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,e)=>{let i=[];for(let s=0,o=t.length;s<o;s++){let l=t[s],c=e[l];i.push(c)}return i},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{let e=this.getMeasurements();if(e.length===0)return;let i=this._flatMeasurements,s=this.options.lanes===1&&i!=null,o=ue(0,e.length-1,s?l=>i[l*2]:l=>pt(e[l]).start,t);return pt(e[o])},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,e,i=0)=>{if(!this.scrollElement)return 0;let s=this.getSize(),o=this.getScrollOffset();e==="auto"&&(e=t>=o+s?"end":"start"),e==="center"?t+=(i-s)/2:e==="end"&&(t-=s);let l=this.getMaxScrollOffset();return Math.max(Math.min(l,t),0)},this.getOffsetForIndex=(t,e="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));let i=this.getSize(),s=this.getScrollOffset(),o=this.measurementsCache[t];if(!o)return;if(e==="auto")if(o.end>=s+i-this.options.scrollPaddingEnd)e="end";else if(o.start<=s+this.options.scrollPaddingStart)e="start";else return[s,e];if(e==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),e];let l=e==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,e,o.size),e]},this.scrollToOffset=(t,{align:e="start",behavior:i="auto"}={})=>{let s=this.getOffsetForAlignment(t,e),o=this.now();this.scrollState={index:null,align:e,behavior:i,startedAt:o,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:e="auto",behavior:i="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));let s=this.getOffsetForIndex(t,e);if(!s)return;let[o,l]=s,c=this.now();this.scrollState={index:t,align:l,behavior:i,startedAt:c,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:i}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:e="auto"}={})=>{let i=this.getScrollOffset()+t,s=this.now();this.scrollState={index:null,align:"start",behavior:e,startedAt:s,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:e}),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 e=this.getMeasurements(),i;if(e.length===0)i=this.options.paddingStart;else if(this.options.lanes===1){let s=e.length-1,o=this._flatMeasurements;o!=null?i=o[s*2]+o[s*2+1]:i=((t=e[s])==null?void 0:t.end)??0}else{let s=Array(this.options.lanes).fill(null),o=e.length-1;for(;o>=0&&s.some(l=>l===null);){let l=e[o];s[l.lane]===null&&(s[l.lane]=l.end),o--}i=Math.max(...s.filter(l=>l!==null))}return Math.max(i-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let t=[];if(this.itemSizeCache.size===0)return t;let e=this.getMeasurements();for(let i of e)i&&this.itemSizeCache.has(i.key)&&t.push({index:i.index,key:i.key,start:i.start,size:i.size,end:i.end,lane:i.lane});return t},this._scrollToOffset=(t,{adjustments:e,behavior:i})=>{this._intendedScrollOffset=t+(e??0),this.options.scrollToFn(t,{behavior:i,adjustments:e},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(r)}applyScrollAdjustment(r,t){r!==0&&(mt()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=r:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=r,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 e=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,i=e?e[0]:this.scrollState.lastTargetOffset,s=1,o=i!==this.scrollState.lastTargetOffset;if(!o&&re(i,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=s){this.getScrollOffset()!==i&&this._scrollToOffset(i,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,o){let l=this.getSize()||600,c=Math.abs(i-this.getScrollOffset()),h=this.scrollState.behavior==="smooth"&&c>l;this.scrollState.lastTargetOffset=i,h||(this.scrollState.behavior="auto"),this._scrollToOffset(i,{adjustments:void 0,behavior:h?"smooth":"auto"})}this.scheduleScrollReconcile()}},ue=(n,r,t,e)=>{for(;n<=r;){let i=(n+r)/2|0,s=t(i);if(s<e)n=i+1;else if(s>e)r=i-1;else return i}return n>0?n-1:0};function Te({measurements:n,outerSize:r,scrollOffset:t,lanes:e,flat:i}){let s=n.length-1,o=i?u=>i[u*2]:u=>n[u].start,l=i?u=>i[u*2]+i[u*2+1]:u=>n[u].end;if(n.length<=e)return{startIndex:0,endIndex:s};let c=ue(0,s,o,t),h=c;if(e===1)for(;h<s&&l(h)<t+r;)h++;else if(e>1){let u=Array(e).fill(0);for(;h<s&&u.some(f=>f<t+r);){let f=n[h];u[f.lane]=f.end,h++}let p=Array(e).fill(t+r);for(;c>=0&&p.some(f=>f>=t);){let f=n[c];p[f.lane]=f.start,c--}c=Math.max(0,c-c%e),h=Math.min(s,h+(e-1-h%e))}return{startIndex:c,endIndex:h}}var Ee={assistant:Ft,tool:Q,"tool-result":B,approval:Dt,status:ct,error:jt,line:ct,reasoning:Lt,steer:Wt,usage:Rt},xe=n=>!!(n.detail||n.result?.detail)||n.title.length>120||n.title.includes(`
4
+ `),Me=()=>innerHeight+scrollY>=document.documentElement.scrollHeight-48;function Ae(n,r){let[,t]=rt(s=>s+1,0),e={count:n,estimateSize:()=>30,overscan:16,getScrollElement:()=>window,observeElementRect:ae,observeElementOffset:ce,scrollToFn:de,scrollMargin:r.current?r.current.getBoundingClientRect().top+scrollY:0,onChange:()=>t(0)},[i]=E(()=>new st(e));return i.setOptions(e),P(()=>i._didMount(),[]),P(()=>i._willUpdate()),i}function Ce({row:n,running:r}){let[,t]=rt(o=>o+1,0);C(()=>{if(!r)return;let o=setInterval(()=>t(0),1e3);return()=>clearInterval(o)},[r]);let e=n.result,i=r?Math.max(0,Date.now()-n.at):e?.durationMs,s=[n.state,e&&!e.ok&&e.exitCode!==void 0?`exit ${e.exitCode}`:"",i?K(i):""].filter(Boolean).join(" \xB7 ");return a("span",{class:`act-state${e&&!e.ok?" bad":""}`,children:[r?a("i",{class:"spin"}):e?a(O,{d:e.ok?B:dt}):null,s]})}function Oe({row:n,tz:r,open:t,running:e,onToggle:i}){let s=z(null),[o,l]=E(!1);P(()=>{s.current&&l(s.current.scrollWidth>s.current.clientWidth)},[n.title]);let c=t||o||xe(n),h=n.tone==="error",u=n.kind==="tool"||n.state!==void 0,p=n.kind==="tool-result"?[n.tool,n.exitCode!==void 0?`exit ${n.exitCode}`:void 0,n.durationMs?K(n.durationMs):void 0].filter(Boolean).join(" \xB7 "):n.kind==="reasoning"&&n.durationMs?K(n.durationMs):"";return a(c?"button":"div",{type:c?"button":void 0,class:`act ${n.kind}${n.tone?` ${n.tone}`:""}${n.separated?" sep":""}${u?" timed":""}${t?" open":""}`,"aria-expanded":c?t:void 0,onClick:c?i:void 0,children:[a("time",{children:Ot(n.at,r)}),a(O,{d:n.kind==="tool-result"&&h?dt:Ee[n.kind]}),a("span",{class:"act-text",children:[a("span",{class:"act-title",ref:s,children:n.kind==="tool"&&n.tool&&n.title.startsWith(`${n.tool} `)?a(L,{children:[a("span",{class:"act-tool",children:n.tool}),n.title.slice(n.tool.length)]}):n.title}),p?a("span",{class:"act-detail",children:p}):null,n.detail&&(t||!n.state)?a("span",{class:"act-detail",children:n.detail}):null,t&&n.result?.detail?a("span",{class:"act-detail",children:n.result.detail}):null]}),u?a(Ce,{row:n,running:e}):null,c?a(O,{d:G,class:"act-chev"}):null]})}function he({rows:n,live:r,tz:t}){let e=z(null),[i,s]=E(new Set),[o,l]=E(r),c=Ae(n.length,e),h=n.findLastIndex(u=>u.kind==="assistant"||u.kind==="reasoning");return C(()=>{let u=()=>l(Me());return addEventListener("scroll",u,{passive:!0}),()=>removeEventListener("scroll",u)},[]),P(()=>{o&&scrollTo({top:document.documentElement.scrollHeight})},[n.length]),n.length?a(L,{children:[a("div",{class:"act-list",ref:e,style:`height:${c.getTotalSize()}px`,role:"log","aria-live":"off",children:c.getVirtualItems().map(u=>{let p=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(Oe,{row:p,tz:t,open:i.has(p.seq),running:r&&!p.result&&(p.state!==void 0||p.kind==="tool"&&u.index>h),onToggle:()=>s(f=>{let v=new Set(f);return v.delete(p.seq)||v.add(p.seq),v})})},p.seq)})}),o?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:r?"Nothing yet. Events appear here as the task runs.":"No activity recorded."})}var Ie=["Conversation","Activity"];function vt(n,r){if(typeof n=="string")return n;if(!n||typeof n!="object")return r;let t=n;for(let e of["output","answer","message"])if(typeof t[e]=="string")return t[e];return r}var _e=n=>typeof n=="object"&&n!==null&&Array.isArray(n.findings)&&n.findings.every(r=>typeof r=="object"&&r!==null&&"file"in r&&"summary"in r);function ze({findings:n}){return n.length?a("ul",{class:"findings",children:n.map((r,t)=>a("li",{class:`finding ${r.severity}`,children:[a("p",{class:"finding-head",children:[a("span",{class:"sev",children:r.severity}),a("span",{class:"loc",children:[r.file,":",r.line]}),r.category?a("span",{class:"cat",children:r.category}):null]}),a("p",{class:"finding-sum",children:r.summary}),r.failure_scenario?a("p",{class:"finding-why muted",children:r.failure_scenario}):null]},t))}):a("p",{class:"body muted",children:"No findings."})}function Re({value:n}){let r=vt(n,"Result received."),t;if(/^\s*[[{]/.test(r))try{t=JSON.parse(r)}catch{}return _e(t)?a(ze,{findings:t.findings}):t&&typeof t=="object"?a("pre",{class:"body json",children:JSON.stringify(t,null,2)}):a("div",{class:"body md",children:se(r)})}function De(){let n=_t();return a(Zt,{...Qt(n.get("from"),{href:"/dash/tasks",params:{},label:"Tasks"}),back:n.get("back")})}function Le({task:n,tz:r}){let t=N(n),{engine:e,model:i,effort:s}={...n.task.definition,...n.task.usage},o=n.task.event?.integration??n.task.source,l=n.task.event?.type??(n.task.flow!=="default"?n.task.flow:void 0);return a(te,{back:a(De,{}),title:tt(n).split(`
5
+ `)[0],meta:a(L,{children:[a(Kt,{status:n.status}),n.archivedAt?a(Jt,{children:"archived"}):null]}),lead:a(L,{children:[a("span",{class:"fact",title:`Created ${lt(n.createdAt,r)}`,children:[a(O,{d:$t}),lt(n.createdAt,r,!0),n.startedAt&&n.finishedAt?`, ran ${K(n.finishedAt-n.startedAt)}`:null]}),a("span",{class:"fact",title:"Source",children:[a(O,{d:n.task.event?Vt:Q}),l?`${ht(o)} ${l}`:ht(o)]}),n.task.cwd?a("span",{class:"fact",title:n.task.cwd,children:[a(O,{d:Nt}),Ut(n.task.cwd)]}):null,a("span",{class:"fact",children:[a(It,{class:"agent-link",href:"/dash/agents/[slug]",params:{slug:n.task.agent},search:{from:`/dash/tasks/${n.task.id}`},children:[a(O,{d:zt}),n.task.agent]}),e?a("span",{class:"fact-dim",title:"Engine, model and effort",children:[e,i,s].filter(Boolean).join("/")}):null]})]}),actions:a(Xt,{task:n,live:t})})}function Fe(n){let r=z();return At(()=>{let t=r.current??={log:new et,rows:[],seen:0};for(let e of n.slice(t.seen))for(let i of t.log.reduce(e))i.seq>(t.rows.at(-1)?.seq??-1)?t.rows.push(i):t.rows[t.rows.findLastIndex(({seq:s})=>s===i.seq)]=i;return t.seen=n.length,[...t.rows]},[n])}function As({initial:n,tz:r}){let[t,e]=E(n),[i,s]=E(n.logs??[]),[o,l]=E((n.logs?.length??0)<gt),[c,h]=E("conversation"),[u,p]=E([]),[f,v]=E(!1),[m,T]=E(0),k=z(t.answer?.length??0),[S,x]=E(!1),[y,A]=E(""),R=z(n.logs?.at(-1)?.seq??-1),I=z(null),D=z(null);C(()=>{let d=D.current,g=d?.closest(".page");if(!d||!g)return;let w=new ResizeObserver(()=>g.style.setProperty("--reply",`${d.offsetHeight}px`));return w.observe(d),()=>w.disconnect()},[t.task.flow]);let W=Yt(t.task.id),M=N(t),bt=t.task.flow==="default",fe=Fe(i);C(()=>Ht(t.task.id,t.status,tt(t)),[t.status]),C(()=>{W.error&&Bt("Not sent",W.error)},[W.error]);let St=z([]),yt=d=>{let g=d.filter(w=>w.seq>R.current);g.length&&(R.current=g.at(-1).seq,St.current.push(...g)===g.length&&setTimeout(()=>{let w=St.current.splice(0);s(b=>[...b,...w])}))};C(()=>{M&&bt&&I.current?.focus()},[]);let[kt,pe]=E(!0);C(()=>{let d=()=>pe(document.visibilityState==="visible");return d(),addEventListener("visibilitychange",d),()=>removeEventListener("visibilitychange",d)},[]);let[nt,it]=E(M);C(()=>{M&&it(!0)},[M]);let[q,wt]=E(0),X=z(0);X.current=q;let ot=()=>{let d=X.current;U.tasks.get(t.task.id).then(({logs:g,...w})=>{X.current===d&&e(w)}).catch(g=>A(at(g)))},Tt=()=>{ot(),nt||l(!1)};C(()=>{q&&U.tasks.get(t.task.id).then(({turns:d})=>{X.current===q&&e(g=>N(g)?{...g,turns:d}:g)}).catch(()=>{})},[q]),qt(d=>{if(d.id!==t.task.id||d.deleted)return;M&&!N(d)&&ot();let g=M&&t.startedAt!==void 0&&d.startedAt!==t.startedAt;N(d)&&(!M||g)&&(wt(w=>w+1),it(!0)),!M&&!N(d)&&d.finishedAt!==t.finishedAt&&(ot(),l(!1)),e(w=>({...w,status:d.status,approval:d.approval??void 0,archivedAt:d.archivedAt,startedAt:d.startedAt,finishedAt:d.finishedAt,...d.result===void 0?{}:{result:d.result??void 0,error:d.error??void 0,answer:d.answer??void 0}}))},Tt,()=>document.visibilityState==="visible"&&Tt()),C(()=>{o||U.tasks.logs(t.task.id,R.current,gt).then(d=>{yt(d),d.length<gt&&l(!0)}).catch(d=>A(at(d)))},[o,i.length]),C(()=>{if(!o||!nt||!kt)return;let d=new AbortController;return(async()=>{for(;!d.signal.aborted;){try{let w=await U.tasks.stream(t.task.id,R.current,d.signal);if(!w.ok||!w.body){A("Live updates stopped.");return}A("");for await(let b of Ct(w.body)){if(d.signal.aborted)return;if(b.event==="log")yt([JSON.parse(b.data)]);else if(b.event==="end")return it(!1)}}catch{if(d.signal.aborted)return}A("Reconnecting."),await new Promise(w=>setTimeout(w,1e3))}})(),()=>d.abort()},[o,nt,kt,q]);let V=t.turns??[{prompt:t.task.prompt??t.task.event?.text??tt(t),result:t.result,error:t.error,finishedAt:t.finishedAt}],Et=async()=>{let d=I.current?.value.trim();if(!d||f)return;let g=M?S?"ask":"steer":"continue";if(g==="ask"){I.current.value="",p(b=>[...b,{kind:g,text:d,turn:V.length-1}]),T(b=>b+1),W.run(g,{question:d}).then(b=>{if(T(_=>_-1),b)return h("conversation");p(_=>_.filter(F=>F.text!==d||F.kind!==g))});return}v(!0),await W.run(g,{text:d}).finally(()=>v(!1))&&(I.current.value="",g==="continue"?(wt(b=>b+1),e(b=>({...b,status:"queued",result:void 0,error:void 0,startedAt:void 0,finishedAt:void 0,turns:[...V.map((_,F)=>F===V.length-1?{..._,finishedAt:_.finishedAt??Date.now()}:_),{prompt:d}]}))):(p(b=>[...b,{kind:g,text:d,turn:V.length-1}]),h("activity")))},xt=d=>{x(d),setTimeout(()=>I.current?.focus())},We=t.result;return a(L,{children:[a(Le,{task:t,tz:r}),t.fallbacks?.map((d,g)=>a("p",{class:"flash",role:"status",children:[d.engine," was unavailable. ",d.detail," This task is using ",d.next,"."]},g)),t.approval?a(Gt,{task:t}):null,a("nav",{class:"tabs",role:"tablist","aria-label":"Task",children:Ie.map(d=>{let g=d.toLowerCase();return a("button",{type:"button",role:"tab","aria-selected":c===g,"aria-current":c===g?"page":void 0,onClick:()=>h(g),children:d},g)})}),y?a("p",{class:"flash err",role:"status",children:y}):null,c==="activity"?a(he,{rows:fe,live:M,tz:r}):a("div",{class:"convo",children:V.map((d,g)=>{let w=g===V.length-1;return a(L,{children:[a("div",{class:"turn prompt",children:[a("p",{class:"who",children:"Prompt"}),a(ee,{class:"prose",children:d.prompt})]}),w?(t.answer??[]).slice(0,k.current).map((b,_)=>a("div",{class:"turn answer",children:[a("p",{class:"who",children:"Answer"}),a("div",{class:"prose",children:vt(b,"Answer received.")})]},`a${_}`)):null,u.filter(b=>b.turn===g).map((b,_)=>{let F=b.kind==="ask"?u.filter(me=>me.kind==="ask").indexOf(b):-1,Mt=F<0?void 0:t.answer?.[k.current+F];return a("div",{class:F<0?"turn you":"turn you qa",children:[a("p",{class:"who",children:b.kind==="ask"?"You asked":"You steered"}),a("div",{class:"prose",children:b.text}),F<0?null:a("div",{class:"answer",children:[a("p",{class:"who",children:"Answer"}),Mt===void 0?a(ut,{inline:!0,dots:!0,label:"Answering without interrupting the run."}):a("div",{class:"prose",children:vt(Mt,"Answer received.")})]})]},_)}),d.result?a(Z,{title:"Result",children:a(Re,{value:d.result})}):w&&M?a(Z,{title:"Result",children:a("div",{class:"body waiting",children:a(ut,{inline:!0,dots:!0,label:"The result appears here when the task finishes."})})}):null,d.error?a(Z,{tone:"danger",title:"Error",children:a("div",{class:"body prose",children:d.error})}):null]},g)})}),bt?a("form",{ref:D,class:"reply",onSubmit:d=>{d.preventDefault(),Et()},children:a("div",{class:"reply-box",children:[M?a(Pt,{summary:a(L,{children:[S?"Ask":"Steer",a(O,{d:G})]}),summaryClass:"mode",label:"Send as",align:"up",wide:!0,children:[a("button",{type:"button",class:"pop-item rich",role:"menuitemradio","aria-checked":!S,onClick:()=>xt(!1),children:[a("span",{class:"grow",children:["Steer",a("small",{children:"Change course while it works."})]}),a(O,{d:B})]}),a("button",{type:"button",class:"pop-item rich",role:"menuitemradio","aria-checked":S,onClick:()=>xt(!0),children:[a("span",{class:"grow",children:["Ask",a("small",{children:"A question that does not interrupt it."})]}),a(O,{d:B})]})]}):null,a("textarea",{ref:I,rows:1,"aria-label":"Message",autofocus:M,placeholder:M?S?"Ask about the run without interrupting it.":"Steer the agent while it works.":"Continue the conversation.",onKeyDown:d=>{d.key!=="Enter"||d.shiftKey||d.isComposing||(d.preventDefault(),Et())}}),a("button",{class:"btn sm",disabled:f,"aria-busy":f||m>0,children:"Send"})]})}):a("p",{class:"muted no-reply",children:"This flow takes no follow-ups."})]})}var gt=500;export{gt as LOG_CHUNK,As as TaskView};
@@ -0,0 +1 @@
1
+ "use client";import{a as zt}from"./task-actions-ce854925a2dc78fd.js";import{a as Gt}from"./confirm-5ae484241ad888fd.js";import{a as Bt}from"./filter-91144ac2eec6297f.js";import{a as rt}from"./agent-pills-b6a6da91c9559d9f.js";import{a as Kt}from"./tail-4891e727ee526792.js";import{a as Ft,b as jt,c as Ut,d as _t}from"./toolbar-8d98313606ad8a2d.js";import{b as $t,e as nt}from"./paged-3ddb6077bef42752.js";import{c as qt}from"./badge-215c7b2631dafc69.js";import{a as Ot}from"./composer-417166b029f48c47.js";import"./connect-repositories-77591110836bdf03.js";import"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import"./select-a90307706cffa6e0.js";import{a as At,b as Pt,c as St,d as et,e as Et,f as It,g as xt,h as Mt,i as Lt,j as Nt}from"./task-ddfddeaf07fb684c.js";import{a as Rt,b as tt}from"./card-e86dcc81326d2b14.js";import{b as ct}from"./field-aa0a4b98a976781e.js";import{a as dt,c as lt,d as ut,e as J,g as mt}from"./format-105c706345987fb2.js";import"./sentinel-b5e032b38604dfd3.js";import{$3a as Tt,$3f as Ct}from"./shared-init-7f81ae7bc8c82438.js";import{$6a as pt}from"./shared-init-7f81ae7bc8c82438.js";import"./wular-pnext-246221e985d863e5-0.js";import{$1a as ft}from"./shared-init-7f81ae7bc8c82438.js";import"./shared-init-7f81ae7bc8c82438.js";import{$5a as Dt,$5b as N}from"./shared-init-7f81ae7bc8c82438.js";import{$0A as vt,$0a as Z,$0i as ht,$0q as yt,$0r as gt,$0x as bt,$0y as kt,$0z as wt}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as L}from"./shared-init-933c7f9ee85be766.js";import{$2b as C}from"./shared-init-933c7f9ee85be766.js";import{$1a as t}from"./shared-init-933c7f9ee85be766.js";import"./shared-init-246221e985d863e5-2.js";import"./shared-init-246221e985d863e5-2.js";import{$1b as U,$1c as x,$1g as T,$1i as M,$1k as m}from"./shared-init-8f2ac936c95a7f7b.js";var Zt=Symbol.for("pnext.dynamic");function Jt(n,i={},c){let s=null,d=null,o=typeof n=="string"?()=>{throw new Error(`dynamic(${JSON.stringify(n)}) was not compiled by PNext.`)}:n,f=()=>(d??=Promise.resolve(o()).then(p=>(s=typeof p=="function"?p:p.default,s)),d);function w(p){let[a,l]=T(()=>s),[k,u]=T(()=>i.load!=="visible"),_=m(null);if(M(()=>{if(a||k)return;let D=_.current;if(!D||typeof IntersectionObserver>"u"){u(!0);return}let R=new IntersectionObserver(O=>{O.some(K=>K.isIntersecting)&&(R.disconnect(),u(!0))},{rootMargin:i.rootMargin,threshold:i.threshold});return R.observe(D),()=>R.disconnect()},[a,k]),M(()=>{if(a||!k)return;let D=!1;return f().then(R=>{D||l(()=>R)}),()=>{D=!0}},[a,k]),a)return U(a,p);let E=i.loading;return i.load==="visible"?U("div",{ref:_},E?U(E,p):null):E?U(E,p):null}return w[Zt]={load:f,target:c},w}var te=Jt(()=>import("./composer-645ae8fa97a35280.js").then(n=>n.NewTaskButton),{loading:()=>t("button",{type:"button",class:"btn new-task",disabled:!0,children:[t(L,{d:gt}),"New task"]})}),ee={dashboard:ht,cli:bt,schedule:wt},Vt=n=>ee[n]??vt;function ne(n,i,c){let s=Math.round((i-n)/6e4);return s<1?"just now":s<60?`${s} min ago`:s<1440?`${Math.round(s/60)} h ago`:lt(n,c)}function re({task:n,brand:i,back:c,scoped:s,tz:d,now:o,onDone:f,onError:w}){let p=n.startedAt===void 0?void 0:(n.finishedAt??o)-n.startedAt,a=n.task.event?.integration??n.task.source??"dashboard",l=n.task.event?.type??(n.task.flow==="default"?void 0:n.task.flow);return t("tr",{children:[t("td",{children:[t(ft,{class:"cover",href:"/dash/tasks/[id]",params:{id:n.task.id},search:c?{back:c}:void 0,children:Lt(n)}),t("span",{class:"sub",children:[s?null:t(x,{children:[t(L,{d:Z}),`${n.task.agent} \xB7 `]}),t(qt,{value:n.task.id}),l?` \xB7 ${l}`:null,n.task.cwd?t(x,{children:[" \xB7 ",t("span",{title:n.task.cwd,children:[t(L,{d:kt}),Nt(n.task.cwd)]})]}):null]})]}),t("td",{children:t(Tt,{status:n.status})}),t("td",{class:"when",title:dt(n.createdAt,d),children:ne(n.createdAt,o,d)}),t("td",{class:"num",children:ut(p)}),t("td",{children:[t("span",{class:"source",title:et(a),children:[i?t(rt,{brand:i}):t(L,{d:Vt(a)}),et(a)]}),t("span",{class:"row-acts",children:t(oe,{task:n,onDone:f,onError:w})})]})]})}function oe({task:n,onDone:i,onError:c}){let[s,d]=T(),o=(f,w)=>{c(""),(f==="approve"?C.tasks.approve(n.task.id,zt(n.approval).id??"",w??"decline"):f==="delete"?C.tasks.delete(n.task.id):C.tasks[f](n.task.id)).then(()=>i(f),a=>c(mt(a))).finally(()=>d(void 0))};return t(x,{children:[t(Dt,{summary:t(L,{d:yt}),summaryClass:"icon-btn",label:"Task actions",align:"right",children:[n.approval?t(N,{title:"Approve",onClick:()=>o("approve","accept")}):null,n.approval?t(N,{title:"Deny",onClick:()=>o("approve","decline")}):null,Et(n)?t(N,{title:"Stop",onClick:()=>o("cancel")}):null,n.archivedAt?null:t(N,{title:"Archive",onClick:()=>o("archive")}),t(N,{title:"Delete",danger:!0,onClick:()=>d("ask")})]}),t(Gt,{open:!!s,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:s==="busy",onConfirm:()=>{d("busy"),o("delete")},onClose:()=>d(void 0)})]})}function je({first:n,platforms:i,brands:c={},agents:s=[],filters:d,agent:o,head:f,missing:w,tz:p,now:a}){let{values:l,set:k,query:u}=jt(d),_=Ft(d),E=o?`&agent=${encodeURIComponent(o)}`:"",D=o?`/dash/agents/${encodeURIComponent(o)}/tasks`:"/dash/tasks",R=u||o?`${D}${u?`?${u}`:""}`:void 0,O={limit:nt,summary:!0,counts:!0,...Pt(l),agent:o??l.agent},K=[{key:"status",label:"Status",options:At,inline:!0},{key:"source",label:"Source",options:[...St,...i],icon:e=>c[e]?t(rt,{brand:c[e]}):Vt(e)}];o||K.push({key:"agent",label:"Agent",options:s,icon:()=>Z,search:(e,h)=>C.agents.list({cursor:"",limit:h,q:e}).then(r=>r.items.map(y=>[y.id,y.name]))});let $=$t({name:`tasks${E}`,fetchPage:e=>C.tasks.list({...O,cursor:e}),query:u,first:n,initial:_}),[q,G]=T({rows:{},added:[]}),[Qt,A]=T([]);M(()=>A([]),[u]);let[Wt,Xt]=T(""),z=Mt($.rows,q.query===u?q.added:[],q.rows).filter(e=>!Qt.includes(e.task.id)),P=(q.query===u?q.counts:void 0)??$.meta.counts,B=m(),F=m(!1),V=m(!1),ot=m(),st=m(!1),Q=m(0),W=m(0),H=m({}),X=m(!1),I=(e=!1)=>{if(X.current||=e,document.visibilityState==="hidden")return void(V.current=!0);if(B.current)return void(F.current=!0);let h=B.current=Date.now(),r=W.current,y=X.current?z:[];X.current=!1,(async()=>{let b=await C.tasks.list({...O,limit:Math.min(200,Math.max(nt,y.length)),cursor:""}),v=b,j=[...b.items];for(;v.next&&j.length<y.length;)v=await C.tasks.list({...O,limit:200,cursor:v.next}),j.push(...v.items);return{...v,items:j,counts:b.counts}})().then(b=>{if(W.current!==r)return;let v=b.items.at(-1),j=new Set(b.items.map(g=>g.task.id)),at=y.filter(g=>!j.has(g.task.id)&&(H.current[g.task.id]??0)<=h&&(!b.next||v&&It(g,v)<0));at.length&&A(g=>[...g,...at.map(S=>S.task.id)]),G(g=>({rows:{...g.rows,...Object.fromEntries(b.items.filter(S=>(H.current[S.task.id]??0)<=h).map(S=>[S.task.id,{...g.rows[S.task.id],...S}]))},added:xt(g.query===u?g.added:[],b.items),counts:b.counts,query:u})),Q.current=0}).catch(()=>{Q.current++,F.current=!0}).finally(()=>{if(!st.current){if(!F.current)return void(B.current=void 0);F.current=!1,ot.current=setTimeout(()=>{B.current=void 0,Y.current()},Math.min(3e4,1e3*2**Q.current))}})},Y=m(I);Y.current=I,M(()=>{let e=()=>{document.visibilityState!=="visible"||!V.current||(V.current=!1,Y.current())};return addEventListener("visibilitychange",e),()=>{removeEventListener("visibilitychange",e),clearTimeout(ot.current),st.current=!0}},[]);let Yt=pt();return Ct(e=>{let h=z.find(r=>r.task.id===e.id);if(!h){e.deleted||e.archivedAt&&l.status!=="archived"?A(r=>[...r,e.id]):A(r=>r.includes(e.id)?r.filter(y=>y!==e.id):r),G(r=>{let{[e.id]:y,...it}=r.rows;return y?{...r,rows:it}:r}),(e.deleted||(o||l.agent||e.agent)===e.agent)&&I();return}if(H.current[e.id]=Date.now(),B.current&&(F.current=!0),(e.deleted||e.status!==h.status||!!e.archivedAt!=!!h.archivedAt)&&I(),e.deleted||e.archivedAt&&l.status!=="archived")return A(r=>[...r,e.id]);G(r=>{let y=r.rows[e.id]??h;return{...r,rows:{...r.rows,[e.id]:{...y,status:e.status,approval:e.approval??void 0,archivedAt:e.archivedAt,startedAt:e.startedAt,finishedAt:e.finishedAt}}}})},()=>{W.current++,H.current={},G({rows:{},added:[]}),A([]),Yt.refresh()},()=>I(!0)),t(x,{children:[t(_t,{head:f,action:f?t(te,{}):void 0,children:[t(Ut,{value:l.q,label:"Search tasks",onInput:e=>k("q",e,250)}),t(Bt,{name:"tasks",facets:K,values:l,onChange:k})]}),w?t(Ot,{}):null,t(Rt,{title:"Tasks",count:P?J(P.all):void 0,actions:P?t(x,{children:[t(ct,{value:Wt}),P.active?t("button",{type:"button",class:"badge acc",onClick:()=>k("status","active"),children:[J(P.active)," active"]}):null,P.waiting?t("button",{type:"button",class:"badge warn",onClick:()=>k("status","waiting"),children:[J(P.waiting)," awaiting approval"]}):null]}):void 0,children:[z.length?t("div",{class:"table-scroll",children:t("table",{class:"rows tasks stacked","aria-busy":$.stale,children:[t("thead",{children:t("tr",{children:[t("th",{children:"Task"}),t("th",{children:"Status"}),t("th",{children:"Created"}),t("th",{class:"num",children:"Duration"}),t("th",{children:"Source"})]})}),t("tbody",{children:z.map(e=>t(re,{task:e,brand:c[e.task.event?.integration??e.task.source],back:R,scoped:!!o,tz:p,now:a,onError:Xt,onDone:h=>{(h==="delete"||h==="archive"&&l.status!=="archived")&&A(r=>[...r,e.task.id]),I()}},e.task.id))})]})}):$.stale?null:u?t(tt,{title:"No tasks match",children:"Try another search or filter."}):t(tt,{title:"No tasks yet",children:o?"Tasks appear here as this agent runs.":"Start one with New task. Tasks from the dashboard, the CLI and platforms like GitHub show up here, newest first."}),t(Kt,{noun:"tasks",...$})]})]})}export{je as TasksList};
@@ -1 +1 @@
1
- import{c as T,d as b}from"./paged-bc6fa0c2b9d52ed7.js";import{a as y}from"./sentinel-c972a33dc69a5135.js";import{$5v as h}from"./shared-init-ffb3397e494137c9.js";import{$1a as g}from"./shared-init-88cce66bb3cfe1e5.js";import{$2a as e}from"./shared-init-88cce66bb3cfe1e5.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};
1
+ import{c as T,d as b}from"./paged-3ddb6077bef42752.js";import{a as y}from"./sentinel-b5e032b38604dfd3.js";import{$0v as h}from"./shared-init-7f81ae7bc8c82438.js";import{$0a as g}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.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};
@@ -1 +1 @@
1
- "use client";import{a as c}from"./tail-7c27aab8ba268bd9.js";import{b as a,e as l}from"./paged-bc6fa0c2b9d52ed7.js";import{a as p}from"./badge-676b01e0c615bf7b.js";import"./card-e0901d68b79dfa93.js";import{a as n}from"./format-eb03fc9d9744d960.js";import{$0b as s}from"./shared-init-88cce66bb3cfe1e5.js";import{$2a as e}from"./shared-init-88cce66bb3cfe1e5.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};
1
+ "use client";import{a as c}from"./tail-4891e727ee526792.js";import{b as a,e as l}from"./paged-3ddb6077bef42752.js";import{a as p}from"./badge-215c7b2631dafc69.js";import"./card-e86dcc81326d2b14.js";import{a as n}from"./format-105c706345987fb2.js";import{$2b as s}from"./shared-init-933c7f9ee85be766.js";import{$1a as e}from"./shared-init-933c7f9ee85be766.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
+ .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:12;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 .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.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;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;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:12;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 .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.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;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;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>div:first-child:has(>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{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);background:var(--warnbg)}.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:12;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 .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.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;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;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>div:first-child:has(>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{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 textarea{max-height:min(20lh,max(4lh,calc(86dvh - 180px)))}.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);background:var(--warnbg)}.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)}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){@supports (anchor-scope: --menu){.filters .menu.filter-more>.pop{inset:anchor(bottom) auto auto anchor(left)}}.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.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}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.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:12;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 .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.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;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;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>div:first-child:has(>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{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);background:var(--warnbg)}.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}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.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:12;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 .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.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;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;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>div:first-child:has(>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{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);background:var(--warnbg)}.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}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.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:130px}.tasks th:nth-child(4){width:100px}.tasks th:nth-child(5){width:204px}.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}.tasks .sub .ic{width:12px;height:12px;margin-right:5px;color:var(--dim);vertical-align:-2px}@media(max-width:760px){.tasks{min-width:0}.tasks td{padding-block:0}.tasks td:is(.when,.num){order:1}.tasks td:last-child{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:last-child,.tasks td:last-child{padding-right:64px}.tasks td:last-child{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}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){@supports (anchor-scope: --menu){.filters .menu.filter-more>.pop{inset:anchor(bottom) auto auto anchor(left)}}.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.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 textarea{max-height:min(20lh,max(4lh,calc(86dvh - 180px)))}.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}.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)}.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}