@wular/coder 0.4.5 → 0.4.6

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 (190) hide show
  1. package/dist/{add-DTwoL7vJ.js → add-BIp1t_pT.js} +1 -1
  2. package/dist/{add-cdKdz3K0.js → add-CKENklTr.js} +1 -1
  3. package/dist/{add-Bffwutko.js → add-DrbKvzAF.js} +1 -1
  4. package/dist/{add-Bz8uaOcu.js → add-KkLx1WbE.js} +1 -1
  5. package/dist/{add-json-BIcbE3Nf.js → add-json-GHTfZV_U.js} +1 -1
  6. package/dist/{agent-DQK_S1PE.js → agent-CR8UFMa-.js} +1 -1
  7. package/dist/{agent-BcXXkOmD.js → agent-D0pQ_ewc.js} +1 -1
  8. package/dist/{alias-KQ85bphl.js → alias--pfI-nvH.js} +1 -1
  9. package/dist/{app-DaccLHrx.js → app-C7sw1ZkI.js} +1 -1
  10. package/dist/{approvals-CZt_aPCy.js → approvals-9-G-QxOy.js} +1 -1
  11. package/dist/{approve-DxjyXd66.js → approve-CAk8qPqG.js} +1 -1
  12. package/dist/{apps-eueTmHR5.js → apps-CaHoLNE7.js} +1 -1
  13. package/dist/{archive-C3JazQuo.js → archive-Ylxh0HIl.js} +1 -1
  14. package/dist/{archive-C9yrU4Wg.js → archive-fs5RjYHc.js} +1 -1
  15. package/dist/{archive-sweep-CHbOP-p6.js → archive-sweep-BrqWj4kr.js} +1 -1
  16. package/dist/{ask-DdYrvsTk.js → ask-Dmk0HGtI.js} +1 -1
  17. package/dist/{auth-q8CROpG-.js → auth-CS0cH0gq.js} +1 -1
  18. package/dist/auth-cZ0FrkBv.js +1 -0
  19. package/dist/{cli-msOzZFXW.js → cli-IfrPgeYz.js} +1 -1
  20. package/dist/cli.d.ts +1 -1
  21. package/dist/cli.js +1 -1
  22. package/dist/{config-BllYHi8S.js → config-Duf8jCkd.js} +1 -1
  23. package/dist/{create-BYki3g42.js → create-Ik613gJw.js} +1 -1
  24. package/dist/credentials-Dxpb5jCT.js +1 -0
  25. package/dist/dash/standalone/server/manifest.json +822 -822
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/(list)/page.8f85fbaff456c5fe.js +2 -2
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/layout.d3aec63db0f5230d.js +1 -1
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/page.7fd1bfcf08e25919.js +2 -2
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/platforms/page.31687af871d75d39.js +1 -1
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/(tabs)/settings/page.1ed5379637860fab.js +1 -1
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/[slug]/edit/page.1798dbd9cd334e8f.js +1 -1
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/agents/new/page.44f60b1a32344f70.js +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/credentials.6423846391b20446.js +2 -2
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/settings/[tab]/page.04b07f9c365be073.js +4 -4
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/[id]/page.d1ded90712ca586f.js +1 -1
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/tasks-list.9698bdff71c3b3c7.js +1 -1
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/tasks/list/tasks-section.c77194f05c3f58fb.js +1 -1
  38. package/dist/dash/standalone/static/assets/chunks/{agent-pills-0163fdf910179991.js → agent-pills-65087e563e7f928c.js} +1 -1
  39. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-b1fcd9a5236b1fc7.js → agent-settings-form-51f5d16c5b35b0c4.js} +1 -1
  40. package/dist/dash/standalone/static/assets/chunks/{agents-grid-1d8f0ec6cf8c797e.js → agents-grid-8d8fb47aa05c1022.js} +1 -1
  41. package/dist/dash/standalone/static/assets/chunks/{badge-9984d2fd0e7f995d.js → badge-b8e1e1429e8418e8.js} +1 -1
  42. package/dist/dash/standalone/static/assets/chunks/{card-818c7a0d580e2e0d.js → card-abb16544e8e5a5e0.js} +1 -1
  43. package/dist/dash/standalone/static/assets/chunks/{combo-0d55fb62af761ac5.js → combo-0feaff3c2ab55606.js} +1 -1
  44. package/dist/dash/standalone/static/assets/chunks/{composer-8abfcac26339cc99.js → composer-08a1aad17120af8a.js} +1 -1
  45. package/dist/dash/standalone/static/assets/chunks/composer-261cde2206340a07.js +1 -0
  46. package/dist/dash/standalone/static/assets/chunks/{confirm-be929e2de15876a6.js → confirm-d804955ec454f00f.js} +1 -1
  47. package/dist/dash/standalone/static/assets/chunks/{connect-apps-3e8b55a43315f58a.js → connect-apps-c4b8fc9d3a25e545.js} +1 -1
  48. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-8864a63f83ffd411.js → connect-repositories-2cf520006ed18949.js} +1 -1
  49. package/dist/dash/standalone/static/assets/chunks/{credentials-list-518af85578eacf6d.js → credentials-list-a1b81c1b630a8415.js} +1 -1
  50. package/dist/dash/standalone/static/assets/chunks/{custom-range-e8977f0d9699c1e6.js → custom-range-79011164d1e2529c.js} +1 -1
  51. package/dist/dash/standalone/static/assets/chunks/{editor-75d6d2d01f4fc35a.js → editor-b86137d54feb4ba1.js} +1 -1
  52. package/dist/dash/standalone/static/assets/chunks/{engines-list-2f6b8b3f2e873e4d.js → engines-list-0cf0dd6427e45add.js} +1 -1
  53. package/dist/dash/standalone/static/assets/chunks/{field-43fea54c1c287e30.js → field-329f272ef3edae30.js} +1 -1
  54. package/dist/dash/standalone/static/assets/chunks/{filter-55618648fc10c377.js → filter-673d0e6dbc95293c.js} +1 -1
  55. package/dist/dash/standalone/static/assets/chunks/{heads-1326669bdce3da2f.js → heads-bdb3900291e3ba2c.js} +1 -1
  56. package/dist/dash/standalone/static/assets/chunks/{instructions-0b968d5d0a58c716.js → instructions-7f289881a4d96d85.js} +1 -1
  57. package/dist/dash/standalone/static/assets/chunks/instructions-c175184f89172c15.js +1 -0
  58. package/dist/dash/standalone/static/assets/chunks/{list-90a47c07c4dd932e.js → list-074a086ab5e19d77.js} +1 -1
  59. package/dist/dash/standalone/static/assets/chunks/{mcp-list-735e401c60ab51a3.js → mcp-list-c97f883efa3f7d03.js} +1 -1
  60. package/dist/dash/standalone/static/assets/chunks/{models-list-999f54c76ca31379.js → models-list-3f869a70740e4244.js} +1 -1
  61. package/dist/dash/standalone/static/assets/chunks/{platform-actions-4592c82f72b21b1a.js → platform-actions-b317343915219089.js} +1 -1
  62. package/dist/dash/standalone/static/assets/chunks/{runners-list-ab64a5fb01d5eef8.js → runners-list-33a7339bd7cb3e18.js} +1 -1
  63. package/dist/dash/standalone/static/assets/chunks/{segmented-bf5a4c06605249e0.js → segmented-c9d58f98a7d32b4d.js} +1 -1
  64. package/dist/dash/standalone/static/assets/chunks/{select-591ca78b6ae29bd8.js → select-f4ea2f12a2298e4a.js} +1 -1
  65. package/dist/dash/standalone/static/assets/chunks/{sentinel-b4c91a38a5d79219.js → sentinel-9e882d8ad784d4bd.js} +1 -1
  66. package/dist/dash/standalone/static/assets/chunks/shared-init-bee5eaed36ee3dc4.js +5 -0
  67. package/dist/dash/standalone/static/assets/chunks/shared-init-cf66e1c1a2f30ef1.js +2 -0
  68. package/dist/dash/standalone/static/assets/chunks/{tail-74153aeac1f0baec.js → tail-5a5f739bca637202.js} +1 -1
  69. package/dist/dash/standalone/static/assets/chunks/{task-actions-26ad7f7c937f2589.js → task-actions-37ed047ca8c5b129.js} +1 -1
  70. package/dist/dash/standalone/static/assets/chunks/{task-view-0d085ce407e8511e.js → task-view-efe402c64d6a3c9b.js} +3 -3
  71. package/dist/dash/standalone/static/assets/chunks/{tasks-list-e9e914cf5dd959e9.js → tasks-list-eae2a32d61b437c5.js} +1 -1
  72. package/dist/dash/standalone/static/assets/chunks/{toolbar-a99d36b4b6f05bb1.js → toolbar-7aee851cfcc688cc.js} +1 -1
  73. package/dist/dash/standalone/static/assets/chunks/{versions-list-875a9a0ebb3f7d08.js → versions-list-836e397952b5d251.js} +1 -1
  74. package/dist/dash/standalone/static/assets/pnext-client-00c2425020b8564c.js +1 -0
  75. package/dist/dash/standalone/static/assets/pnext-client-091090fd50a6c9cd.js +1 -0
  76. package/dist/dash/standalone/static/assets/pnext-client-0b8b6a688cfb5246.js +1 -0
  77. package/dist/dash/standalone/static/assets/pnext-client-0cc2ff4668470e6f.js +1 -0
  78. package/dist/dash/standalone/static/assets/{pnext-client-4ed05f9a51f559a3.js → pnext-client-11f56cbcfd2a3fca.js} +1 -1
  79. package/dist/dash/standalone/static/assets/pnext-client-146cb2e293fd710e.js +1 -0
  80. package/dist/dash/standalone/static/assets/pnext-client-1cdaef1ffee188d4.js +1 -0
  81. package/dist/dash/standalone/static/assets/pnext-client-3298ffa52f79e244.js +1 -0
  82. package/dist/dash/standalone/static/assets/pnext-client-415baafb72caaf21.js +1 -0
  83. package/dist/dash/standalone/static/assets/pnext-client-50de47aa1f3aed6f.js +1 -0
  84. package/dist/dash/standalone/static/assets/{pnext-client-899f9625435988dd.js → pnext-client-802be87d22e144c4.js} +1 -1
  85. package/dist/dash/standalone/static/assets/pnext-client-9ec55ee4d6315657.js +1 -0
  86. package/dist/dash/standalone/static/assets/pnext-client-9fb279f4c6135368.js +1 -0
  87. package/dist/dash/standalone/static/assets/pnext-client-a543b7bfddcdae35.js +1 -0
  88. package/dist/dash/standalone/static/assets/pnext-client-a9f7e73b9a3252b9.js +1 -0
  89. package/dist/dash/standalone/static/assets/pnext-client-e9f4f42456943129.js +1 -0
  90. package/dist/{default-aLeIO8IR.js → default-BfXXngYf.js} +1 -1
  91. package/dist/{default-fMaQH1wm.js → default-zMKQ15xH.js} +1 -1
  92. package/dist/{delete-Cj16PYaw.js → delete-BbsEN7tF.js} +1 -1
  93. package/dist/{delete-DNj3leWA.js → delete-CZuI4sJi.js} +1 -1
  94. package/dist/{disable-CQg5Vybq.js → disable-B860lJDh.js} +1 -1
  95. package/dist/{discover-bVM8EJEz.js → discover-tM_915iZ.js} +1 -1
  96. package/dist/{docs-CqeYenUp.js → docs-BdmVTydv.js} +1 -1
  97. package/dist/{enable-8m3z7i3i.js → enable-DD4OsTnA.js} +1 -1
  98. package/dist/flow/index.d.ts +1 -1
  99. package/dist/{flow-DeCL3x2p.js → flow-DwhBWoSx.js} +1 -1
  100. package/dist/{index-Xe8n_t2Z.d.ts → index-JcLiq1ac.d.ts} +1 -1
  101. package/dist/{init-BujliQ7q.js → init-Bo3RS_va.js} +1 -1
  102. package/dist/integrations-CstFKLTr.js +1 -0
  103. package/dist/{list-QLTjk5SN.js → list-Bu1S3hPM.js} +1 -1
  104. package/dist/{list-CXu4cr8D.js → list-CLVoliXi.js} +1 -1
  105. package/dist/{list-BdiYneg5.js → list-DWeYdLMU.js} +1 -1
  106. package/dist/{list-DbY1jyj3.js → list-DYzczkQZ.js} +2 -2
  107. package/dist/{list-DhVfqr0A.js → list-DaQ14K1K.js} +1 -1
  108. package/dist/{list-DGoVY-ao.js → list-DhJOorrE.js} +1 -1
  109. package/dist/{list-DyqtSWvn.js → list-Motuarjd.js} +1 -1
  110. package/dist/{list-vKOTwd4G.js → list-P1Zi9bhT.js} +1 -1
  111. package/dist/{login-otJB9SYu.js → login-C-VTh_6i.js} +1 -1
  112. package/dist/{login-BzdlmD_o.js → login-KHrM3MI3.js} +1 -1
  113. package/dist/{logout-DOrRoxDV.js → logout-CqUKg0lc.js} +1 -1
  114. package/dist/{maintenance-Bg_FzXSq.js → maintenance-CVfHIraw.js} +1 -1
  115. package/dist/{mcp-xSvAWiXX.js → mcp-DCydEehH.js} +1 -1
  116. package/dist/{migrate-CN-fdMV9.js → migrate-DPprwsbm.js} +1 -1
  117. package/dist/{model-BJ-Sokha.js → model-_e9f9Oth.js} +1 -1
  118. package/dist/{push-Cg7-XT5h.js → push-HLTHyhsP.js} +1 -1
  119. package/dist/{queue-yo-Z8TaE.js → queue-EvplGOuk.js} +2 -2
  120. package/dist/refresh-ZbMy3Y9T.js +1 -0
  121. package/dist/{remove-DgMg_OOu.js → remove-B6PskfkD.js} +1 -1
  122. package/dist/{remove-BuaShRZ3.js → remove-CC7UyWNI.js} +1 -1
  123. package/dist/{remove-C8Rm8KP-.js → remove-CWd4Qs4F.js} +1 -1
  124. package/dist/{remove-CcMma1x3.js → remove-CZmO4BSd.js} +1 -1
  125. package/dist/{rename-C0vNcl8e.js → rename-ODyRelrw.js} +1 -1
  126. package/dist/{result-C6ovl_Dn.js → result-CRIAetqH.js} +1 -1
  127. package/dist/{result-oQey_hdw.js → result-DtXZusqj.js} +1 -1
  128. package/dist/{resume-T_TXWfqE.js → resume-CI-swBxa.js} +1 -1
  129. package/dist/{review-CCs6XUSO.js → review-IRsckIiU.js} +1 -1
  130. package/dist/{rotate-key-CYimsQR5.js → rotate-key-CmvHXXnp.js} +1 -1
  131. package/dist/{run-BFYg-zZt.js → run-Dd9HdNSL.js} +1 -1
  132. package/dist/{run-D7F7JPV6.js → run-FYA9XIij.js} +1 -1
  133. package/dist/{run-hiPyO7js.js → run-IWXjB5OD.js} +1 -1
  134. package/dist/runner-CbDswgji.js +1 -0
  135. package/dist/sdk.d.ts +2 -2
  136. package/dist/sdk.js +1 -1
  137. package/dist/{serve-C-AD60Wa.js → serve-CML2mkKG.js} +1 -1
  138. package/dist/{serve-BgGXjT_O.js → serve-CY46ohfr.js} +1 -1
  139. package/dist/{serve-GIK3fqKA.js → serve-D_XiZzYd.js} +2 -2
  140. package/dist/{serve-K3BVTcDI.js → serve-t38OrDrk.js} +2 -2
  141. package/dist/{server-DQTGc55C.js → server-83YZ2Kkh.js} +1 -1
  142. package/dist/{setup-host-By8-gv_v.js → setup-host-DRuUX8zg.js} +1 -1
  143. package/dist/{shared-TznJgMFW.js → shared-D64pQ0XU.js} +1 -1
  144. package/dist/{show-C9ojrH5W.js → show-DlKWR0Hy.js} +1 -1
  145. package/dist/{show-o4yXzSWZ.js → show-aCUICSoc.js} +1 -1
  146. package/dist/{status-BBW7Qyde.js → status-C09SKASS.js} +1 -1
  147. package/dist/{steer-D47cuggj.js → steer-BGKYpW4T.js} +1 -1
  148. package/dist/{stop-CD2JW6dI.js → stop-CiAJVnU2.js} +1 -1
  149. package/dist/{stop-7brPdki9.js → stop-svJYkhTt.js} +1 -1
  150. package/dist/{store-BCBTo0rl.js → store-B0RLMUR9.js} +1 -1
  151. package/dist/{store-qp7UE2ES.js → store-Cxc2GYyj.js} +2 -2
  152. package/dist/{task-CyrDqqf8.js → task-DvPkqHCF.js} +1 -1
  153. package/dist/{test-BcFQUHRo.js → test-9FHRw5Jc.js} +1 -1
  154. package/dist/{tools-D20XYPnO.js → tools-DhlrB8xV.js} +1 -1
  155. package/dist/{types-DMGBYB_K.d.ts → types-CdIo1Zbm.d.ts} +2 -2
  156. package/dist/{unalias-G3sM8fVw.js → unalias-D6UESHzK.js} +1 -1
  157. package/dist/{update-JvgB6Xws.js → update-DTYOhoQC.js} +1 -1
  158. package/dist/{upgrade-DN3hXDdo.js → upgrade-BOYs5Vyi.js} +2 -2
  159. package/dist/{usage-C1oN2W9c.js → usage-BlT_poNA.js} +1 -1
  160. package/dist/{usage-DR3wWtYD.js → usage-Bw7fQeFC.js} +1 -1
  161. package/dist/{watch-DDmHonTf.js → watch-BlGYjH88.js} +1 -1
  162. package/dist/{watch-DYkC6Q2q.js → watch-Y82ubvGH.js} +1 -1
  163. package/dist/{worker-CaNTsqcD.js → worker-4TKVAB01.js} +1 -1
  164. package/dist/{workflow-7rqzHHWZ.js → workflow-Mi1OCrOI.js} +1 -1
  165. package/package.json +1 -1
  166. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  167. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  168. package/dist/auth-FTKev9__.js +0 -1
  169. package/dist/credentials-DLMuf9OT.js +0 -1
  170. package/dist/dash/standalone/static/assets/chunks/composer-44516934e5619d32.js +0 -1
  171. package/dist/dash/standalone/static/assets/chunks/instructions-f3ecfb5c50f270c2.js +0 -1
  172. package/dist/dash/standalone/static/assets/chunks/shared-init-17c1fd399ac53851.js +0 -5
  173. package/dist/dash/standalone/static/assets/chunks/shared-init-8a34c730aabe942d.js +0 -2
  174. package/dist/dash/standalone/static/assets/pnext-client-1473d0349f242421.js +0 -1
  175. package/dist/dash/standalone/static/assets/pnext-client-195f74ae46e817da.js +0 -1
  176. package/dist/dash/standalone/static/assets/pnext-client-2b5532ce488c9391.js +0 -1
  177. package/dist/dash/standalone/static/assets/pnext-client-2d3ea662f22db27f.js +0 -1
  178. package/dist/dash/standalone/static/assets/pnext-client-43c0166e51dce87f.js +0 -1
  179. package/dist/dash/standalone/static/assets/pnext-client-652affde71fecdf7.js +0 -1
  180. package/dist/dash/standalone/static/assets/pnext-client-82beeebf704714a6.js +0 -1
  181. package/dist/dash/standalone/static/assets/pnext-client-ad1fab64ee1a5b30.js +0 -1
  182. package/dist/dash/standalone/static/assets/pnext-client-b2dccebfff1465f5.js +0 -1
  183. package/dist/dash/standalone/static/assets/pnext-client-c8a42c9bfeded4e4.js +0 -1
  184. package/dist/dash/standalone/static/assets/pnext-client-d04d2ffbb491564c.js +0 -1
  185. package/dist/dash/standalone/static/assets/pnext-client-d060565c4d80b60e.js +0 -1
  186. package/dist/dash/standalone/static/assets/pnext-client-dce6e1b84ee02f09.js +0 -1
  187. package/dist/dash/standalone/static/assets/pnext-client-e753846e298d2403.js +0 -1
  188. package/dist/integrations-6kXL9hRo.js +0 -1
  189. package/dist/refresh-CmBQALAW.js +0 -1
  190. package/dist/runner-D5jaEfhG.js +0 -1
@@ -0,0 +1 @@
1
+ "use client";import{b as a,c as b}from"./instructions-7f289881a4d96d85.js";import"./shared-init-bee5eaed36ee3dc4.js";import"./shared-init-8f2ac936c95a7f7b.js";export{b as Instructions,a as markdown};
@@ -1 +1 @@
1
- import{a as w}from"./confirm-be929e2de15876a6.js";import{a as h}from"./card-818c7a0d580e2e0d.js";import{b}from"./field-43fea54c1c287e30.js";import{g as d}from"./format-b19b8eec331414f4.js";import{$6a as v,$6b as R}from"./shared-init-8a34c730aabe942d.js";import{$3q as g}from"./shared-init-8a34c730aabe942d.js";import{$0a as C}from"./shared-init-17c1fd399ac53851.js";import{$1b as y}from"./shared-init-17c1fd399ac53851.js";import{$2a as o}from"./shared-init-17c1fd399ac53851.js";import{$1g as u,$1k as f}from"./shared-init-8f2ac936c95a7f7b.js";function T(r,s){if(!s||typeof s!="object"||Array.isArray(s))return s;let e=r&&typeof r=="object"&&!Array.isArray(r)?{...r}:{};for(let[n,t]of Object.entries(s))t===null?delete e[n]:e[n]=T(e[n],t);return e}function q(r){let[s,e]=u(r),[n,t]=u(""),i=f(0),a=f(r);return{value:s,error:n,patch:l=>{let p=++i.current;return t(""),e(m=>T(m,l)),y.config.patch(l).then(m=>(a.current=m,p===i.current&&e(m),!0),m=>(p===i.current&&(e(a.current),t(d(m))),!1))}}}var B=["low","medium","high"],N=["read-only","workspace-write","auto"];function z(r){let[s,e]=u(r),[n,t]=u("");return{value:s,setValue:e,error:n,setError:t,send:async(a,c)=>{t("");try{let l=await a();return c&&e(c(l)),!0}catch(l){return t(d(l)),!1}}}}function G({fields:r,onAdd:s}){return o("form",{class:"add-row",method:"post",onSubmit:async e=>{e.preventDefault();let n=e.currentTarget,t=Object.fromEntries([...new FormData(n)].map(([i,a])=>[i,String(a).trim()]));Object.values(t).some(i=>!i)||await s(t)&&n.reset()},children:[r.map(([e,n])=>o("input",{name:e,placeholder:n,"aria-label":n,autocomplete:"off"},e)),o("button",{class:"btn",children:"Add"})]})}function A(r){let[s,e]=u(!1),[n,t]=u(!1);if(!r)return{};let{title:i,body:a,label:c="Remove",onRemove:l}=r;return{item:o(R,{title:c,danger:!0,onClick:()=>e(!0)}),dialog:s?o(w,{open:!0,title:i,body:a,confirmLabel:c,busy:n,onClose:()=>e(!1),onConfirm:()=>{t(!0),l().finally(()=>{t(!1),e(!1)})}}):null}}function H({title:r,badges:s,sub:e,actions:n,menu:t,remove:i}){let a=A(i);return o("tr",{children:[o("td",{children:[o("span",{class:"row-title",children:[o("b",{children:r}),s]}),e?o("span",{class:"sub mono",children:e}):null]}),o("td",{class:"acts",children:[n,t||a.item?o(v,{summaryClass:"icon-btn",label:"Actions",summary:o(C,{d:g}),children:[t,a.item]}):null,a.dialog]})]})}function J({title:r,count:s,error:e,children:n,add:t}){return o(h,{title:r,count:s,actions:o(b,{value:e}),children:[o("div",{class:"table-scroll",children:o("table",{class:"rows settings",children:o("tbody",{children:n})})}),t]})}export{q as a,B as b,N as c,z as d,G as e,A as f,H as g,J as h};
1
+ import{a as w}from"./confirm-d804955ec454f00f.js";import{a as h}from"./card-abb16544e8e5a5e0.js";import{b}from"./field-329f272ef3edae30.js";import{g as d}from"./format-b19b8eec331414f4.js";import{$0a as v,$0b as R}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4q as g}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as C}from"./shared-init-bee5eaed36ee3dc4.js";import{$1b as y}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as o}from"./shared-init-bee5eaed36ee3dc4.js";import{$1g as u,$1k as f}from"./shared-init-8f2ac936c95a7f7b.js";function T(r,s){if(!s||typeof s!="object"||Array.isArray(s))return s;let e=r&&typeof r=="object"&&!Array.isArray(r)?{...r}:{};for(let[n,t]of Object.entries(s))t===null?delete e[n]:e[n]=T(e[n],t);return e}function q(r){let[s,e]=u(r),[n,t]=u(""),i=f(0),a=f(r);return{value:s,error:n,patch:l=>{let p=++i.current;return t(""),e(m=>T(m,l)),y.config.patch(l).then(m=>(a.current=m,p===i.current&&e(m),!0),m=>(p===i.current&&(e(a.current),t(d(m))),!1))}}}var B=["low","medium","high"],N=["read-only","workspace-write","auto"];function z(r){let[s,e]=u(r),[n,t]=u("");return{value:s,setValue:e,error:n,setError:t,send:async(a,c)=>{t("");try{let l=await a();return c&&e(c(l)),!0}catch(l){return t(d(l)),!1}}}}function G({fields:r,onAdd:s}){return o("form",{class:"add-row",method:"post",onSubmit:async e=>{e.preventDefault();let n=e.currentTarget,t=Object.fromEntries([...new FormData(n)].map(([i,a])=>[i,String(a).trim()]));Object.values(t).some(i=>!i)||await s(t)&&n.reset()},children:[r.map(([e,n])=>o("input",{name:e,placeholder:n,"aria-label":n,autocomplete:"off"},e)),o("button",{class:"btn",children:"Add"})]})}function A(r){let[s,e]=u(!1),[n,t]=u(!1);if(!r)return{};let{title:i,body:a,label:c="Remove",onRemove:l}=r;return{item:o(R,{title:c,danger:!0,onClick:()=>e(!0)}),dialog:s?o(w,{open:!0,title:i,body:a,confirmLabel:c,busy:n,onClose:()=>e(!1),onConfirm:()=>{t(!0),l().finally(()=>{t(!1),e(!1)})}}):null}}function H({title:r,badges:s,sub:e,actions:n,menu:t,remove:i}){let a=A(i);return o("tr",{children:[o("td",{children:[o("span",{class:"row-title",children:[o("b",{children:r}),s]}),e?o("span",{class:"sub mono",children:e}):null]}),o("td",{class:"acts",children:[n,t||a.item?o(v,{summaryClass:"icon-btn",label:"Actions",summary:o(C,{d:g}),children:[t,a.item]}):null,a.dialog]})]})}function J({title:r,count:s,error:e,children:n,add:t}){return o(h,{title:r,count:s,actions:o(b,{value:e}),children:[o("div",{class:"table-scroll",children:o("table",{class:"rows settings",children:o("tbody",{children:n})})}),t]})}export{q as a,B as b,N as c,z as d,G as e,A as f,H as g,J as h};
@@ -1 +1 @@
1
- "use client";import{d as B,g as H,h as _}from"./list-90a47c07c4dd932e.js";import"./confirm-be929e2de15876a6.js";import{c as O}from"./toolbar-a99d36b4b6f05bb1.js";import{a as q}from"./paged-3ddb6077bef42752.js";import{a as F}from"./badge-9984d2fd0e7f995d.js";import{a as j}from"./card-818c7a0d580e2e0d.js";import{a as v,b as x}from"./field-43fea54c1c287e30.js";import{g as P}from"./format-b19b8eec331414f4.js";import"./sentinel-b4c91a38a5d79219.js";import"./shared-init-8a34c730aabe942d.js";import"./shared-init-8a34c730aabe942d.js";import"./shared-init-17c1fd399ac53851.js";import{$1b as k}from"./shared-init-17c1fd399ac53851.js";import{$2a as e}from"./shared-init-17c1fd399ac53851.js";import{$1c as y,$1g as h,$1k as M}from"./shared-init-8f2ac936c95a7f7b.js";var J=r=>r.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),K=r=>(r.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(i=>i.replace(/^(["'])(.*)\1$/,"$2")),Y=["docs","search","browser","files"],ee=r=>r.type??(r.url?"http":"stdio"),z=r=>r.url??[r.command,...(r.args??[]).map(i=>i.replace(/\{((?:runtime|package):[^}]+)\}/g,(n,d)=>`{${r.argumentInputs?.find(o=>o.name===d)?.label??d}}`))].join(" ").trim();function w({kind:r,list:i}){return e(y,{children:i.map(n=>e(v,{label:e("span",{class:"mono",children:n.label??n.name}),hint:n.description??(n.required?"required":"optional"),children:e("input",{name:`${r}:${n.name}`,type:n.secret?"password":"text",placeholder:n.placeholder,defaultValue:r==="arg"?n.placeholder:void 0,autocomplete:"off",required:n.required})},n.name))})}function te({onAdd:r,error:i,taken:n}){let[d,o]=h(""),[s,m]=h(),[a,R]=h(),[N,S]=h(!1),T=M(),b=M(null),C=t=>{m({q:t}),k.mcp.search(t.trim()).then(q(performance.now())).then(l=>m(c=>c?.q===t?{q:t,items:l}:c)).catch(l=>m(c=>c?.q===t?{q:t,error:P(l)}:c))},D=t=>{if(o(t),clearTimeout(T.current),!t.trim())return m(void 0);T.current=setTimeout(()=>C(t),250)},U=t=>{R(t),m(void 0),o("");let l=b.current.elements;l.namedItem("name").value=J(t.title),l.namedItem("target").value=z(t),requestAnimationFrame(()=>{let c=b.current;(c?.querySelector("input[name^='arg:'], input[name^='env:'], input[name^='header:']")??c?.querySelector("button"))?.focus()})};return e(j,{title:"Add an MCP server",actions:e(x,{value:i}),children:[e("div",{class:"registry",children:[e(O,{value:d,label:"Search the MCP registry",onInput:D}),s?e("div",{class:"registry-results scroll-box","aria-live":"polite","aria-busy":!s.items&&!s.error,children:s.error?e("div",{class:"registry-note err",role:"alert",children:[e("span",{class:"grow",children:s.error}),e("button",{type:"button",class:"btn ghost sm",onClick:()=>C(s.q),children:"Retry"})]}):s.items?s.items.length?s.items.map(t=>e("button",{type:"button",class:"pop-item rich",onClick:()=>U(t),children:e("span",{class:"grow",children:[e("b",{children:t.title})," ",e(F,{children:t.type}),e("small",{children:t.description||t.name})]})},t.name)):e("p",{class:"registry-note",children:"No server in the registry matches. Type its command or URL below."}):e("div",{role:"status","aria-label":"Searching the registry",children:[0,1,2].map(t=>e("div",{class:"skel",children:[e("i",{}),e("i",{})]},t))})}):null]}),e("form",{ref:b,class:"add-form",method:"post",onSubmit:async t=>{t.preventDefault();let l=[...new FormData(t.currentTarget)].map(([p,u])=>[p,String(u).trim()]),c=p=>l.find(([u])=>u===p)?.[1]??"",E=p=>Object.fromEntries(l.filter(([u,f])=>u.startsWith(p)&&f).map(([u,f])=>[u.slice(p.length),f])),I=c("name"),g=c("target");if(!I||!g)return;let W=a?.command?z(a):void 0,Z=a&&g===W?[a.command,...a.args??[]]:K(g),[Q,...L]=Z.map(p=>p.replace(/\{((?:runtime|package):[^}]+)\}/g,(u,f)=>c(`arg:${f}`))),A=E("env:"),$=E("header:"),V=/^https?:\/\//.test(g)?{url:g,...a?.url===g?{type:a.type}:{},...Object.keys($).length?{headers:$}:{}}:{command:Q,...L.length?{args:L}:{},...Object.keys(A).length?{env:A}:{}};S(!0);let X=await r({name:I,...V,...a?.description?{description:a.description}:{}});S(!1),X&&(b.current?.reset(),R(void 0))},children:e("div",{class:"add-grid",children:[e(v,{label:"Name",children:e("input",{name:"name",placeholder:Y.find(t=>!n.includes(t)),autocomplete:"off",pattern:"[A-Za-z0-9][A-Za-z0-9_\\-]*"})}),e(v,{label:"Command or URL",hint:a?a.description:void 0,children:e("input",{name:"target",class:"mono",placeholder:"npx -y @acme/mcp or https://mcp.acme.dev",autocomplete:"off"})}),e(w,{kind:"arg",list:a?.argumentInputs??[]}),e(w,{kind:"env",list:a?.env??[]}),e(w,{kind:"header",list:a?.headers??[]}),e("button",{class:"btn",disabled:N,children:"Add"})]})})]})}function ge({first:r}){let i=B(r),n=o=>o.mcp??{},d=Object.entries(i.value);return e(y,{children:[e(te,{error:i.error,taken:d.map(([o])=>o),onAdd:o=>i.send(()=>k.mcp.add(o),n)}),e(_,{title:"MCP servers",count:d.length,error:"",children:d.map(([o,s])=>{let m=s.url??[s.command,...s.args??[]].join(" ");return e(H,{title:o,badges:e(F,{children:ee(s)}),sub:s.description?e(y,{children:[e("span",{class:"plain",children:s.description}),e("br",{}),m]}):m,remove:{title:`Remove ${o}?`,body:"New tasks no longer attach it.",onRemove:()=>i.send(()=>k.mcp.remove(o),n)}},o)})})]})}export{ge as McpList};
1
+ "use client";import{d as B,g as H,h as _}from"./list-074a086ab5e19d77.js";import"./confirm-d804955ec454f00f.js";import{c as O}from"./toolbar-7aee851cfcc688cc.js";import{a as q}from"./paged-3ddb6077bef42752.js";import{a as F}from"./badge-b8e1e1429e8418e8.js";import{a as j}from"./card-abb16544e8e5a5e0.js";import{a as v,b as x}from"./field-329f272ef3edae30.js";import{g as P}from"./format-b19b8eec331414f4.js";import"./sentinel-9e882d8ad784d4bd.js";import"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-bee5eaed36ee3dc4.js";import{$1b as k}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as e}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as y,$1g as h,$1k as M}from"./shared-init-8f2ac936c95a7f7b.js";var J=r=>r.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),K=r=>(r.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(i=>i.replace(/^(["'])(.*)\1$/,"$2")),Y=["docs","search","browser","files"],ee=r=>r.type??(r.url?"http":"stdio"),z=r=>r.url??[r.command,...(r.args??[]).map(i=>i.replace(/\{((?:runtime|package):[^}]+)\}/g,(n,d)=>`{${r.argumentInputs?.find(o=>o.name===d)?.label??d}}`))].join(" ").trim();function w({kind:r,list:i}){return e(y,{children:i.map(n=>e(v,{label:e("span",{class:"mono",children:n.label??n.name}),hint:n.description??(n.required?"required":"optional"),children:e("input",{name:`${r}:${n.name}`,type:n.secret?"password":"text",placeholder:n.placeholder,defaultValue:r==="arg"?n.placeholder:void 0,autocomplete:"off",required:n.required})},n.name))})}function te({onAdd:r,error:i,taken:n}){let[d,o]=h(""),[s,m]=h(),[a,R]=h(),[N,S]=h(!1),T=M(),b=M(null),C=t=>{m({q:t}),k.mcp.search(t.trim()).then(q(performance.now())).then(l=>m(c=>c?.q===t?{q:t,items:l}:c)).catch(l=>m(c=>c?.q===t?{q:t,error:P(l)}:c))},D=t=>{if(o(t),clearTimeout(T.current),!t.trim())return m(void 0);T.current=setTimeout(()=>C(t),250)},U=t=>{R(t),m(void 0),o("");let l=b.current.elements;l.namedItem("name").value=J(t.title),l.namedItem("target").value=z(t),requestAnimationFrame(()=>{let c=b.current;(c?.querySelector("input[name^='arg:'], input[name^='env:'], input[name^='header:']")??c?.querySelector("button"))?.focus()})};return e(j,{title:"Add an MCP server",actions:e(x,{value:i}),children:[e("div",{class:"registry",children:[e(O,{value:d,label:"Search the MCP registry",onInput:D}),s?e("div",{class:"registry-results scroll-box","aria-live":"polite","aria-busy":!s.items&&!s.error,children:s.error?e("div",{class:"registry-note err",role:"alert",children:[e("span",{class:"grow",children:s.error}),e("button",{type:"button",class:"btn ghost sm",onClick:()=>C(s.q),children:"Retry"})]}):s.items?s.items.length?s.items.map(t=>e("button",{type:"button",class:"pop-item rich",onClick:()=>U(t),children:e("span",{class:"grow",children:[e("b",{children:t.title})," ",e(F,{children:t.type}),e("small",{children:t.description||t.name})]})},t.name)):e("p",{class:"registry-note",children:"No server in the registry matches. Type its command or URL below."}):e("div",{role:"status","aria-label":"Searching the registry",children:[0,1,2].map(t=>e("div",{class:"skel",children:[e("i",{}),e("i",{})]},t))})}):null]}),e("form",{ref:b,class:"add-form",method:"post",onSubmit:async t=>{t.preventDefault();let l=[...new FormData(t.currentTarget)].map(([p,u])=>[p,String(u).trim()]),c=p=>l.find(([u])=>u===p)?.[1]??"",E=p=>Object.fromEntries(l.filter(([u,f])=>u.startsWith(p)&&f).map(([u,f])=>[u.slice(p.length),f])),I=c("name"),g=c("target");if(!I||!g)return;let W=a?.command?z(a):void 0,Z=a&&g===W?[a.command,...a.args??[]]:K(g),[Q,...L]=Z.map(p=>p.replace(/\{((?:runtime|package):[^}]+)\}/g,(u,f)=>c(`arg:${f}`))),A=E("env:"),$=E("header:"),V=/^https?:\/\//.test(g)?{url:g,...a?.url===g?{type:a.type}:{},...Object.keys($).length?{headers:$}:{}}:{command:Q,...L.length?{args:L}:{},...Object.keys(A).length?{env:A}:{}};S(!0);let X=await r({name:I,...V,...a?.description?{description:a.description}:{}});S(!1),X&&(b.current?.reset(),R(void 0))},children:e("div",{class:"add-grid",children:[e(v,{label:"Name",children:e("input",{name:"name",placeholder:Y.find(t=>!n.includes(t)),autocomplete:"off",pattern:"[A-Za-z0-9][A-Za-z0-9_\\-]*"})}),e(v,{label:"Command or URL",hint:a?a.description:void 0,children:e("input",{name:"target",class:"mono",placeholder:"npx -y @acme/mcp or https://mcp.acme.dev",autocomplete:"off"})}),e(w,{kind:"arg",list:a?.argumentInputs??[]}),e(w,{kind:"env",list:a?.env??[]}),e(w,{kind:"header",list:a?.headers??[]}),e("button",{class:"btn",disabled:N,children:"Add"})]})})]})}function ge({first:r}){let i=B(r),n=o=>o.mcp??{},d=Object.entries(i.value);return e(y,{children:[e(te,{error:i.error,taken:d.map(([o])=>o),onAdd:o=>i.send(()=>k.mcp.add(o),n)}),e(_,{title:"MCP servers",count:d.length,error:"",children:d.map(([o,s])=>{let m=s.url??[s.command,...s.args??[]].join(" ");return e(H,{title:o,badges:e(F,{children:ee(s)}),sub:s.description?e(y,{children:[e("span",{class:"plain",children:s.description}),e("br",{}),m]}):m,remove:{title:`Remove ${o}?`,body:"New tasks no longer attach it.",onRemove:()=>i.send(()=>k.mcp.remove(o),n)}},o)})})]})}export{ge as McpList};
@@ -1 +1 @@
1
- "use client";import{a as X}from"./combo-0d55fb62af761ac5.js";import{a as Y,d as Z,g as J,h as W}from"./list-90a47c07c4dd932e.js";import"./confirm-be929e2de15876a6.js";import{a as B}from"./badge-9984d2fd0e7f995d.js";import{b as $,c as _,e as G,j as V}from"./model-options-15c53331a2f28a4f.js";import{a as F}from"./select-591ca78b6ae29bd8.js";import{a as H,c as q}from"./card-818c7a0d580e2e0d.js";import{a as p,b as x}from"./field-43fea54c1c287e30.js";import{g as z}from"./format-b19b8eec331414f4.js";import{$6b as D}from"./shared-init-8a34c730aabe942d.js";import"./shared-init-8a34c730aabe942d.js";import"./shared-init-17c1fd399ac53851.js";import{$1b as P}from"./shared-init-17c1fd399ac53851.js";import{$2a as e}from"./shared-init-17c1fd399ac53851.js";import{$1c as M,$1g as c,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var ne=[["custom","Custom endpoint"],["claude","Claude"],["codex","Codex"]],le={claude:"sonnet",codex:"sol"},se=[["low","Low"],["medium","Medium"],["high","High"]],re=[["personal","Just me"],["workspace","Workspace"]],L=V,Q={id:"other",name:"Other",baseUrl:"",envKey:"",needsKey:!0},ee=v=>v.split("/").pop().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),ae=(v,m)=>v.find(C=>!(C in m));function ie({builtin:v,credentials:m,admin:C,taken:T,efforts:d,error:a,onAdd:y}){let[f,E]=c("custom"),i=f==="custom"?"custom":"alias",k=e(p,{label:"Engine",group:!0,children:e(F,{label:"Engine",options:ne,value:f,onChange:E})}),[b,U]=c(""),[o,t]=c(!1),[s,n]=c(0),h=v[f]??{},w=h[le[f]]??Object.values(h)[0];return e(H,{title:"Add a model",actions:e(x,{value:a}),children:e("form",{class:"add-form",method:"post",onSubmit:async A=>{A.preventDefault();let g=A.currentTarget,r=Object.fromEntries([...new FormData(g)].map(([R,S])=>[R,String(S).trim()]));if(i==="custom"&&!r.name&&(r.name=ee(r.model??"")),!r.name||!r.model||i==="custom"&&!r.baseUrl)return;t(!0);let I=i==="alias"?await y(()=>P.models.alias(r.name,[f,r.model,b].filter(Boolean).join(":"))):await y(async()=>{let R=r.envKey||"OPENAI_API_KEY";return r.key&&await P.credentials.add({env:{[R]:r.key},engine:"custom",label:L.find(S=>S.id===r.provider)?.name,workspace:r.scope==="workspace"}),P.models.add({name:r.name,baseUrl:r.baseUrl,model:r.model,envKey:R})});t(!1),I&&(g.reset(),n(s+1))},children:i==="alias"?e("div",{class:"add-grid",children:[k,e(p,{label:"Name",children:e("input",{name:"name",placeholder:ae(["fast","deep","quick"],T),autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})}),e(p,{label:"Model id",children:e("input",{name:"model",placeholder:w??"model id",autocomplete:"off"})}),e(p,{label:"Effort",hint:"optional",group:!0,children:e(F,{label:"Effort",options:[["",G(d[f])],...se],value:b,onChange:U})}),e("button",{class:"btn",disabled:o,children:"Add"})]}):e(de,{engine:k,credentials:m,admin:C,taken:T,busy:o},s)})})}function de({engine:v,credentials:m,admin:C,taken:T,busy:d}){let[a,y]=c(L[0]??Q),[f,E]=c(a.baseUrl),[i,k]=c(a.envKey),[b,U]=c(""),[o,t]=c("personal"),[s,n]=c(null),h=j(0),[w,A]=c(""),g=l=>!!l&&!!m?.some(u=>u.env.includes(l)),[r,I]=c(!1),R=j(),S=(l,u,O)=>{let te=++h.current;if(!l.trim())return n(null);I(!0),P.models.probe({baseUrl:l.trim(),...u.trim()?{envKey:u.trim()}:{},...O.trim()?{key:O.trim()}:{}}).catch(K=>({reachable:!1,modelListed:null,models:null,detail:z(K)})).then(K=>{te===h.current&&(I(!1),n(K.models?{...K,models:[...K.models].sort()}:K))})},N=(l,u,O)=>{clearTimeout(R.current),R.current=setTimeout(()=>S(l,u,O),250)},oe=s?s.reachable?s.models?`${s.models.length} listed`:"reachable, no model list":/HTTP 40[13]/.test(s.detail)?"key rejected":s.detail:void 0;return e(M,{children:[e("div",{class:"add-grid",children:[v,e(p,{label:"Provider",group:!0,children:e(F,{label:"Provider",name:"provider",options:L.map(l=>[l.id,l.name]),value:a.id,onChange:l=>{let u=L.find(O=>O.id===l)??Q;y(u),E(u.baseUrl),k(u.envKey),n(null),(b.trim()||g(u.envKey)||!u.needsKey)&&S(u.baseUrl,u.envKey,b)}})}),e(p,{label:"Model name",hint:"optional",children:e("input",{name:"name",placeholder:ee(w)||"short name like kimi",autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})})]}),e("div",{class:"add-grid",children:[a.needsKey&&m?e(p,{label:"API key",hint:e(M,{children:[g(i)?`optional, your saved ${i}`:`saved as ${i}`,a.keyUrl?e(M,{children:[", ",e("a",{class:"link",href:a.keyUrl,target:"_blank",rel:"noopener noreferrer",children:"get a key"})]}):null]}),children:e("input",{name:"key",type:"password",autocomplete:"off",placeholder:g(i)?"Optional":`${a.name} API key`,value:b,onInput:l=>{U(l.currentTarget.value),N(f,i,l.currentTarget.value)}})}):null,e(p,{label:"Model id",group:!0,hint:r?e(q,{label:"Fetching models",inline:!0,dots:!0}):oe,children:e(X,{label:"Model id",onOpen:()=>{!s&&!r&&S(f,i,b)},name:"model",options:s?.models??[],placeholder:s?.models?.[0]??"qwen3-coder",value:w,onChange:A})}),a.needsKey&&m&&C?e(p,{label:"Scope",group:!0,children:e(F,{label:"Scope",name:"scope",options:re,value:o,onChange:t})}):null]}),e("div",{class:"add-foot",children:[e("details",{class:"add-more",open:a.id==="other"||void 0,children:[e("summary",{children:"Advanced"}),e("div",{class:"add-grid",children:[e(p,{label:"Base URL",children:e("input",{name:"baseUrl",type:"url",placeholder:"http://localhost:11434/v1",autocomplete:"off",value:f,onInput:l=>{E(l.currentTarget.value),N(l.currentTarget.value,i,b)}})}),e(p,{label:"Key variable",children:e("input",{name:"envKey",class:"mono",placeholder:"OPENAI_API_KEY",autocomplete:"off",pattern:"[A-Za-z_][A-Za-z0-9_]*",value:i,onInput:l=>k(l.currentTarget.value)})})]})]}),e("button",{class:"btn",disabled:d,children:"Add model"})]})]})}function Ee({first:v,config:m,credentials:C,admin:T}){let d=Z(v),a=Y(m.config),y=o=>({...d.value,models:o.models??{}}),f=o=>a.value.engines?.[o]?.model??m.effective.engines?.[o]?.model,E=o=>d.value.models[o]?.disabled===!0,i=a.value.chain??m.effective.chain??$,k=Object.entries(d.value.models).filter(([,o])=>o.provider||o.baseUrl),b=[...Object.entries(d.value.builtin).flatMap(([o,t])=>Object.entries(t).filter(([s])=>!k.some(([n])=>n===s)).map(([s,n])=>({name:s,engine:o,target:n,entry:d.value.models[s],removable:!1}))),...k.map(([o,t])=>({name:o,engine:t.provider??"custom",target:t.baseUrl?`${t.model} \xB7 ${t.baseUrl}`:`${t.model}${t.effort?` \xB7 ${t.effort}`:""}`,entry:t,removable:!0}))],U=[...new Set([...i,...$])].map(o=>[o,b.filter(t=>t.engine===o)]).filter(([,o])=>o.length);return e(M,{children:[e(ie,{builtin:d.value.builtin,credentials:C,admin:T,taken:{...d.value.models,...Object.assign({},...Object.values(d.value.builtin))},efforts:Object.fromEntries($.map(o=>[o,a.value.engines?.[o]?.effort??m.effective.engines?.[o]?.effort])),error:d.error,onAdd:o=>d.send(o,y)}),U.map(([o,t],s)=>e(W,{title:_[o]??o,count:t.length,error:s?"":a.error,children:t.map(({name:n,target:h,entry:w,removable:A})=>{let g=[n,h].includes(f(o)??"");return e(J,{title:n,badges:e(M,{children:[g&&i[0]===o?e(B,{tone:"acc",children:"default for new tasks"}):null,g&&i[0]!==o?e(B,{children:["default for ",_[o]??o]}):null,w?.disabled?e(B,{children:"off"}):null]}),sub:h===n?void 0:`\u2192 ${h}`,actions:g||w?.disabled?null:e("button",{type:"button",class:"btn ghost sm",onClick:()=>void a.patch({engines:{[o]:{model:n}}}),children:"Make default"}),menu:e(D,{title:E(n)?"Enable":"Disable",onClick:()=>void d.send(()=>P.models[E(n)?"enable":"disable"](n),y)}),remove:A?{title:`Remove ${n}?`,body:"Tasks that ask for it stop running.",onRemove:()=>d.send(()=>P.models.remove(n),y)}:void 0},n)})},o))]})}export{Ee as ModelsList};
1
+ "use client";import{a as X}from"./combo-0feaff3c2ab55606.js";import{a as Y,d as Z,g as J,h as W}from"./list-074a086ab5e19d77.js";import"./confirm-d804955ec454f00f.js";import{a as B}from"./badge-b8e1e1429e8418e8.js";import{b as $,c as _,e as G,j as V}from"./model-options-15c53331a2f28a4f.js";import{a as F}from"./select-f4ea2f12a2298e4a.js";import{a as H,c as q}from"./card-abb16544e8e5a5e0.js";import{a as p,b as x}from"./field-329f272ef3edae30.js";import{g as z}from"./format-b19b8eec331414f4.js";import{$0b as D}from"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-bee5eaed36ee3dc4.js";import{$1b as P}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as e}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as M,$1g as c,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var ne=[["custom","Custom endpoint"],["claude","Claude"],["codex","Codex"]],le={claude:"sonnet",codex:"sol"},se=[["low","Low"],["medium","Medium"],["high","High"]],re=[["personal","Just me"],["workspace","Workspace"]],L=V,Q={id:"other",name:"Other",baseUrl:"",envKey:"",needsKey:!0},ee=v=>v.split("/").pop().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),ae=(v,m)=>v.find(C=>!(C in m));function ie({builtin:v,credentials:m,admin:C,taken:T,efforts:d,error:a,onAdd:y}){let[f,E]=c("custom"),i=f==="custom"?"custom":"alias",k=e(p,{label:"Engine",group:!0,children:e(F,{label:"Engine",options:ne,value:f,onChange:E})}),[b,U]=c(""),[o,t]=c(!1),[s,n]=c(0),h=v[f]??{},w=h[le[f]]??Object.values(h)[0];return e(H,{title:"Add a model",actions:e(x,{value:a}),children:e("form",{class:"add-form",method:"post",onSubmit:async A=>{A.preventDefault();let g=A.currentTarget,r=Object.fromEntries([...new FormData(g)].map(([R,S])=>[R,String(S).trim()]));if(i==="custom"&&!r.name&&(r.name=ee(r.model??"")),!r.name||!r.model||i==="custom"&&!r.baseUrl)return;t(!0);let I=i==="alias"?await y(()=>P.models.alias(r.name,[f,r.model,b].filter(Boolean).join(":"))):await y(async()=>{let R=r.envKey||"OPENAI_API_KEY";return r.key&&await P.credentials.add({env:{[R]:r.key},engine:"custom",label:L.find(S=>S.id===r.provider)?.name,workspace:r.scope==="workspace"}),P.models.add({name:r.name,baseUrl:r.baseUrl,model:r.model,envKey:R})});t(!1),I&&(g.reset(),n(s+1))},children:i==="alias"?e("div",{class:"add-grid",children:[k,e(p,{label:"Name",children:e("input",{name:"name",placeholder:ae(["fast","deep","quick"],T),autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})}),e(p,{label:"Model id",children:e("input",{name:"model",placeholder:w??"model id",autocomplete:"off"})}),e(p,{label:"Effort",hint:"optional",group:!0,children:e(F,{label:"Effort",options:[["",G(d[f])],...se],value:b,onChange:U})}),e("button",{class:"btn",disabled:o,children:"Add"})]}):e(de,{engine:k,credentials:m,admin:C,taken:T,busy:o},s)})})}function de({engine:v,credentials:m,admin:C,taken:T,busy:d}){let[a,y]=c(L[0]??Q),[f,E]=c(a.baseUrl),[i,k]=c(a.envKey),[b,U]=c(""),[o,t]=c("personal"),[s,n]=c(null),h=j(0),[w,A]=c(""),g=l=>!!l&&!!m?.some(u=>u.env.includes(l)),[r,I]=c(!1),R=j(),S=(l,u,O)=>{let te=++h.current;if(!l.trim())return n(null);I(!0),P.models.probe({baseUrl:l.trim(),...u.trim()?{envKey:u.trim()}:{},...O.trim()?{key:O.trim()}:{}}).catch(K=>({reachable:!1,modelListed:null,models:null,detail:z(K)})).then(K=>{te===h.current&&(I(!1),n(K.models?{...K,models:[...K.models].sort()}:K))})},N=(l,u,O)=>{clearTimeout(R.current),R.current=setTimeout(()=>S(l,u,O),250)},oe=s?s.reachable?s.models?`${s.models.length} listed`:"reachable, no model list":/HTTP 40[13]/.test(s.detail)?"key rejected":s.detail:void 0;return e(M,{children:[e("div",{class:"add-grid",children:[v,e(p,{label:"Provider",group:!0,children:e(F,{label:"Provider",name:"provider",options:L.map(l=>[l.id,l.name]),value:a.id,onChange:l=>{let u=L.find(O=>O.id===l)??Q;y(u),E(u.baseUrl),k(u.envKey),n(null),(b.trim()||g(u.envKey)||!u.needsKey)&&S(u.baseUrl,u.envKey,b)}})}),e(p,{label:"Model name",hint:"optional",children:e("input",{name:"name",placeholder:ee(w)||"short name like kimi",autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})})]}),e("div",{class:"add-grid",children:[a.needsKey&&m?e(p,{label:"API key",hint:e(M,{children:[g(i)?`optional, your saved ${i}`:`saved as ${i}`,a.keyUrl?e(M,{children:[", ",e("a",{class:"link",href:a.keyUrl,target:"_blank",rel:"noopener noreferrer",children:"get a key"})]}):null]}),children:e("input",{name:"key",type:"password",autocomplete:"off",placeholder:g(i)?"Optional":`${a.name} API key`,value:b,onInput:l=>{U(l.currentTarget.value),N(f,i,l.currentTarget.value)}})}):null,e(p,{label:"Model id",group:!0,hint:r?e(q,{label:"Fetching models",inline:!0,dots:!0}):oe,children:e(X,{label:"Model id",onOpen:()=>{!s&&!r&&S(f,i,b)},name:"model",options:s?.models??[],placeholder:s?.models?.[0]??"qwen3-coder",value:w,onChange:A})}),a.needsKey&&m&&C?e(p,{label:"Scope",group:!0,children:e(F,{label:"Scope",name:"scope",options:re,value:o,onChange:t})}):null]}),e("div",{class:"add-foot",children:[e("details",{class:"add-more",open:a.id==="other"||void 0,children:[e("summary",{children:"Advanced"}),e("div",{class:"add-grid",children:[e(p,{label:"Base URL",children:e("input",{name:"baseUrl",type:"url",placeholder:"http://localhost:11434/v1",autocomplete:"off",value:f,onInput:l=>{E(l.currentTarget.value),N(l.currentTarget.value,i,b)}})}),e(p,{label:"Key variable",children:e("input",{name:"envKey",class:"mono",placeholder:"OPENAI_API_KEY",autocomplete:"off",pattern:"[A-Za-z_][A-Za-z0-9_]*",value:i,onInput:l=>k(l.currentTarget.value)})})]})]}),e("button",{class:"btn",disabled:d,children:"Add model"})]})]})}function Ee({first:v,config:m,credentials:C,admin:T}){let d=Z(v),a=Y(m.config),y=o=>({...d.value,models:o.models??{}}),f=o=>a.value.engines?.[o]?.model??m.effective.engines?.[o]?.model,E=o=>d.value.models[o]?.disabled===!0,i=a.value.chain??m.effective.chain??$,k=Object.entries(d.value.models).filter(([,o])=>o.provider||o.baseUrl),b=[...Object.entries(d.value.builtin).flatMap(([o,t])=>Object.entries(t).filter(([s])=>!k.some(([n])=>n===s)).map(([s,n])=>({name:s,engine:o,target:n,entry:d.value.models[s],removable:!1}))),...k.map(([o,t])=>({name:o,engine:t.provider??"custom",target:t.baseUrl?`${t.model} \xB7 ${t.baseUrl}`:`${t.model}${t.effort?` \xB7 ${t.effort}`:""}`,entry:t,removable:!0}))],U=[...new Set([...i,...$])].map(o=>[o,b.filter(t=>t.engine===o)]).filter(([,o])=>o.length);return e(M,{children:[e(ie,{builtin:d.value.builtin,credentials:C,admin:T,taken:{...d.value.models,...Object.assign({},...Object.values(d.value.builtin))},efforts:Object.fromEntries($.map(o=>[o,a.value.engines?.[o]?.effort??m.effective.engines?.[o]?.effort])),error:d.error,onAdd:o=>d.send(o,y)}),U.map(([o,t],s)=>e(W,{title:_[o]??o,count:t.length,error:s?"":a.error,children:t.map(({name:n,target:h,entry:w,removable:A})=>{let g=[n,h].includes(f(o)??"");return e(J,{title:n,badges:e(M,{children:[g&&i[0]===o?e(B,{tone:"acc",children:"default for new tasks"}):null,g&&i[0]!==o?e(B,{children:["default for ",_[o]??o]}):null,w?.disabled?e(B,{children:"off"}):null]}),sub:h===n?void 0:`\u2192 ${h}`,actions:g||w?.disabled?null:e("button",{type:"button",class:"btn ghost sm",onClick:()=>void a.patch({engines:{[o]:{model:n}}}),children:"Make default"}),menu:e(D,{title:E(n)?"Enable":"Disable",onClick:()=>void d.send(()=>P.models[E(n)?"enable":"disable"](n),y)}),remove:A?{title:`Remove ${n}?`,body:"Tasks that ask for it stop running.",onRemove:()=>d.send(()=>P.models.remove(n),y)}:void 0},n)})},o))]})}export{Ee as ModelsList};
@@ -1 +1 @@
1
- "use client";import{b as C}from"./field-43fea54c1c287e30.js";import{g as $}from"./format-b19b8eec331414f4.js";import{$6a as h,$6b as r}from"./shared-init-8a34c730aabe942d.js";import{$3l as m,$3q as p,$3r as k}from"./shared-init-8a34c730aabe942d.js";import{$0a as u}from"./shared-init-17c1fd399ac53851.js";import{$1b as g}from"./shared-init-17c1fd399ac53851.js";import{$2a as t}from"./shared-init-17c1fd399ac53851.js";import{$1c as l,$1g as c}from"./shared-init-8f2ac936c95a7f7b.js";function D({integration:a,apps:o,installed:I,createUrl:d,owners:n=[]}){let[v,f]=c(""),[M,b]=c(!1),i=(e="")=>e?`${d}&owner=${encodeURIComponent(e)}`:d,y=e=>{b(!0),f(""),g.apps.install(e,location.pathname).then(({url:s})=>{location.href=s}).catch(s=>{b(!1),f($(s))})};return o.length?t(l,{children:[I?null:t("button",{type:"button",class:"btn sm",disabled:M,onClick:()=>y(o[0].id),children:"Install"}),t(h,{summaryClass:"icon-btn",label:`More for ${a}`,wide:!0,summary:t(u,{d:p}),children:[o.map(e=>t(r,{icon:k,title:o.length>1?`Install ${e.name} on another account`:"Install on another account",sub:"Add this app to more repositories, another org, or another workspace.",onClick:()=>y(e.id)},e.id)),t(r,{icon:m,href:i(n[0]),title:`Create another ${a} app`,sub:"A separate app for an account this one cannot be installed on."})]}),t(C,{value:v})]}):t(l,{children:[t("a",{class:"btn sm",href:i(n[0]),title:n[0]?`Creates the app in ${n[0]}`:void 0,children:"Create app"}),n.length?t(h,{summaryClass:"icon-btn",label:`Where the ${a} app lives`,wide:!0,summary:t(u,{d:p}),children:[...n.slice(1),""].map(e=>t(r,{icon:m,href:i(e),title:e?`Create in ${e}`:"Create under your account",sub:"The app is private to where it lives."},e))}):null]})}export{D as PlatformActions};
1
+ "use client";import{b as C}from"./field-329f272ef3edae30.js";import{g as $}from"./format-b19b8eec331414f4.js";import{$0a as h,$0b as r}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4l as m,$4q as p,$4r as k}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as u}from"./shared-init-bee5eaed36ee3dc4.js";import{$1b as g}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as t}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as l,$1g as c}from"./shared-init-8f2ac936c95a7f7b.js";function D({integration:a,apps:o,installed:I,createUrl:d,owners:n=[]}){let[v,f]=c(""),[M,b]=c(!1),i=(e="")=>e?`${d}&owner=${encodeURIComponent(e)}`:d,y=e=>{b(!0),f(""),g.apps.install(e,location.pathname).then(({url:s})=>{location.href=s}).catch(s=>{b(!1),f($(s))})};return o.length?t(l,{children:[I?null:t("button",{type:"button",class:"btn sm",disabled:M,onClick:()=>y(o[0].id),children:"Install"}),t(h,{summaryClass:"icon-btn",label:`More for ${a}`,wide:!0,summary:t(u,{d:p}),children:[o.map(e=>t(r,{icon:k,title:o.length>1?`Install ${e.name} on another account`:"Install on another account",sub:"Add this app to more repositories, another org, or another workspace.",onClick:()=>y(e.id)},e.id)),t(r,{icon:m,href:i(n[0]),title:`Create another ${a} app`,sub:"A separate app for an account this one cannot be installed on."})]}),t(C,{value:v})]}):t(l,{children:[t("a",{class:"btn sm",href:i(n[0]),title:n[0]?`Creates the app in ${n[0]}`:void 0,children:"Create app"}),n.length?t(h,{summaryClass:"icon-btn",label:`Where the ${a} app lives`,wide:!0,summary:t(u,{d:p}),children:[...n.slice(1),""].map(e=>t(r,{icon:m,href:i(e),title:e?`Create in ${e}`:"Create under your account",sub:"The app is private to where it lives."},e))}):null]})}export{D as PlatformActions};
@@ -1 +1 @@
1
- "use client";import{f as Z}from"./list-90a47c07c4dd932e.js";import"./confirm-be929e2de15876a6.js";import{a as _}from"./badge-9984d2fd0e7f995d.js";import{d as Y}from"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import{a as N}from"./select-591ca78b6ae29bd8.js";import{a as X,c as K}from"./card-818c7a0d580e2e0d.js";import{a as B,b as I}from"./field-43fea54c1c287e30.js";import{d as L,g as C}from"./format-b19b8eec331414f4.js";import{$6a as $,$6b as x}from"./shared-init-8a34c730aabe942d.js";import{$3A as M,$3B as Q,$3e as H,$3i as q,$3l as z,$3m as G,$3p as O,$3q as J,$3r as U,$3x as V}from"./shared-init-8a34c730aabe942d.js";import{$0a as b}from"./shared-init-17c1fd399ac53851.js";import{$1b as u,$1d as A}from"./shared-init-17c1fd399ac53851.js";import{$2a as e}from"./shared-init-17c1fd399ac53851.js";import{$1c as T,$1g as l,$1i as E,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var W={local:q,"local-docker":V,"vercel-sandbox":z,"github-actions":G,http:M},oe=new Set(["default","local"]),ee=[["personal","Just me"],["workspace","Workspace"]],ae=new Set(["owner","admin"]),re=n=>Date.now()-n<6e4?"just now":`${L(Date.now()-n).replace(/\.\d/,"")} ago`;function ie({runner:n,tested:s}){return s==="testing"?e("span",{class:"sub runner-status",children:[e("i",{class:"dot"}),"Testing\u2026"]}):s?e("span",{class:`sub runner-status ${s.ok?"ok":"bad"}`,children:[e("i",{class:"dot"}),s.ok?`Reached in ${L(s.ms)}`:s.detail]}):e("span",{class:`sub runner-status${n.online?" ok":""}`,children:[e("i",{class:"dot"}),n.online?"Online":n.lastSeen?`Last seen ${re(n.lastSeen)}`:"Not seen yet"]})}function le({runner:n,manage:s,onChange:i,onError:g}){let[k,c]=l(!1),[d,r]=l(!1),[v,a]=l(),m=j(null);E(()=>m.current?.select(),[d]);let R=oe.has(n.id),y=Z(s&&!R?{title:`Remove ${n.name}?`,body:"Its tasks go to another runner.",onRemove:()=>i(()=>u.runners.remove(n.id))}:void 0),p=()=>{a("testing"),u.runners.test(n.id).then(a,f=>{a(void 0),g(C(f))})};return e("tr",{children:[e("td",{children:[e("span",{class:"row-title",children:[e("b",{class:"runner-name",children:[e(b,{d:W[n.kind]??M}),d?e("input",{class:"runner-rename","aria-label":"Runner name",defaultValue:n.name,ref:m,onKeyDown:f=>{let o=f.currentTarget.value.trim();f.key==="Escape"&&r(!1),f.key==="Enter"&&o&&i(()=>u.runners.update(n.id,{name:o})).then(()=>r(!1))},onBlur:()=>r(!1)}):n.name]}),e(_,{children:n.scope}),n.default?e(_,{tone:"acc",children:"default"}):null]}),e(ie,{runner:n,tested:v})]}),e("td",{class:"acts",children:[n.default||!s?null:e("button",{type:"button",class:"btn secondary sm",disabled:k,"aria-busy":k,onClick:()=>{c(!0),i(()=>u.runners.update(n.id,{default:!0})).finally(()=>c(!1))},children:"Make default"}),e($,{summaryClass:"icon-btn",label:"Actions",summary:e(b,{d:J}),children:[e(x,{title:"Test",onClick:p}),s&&!R?e(x,{title:"Rename",onClick:()=>r(!0)}):null,y.item]}),y.dialog]})]})}function F({value:n}){let[s,i]=l(!1);return e("div",{class:"runner-cmd",children:[e("code",{children:n}),e("button",{type:"button",class:s?"icon-btn copied":"icon-btn","aria-label":s?"Copied":"Copy command",title:s?"Copied":"Copy command",onClick:()=>void navigator.clipboard.writeText(n).then(()=>i(!0)),children:e(b,{d:s?O:Q})})]})}function ue({pairing:n,onCancel:s}){return e("div",{class:"runner-pair",children:[e("details",{class:"runner-step",children:[e("summary",{children:"Install the Coder CLI on that computer, if it is not there yet"}),e(F,{value:"npm install -g @wular/coder"})]}),e("div",{class:"runner-step",children:[e("p",{children:"Run this there. The token works once and expires in 15 minutes."}),e(F,{value:n.command})]}),e("details",{class:"runner-step",children:[e("summary",{children:"Behind a firewall? This server has to reach that computer over HTTPS"}),e("p",{children:["Open a tunnel on that computer first, then add its address to the command above as"," ",e("code",{children:"--runner-url"}),"."]}),e(F,{value:"cloudflared tunnel --url http://localhost:4100"})]}),e("div",{class:"runner-wait",children:[e(K,{label:"Waiting for that computer to connect",inline:!0,dots:!0}),e("button",{type:"button",class:"btn secondary-danger sm",onClick:s,children:"Cancel"})]})]})}function de({catalog:n,admin:s,personal:i,known:g,onAdded:k}){let[c,d]=l(),[r,v]=l(i?"personal":"workspace"),[a,m]=l(!1),[R,y]=l(""),[p,f]=l(),o=n.find(t=>t.kind===c);E(()=>{if(!p)return;let t=Math.min(p.expiresAt,Date.now()+15*6e4),w=!0,D=A(async()=>{if(Date.now()>t)return P();let S=await u.runners.list();!w||!S.items.some(h=>!g.includes(h.id))||(k(S),P())},2e3);return()=>{w=!1,D()}},[p]);let P=()=>{f(void 0),d(void 0)},ne=t=>{y(""),f(void 0),d(t.kind),t.connect==="pair"&&(m(!0),u.runners.pair({scope:r}).then(f,w=>{d(void 0),y(C(w))}).finally(()=>m(!1)))};return e("form",{class:"runner-add",method:"post",onSubmit:async t=>{if(t.preventDefault(),!o||a)return;let w=Object.fromEntries([...new FormData(t.currentTarget)].map(([h,te])=>[h,String(te).trim()])),{name:D,...S}=w;m(!0),y("");try{await u.runners.add({kind:o.kind,name:D||o.name,scope:r,config:Object.fromEntries(Object.entries(S).filter(([,h])=>h))}),k(await u.runners.list()),d(void 0)}catch(h){y(C(h))}m(!1)},children:[e("div",{class:"runner-pick",children:[e($,{summaryClass:"btn secondary",label:"Runner kind",align:"left",wide:!0,summary:e(T,{children:[e(b,{d:o?W[o.kind]:U}),o?o.name:"Add a runner",e(b,{d:H})]}),children:n.filter(t=>t.available).map(t=>e("button",{type:"button",role:"menuitemradio","aria-checked":t.kind===c,class:"pop-item rich",onClick:()=>ne(t),children:[e(b,{d:W[t.kind]??M}),e("span",{class:"grow",children:[t.name,e("small",{children:t.available?t.description:t.reason})]}),e(b,{d:O})]},t.kind))}),o?.connect==="fields"?e(T,{children:[o.help?e("p",{class:"muted runner-help",children:o.help}):null,e("div",{class:"add-grid",children:[e(B,{label:"Name",hint:"shown in the list",children:e("input",{name:"name",placeholder:o.name,autocomplete:"off"})}),o.fields.map(t=>e(B,{label:t.label,hint:t.hint??(t.optional?"optional":void 0),children:e("input",{name:t.key,type:t.secret?"password":"text",placeholder:t.placeholder,required:!t.optional,autocomplete:"off"})},`${o.kind}:${t.key}`))]})]}):null,o?.connect==="fields"?e("div",{class:"runner-foot",children:[e(I,{value:R}),i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s}):null,e("button",{class:"btn","aria-busy":a,disabled:a,children:"Add runner"})]}):e(T,{children:[o&&i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s||!!p}):null,a&&!p?e(K,{label:"Pairing",inline:!0}):null,e(I,{value:R})]})]}),p?e(ue,{pairing:p,onCancel:P}):null]})}function Ie({first:n,me:s}){let[i,g]=l(n),[k,c]=l(""),d=!s.user||ae.has(s.organization?.role??""),r=Y(i.items);E(()=>A(()=>u.runners.list().then(g),3e4),[]);let v=async a=>{c("");try{return await a(),g(await u.runners.list()),!0}catch(m){return c(C(m)),!1}};return e(X,{title:"Runners",count:r.length,actions:e(I,{value:k}),children:[e("div",{class:"table-scroll",children:e("table",{class:"rows settings",children:e("tbody",{children:r.map(a=>e(le,{runner:a,manage:a.scope==="personal"||d,onChange:v,onError:c},a.id))})})}),e(de,{catalog:i.catalog,admin:d,personal:!!s.user,known:r.map(a=>a.id),onAdded:g})]})}export{Ie as RunnersList};
1
+ "use client";import{f as Z}from"./list-074a086ab5e19d77.js";import"./confirm-d804955ec454f00f.js";import{a as _}from"./badge-b8e1e1429e8418e8.js";import{d as Y}from"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import{a as N}from"./select-f4ea2f12a2298e4a.js";import{a as X,c as K}from"./card-abb16544e8e5a5e0.js";import{a as B,b as I}from"./field-329f272ef3edae30.js";import{d as L,g as C}from"./format-b19b8eec331414f4.js";import{$0a as $,$0b as x}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4A as M,$4B as Q,$4e as H,$4i as q,$4l as z,$4m as G,$4p as O,$4q as J,$4r as U,$4x as V}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as b}from"./shared-init-bee5eaed36ee3dc4.js";import{$1b as u,$1d as A}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as e}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as T,$1g as l,$1i as E,$1k as j}from"./shared-init-8f2ac936c95a7f7b.js";var W={local:q,"local-docker":V,"vercel-sandbox":z,"github-actions":G,http:M},oe=new Set(["default","local"]),ee=[["personal","Just me"],["workspace","Workspace"]],ae=new Set(["owner","admin"]),re=n=>Date.now()-n<6e4?"just now":`${L(Date.now()-n).replace(/\.\d/,"")} ago`;function ie({runner:n,tested:s}){return s==="testing"?e("span",{class:"sub runner-status",children:[e("i",{class:"dot"}),"Testing\u2026"]}):s?e("span",{class:`sub runner-status ${s.ok?"ok":"bad"}`,children:[e("i",{class:"dot"}),s.ok?`Reached in ${L(s.ms)}`:s.detail]}):e("span",{class:`sub runner-status${n.online?" ok":""}`,children:[e("i",{class:"dot"}),n.online?"Online":n.lastSeen?`Last seen ${re(n.lastSeen)}`:"Not seen yet"]})}function le({runner:n,manage:s,onChange:i,onError:g}){let[k,c]=l(!1),[d,r]=l(!1),[v,a]=l(),m=j(null);E(()=>m.current?.select(),[d]);let R=oe.has(n.id),y=Z(s&&!R?{title:`Remove ${n.name}?`,body:"Its tasks go to another runner.",onRemove:()=>i(()=>u.runners.remove(n.id))}:void 0),p=()=>{a("testing"),u.runners.test(n.id).then(a,f=>{a(void 0),g(C(f))})};return e("tr",{children:[e("td",{children:[e("span",{class:"row-title",children:[e("b",{class:"runner-name",children:[e(b,{d:W[n.kind]??M}),d?e("input",{class:"runner-rename","aria-label":"Runner name",defaultValue:n.name,ref:m,onKeyDown:f=>{let o=f.currentTarget.value.trim();f.key==="Escape"&&r(!1),f.key==="Enter"&&o&&i(()=>u.runners.update(n.id,{name:o})).then(()=>r(!1))},onBlur:()=>r(!1)}):n.name]}),e(_,{children:n.scope}),n.default?e(_,{tone:"acc",children:"default"}):null]}),e(ie,{runner:n,tested:v})]}),e("td",{class:"acts",children:[n.default||!s?null:e("button",{type:"button",class:"btn secondary sm",disabled:k,"aria-busy":k,onClick:()=>{c(!0),i(()=>u.runners.update(n.id,{default:!0})).finally(()=>c(!1))},children:"Make default"}),e($,{summaryClass:"icon-btn",label:"Actions",summary:e(b,{d:J}),children:[e(x,{title:"Test",onClick:p}),s&&!R?e(x,{title:"Rename",onClick:()=>r(!0)}):null,y.item]}),y.dialog]})]})}function F({value:n}){let[s,i]=l(!1);return e("div",{class:"runner-cmd",children:[e("code",{children:n}),e("button",{type:"button",class:s?"icon-btn copied":"icon-btn","aria-label":s?"Copied":"Copy command",title:s?"Copied":"Copy command",onClick:()=>void navigator.clipboard.writeText(n).then(()=>i(!0)),children:e(b,{d:s?O:Q})})]})}function ue({pairing:n,onCancel:s}){return e("div",{class:"runner-pair",children:[e("details",{class:"runner-step",children:[e("summary",{children:"Install the Coder CLI on that computer, if it is not there yet"}),e(F,{value:"npm install -g @wular/coder"})]}),e("div",{class:"runner-step",children:[e("p",{children:"Run this there. The token works once and expires in 15 minutes."}),e(F,{value:n.command})]}),e("details",{class:"runner-step",children:[e("summary",{children:"Behind a firewall? This server has to reach that computer over HTTPS"}),e("p",{children:["Open a tunnel on that computer first, then add its address to the command above as"," ",e("code",{children:"--runner-url"}),"."]}),e(F,{value:"cloudflared tunnel --url http://localhost:4100"})]}),e("div",{class:"runner-wait",children:[e(K,{label:"Waiting for that computer to connect",inline:!0,dots:!0}),e("button",{type:"button",class:"btn secondary-danger sm",onClick:s,children:"Cancel"})]})]})}function de({catalog:n,admin:s,personal:i,known:g,onAdded:k}){let[c,d]=l(),[r,v]=l(i?"personal":"workspace"),[a,m]=l(!1),[R,y]=l(""),[p,f]=l(),o=n.find(t=>t.kind===c);E(()=>{if(!p)return;let t=Math.min(p.expiresAt,Date.now()+15*6e4),w=!0,D=A(async()=>{if(Date.now()>t)return P();let S=await u.runners.list();!w||!S.items.some(h=>!g.includes(h.id))||(k(S),P())},2e3);return()=>{w=!1,D()}},[p]);let P=()=>{f(void 0),d(void 0)},ne=t=>{y(""),f(void 0),d(t.kind),t.connect==="pair"&&(m(!0),u.runners.pair({scope:r}).then(f,w=>{d(void 0),y(C(w))}).finally(()=>m(!1)))};return e("form",{class:"runner-add",method:"post",onSubmit:async t=>{if(t.preventDefault(),!o||a)return;let w=Object.fromEntries([...new FormData(t.currentTarget)].map(([h,te])=>[h,String(te).trim()])),{name:D,...S}=w;m(!0),y("");try{await u.runners.add({kind:o.kind,name:D||o.name,scope:r,config:Object.fromEntries(Object.entries(S).filter(([,h])=>h))}),k(await u.runners.list()),d(void 0)}catch(h){y(C(h))}m(!1)},children:[e("div",{class:"runner-pick",children:[e($,{summaryClass:"btn secondary",label:"Runner kind",align:"left",wide:!0,summary:e(T,{children:[e(b,{d:o?W[o.kind]:U}),o?o.name:"Add a runner",e(b,{d:H})]}),children:n.filter(t=>t.available).map(t=>e("button",{type:"button",role:"menuitemradio","aria-checked":t.kind===c,class:"pop-item rich",onClick:()=>ne(t),children:[e(b,{d:W[t.kind]??M}),e("span",{class:"grow",children:[t.name,e("small",{children:t.available?t.description:t.reason})]}),e(b,{d:O})]},t.kind))}),o?.connect==="fields"?e(T,{children:[o.help?e("p",{class:"muted runner-help",children:o.help}):null,e("div",{class:"add-grid",children:[e(B,{label:"Name",hint:"shown in the list",children:e("input",{name:"name",placeholder:o.name,autocomplete:"off"})}),o.fields.map(t=>e(B,{label:t.label,hint:t.hint??(t.optional?"optional":void 0),children:e("input",{name:t.key,type:t.secret?"password":"text",placeholder:t.placeholder,required:!t.optional,autocomplete:"off"})},`${o.kind}:${t.key}`))]})]}):null,o?.connect==="fields"?e("div",{class:"runner-foot",children:[e(I,{value:R}),i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s}):null,e("button",{class:"btn","aria-busy":a,disabled:a,children:"Add runner"})]}):e(T,{children:[o&&i?e(N,{label:"Who can use this runner",options:ee,value:s?r:"personal",onChange:v,disabled:!s||!!p}):null,a&&!p?e(K,{label:"Pairing",inline:!0}):null,e(I,{value:R})]})]}),p?e(ue,{pairing:p,onCancel:P}):null]})}function Ie({first:n,me:s}){let[i,g]=l(n),[k,c]=l(""),d=!s.user||ae.has(s.organization?.role??""),r=Y(i.items);E(()=>A(()=>u.runners.list().then(g),3e4),[]);let v=async a=>{c("");try{return await a(),g(await u.runners.list()),!0}catch(m){return c(C(m)),!1}};return e(X,{title:"Runners",count:r.length,actions:e(I,{value:k}),children:[e("div",{class:"table-scroll",children:e("table",{class:"rows settings",children:e("tbody",{children:r.map(a=>e(le,{runner:a,manage:a.scope==="personal"||d,onChange:v,onError:c},a.id))})})}),e(de,{catalog:i.catalog,admin:d,personal:!!s.user,known:r.map(a=>a.id),onAdded:g})]})}export{Ie as RunnersList};
@@ -1 +1 @@
1
- import{$2a as o}from"./shared-init-17c1fd399ac53851.js";function p({label:u,options:t,value:a,onChange:l,class:s,disabled:c}){let i=Math.max(0,t.findIndex(([e])=>e===a));return o("div",{class:s?`seg-btns ${s}`:"seg-btns",role:"radiogroup","aria-label":u,onKeyDown:e=>{let r=e.currentTarget.closest("form");if(e.key==="Enter"&&r)return e.preventDefault(),r.requestSubmit();let n={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}[e.key];if(!n)return;e.preventDefault();let d=(i+n+t.length)%t.length;l(t[d][0]),e.currentTarget.children[d]?.focus()},children:t.map(([e,r],n)=>o("button",{type:"button",role:"radio","aria-checked":e===a,tabIndex:n===i?0:-1,disabled:c,onClick:()=>l(e),children:r},e))})}export{p as a};
1
+ import{$0a as o}from"./shared-init-bee5eaed36ee3dc4.js";function p({label:u,options:t,value:a,onChange:l,class:s,disabled:c}){let i=Math.max(0,t.findIndex(([e])=>e===a));return o("div",{class:s?`seg-btns ${s}`:"seg-btns",role:"radiogroup","aria-label":u,onKeyDown:e=>{let r=e.currentTarget.closest("form");if(e.key==="Enter"&&r)return e.preventDefault(),r.requestSubmit();let n={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}[e.key];if(!n)return;e.preventDefault();let d=(i+n+t.length)%t.length;l(t[d][0]),e.currentTarget.children[d]?.focus()},children:t.map(([e,r],n)=>o("button",{type:"button",role:"radio","aria-checked":e===a,tabIndex:n===i?0:-1,disabled:c,onClick:()=>l(e),children:r},e))})}export{p as a};
@@ -1 +1 @@
1
- import{$3e as S,$3p as T,$3r as W}from"./shared-init-8a34c730aabe942d.js";import{$0a as M}from"./shared-init-17c1fd399ac53851.js";import{$2a as r}from"./shared-init-17c1fd399ac53851.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
+ import{$4e as S,$4p as T,$4r as W}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as M}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as r}from"./shared-init-bee5eaed36ee3dc4.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-17c1fd399ac53851.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{$0a as p}from"./shared-init-bee5eaed36ee3dc4.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,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}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)}},w=class extends l{constructor(e,t,s="",n){super("server",t,{status:e,...n?{hint:n}:{}}),this.authenticate=s}};function k(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 $(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:"&&k(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}`},q=new Set(["completed","failed","cancelled"]),y=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,s={}){if(this.cookie="cookie"in t,this.url=e?$(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 w(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,s={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t,...s}),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),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(q.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 y("",{cookie:!0},{onError(e){e.status===401&&(e.authenticate||/^Sign in/.test(e.message))&&(location.href=`/login?return=${encodeURIComponent(location.pathname+location.search)}`)}});async function C(){let{url:e}=await f.signOut();location.href=e??"/?signed_out=1"}function U(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)}}function I({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 R(){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"})})}export{m as $0a,g as $1a,f as $1b,C as $1c,U as $1d,I as $2a,R as $2b};
@@ -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",x="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",Ke="M9 9h11v11H9ZM5 15H4V4h11v1",ze="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6";import{$2a as q}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as h}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as Fe,$1k as Xe,$1m as ne}from"./shared-init-8f2ac936c95a7f7b.js";function Je({summary:e,summaryClass:t,label:r,tip:a,align:n="right",wide:s,class:i,children:l}){let f=ne();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 Ye({icon:e,title:t,sub:r,href:a,onClick:n,danger:s}){let i=h(Fe,{children:[e?h(q,{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 Ge({label:e,children:t}){let r=ne(),a=Xe(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 Qe({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(q,{d:r}):r,h("span",{class:"grow",children:a}),e?h(q,{d:x}):null]})}function L(e,t={}){let r=tt(at(e,t.params??{})),a=nt(t.search),n=ot(t.hash);return`${r}${a}${n}`}function et(){return window.__PNEXT_TRAILING_SLASH__===!0}function B(){let e=window.__PNEXT_PREFETCH__;return e===void 0?"visible":e}function tt(e){let[,t="",r=""]=/^([^?#]*)([\s\S]*)$/.exec(e)??[];return t.startsWith("/")?et()?t==="/"||t.endsWith("/")||/\.[^/]+$/.test(t)?e:`${t}/${r}`:t==="/"||!t.endsWith("/")||/\.[^/]+\/$/.test(t)?e:`${t.replace(/\/+$/,"")}${r}`:e}function at(e,t){let r=e.replace(/\[\[\.\.\.([^\]]+)\]\]/g,(a,n)=>Z(t[n],!0)).replace(/\[\.\.\.([^\]]+)\]/g,(a,n)=>Z(t[n],!0)).replace(/\[([^\]]+)\]/g,(a,n)=>Z(t[n],!1));return rt(r)}function rt(e){return e.length<=1?e:e.replace(/\/+$/,"")||"/"}function Z(e,t){if(Array.isArray(e)){let r=e.map(a=>encodeURIComponent(a));return t?r.join("/"):r[0]??""}return encodeURIComponent(e??"")}function nt(e){if(!e)return"";let t=(e instanceof URLSearchParams?e:st(e)).toString();return t?`?${t}`:""}function st(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 ot(e){return e?e.startsWith("#")?e:`#${e}`:""}import{$1b as it,$1i as lt,$1k as ct}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??B(),E=dt(m,w);return it("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||!pt(b))return;let _=ut();f(_),_.defaultPrevented&&b.preventDefault()}},o)}function dt(e,t){let r=ct(null);return lt(()=>{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 ut(){return{defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}}}function pt(e){return e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.currentTarget.target&&!e.currentTarget.download}import{f as ht,i as ft,j as se,k as oe}from"./wular-pnext-37175329f2865f15-0.js";import{$1a as de,$1b as mt}from"./shared-init-37175329f2865f15-2.js";import{$0a as vt,$0d as wt}from"./shared-init-37175329f2865f15-2.js";import{$1a as gt,$1g as ue,$1i as pe}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")}},bt=class extends URLSearchParams{append(){throw new I}delete(){throw new I}set(){throw new I}sort(){throw new I}};ht();function W(){return yt}var yt={push(e,...[t]){ce(D(e,t),"push",t?.scroll)},replace(e,...[t]){ce(D(e,t),"replace",t?.scroll)},prefetch(e,...[t]){mt(D(e,t),{strict:!0,full:t?.kind==="full",onInvalidate:t?.onInvalidate})},refresh(){de(window.location.href,{replace:!0,scroll:!1})},back(){window.history.back()},forward(){window.history.forward()},get bfcacheId(){return kt().bfcacheId??""}};function D(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 he().pathname}function $t(){return new bt(he().search)}function K(){let e=gt,t=e.__h,r;e.__h=(s,...i)=>{r=s.__P,t?.(s,...i)};let[a,n]=ue(!1);return e.__h=t,pe(()=>{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 he(){let e=le(),[,t]=ue(()=>ie(e));return pe(()=>{Et();let r=()=>t(a=>{let n=ie(le());return a===n?a:n});return se().add(r),r(),()=>se().delete(r)},[]),e}function ie(e){return`${e.pathname}${e.search}${e.hash}`}function le(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function kt(){let e=history.state??{},t=window.__PNEXT_ROUTE__??{},r=typeof e.__pnextBfcacheId=="string"?e.__pnextBfcacheId:void 0;return r?{...t,bfcacheId:r}:t}function ce(e,t,r=!0){if(wt(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){de(a.href,{replace:t==="replace",scroll:r});return}t==="replace"?window.history.replaceState(history.state,"",a):window.history.pushState(history.state,"",a),ft(a,{scroll:r}),vt.settleLink?.()}function Et(){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&&oe(),l},window.history.replaceState=function(a,n,s){let i=window.location.href,l=t(r(a),n,s);return window.location.href!==i&&oe(),l}}import{$2a as C}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as _t}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as v}from"./shared-init-bee5eaed36ee3dc4.js";import{$1c as fe,$1g as F,$1i as z,$1j as xt,$1k as Lt}from"./shared-init-8f2ac936c95a7f7b.js";var St=3600*24*365,Ct=[["light","Light",R],["dark","Dark",O],["system","System",N]];function Pt({theme:e}){let[t,r]=F(e),a=n=>{let s=document.documentElement;n==="system"?delete s.dataset.theme:s.dataset.theme=n,document.cookie=`theme=${n}; path=/; max-age=${St}; samesite=lax`,r(n)};return v(fe,{children:Ct.map(([n,s,i])=>v("button",{type:"button",class:"pop-item",role:"menuitemradio","aria-checked":t===n,onClick:()=>a(n),children:[v(C,{d:i}),v("span",{class:"grow",children:s}),v(C,{d:x})]},n))})}function Tt({class:e,icon:t,children:r}){return v("button",{type:"button",class:e,onClick:()=>void _t().catch(()=>location.reload()),children:[t?v(C,{d:V}):null,r]})}function It(){let[e,t]=F(!1),r=$();return z(()=>t(!1),[r]),z(()=>{if(document.documentElement.classList.toggle("drawer",e),!e)return;let a=n=>n.key==="Escape"&&t(!1);return addEventListener("keydown",a),()=>removeEventListener("keydown",a)},[e]),v(fe,{children:[v("button",{type:"button",class:"icon-btn only-m","aria-label":"Open navigation",onClick:()=>t(!e),children:v(C,{d:U})}),v("div",{class:"scrim",onClick:()=>t(!1)})]})}var At="side";function Ht({collapsed:e}){let[t,r]=F(e);return z(()=>{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=`${At}=${a?"min":"max"}; path=/; max-age=31536000; samesite=lax`},children:v(C,{d:t?j:H})})}var jt=e=>{let t=e.params??{};return e.href.replace(/\[([^\]]+)\]/g,(r,a)=>encodeURIComponent(String(t[a]??"")))};function Rt(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 Ot({within:e,children:t,onClick:r,...a}){let n=$(),s=n===jt(a)||e!==void 0&&(n===e||n.startsWith(`${e}/`)),i=Lt(null);return v(S,{...a,"aria-current":s?"page":void 0,onClick:l=>{i.current=l.currentTarget,r?.(l)},children:[t,v(Nt,{anchor:i,current:s})]})}function Nt({anchor:e,current:t}){let{pending:r}=K();return xt(()=>{e.current&&(r&&!t?e.current.setAttribute("data-pending",""):e.current.removeAttribute("data-pending"))},[r,t]),null}import{$1a as Vt,$1b as Ut}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as g}from"./shared-init-bee5eaed36ee3dc4.js";import{$1g as me,$1i as M,$1k as k}from"./shared-init-8f2ac936c95a7f7b.js";function be({status:e}){return g("span",{class:`st ${e}`,children:[g("i",{}),ye[e]??e]})}var ye={queued:"waiting for slot",running:"running",waiting:"needs approval",completed:"completed",failed:"failed",cancelled:"cancelled"},P="coder:watched",Me="coder:notify",A="coder:toast",ee=new Set(["completed","failed","cancelled"]),qt=new Set([...ee,"waiting"]),Zt=20,ve=3,Bt=8e3,we="coder:events",X="coder:task",J="coder:task-replay",Y="coder:task-reset",G="coder:task-resync",Dt=6e4,Wt=200,Q=()=>{try{return JSON.parse(localStorage.getItem(P)??"{}")??{}}catch{return{}}},$e=e=>{let t=Object.entries(e).sort(([,r],[,a])=>a.at-r.at).slice(0,Zt);localStorage.setItem(P,JSON.stringify(Object.fromEntries(t))),dispatchEvent(new Event(P))},ke=(e,t,r)=>dispatchEvent(new CustomEvent(A,{detail:{title:e,line:t,err:r}})),Kt=(e,t)=>ke(e,t,!0);function Ee(e,t,r){let a=Q(),n=a[e];!n&&ee.has(t)||n?.status===t&&(!r||n.title===r)||(a[e]={title:r||n?.title||e,status:t,at:n?.at??Date.now()},$e(a))}var ge=e=>/^\/dash\/tasks\/([^/]+)$/.exec(e)?.[1];function zt(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 _e(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(X,n),addEventListener(Y,s),addEventListener(G,i),dispatchEvent(new CustomEvent(J,{detail:l=>a.current.on(l)})),()=>{removeEventListener(X,n),removeEventListener(Y,s),removeEventListener(G,i)}},[])}function Ft(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>Wt&&s.delete(s.keys().next().value),dispatchEvent(new CustomEvent(X,{detail:c}))},l=c=>{for(let b of s.values())c.detail(b)};addEventListener(J,l);let f=typeof BroadcastChannel<"u"&&navigator.locks?new BroadcastChannel(we):void 0,m=new AbortController,w,o=()=>{},d,u=c=>{w=c.id??w,c.event&&i(c.event),c.resync&&dispatchEvent(new Event(G)),c.reset&&(s.clear(),dispatchEvent(new Event(Y)))};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})},Dt);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 _=r.current;a.current={key:[..._].sort().join(","),abort:c};let te=1e3;try{let y=await Ut.tasks.events(_,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:xe,id:ae}of Vt(y.body)){if(c.signal.aborted)break;let re={...ae?{id:ae}:{},...T==="task"?{event:JSON.parse(xe)}:{},...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(we,{signal:m.signal},p).catch(()=>{}):p(),()=>{m.abort(),o(),clearTimeout(d),f?.close(),removeEventListener(J,l)}},[]),M(()=>{a.current&&a.current.key!==n&&a.current.abort.abort()},[n])}function Xt({toast:e,dismiss:t}){return M(()=>{let r=setTimeout(()=>t(e.key),Bt);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(be,{status:e.status}):null]}),g("p",{class:"toast-line",children:e.line})]})}function Jt(){let e=$(),t=W(),[r,a]=me({}),[n,s]=me([]),i=k(ge(e));i.current=ge(e);let l=k({}),f=k(!1);M(()=>{let o=()=>{let d=Q();for(let[u,p]of Object.entries(d))l.current[u]??=p.status;a(d)};return o(),addEventListener(P,o),addEventListener("storage",o),()=>{removeEventListener(P,o),removeEventListener("storage",o)}},[]),M(()=>{let o=d=>{let u=d.detail;s(p=>[{key:`${A}:${Date.now()}`,...u},...p].slice(0,ve))};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));_e(o=>{let d=Q(),u=d[o.id];if(!u)return;if(o.deleted)return delete d[o.id],$e(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(Ee(o,d.status),!qt.has(d.status)||i.current===o)return;let p={key:`${o}:${Date.now()}`,id:o,title:u.title,status:d.status,line:zt(d)};if(s(c=>[p,...c].slice(0,ve)),!f.current||localStorage.getItem(Me)!=="1"||typeof Notification>"u"||Notification.permission!=="granted")return;let E=new Notification(`${p.title} (${ye[p.status]})`,{body:p.line,tag:o});E.onclick=()=>{focus(),t.push("/dash/tasks/[id]",{params:{id:o}})}};return Ft(Object.entries(r).filter(([,o])=>!ee.has(o.status)).map(([o])=>o),f),g("section",{class:"toasts","aria-label":"Task updates","aria-live":"polite",children:n.map(o=>g(Xt,{toast:o,dismiss:m},o.key))})}export{Je as $0a,Ye as $0b,Ge as $0c,Qe as $0d,S as $1a,L as $2a,B as $2b,Pt as $3a,Tt as $3b,It as $3c,Ht as $3d,Rt as $3e,Ot as $3f,We as $4A,Ke as $4B,ze as $4C,Le as $4a,Se as $4b,Ce as $4c,H as $4d,Pe as $4e,j as $4f,R as $4g,O as $4h,N as $4i,Te as $4j,V as $4k,Ie as $4l,Ae as $4m,U as $4n,He as $4o,x as $4p,je as $4q,Re as $4r,Oe as $4s,Ne as $4t,Ve as $4u,Ue as $4v,qe as $4w,Ze as $4x,Be as $4y,De as $4z,be as $5a,Me as $5b,ke as $5c,Kt as $5d,Ee as $5e,_e as $5f,Jt as $5g,W as $6a,$ as $6b,$t as $6c,K as $6d};
@@ -1 +1 @@
1
- import{c as o}from"./card-818c7a0d580e2e0d.js";import{$2a as t}from"./shared-init-17c1fd399ac53851.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-abb16544e8e5a5e0.js";import{$0a as t}from"./shared-init-bee5eaed36ee3dc4.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 +1 @@
1
- import{a as x}from"./confirm-be929e2de15876a6.js";import{a as T}from"./card-818c7a0d580e2e0d.js";import{b as h}from"./field-43fea54c1c287e30.js";import{g as b}from"./format-b19b8eec331414f4.js";import{$4c as k,$4d as A}from"./shared-init-8a34c730aabe942d.js";import{$5a as D}from"./shared-init-8a34c730aabe942d.js";import{$6a as C,$6b as m}from"./shared-init-8a34c730aabe942d.js";import{$3q as w}from"./shared-init-8a34c730aabe942d.js";import{$0a as g}from"./shared-init-17c1fd399ac53851.js";import{$1b as u}from"./shared-init-17c1fd399ac53851.js";import{$2a as t}from"./shared-init-17c1fd399ac53851.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,o=(...r)=>r.map(i=>s[i]).find(i=>typeof i=="string");return{id:o("id"),action:o("kind","tool"),reason:o("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,o]=c(""),[r,i]=c("");return{error:s,outcome:r,setError:o,run:async(n,a={})=>{o(""),i("");try{return n==="approve"?await u.tasks.approve(e,a.approvalId??"",a.decision??"decline"):n==="ask"?await u.tasks.ask(e,a.question??""):n==="continue"||n==="steer"?await u.tasks.steer(e,a.text??""):await u.tasks[n](e),i(S[n]),!0}catch(l){return o(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 o=D(),r=E(e.task.id),[i,f]=c(!!e.archivedAt),[n,a]=c(),l=()=>{a("busy"),r.setError(""),u.tasks.delete(e.task.id).then(()=>o.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(C,{summary:t(g,{d:w}),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:!!n,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:n==="busy",onConfirm:l,onClose:()=>a(void 0)})]})}function K({task:e}){let s=E(e.task.id),[o,r]=c(),[i,f]=c(),{id:n,action:a,reason:l}=R(e.approval),d=async p=>{r(p);let B=await s.run("approve",{approvalId:n,decision:p});r(void 0),B&&(f(n),k(p==="accept"?"Allowed":"Denied","The task continues."))};return y(()=>{s.error&&A("Not sent",s.error)},[s.error]),n&&i===n?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:!!o,"aria-busy":o==="decline",onClick:()=>void d("decline"),children:"Deny"}),t("button",{type:"button",class:"btn sm",disabled:!!o,"aria-busy":o==="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};
1
+ import{a as x}from"./confirm-d804955ec454f00f.js";import{a as T}from"./card-abb16544e8e5a5e0.js";import{b as h}from"./field-329f272ef3edae30.js";import{g as b}from"./format-b19b8eec331414f4.js";import{$5c as k,$5d as A}from"./shared-init-cf66e1c1a2f30ef1.js";import{$6a as D}from"./shared-init-cf66e1c1a2f30ef1.js";import{$0a as C,$0b as m}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4q as w}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as g}from"./shared-init-bee5eaed36ee3dc4.js";import{$1b as u}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as t}from"./shared-init-bee5eaed36ee3dc4.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,o=(...r)=>r.map(i=>s[i]).find(i=>typeof i=="string");return{id:o("id"),action:o("kind","tool"),reason:o("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,o]=c(""),[r,i]=c("");return{error:s,outcome:r,setError:o,run:async(n,a={})=>{o(""),i("");try{return n==="approve"?await u.tasks.approve(e,a.approvalId??"",a.decision??"decline"):n==="ask"?await u.tasks.ask(e,a.question??""):n==="continue"||n==="steer"?await u.tasks.steer(e,a.text??""):await u.tasks[n](e),i(S[n]),!0}catch(l){return o(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 o=D(),r=E(e.task.id),[i,f]=c(!!e.archivedAt),[n,a]=c(),l=()=>{a("busy"),r.setError(""),u.tasks.delete(e.task.id).then(()=>o.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(C,{summary:t(g,{d:w}),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:!!n,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:n==="busy",onConfirm:l,onClose:()=>a(void 0)})]})}function K({task:e}){let s=E(e.task.id),[o,r]=c(),[i,f]=c(),{id:n,action:a,reason:l}=R(e.approval),d=async p=>{r(p);let B=await s.run("approve",{approvalId:n,decision:p});r(void 0),B&&(f(n),k(p==="accept"?"Allowed":"Denied","The task continues."))};return y(()=>{s.error&&A("Not sent",s.error)},[s.error]),n&&i===n?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:!!o,"aria-busy":o==="decline",onClick:()=>void d("decline"),children:"Deny"}),t("button",{type:"button",class:"btn sm",disabled:!!o,"aria-busy":o==="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};
@@ -1,5 +1,5 @@
1
- "use client";import{b as Qt,c as Zt,d as te}from"./heads-1326669bdce3da2f.js";import{b as Yt,c as Xt,d as Gt}from"./task-actions-26ad7f7c937f2589.js";import"./confirm-be929e2de15876a6.js";import{a as Jt}from"./badge-9984d2fd0e7f995d.js";import{a as ee,b as se}from"./instructions-0b968d5d0a58c716.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-818c7a0d580e2e0d.js";import"./field-43fea54c1c287e30.js";import{a as lt,b as Ot,d as K,g as at}from"./format-b19b8eec331414f4.js";import"./sentinel-b4c91a38a5d79219.js";import{$4a as Bt,$4d as Ht,$4e as qt,$4f as Pt}from"./shared-init-8a34c730aabe942d.js";import{$5c as Kt}from"./shared-init-8a34c730aabe942d.js";import"./wular-pnext-37175329f2865f15-0.js";import{$1a as Vt}from"./shared-init-8a34c730aabe942d.js";import"./shared-init-8a34c730aabe942d.js";import{$6a as $t}from"./shared-init-8a34c730aabe942d.js";import{$3A as Nt,$3a as It,$3b as ct,$3c as _t,$3e as G,$3j as zt,$3l as Rt,$3o as dt,$3p as B,$3s as Dt,$3t as Lt,$3w as Ft,$3x as Q,$3y as Wt,$3z as jt}from"./shared-init-8a34c730aabe942d.js";import{$0a as O}from"./shared-init-17c1fd399ac53851.js";import{$1a as Ct,$1b as U}from"./shared-init-17c1fd399ac53851.js";import{$2a as a}from"./shared-init-17c1fd399ac53851.js";import"./shared-init-37175329f2865f15-2.js";import"./shared-init-37175329f2865f15-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(`
1
+ "use client";import{b as Qt,c as Zt,d as te}from"./heads-bdb3900291e3ba2c.js";import{b as Yt,c as Xt,d as Gt}from"./task-actions-37ed047ca8c5b129.js";import"./confirm-d804955ec454f00f.js";import{a as Jt}from"./badge-b8e1e1429e8418e8.js";import{a as ee,b as se}from"./instructions-7f289881a4d96d85.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-abb16544e8e5a5e0.js";import"./field-329f272ef3edae30.js";import{a as lt,b as Ot,d as K,g as at}from"./format-b19b8eec331414f4.js";import"./sentinel-9e882d8ad784d4bd.js";import{$5a as Bt,$5d as Ht,$5e as qt,$5f as Pt}from"./shared-init-cf66e1c1a2f30ef1.js";import{$6c as Vt}from"./shared-init-cf66e1c1a2f30ef1.js";import"./wular-pnext-37175329f2865f15-0.js";import{$1a as Kt}from"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-cf66e1c1a2f30ef1.js";import{$0a as $t}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4A as Nt,$4a as It,$4b as ct,$4c as _t,$4e as G,$4j as zt,$4l as Rt,$4o as dt,$4p as B,$4s as Dt,$4t as Lt,$4w as Ft,$4x as Q,$4y as Wt,$4z as jt}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as O}from"./shared-init-bee5eaed36ee3dc4.js";import{$1a as Ct,$1b as U}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as a}from"./shared-init-bee5eaed36ee3dc4.js";import"./shared-init-37175329f2865f15-2.js";import"./shared-init-37175329f2865f15-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
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
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:Dt,tool:Q,"tool-result":B,approval:zt,status:ct,error:Ft,line:ct,reasoning:Rt,steer:Lt,usage:_t},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=Kt();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(Bt,{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:jt}),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?Nt:Q}),l?`${ht(o)} ${l}`:ht(o)]}),n.task.cwd?a("span",{class:"fact",title:n.task.cwd,children:[a(O,{d:Wt}),Ut(n.task.cwd)]}):null,a("span",{class:"fact",children:[a(Vt,{class:"agent-link",href:"/dash/agents/[slug]",params:{slug:n.task.agent},search:{from:`/dash/tasks/${n.task.id}`},children:[a(O,{d:It}),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(()=>qt(t.task.id,t.status,tt(t)),[t.status]),C(()=>{W.error&&Ht("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]),Pt(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($t,{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};
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=Vt();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(Bt,{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:jt}),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?Nt:Q}),l?`${ht(o)} ${l}`:ht(o)]}),n.task.cwd?a("span",{class:"fact",title:n.task.cwd,children:[a(O,{d:Wt}),Ut(n.task.cwd)]}):null,a("span",{class:"fact",children:[a(Kt,{class:"agent-link",href:"/dash/agents/[slug]",params:{slug:n.task.agent},search:{from:`/dash/tasks/${n.task.id}`},children:[a(O,{d:It}),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(()=>qt(t.task.id,t.status,tt(t)),[t.status]),C(()=>{W.error&&Ht("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]),Pt(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($t,{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};
@@ -1 +1 @@
1
- "use client";import{a as Yt}from"./task-actions-26ad7f7c937f2589.js";import{a as zt}from"./confirm-be929e2de15876a6.js";import{a as Ut}from"./filter-55618648fc10c377.js";import{a as rt}from"./agent-pills-0163fdf910179991.js";import{a as Gt}from"./tail-74153aeac1f0baec.js";import{a as jt,b as Ht,c as Kt,d as Vt}from"./toolbar-a99d36b4b6f05bb1.js";import{b as Ft,e as ot}from"./paged-3ddb6077bef42752.js";import{c as Bt}from"./badge-9984d2fd0e7f995d.js";import{a as qt}from"./composer-8abfcac26339cc99.js";import"./connect-repositories-8864a63f83ffd411.js";import"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import"./select-591ca78b6ae29bd8.js";import{a as Et,b as xt,c as _t,d as nt,e as It,f as Lt,g as Mt,h as Nt,i as Ot,j as $t}from"./task-ddfddeaf07fb684c.js";import{a as At,b as et}from"./card-818c7a0d580e2e0d.js";import{b as ut}from"./field-43fea54c1c287e30.js";import{a as mt,c as ft,d as pt,e as z,g as ht}from"./format-b19b8eec331414f4.js";import"./sentinel-b4c91a38a5d79219.js";import{$4a as St,$4f as Rt}from"./shared-init-8a34c730aabe942d.js";import{$5a as Pt}from"./shared-init-8a34c730aabe942d.js";import"./wular-pnext-37175329f2865f15-0.js";import{$1a as Dt}from"./shared-init-8a34c730aabe942d.js";import"./shared-init-8a34c730aabe942d.js";import{$6a as Ct,$6b as B}from"./shared-init-8a34c730aabe942d.js";import{$3A as Tt,$3a as tt,$3i as yt,$3q as gt,$3r as bt,$3x as kt,$3y as wt,$3z as vt}from"./shared-init-8a34c730aabe942d.js";import{$0a as F}from"./shared-init-17c1fd399ac53851.js";import{$1b as R}from"./shared-init-17c1fd399ac53851.js";import{$2a as t}from"./shared-init-17c1fd399ac53851.js";import"./shared-init-37175329f2865f15-2.js";import"./shared-init-37175329f2865f15-2.js";import{$1b as f,$1c as $,$1d as lt,$1g as T,$1i as q,$1j as Z,$1k as u}from"./shared-init-8f2ac936c95a7f7b.js";var oe=Symbol.for("pnext.dynamic");function Wt(n,o={},c){let a=null,m=null,s=!1,g=typeof n=="string"?()=>{throw new Error(`dynamic(${JSON.stringify(n)}) was not compiled by PNext.`)}:n,k=()=>(m??=Promise.resolve(g()).then(d=>(a=typeof d=="function"?d:d.default,a)),m);function A(d){let i=u(null),[M,C]=T(0);if(Z(()=>{i.current?.hasAttribute("data-pnext-loading")&&C(1)},[]),a)return f("pnext-dynamic",{key:M,ref:i,style:Qt},f(a,d));let E=o.loading;if(s)return f("pnext-dynamic",{ref:i,style:Qt,"data-pnext-loading":""},E?f(E,d):null);throw typeof window>"u"?k().then(()=>{},()=>{s=!0}):k()}function v(d){let[i,M]=T(null),[C,E]=T(()=>o.load!=="visible"),K=u(null);if(Z(()=>{a&&M(()=>a)},[]),q(()=>{if(i||C)return;let P=K.current;if(!P||typeof IntersectionObserver>"u"){E(!0);return}let b=new IntersectionObserver(x=>{x.some(N=>N.isIntersecting)&&(b.disconnect(),E(!0))},{rootMargin:o.rootMargin,threshold:o.threshold});return b.observe(P),()=>b.disconnect()},[i,C]),q(()=>{if(i||!C)return;let P=!1;return k().then(b=>{P||M(()=>b)}),()=>{P=!0}},[i,C]),i)return f(i,d);let D=o.loading;return o.load==="visible"?f("div",{ref:K},D?f(D,d):null):D?f(D,d):null}let l=o.ssr===!1||o.load==="visible"?v:d=>typeof window>"u"?f(A,d):f(st,{fallback:o.loading?f(o.loading,d):null},f(A,d));return l[oe]={load:k,target:c},l}var Qt={display:"contents"},re=32,st=class extends lt{__c(o,c){this.setState({waiting:!0,held:(c.__u&re)!==0}),o.then(()=>this.setState({waiting:!1}))}componentDidCatch(o){if(!(o instanceof Promise))throw o;this.__c(o,this.__v.__k[0])}shouldComponentUpdate(o,c){return!(c.waiting&&c.held)}render(){return this.state.waiting&&!this.state.held?this.props.fallback:this.props.children}};var se=Wt(()=>import("./composer-44516934e5619d32.js").then(n=>n.NewTaskButton),{loading:()=>t("button",{type:"button",class:"btn new-task",disabled:!0,children:[t(F,{d:bt}),"New task"]})}),ie={dashboard:yt,cli:kt,schedule:vt},Xt=n=>ie[n]??Tt;function ae(n,o,c){let a=Math.round((o-n)/6e4);return a<1?"just now":a<60?`${a} min ago`:a<1440?`${Math.round(a/60)} h ago`:ft(n,c)}function de({task:n,brand:o,back:c,scoped:a,tz:m,now:s,onDone:g,onError:k}){let A=n.startedAt===void 0?void 0:(n.finishedAt??s)-n.startedAt,v=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(Dt,{class:"cover",href:"/dash/tasks/[id]",params:{id:n.task.id},search:c?{back:c}:void 0,children:Ot(n)}),t("span",{class:"sub",children:[a?null:t($,{children:[t(F,{d:tt}),`${n.task.agent} \xB7 `]}),t(Bt,{value:n.task.id}),l?` \xB7 ${l}`:null,n.task.cwd?t($,{children:[" \xB7 ",t("span",{title:n.task.cwd,children:[t(F,{d:wt}),$t(n.task.cwd)]})]}):null]})]}),t("td",{children:t(St,{status:n.status})}),t("td",{class:"when",title:mt(n.createdAt,m),children:ae(n.createdAt,s,m)}),t("td",{class:"num",children:pt(A)}),t("td",{children:[t("span",{class:"source",title:nt(v),children:[o?t(rt,{brand:o}):t(F,{d:Xt(v)}),nt(v)]}),t("span",{class:"row-acts",children:t(ce,{task:n,onDone:g,onError:k})})]})]})}function ce({task:n,onDone:o,onError:c}){let[a,m]=T(),s=(g,k)=>{c(""),(g==="approve"?R.tasks.approve(n.task.id,Yt(n.approval).id??"",k??"decline"):g==="delete"?R.tasks.delete(n.task.id):R.tasks[g](n.task.id)).then(()=>o(g),v=>c(ht(v))).finally(()=>m(void 0))};return t($,{children:[t(Ct,{summary:t(F,{d:gt}),summaryClass:"icon-btn",label:"Task actions",align:"right",children:[n.approval?t(B,{title:"Approve",onClick:()=>s("approve","accept")}):null,n.approval?t(B,{title:"Deny",onClick:()=>s("approve","decline")}):null,It(n)?t(B,{title:"Stop",onClick:()=>s("cancel")}):null,n.archivedAt?null:t(B,{title:"Archive",onClick:()=>s("archive")}),t(B,{title:"Delete",danger:!0,onClick:()=>m("ask")})]}),t(zt,{open:!!a,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:a==="busy",onConfirm:()=>{m("busy"),s("delete")},onClose:()=>m(void 0)})]})}function Ve({first:n,platforms:o,brands:c={},agents:a=[],filters:m,agent:s,head:g,missing:k,tz:A,now:v}){let{values:l,set:d,query:i}=Ht(m),M=jt(m),C=s?`&agent=${encodeURIComponent(s)}`:"",E=s?`/dash/agents/${encodeURIComponent(s)}/tasks`:"/dash/tasks",K=i||s?`${E}${i?`?${i}`:""}`:void 0,D={limit:ot,summary:!0,counts:!0,...xt(l),agent:s??l.agent},P=[{key:"status",label:"Status",options:Et,inline:!0},{key:"source",label:"Source",options:[..._t,...o],icon:e=>c[e]?t(rt,{brand:c[e]}):Xt(e)}];s||P.push({key:"agent",label:"Agent",options:a,icon:()=>tt,search:(e,p)=>R.agents.list({cursor:"",limit:p,q:e}).then(r=>r.items.map(h=>[h.id,h.name]))});let b=Ft({name:`tasks${C}`,fetchPage:e=>R.tasks.list({...D,cursor:e}),query:i,first:n,initial:M}),[x,N]=T({rows:{},added:[]}),[Zt,_]=T([]);q(()=>_([]),[i]);let[te,ee]=T(""),V=Nt(b.rows,x.query===i?x.added:[],x.rows).filter(e=>!Zt.includes(e.task.id)),I=(x.query===i?x.counts:void 0)??b.meta.counts,U=u(),j=u(!1),Y=u(!1),it=u(),at=u(!1),J=u(0),Q=u(0),G=u({}),W=u(!1),O=(e=!1)=>{if(W.current||=e,document.visibilityState==="hidden")return void(Y.current=!0);if(U.current)return void(j.current=!0);let p=U.current=Date.now(),r=Q.current,h=W.current?V:[];W.current=!1,(async()=>{let w=await R.tasks.list({...D,limit:Math.min(200,Math.max(ot,h.length)),cursor:""}),S=w,H=[...w.items];for(;S.next&&H.length<h.length;)S=await R.tasks.list({...D,limit:200,cursor:S.next}),H.push(...S.items);return{...S,items:H,counts:w.counts}})().then(w=>{if(Q.current!==r)return;let S=w.items.at(-1),H=new Set(w.items.map(y=>y.task.id)),ct=h.filter(y=>!H.has(y.task.id)&&(G.current[y.task.id]??0)<=p&&(!w.next||S&&Lt(y,S)<0));ct.length&&_(y=>[...y,...ct.map(L=>L.task.id)]),N(y=>({rows:{...y.rows,...Object.fromEntries(w.items.filter(L=>(G.current[L.task.id]??0)<=p).map(L=>[L.task.id,{...y.rows[L.task.id],...L}]))},added:Mt(y.query===i?y.added:[],w.items),counts:w.counts,query:i})),J.current=0}).catch(()=>{J.current++,j.current=!0}).finally(()=>{if(!at.current){if(!j.current)return void(U.current=void 0);j.current=!1,it.current=setTimeout(()=>{U.current=void 0,X.current()},Math.min(3e4,1e3*2**J.current))}})},X=u(O);X.current=O,q(()=>{let e=()=>{document.visibilityState!=="visible"||!Y.current||(Y.current=!1,X.current())};return addEventListener("visibilitychange",e),()=>{removeEventListener("visibilitychange",e),clearTimeout(it.current),at.current=!0}},[]);let ne=Pt();return Rt(e=>{let p=V.find(r=>r.task.id===e.id);if(!p){e.deleted||e.archivedAt&&l.status!=="archived"?_(r=>[...r,e.id]):_(r=>r.includes(e.id)?r.filter(h=>h!==e.id):r),N(r=>{let{[e.id]:h,...dt}=r.rows;return h?{...r,rows:dt}:r}),(e.deleted||(s||l.agent||e.agent)===e.agent)&&O();return}if(G.current[e.id]=Date.now(),U.current&&(j.current=!0),(e.deleted||e.status!==p.status||!!e.archivedAt!=!!p.archivedAt)&&O(),e.deleted||e.archivedAt&&l.status!=="archived")return _(r=>[...r,e.id]);N(r=>{let h=r.rows[e.id]??p;return{...r,rows:{...r.rows,[e.id]:{...h,status:e.status,approval:e.approval??void 0,archivedAt:e.archivedAt,startedAt:e.startedAt,finishedAt:e.finishedAt}}}})},()=>{Q.current++,G.current={},N({rows:{},added:[]}),_([]),ne.refresh()},()=>O(!0)),t($,{children:[t(Vt,{head:g,action:g?t(se,{}):void 0,children:[t(Kt,{value:l.q,label:"Search tasks",onInput:e=>d("q",e,250)}),t(Ut,{name:"tasks",facets:P,values:l,onChange:d})]}),k?t(qt,{}):null,t(At,{title:"Tasks",count:I?z(I.all):void 0,actions:I?t($,{children:[t(ut,{value:te}),I.active?t("button",{type:"button",class:"badge acc",onClick:()=>d("status","active"),children:[z(I.active)," active"]}):null,I.waiting?t("button",{type:"button",class:"badge warn",onClick:()=>d("status","waiting"),children:[z(I.waiting)," awaiting approval"]}):null]}):void 0,children:[V.length?t("div",{class:"table-scroll",children:t("table",{class:"rows tasks stacked","aria-busy":b.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:V.map(e=>t(de,{task:e,brand:c[e.task.event?.integration??e.task.source],back:K,scoped:!!s,tz:A,now:v,onError:ee,onDone:p=>{(p==="delete"||p==="archive"&&l.status!=="archived")&&_(r=>[...r,e.task.id]),O()}},e.task.id))})]})}):b.stale?null:i?t(et,{title:"No tasks match",children:"Try another search or filter."}):t(et,{title:"No tasks yet",children:s?"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(Gt,{noun:"tasks",...b})]})]})}export{Ve as TasksList};
1
+ "use client";import{a as Yt}from"./task-actions-37ed047ca8c5b129.js";import{a as zt}from"./confirm-d804955ec454f00f.js";import{a as Ut}from"./filter-673d0e6dbc95293c.js";import{a as rt}from"./agent-pills-65087e563e7f928c.js";import{a as Gt}from"./tail-5a5f739bca637202.js";import{a as jt,b as Ht,c as Kt,d as Vt}from"./toolbar-7aee851cfcc688cc.js";import{b as Ft,e as ot}from"./paged-3ddb6077bef42752.js";import{c as Bt}from"./badge-b8e1e1429e8418e8.js";import{a as qt}from"./composer-08a1aad17120af8a.js";import"./connect-repositories-2cf520006ed18949.js";import"./composer-data-6f7608fed13f3dd7.js";import"./model-options-15c53331a2f28a4f.js";import"./select-f4ea2f12a2298e4a.js";import{a as Et,b as xt,c as _t,d as nt,e as It,f as Lt,g as Mt,h as Nt,i as Ot,j as $t}from"./task-ddfddeaf07fb684c.js";import{a as At,b as et}from"./card-abb16544e8e5a5e0.js";import{b as ut}from"./field-329f272ef3edae30.js";import{a as mt,c as ft,d as pt,e as z,g as ht}from"./format-b19b8eec331414f4.js";import"./sentinel-9e882d8ad784d4bd.js";import{$5a as St,$5f as Rt}from"./shared-init-cf66e1c1a2f30ef1.js";import{$6a as Dt}from"./shared-init-cf66e1c1a2f30ef1.js";import"./wular-pnext-37175329f2865f15-0.js";import{$1a as Pt}from"./shared-init-cf66e1c1a2f30ef1.js";import"./shared-init-cf66e1c1a2f30ef1.js";import{$0a as Ct,$0b as B}from"./shared-init-cf66e1c1a2f30ef1.js";import{$4A as Tt,$4a as tt,$4i as yt,$4q as gt,$4r as bt,$4x as kt,$4y as wt,$4z as vt}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as F}from"./shared-init-bee5eaed36ee3dc4.js";import{$1b as R}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as t}from"./shared-init-bee5eaed36ee3dc4.js";import"./shared-init-37175329f2865f15-2.js";import"./shared-init-37175329f2865f15-2.js";import{$1b as f,$1c as $,$1d as lt,$1g as T,$1i as q,$1j as Z,$1k as u}from"./shared-init-8f2ac936c95a7f7b.js";var oe=Symbol.for("pnext.dynamic");function Wt(n,o={},c){let a=null,m=null,s=!1,g=typeof n=="string"?()=>{throw new Error(`dynamic(${JSON.stringify(n)}) was not compiled by PNext.`)}:n,k=()=>(m??=Promise.resolve(g()).then(d=>(a=typeof d=="function"?d:d.default,a)),m);function A(d){let i=u(null),[M,C]=T(0);if(Z(()=>{i.current?.hasAttribute("data-pnext-loading")&&C(1)},[]),a)return f("pnext-dynamic",{key:M,ref:i,style:Qt},f(a,d));let E=o.loading;if(s)return f("pnext-dynamic",{ref:i,style:Qt,"data-pnext-loading":""},E?f(E,d):null);throw typeof window>"u"?k().then(()=>{},()=>{s=!0}):k()}function v(d){let[i,M]=T(null),[C,E]=T(()=>o.load!=="visible"),K=u(null);if(Z(()=>{a&&M(()=>a)},[]),q(()=>{if(i||C)return;let P=K.current;if(!P||typeof IntersectionObserver>"u"){E(!0);return}let b=new IntersectionObserver(x=>{x.some(N=>N.isIntersecting)&&(b.disconnect(),E(!0))},{rootMargin:o.rootMargin,threshold:o.threshold});return b.observe(P),()=>b.disconnect()},[i,C]),q(()=>{if(i||!C)return;let P=!1;return k().then(b=>{P||M(()=>b)}),()=>{P=!0}},[i,C]),i)return f(i,d);let D=o.loading;return o.load==="visible"?f("div",{ref:K},D?f(D,d):null):D?f(D,d):null}let l=o.ssr===!1||o.load==="visible"?v:d=>typeof window>"u"?f(A,d):f(st,{fallback:o.loading?f(o.loading,d):null},f(A,d));return l[oe]={load:k,target:c},l}var Qt={display:"contents"},re=32,st=class extends lt{__c(o,c){this.setState({waiting:!0,held:(c.__u&re)!==0}),o.then(()=>this.setState({waiting:!1}))}componentDidCatch(o){if(!(o instanceof Promise))throw o;this.__c(o,this.__v.__k[0])}shouldComponentUpdate(o,c){return!(c.waiting&&c.held)}render(){return this.state.waiting&&!this.state.held?this.props.fallback:this.props.children}};var se=Wt(()=>import("./composer-261cde2206340a07.js").then(n=>n.NewTaskButton),{loading:()=>t("button",{type:"button",class:"btn new-task",disabled:!0,children:[t(F,{d:bt}),"New task"]})}),ie={dashboard:yt,cli:kt,schedule:vt},Xt=n=>ie[n]??Tt;function ae(n,o,c){let a=Math.round((o-n)/6e4);return a<1?"just now":a<60?`${a} min ago`:a<1440?`${Math.round(a/60)} h ago`:ft(n,c)}function de({task:n,brand:o,back:c,scoped:a,tz:m,now:s,onDone:g,onError:k}){let A=n.startedAt===void 0?void 0:(n.finishedAt??s)-n.startedAt,v=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(Pt,{class:"cover",href:"/dash/tasks/[id]",params:{id:n.task.id},search:c?{back:c}:void 0,children:Ot(n)}),t("span",{class:"sub",children:[a?null:t($,{children:[t(F,{d:tt}),`${n.task.agent} \xB7 `]}),t(Bt,{value:n.task.id}),l?` \xB7 ${l}`:null,n.task.cwd?t($,{children:[" \xB7 ",t("span",{title:n.task.cwd,children:[t(F,{d:wt}),$t(n.task.cwd)]})]}):null]})]}),t("td",{children:t(St,{status:n.status})}),t("td",{class:"when",title:mt(n.createdAt,m),children:ae(n.createdAt,s,m)}),t("td",{class:"num",children:pt(A)}),t("td",{children:[t("span",{class:"source",title:nt(v),children:[o?t(rt,{brand:o}):t(F,{d:Xt(v)}),nt(v)]}),t("span",{class:"row-acts",children:t(ce,{task:n,onDone:g,onError:k})})]})]})}function ce({task:n,onDone:o,onError:c}){let[a,m]=T(),s=(g,k)=>{c(""),(g==="approve"?R.tasks.approve(n.task.id,Yt(n.approval).id??"",k??"decline"):g==="delete"?R.tasks.delete(n.task.id):R.tasks[g](n.task.id)).then(()=>o(g),v=>c(ht(v))).finally(()=>m(void 0))};return t($,{children:[t(Ct,{summary:t(F,{d:gt}),summaryClass:"icon-btn",label:"Task actions",align:"right",children:[n.approval?t(B,{title:"Approve",onClick:()=>s("approve","accept")}):null,n.approval?t(B,{title:"Deny",onClick:()=>s("approve","decline")}):null,It(n)?t(B,{title:"Stop",onClick:()=>s("cancel")}):null,n.archivedAt?null:t(B,{title:"Archive",onClick:()=>s("archive")}),t(B,{title:"Delete",danger:!0,onClick:()=>m("ask")})]}),t(zt,{open:!!a,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:a==="busy",onConfirm:()=>{m("busy"),s("delete")},onClose:()=>m(void 0)})]})}function Ve({first:n,platforms:o,brands:c={},agents:a=[],filters:m,agent:s,head:g,missing:k,tz:A,now:v}){let{values:l,set:d,query:i}=Ht(m),M=jt(m),C=s?`&agent=${encodeURIComponent(s)}`:"",E=s?`/dash/agents/${encodeURIComponent(s)}/tasks`:"/dash/tasks",K=i||s?`${E}${i?`?${i}`:""}`:void 0,D={limit:ot,summary:!0,counts:!0,...xt(l),agent:s??l.agent},P=[{key:"status",label:"Status",options:Et,inline:!0},{key:"source",label:"Source",options:[..._t,...o],icon:e=>c[e]?t(rt,{brand:c[e]}):Xt(e)}];s||P.push({key:"agent",label:"Agent",options:a,icon:()=>tt,search:(e,p)=>R.agents.list({cursor:"",limit:p,q:e}).then(r=>r.items.map(h=>[h.id,h.name]))});let b=Ft({name:`tasks${C}`,fetchPage:e=>R.tasks.list({...D,cursor:e}),query:i,first:n,initial:M}),[x,N]=T({rows:{},added:[]}),[Zt,_]=T([]);q(()=>_([]),[i]);let[te,ee]=T(""),V=Nt(b.rows,x.query===i?x.added:[],x.rows).filter(e=>!Zt.includes(e.task.id)),I=(x.query===i?x.counts:void 0)??b.meta.counts,U=u(),j=u(!1),Y=u(!1),it=u(),at=u(!1),J=u(0),Q=u(0),G=u({}),W=u(!1),O=(e=!1)=>{if(W.current||=e,document.visibilityState==="hidden")return void(Y.current=!0);if(U.current)return void(j.current=!0);let p=U.current=Date.now(),r=Q.current,h=W.current?V:[];W.current=!1,(async()=>{let w=await R.tasks.list({...D,limit:Math.min(200,Math.max(ot,h.length)),cursor:""}),S=w,H=[...w.items];for(;S.next&&H.length<h.length;)S=await R.tasks.list({...D,limit:200,cursor:S.next}),H.push(...S.items);return{...S,items:H,counts:w.counts}})().then(w=>{if(Q.current!==r)return;let S=w.items.at(-1),H=new Set(w.items.map(y=>y.task.id)),ct=h.filter(y=>!H.has(y.task.id)&&(G.current[y.task.id]??0)<=p&&(!w.next||S&&Lt(y,S)<0));ct.length&&_(y=>[...y,...ct.map(L=>L.task.id)]),N(y=>({rows:{...y.rows,...Object.fromEntries(w.items.filter(L=>(G.current[L.task.id]??0)<=p).map(L=>[L.task.id,{...y.rows[L.task.id],...L}]))},added:Mt(y.query===i?y.added:[],w.items),counts:w.counts,query:i})),J.current=0}).catch(()=>{J.current++,j.current=!0}).finally(()=>{if(!at.current){if(!j.current)return void(U.current=void 0);j.current=!1,it.current=setTimeout(()=>{U.current=void 0,X.current()},Math.min(3e4,1e3*2**J.current))}})},X=u(O);X.current=O,q(()=>{let e=()=>{document.visibilityState!=="visible"||!Y.current||(Y.current=!1,X.current())};return addEventListener("visibilitychange",e),()=>{removeEventListener("visibilitychange",e),clearTimeout(it.current),at.current=!0}},[]);let ne=Dt();return Rt(e=>{let p=V.find(r=>r.task.id===e.id);if(!p){e.deleted||e.archivedAt&&l.status!=="archived"?_(r=>[...r,e.id]):_(r=>r.includes(e.id)?r.filter(h=>h!==e.id):r),N(r=>{let{[e.id]:h,...dt}=r.rows;return h?{...r,rows:dt}:r}),(e.deleted||(s||l.agent||e.agent)===e.agent)&&O();return}if(G.current[e.id]=Date.now(),U.current&&(j.current=!0),(e.deleted||e.status!==p.status||!!e.archivedAt!=!!p.archivedAt)&&O(),e.deleted||e.archivedAt&&l.status!=="archived")return _(r=>[...r,e.id]);N(r=>{let h=r.rows[e.id]??p;return{...r,rows:{...r.rows,[e.id]:{...h,status:e.status,approval:e.approval??void 0,archivedAt:e.archivedAt,startedAt:e.startedAt,finishedAt:e.finishedAt}}}})},()=>{Q.current++,G.current={},N({rows:{},added:[]}),_([]),ne.refresh()},()=>O(!0)),t($,{children:[t(Vt,{head:g,action:g?t(se,{}):void 0,children:[t(Kt,{value:l.q,label:"Search tasks",onInput:e=>d("q",e,250)}),t(Ut,{name:"tasks",facets:P,values:l,onChange:d})]}),k?t(qt,{}):null,t(At,{title:"Tasks",count:I?z(I.all):void 0,actions:I?t($,{children:[t(ut,{value:te}),I.active?t("button",{type:"button",class:"badge acc",onClick:()=>d("status","active"),children:[z(I.active)," active"]}):null,I.waiting?t("button",{type:"button",class:"badge warn",onClick:()=>d("status","waiting"),children:[z(I.waiting)," awaiting approval"]}):null]}):void 0,children:[V.length?t("div",{class:"table-scroll",children:t("table",{class:"rows tasks stacked","aria-busy":b.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:V.map(e=>t(de,{task:e,brand:c[e.task.event?.integration??e.task.source],back:K,scoped:!!s,tz:A,now:v,onError:ee,onDone:p=>{(p==="delete"||p==="archive"&&l.status!=="archived")&&_(r=>[...r,e.task.id]),O()}},e.task.id))})]})}):b.stale?null:i?t(et,{title:"No tasks match",children:"Try another search or filter."}):t(et,{title:"No tasks yet",children:s?"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(Gt,{noun:"tasks",...b})]})]})}export{Ve as TasksList};
@@ -1 +1 @@
1
- import{c as T,d as b}from"./paged-3ddb6077bef42752.js";import{a as y}from"./sentinel-b4c91a38a5d79219.js";import{$3v as h}from"./shared-init-8a34c730aabe942d.js";import{$0a as g}from"./shared-init-17c1fd399ac53851.js";import{$2a as e}from"./shared-init-17c1fd399ac53851.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-9e882d8ad784d4bd.js";import{$4v as h}from"./shared-init-cf66e1c1a2f30ef1.js";import{$2a as g}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as e}from"./shared-init-bee5eaed36ee3dc4.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-74153aeac1f0baec.js";import{b as a,e as l}from"./paged-3ddb6077bef42752.js";import{a as p}from"./badge-9984d2fd0e7f995d.js";import"./card-818c7a0d580e2e0d.js";import{a as n}from"./format-b19b8eec331414f4.js";import{$1b as s}from"./shared-init-17c1fd399ac53851.js";import{$2a as e}from"./shared-init-17c1fd399ac53851.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-5a5f739bca637202.js";import{b as a,e as l}from"./paged-3ddb6077bef42752.js";import{a as p}from"./badge-b8e1e1429e8418e8.js";import"./card-abb16544e8e5a5e0.js";import{a as n}from"./format-b19b8eec331414f4.js";import{$1b as s}from"./shared-init-bee5eaed36ee3dc4.js";import{$0a as e}from"./shared-init-bee5eaed36ee3dc4.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};