@wular/coder 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/dist/{actions-DO8MvHwc.js → actions-C35tq9KH.js} +2 -2
  2. package/dist/{agent-Cgala63h.js → agent-BZR4Eqdc.js} +1 -1
  3. package/dist/{apps-BORri-28.js → apps-CCqOsEZH.js} +4 -4
  4. package/dist/{async-BS9tyhva.js → async-BP5q3Une.js} +1 -1
  5. package/dist/{auth-C16ylySv.js → auth-CJOm9_Vh.js} +1 -1
  6. package/dist/{chat-czruXAt3.js → chat-BD2Fu3jU.js} +1 -1
  7. package/dist/cli.js +2 -2
  8. package/dist/{cmd-C1gHyVG7.js → cmd-BH1bmZGs.js} +29 -29
  9. package/dist/{connection-CgA5_NJ7.js → connection-DNzNYpha.js} +1 -1
  10. package/dist/{context-C1XBbfEL.js → context-DVGPu7f_.js} +1 -1
  11. package/dist/dash/standalone/server/build-index.json +1 -1
  12. package/dist/dash/standalone/server/manifest.json +1305 -1297
  13. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.91e126d7a389d4bd.js → index.a036e2c6ae93ec75.js} +3 -2
  14. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.858c062c7891a2c1.js → load.3e1c235ecb89201a.js} +1 -1
  15. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.9375ab741dc9791e.js → page.182d84c6c82e23ce.js} +3 -3
  16. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.56c14183236be231.js → loading.d336cb9556ff8727.js} +1 -1
  17. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.c36570a56d279ce2.js → notify.62f2ed40b52a8634.js} +1 -1
  18. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.13fdd9cc55ad3a52.js → page.ff2419800c956e8d.js} +4 -4
  19. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.38a7f39cddc670f7.js → sign-out.e125b18b5682b3eb.js} +2 -2
  20. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.5c780867b82081b1.js → agent-menu.eae818909ed5becf.js} +1 -1
  21. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.2385ffa8fdad08d6.js → agents-grid.dcc8b20efd8850e6.js} +5 -5
  22. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.0130f8533d8f1b1e.js → loading.061efc737835250f.js} +2 -2
  23. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.5ca6921e50484f8c.js → page.6704febb2a60975e.js} +6 -6
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.afc4a8a5a8360975.js → layout.32acdff971049f4d.js} +8 -8
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.ba65063a1aa99a62.js → page.1208c1115d309a62.js} +6 -6
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.d56ef50b0694f975.js → loading.e4f77e054d5a5f00.js} +2 -2
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.03c5e72b0fe50ba9.js → page.630dd03a59048b88.js} +14 -14
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.7c8c75bd0c05df4a.js → platform-actions.184f6c441ac3d1c7.js} +5 -5
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-step.d6a980d1181dc940.js → platform-step.d97e9a2290dbfae3.js} +1 -1
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.b5299f5130a4e8af.js → agent-settings-form.840d93eb2ba648bd.js} +8 -8
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.2800c65e45a4a1d9.js → loading.707d269a647b6f56.js} +1 -1
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.fad77cea17947d47.js → page.b79c235f7735fc3e.js} +6 -6
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.4120e6979eaed441.js → loading.10ca51cc6fb65391.js} +1 -1
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.474b3524d5ea53b7.js → page.a09314f795d5e740.js} +1 -1
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.3a615597ca648452.js → loading.10a0ff0d99710f70.js} +2 -2
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.7868a07efcaa26f4.js → page.d88040124d4d2053.js} +4 -4
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.ba93a53773cab8a8.js → versions-list.e6088baf4de7f41e.js} +1 -1
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.6e53829bd1f3021d.js → loading.5228229c48332ccd.js} +3 -3
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.5798ede8ba8ace97.js → page.c60cf1ea8ede39f6.js} +7 -7
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{app-cards.55778a4b3177846d.js → app-cards.f17ab135e3e31e00.js} +2 -2
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{loading.f0d91d48e2b79e50.js → loading.de17198764c127f5.js} +2 -2
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{page.ce391cad0d78795f.js → page.706499514893c5e0.js} +5 -5
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.1012e04bfbc7bffd.js → agent-pills.bd9808856ef860f3.js} +1 -1
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.0cec822c6099f058.js → agent-toggle.901667176840cd25.js} +2 -2
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.7151c467e7ecf6a5.js → hero.fd2ffbf999c6c1e9.js} +3 -3
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.4e121d31ed0cfe02.js → connect-repositories.e27bcba279f82d7b.js} +1 -1
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.f314d92af0bb33b0.js → editor.edcfc2f0692e9059.js} +10 -10
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.11028d5329ad537b.js → import-picker.515ab6c14afe14ac.js} +5 -5
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.9b65a8c1cdc8346f.js → loading.0cf7535fa7af7fbd.js} +2 -2
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.1476d31e4554e88b.js → page.95eb2cd0671e7f6e.js} +5 -5
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.150d950d191db477.js → layout.87f5bb00d4e34e6b.js} +7 -7
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.3e72de86b86a7338.js → operator-apps.6a9975e2f64a9e5b.js} +6 -6
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.6a4be3b1a473ff8c.js → page.3691b55916b17d14.js} +6 -6
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.262ed73437c17872.js → page.7de674df6cd0e824.js} +1 -1
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{advanced-list.7180570379e2625c.js → advanced-list.c7821de9a79fb144.js} +1 -1
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connection-add.632b1847c16ecd42.js → connection-add.f102abaca93416ff.js} +7 -7
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.4378ae707b2092ed.js → connections-list.098f57fd6b1570d8.js} +8 -8
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.e47897acb6867df8.js → credentials-list.2a2d391b2fc563fc.js} +7 -7
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.6bd06f96afbe7329.js → credentials.0eeab14f7a6236bb.js} +8 -8
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.38e70272eeb98cd0.js → list.5a1847f3ed97bc5b.js} +3 -3
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.a08cd37d0f7ff86c.js → models-list.d0954eca1a1ca3d2.js} +9 -9
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.f096b5a9ac419326.js → page.f0e75930eb08c4bc.js} +14 -14
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.0df1f9329df1b67d.js → runners-list.74bcad5271e5de01.js} +6 -6
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.6d2f56fa7d6fcab0.js → secrets-list.d0c1121f216e0bcb.js} +4 -4
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.0fd865c865e5bab4.js → layout.05700d93abe5a3d4.js} +4 -4
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-pick.695538b2edf9dd15.js → model-pick.1d99ed9c886cabe5.js} +2 -2
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.c57b81c2197cce0f.js → page.e439da4bae9d6d6c.js} +1 -1
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.004ced21e02ffa48.js → settings-head.08ab3f9bad326d47.js} +1 -1
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.60aadbe43ea1e39c.js → create-link.161d0d636ca45721.js} +3 -3
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-toast.e2b9ef0344b1a1a2.js → outcome-toast.d6d0bd8663377fda.js} +1 -1
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.c456ad99c8a9f875.js → page.5f90915ba7faa83d.js} +5 -5
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.2ec05d78d609b7b2.js → activity.f8d48c80747830ee.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.779ecdd9c9d2ff09.js → loading.3966ea5aa984c177.js} +4 -4
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.578be2f6c89fcba0.js → page.8ad4907125ab2593.js} +16 -10
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.d131453dd2a423c3.js → task-actions.f4e6ea3320e0ae23.js} +14 -22
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-missing.33ec27a4a5eafefe.js → task-missing.66dc41e2c7b199fb.js} +1 -1
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.3d72a4ecd2b3826e.js → task-view.b7b9a82526087a6f.js} +83 -22
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.97be3e67214889c1.js → composer.91fe18526ebad717.js} +10 -10
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{pending-approvals.9175908da02960e1.js → pending-approvals.319cefed5e3adb15.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.a25847399a4dfb30.js → task.fcd21a71424503e9.js} +27 -7
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.028798c79227a366.js → tasks-list.550288bcec62fea5.js} +61 -44
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.9a9d13057b326f25.js → tasks-section.7e3bc3398baec1bd.js} +7 -7
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.045c6db0c56975b2.js → page.98767f77d0fd9a05.js} +3 -3
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.5b973a8bb29197d5.js → loading.d2482006f8adc43a.js} +2 -2
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.938d29ff7edb678d.js → page.26319c38995aceca.js} +4 -4
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.0b9038e9df707843.js → range-bar.3086edd9a97046c2.js} +2 -2
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.77bea8c5870b5d3c.js → loading-card.94d5645c958c77e9.js} +2 -2
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.2eb1e0213eb50349.js → page-head.a6bd4a75087e6e53.js} +1 -1
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.2cdb8eabd8f6df70.js → stream.c7ffa724145ce870.js} +1 -1
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.8733901ca0e4c246.js → task-toasts.168a3d3f5fd52cb4.js} +48 -21
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.fc86071c1b634176.js → theme-choices.9d0674c72d0ce188.js} +1 -1
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.7aa0ae82dbec38cd.js → back.95ed3b5a6128d557.js} +2 -2
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.853d173b55368728.js → org.efcee1c3404f6345.js} +1 -1
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.e4e08287494081a3.js → combo.3acd48652c3a66a6.js} +2 -2
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.0730dccad6332327.js → filter.6468dec3a8faed6f.js} +6 -6
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.759a1b1f7c5ee365.js → menu-items.725ede2a88ea76a9.js} +7 -3
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.0ee9e8f04ddd8b47.js → select.b712227920cd0845.js} +1 -1
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.56cea462eb725c39.js → action.55bd1d3e1b67a67e.js} +1 -1
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.685154f230716834.js → client.b9225923da59febe.js} +1 -1
  100. package/dist/dash/standalone/static/assets/chunks/{advanced-list-b75a9c2bd11026de.js → advanced-list-d9a68433a13416df.js} +1 -1
  101. package/dist/dash/standalone/static/assets/chunks/{agent-pills-54564413a57d7fa7.js → agent-pills-1414a96077ec37de.js} +1 -1
  102. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-55d294dad2ce5a0d.js → agent-settings-form-73da6b4b714e49b4.js} +1 -1
  103. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-b5dcc4ea6292fb3d.js → agent-toggle-d14e2838d11ab0f7.js} +1 -1
  104. package/dist/dash/standalone/static/assets/chunks/{agents-grid-69461c53abbba433.js → agents-grid-aea25444710f2634.js} +1 -1
  105. package/dist/dash/standalone/static/assets/chunks/{back-ba5e4340a9f8bbd2.js → back-57d4a59bf80377e6.js} +1 -1
  106. package/dist/dash/standalone/static/assets/chunks/{chain-hint-491eb09a20a15702.js → chain-hint-dcb6933d6f8a6324.js} +1 -1
  107. package/dist/dash/standalone/static/assets/chunks/{combo-6df61e8a1cc31037.js → combo-460bff876882c694.js} +1 -1
  108. package/dist/dash/standalone/static/assets/chunks/{composer-198b844da57b82a3.js → composer-8d12a215b107c9b3.js} +1 -1
  109. package/dist/dash/standalone/static/assets/chunks/composer-fe63697f84a538c2.js +1 -0
  110. package/dist/dash/standalone/static/assets/chunks/{confirm-14d018653fbe50fc.js → confirm-c0c0642856e64b11.js} +1 -1
  111. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-5118edc019fc7890.js → connect-repositories-3a317a5db3ea50b1.js} +1 -1
  112. package/dist/dash/standalone/static/assets/chunks/{connections-list-5412dad7e0def52f.js → connections-list-0110d160a25b388c.js} +1 -1
  113. package/dist/dash/standalone/static/assets/chunks/{copy-04781f9af4e10f06.js → copy-eeb076af6e19e501.js} +1 -1
  114. package/dist/dash/standalone/static/assets/chunks/create-link-e72ff4dd7ef06e1c.js +1 -0
  115. package/dist/dash/standalone/static/assets/chunks/{credentials-list-e64c973aee5602d3.js → credentials-list-90e6a2436041b18d.js} +1 -1
  116. package/dist/dash/standalone/static/assets/chunks/{custom-range-b6919bab9846ebf7.js → custom-range-721477a24237c90d.js} +1 -1
  117. package/dist/dash/standalone/static/assets/chunks/{editor-68e9ccd1764fc512.js → editor-64f6563f28d53ec5.js} +1 -1
  118. package/dist/dash/standalone/static/assets/chunks/{field-adcb6e6a5f9b7131.js → field-7c895f6d8d5d9eb3.js} +1 -1
  119. package/dist/dash/standalone/static/assets/chunks/{instructions-7b274685ceb26457.js → instructions-7b1485330fc4e8fd.js} +1 -1
  120. package/dist/dash/standalone/static/assets/chunks/instructions-ed61f719baf13b12.js +1 -0
  121. package/dist/dash/standalone/static/assets/chunks/{list-662f042656857c82.js → list-c0633e5e742dff16.js} +1 -1
  122. package/dist/dash/standalone/static/assets/chunks/{models-list-ae1e2eff30d21824.js → models-list-228b3503307bc1ff.js} +1 -1
  123. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-fd86ded4c44c2de7.js → outcome-dialog-36842dfe50be1c85.js} +1 -1
  124. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-630b20ddff39b01d.js +1 -0
  125. package/dist/dash/standalone/static/assets/chunks/outcome-toast-b7e33ff0d984f359.js +1 -0
  126. package/dist/dash/standalone/static/assets/chunks/{platform-actions-f3979ab69a6ceb53.js → platform-actions-055a2e246fca7af9.js} +1 -1
  127. package/dist/dash/standalone/static/assets/chunks/platform-actions-9e198b0c88df3206.js +1 -0
  128. package/dist/dash/standalone/static/assets/chunks/platform-step-111051da80de6577.js +1 -0
  129. package/dist/dash/standalone/static/assets/chunks/{platform-step-5454b6c0a19caefd.js → platform-step-c7473e57e0b2f824.js} +1 -1
  130. package/dist/dash/standalone/static/assets/chunks/{runners-list-20d42f19fb4bec8a.js → runners-list-973253df985a8306.js} +1 -1
  131. package/dist/dash/standalone/static/assets/chunks/{runtime-3fcac605fffcc273-1.js → runtime-9b28886f3cbe0ed3-1.js} +1 -1
  132. package/dist/dash/standalone/static/assets/chunks/{secrets-list-89f89ee70edb3856.js → secrets-list-4aa6e2bf0fef06d6.js} +1 -1
  133. package/dist/dash/standalone/static/assets/chunks/{segmented-66a8c77c6294fec3.js → segmented-a994b4c20434c0ad.js} +1 -1
  134. package/dist/dash/standalone/static/assets/chunks/shared-init-4f4cac48ca0ef193.js +9 -0
  135. package/dist/dash/standalone/static/assets/chunks/shared-init-5734a91cdb78a173.js +1 -0
  136. package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +1 -0
  137. package/dist/dash/standalone/static/assets/chunks/{shared-init-96225b8c7758de9d.js → shared-init-e8cf924a73e46497.js} +1 -1
  138. package/dist/dash/standalone/static/assets/chunks/side-toggle-a2d07f99f136e975.js +1 -0
  139. package/dist/dash/standalone/static/assets/chunks/{tail-40f16e09eade7eee.js → tail-d3ba4c4035c5453e.js} +1 -1
  140. package/dist/dash/standalone/static/assets/chunks/task-3b17e45e271a6480.js +1 -0
  141. package/dist/dash/standalone/static/assets/chunks/task-actions-e0c202536048edc0.js +3 -0
  142. package/dist/dash/standalone/static/assets/chunks/task-view-3822a8fe44f4aa92.js +3 -0
  143. package/dist/dash/standalone/static/assets/chunks/tasks-list-cb838b88110bbbb4.js +1 -0
  144. package/dist/dash/standalone/static/assets/chunks/{versions-list-ceb756236e69b761.js → versions-list-7cb9db8c25cdfaa7.js} +1 -1
  145. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-3fcac605fffcc273-0.js → wular-pnext-9b28886f3cbe0ed3-0.js} +1 -1
  146. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-dd4ac319a0d62432.css → dash-param-org-agents-param-slug-ea5e0d8593150b35.css} +1 -1
  147. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-platforms-9d2e1439f3f7e81b.css → dash-param-org-agents-param-slug-platforms-b45dbb9122cc7338.css} +1 -1
  148. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-usage-9cc128ba8af6ef62.css → dash-param-org-agents-param-slug-settings-2a7be18387a422ff.css} +1 -1
  149. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-tasks-c8d6aa06f6e75f4c.css → dash-param-org-agents-param-slug-tasks-d12ff8047806bbf5.css} +1 -1
  150. package/dist/dash/standalone/static/assets/{dash-param-org-agents-param-slug-settings-f21d4fcd3948139b.css → dash-param-org-agents-param-slug-usage-72b55bb80667080b.css} +1 -1
  151. package/dist/dash/standalone/static/assets/{dash-param-org-tasks-be3cb3d64573f3d9.css → dash-param-org-tasks-e040b6497646a8a0.css} +1 -1
  152. package/dist/dash/standalone/static/assets/{dash-param-org-tasks-param-id-c20a0537bc82620d.css → dash-param-org-tasks-param-id-7df5e6c891e9e77f.css} +1 -1
  153. package/dist/dash/standalone/static/assets/pnext-client-019fddb658ef621e.js +1 -0
  154. package/dist/dash/standalone/static/assets/pnext-client-025682238ebc1ccd.js +1 -0
  155. package/dist/dash/standalone/static/assets/pnext-client-05cb69349250f079.js +1 -0
  156. package/dist/dash/standalone/static/assets/pnext-client-0abd872e45d259dd.js +1 -0
  157. package/dist/dash/standalone/static/assets/pnext-client-19072249ab9d929f.js +1 -0
  158. package/dist/dash/standalone/static/assets/pnext-client-24b6f98a5e678977.js +1 -0
  159. package/dist/dash/standalone/static/assets/pnext-client-2ed3001f7f4597c0.js +1 -0
  160. package/dist/dash/standalone/static/assets/pnext-client-3028d0d201243815.js +1 -0
  161. package/dist/dash/standalone/static/assets/pnext-client-63d9e54053266337.js +1 -0
  162. package/dist/dash/standalone/static/assets/pnext-client-7bfb634b06062acf.js +1 -0
  163. package/dist/dash/standalone/static/assets/pnext-client-915218deeaa531f2.js +1 -0
  164. package/dist/dash/standalone/static/assets/{pnext-client-b1af82c6f0db0033.js → pnext-client-a62685439dab6db4.js} +1 -1
  165. package/dist/dash/standalone/static/assets/{pnext-client-435db60553fa3a67.js → pnext-client-a793df411dc27890.js} +1 -1
  166. package/dist/dash/standalone/static/assets/pnext-client-ae5f820b1e3add50.js +1 -0
  167. package/dist/dash/standalone/static/assets/pnext-client-ba17d46e9f8417f8.js +1 -0
  168. package/dist/dash/standalone/static/assets/pnext-client-dbca01dae6b3ad8c.js +1 -0
  169. package/dist/dash/standalone/static/assets/pnext-client-ec303fb1cec93d9f.js +1 -0
  170. package/dist/dash/standalone/static/assets/pnext-client-ec8fde62be82a077.js +1 -0
  171. package/dist/dash/standalone/static/assets/pnext-client-f659576f3d4fea61.js +1 -0
  172. package/dist/dash/standalone/static/assets/pnext-client-f715825f54bb8e89.js +1 -0
  173. package/dist/{drive-B7SBFfcb.js → drive-MggMiKA0.js} +1 -1
  174. package/dist/{exec-D9jF2F-H.js → exec-CNygM6yF.js} +1 -1
  175. package/dist/{executor-DBW7R7Tf.js → executor-Ds4wDCzV.js} +1 -1
  176. package/dist/flow/builtin/review/index.js +1 -1
  177. package/dist/flow/index.js +1 -1
  178. package/dist/{hook-DN__zYOG.js → hook-CVJU-ZD0.js} +1 -1
  179. package/dist/{local-BzMvgiwL.js → local-CqOUpEtl.js} +1 -1
  180. package/dist/{local-GIxwz_Or.js → local-DFrTuJFN.js} +1 -1
  181. package/dist/{login-LlZrIlxb.js → login-93jO9qjx.js} +1 -1
  182. package/dist/{maintenance-DyiyHI8S.js → maintenance-BuDKnfc7.js} +1 -1
  183. package/dist/{mcp-CrtKQoVi.js → mcp-CTVOR7r6.js} +1 -1
  184. package/dist/{mcp-Caq72REF.js → mcp-EwT2mCaa.js} +1 -1
  185. package/dist/{models-BVxs3I8o.js → models-mKyePWrV.js} +1 -1
  186. package/dist/{permission-RSZM3DUk.js → permission-F6F25GJU.js} +1 -1
  187. package/dist/remote-Cl-j8r3W.js +1 -0
  188. package/dist/{runner-CKMOh5Q3.js → runner-DK0jnzPr.js} +1 -1
  189. package/dist/runner.json +1 -1
  190. package/dist/runner.tgz +0 -0
  191. package/dist/schema.js +1 -1
  192. package/dist/sdk.d.ts +34 -0
  193. package/dist/sdk.js +1 -1
  194. package/dist/serve-Cqlkgdfd.js +8 -0
  195. package/dist/{serve-YlU04KO7.js → serve-DHe6dZM6.js} +1 -1
  196. package/dist/{session-D7eeJIaH.js → session-BMbMzzPu.js} +1 -1
  197. package/dist/{shared-BzNReirj.js → shared-D-KqAi7b.js} +1 -1
  198. package/dist/{sign-in-Dr6sU7vz.js → sign-in-Dv-rdYD4.js} +1 -1
  199. package/dist/{store-BrnWdtRw.js → store-BpDipcKB.js} +18 -18
  200. package/dist/{task-CyqtCXo3.js → task-BRHXn5y1.js} +1 -1
  201. package/dist/{task-DN4assR8.js → task-CzXNLREX.js} +1 -1
  202. package/dist/{tools-DVtBtED6.js → tools-BCm26CeV.js} +1 -1
  203. package/dist/{tools-Ck-ZWtmB.js → tools-C69W1B6S.js} +1 -1
  204. package/dist/{tools-search-BNDea9vZ.js → tools-search-BDaeCoWe.js} +1 -1
  205. package/dist/{worker-DeuC38Vp.js → worker-DGhRPDDt.js} +2 -2
  206. package/dist/{worker-DJANNSCT.js → worker-DHNBRRl-.js} +1 -1
  207. package/package.json +1 -1
  208. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  209. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  210. package/dist/dash/standalone/static/assets/chunks/composer-b26a3332a1243461.js +0 -1
  211. package/dist/dash/standalone/static/assets/chunks/create-link-0651addf1461f901.js +0 -1
  212. package/dist/dash/standalone/static/assets/chunks/instructions-0022dd3bdd57c13f.js +0 -1
  213. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-546fe090efc129c2.js +0 -1
  214. package/dist/dash/standalone/static/assets/chunks/outcome-toast-c00becdb638cd9a8.js +0 -1
  215. package/dist/dash/standalone/static/assets/chunks/platform-actions-2be223e68e648134.js +0 -1
  216. package/dist/dash/standalone/static/assets/chunks/platform-step-9a52703f4c4f6a31.js +0 -1
  217. package/dist/dash/standalone/static/assets/chunks/shared-init-3fcac605fffcc273-2.js +0 -1
  218. package/dist/dash/standalone/static/assets/chunks/shared-init-96cde32cd50254c0.js +0 -1
  219. package/dist/dash/standalone/static/assets/chunks/shared-init-abd7653140f37a0c.js +0 -9
  220. package/dist/dash/standalone/static/assets/chunks/side-toggle-8a410cc6d6bd9b1d.js +0 -1
  221. package/dist/dash/standalone/static/assets/chunks/task-396d849e58e50d59.js +0 -1
  222. package/dist/dash/standalone/static/assets/chunks/task-actions-0b3054dc0f8d17c0.js +0 -3
  223. package/dist/dash/standalone/static/assets/chunks/task-view-9e026dc5da58af5b.js +0 -3
  224. package/dist/dash/standalone/static/assets/chunks/tasks-list-04c6568d7f7237b7.js +0 -1
  225. package/dist/dash/standalone/static/assets/pnext-client-07b41bfab64b61c0.js +0 -1
  226. package/dist/dash/standalone/static/assets/pnext-client-0d388d56250f9f46.js +0 -1
  227. package/dist/dash/standalone/static/assets/pnext-client-1443e45181b60bb0.js +0 -1
  228. package/dist/dash/standalone/static/assets/pnext-client-27207e4f43f9a21b.js +0 -1
  229. package/dist/dash/standalone/static/assets/pnext-client-523dd4071aa294ba.js +0 -1
  230. package/dist/dash/standalone/static/assets/pnext-client-5f6bda3919f68382.js +0 -1
  231. package/dist/dash/standalone/static/assets/pnext-client-684fd8ad16563ed3.js +0 -1
  232. package/dist/dash/standalone/static/assets/pnext-client-6b952cdda9a1eb2b.js +0 -1
  233. package/dist/dash/standalone/static/assets/pnext-client-6fe9e98f7dd8dcbf.js +0 -1
  234. package/dist/dash/standalone/static/assets/pnext-client-730c2c507a159f9e.js +0 -1
  235. package/dist/dash/standalone/static/assets/pnext-client-7c46573e45b67166.js +0 -1
  236. package/dist/dash/standalone/static/assets/pnext-client-83a865c3d75705bd.js +0 -1
  237. package/dist/dash/standalone/static/assets/pnext-client-907d1db4fb398a1d.js +0 -1
  238. package/dist/dash/standalone/static/assets/pnext-client-9baf701f3e641d09.js +0 -1
  239. package/dist/dash/standalone/static/assets/pnext-client-a57705e4e1047a9e.js +0 -1
  240. package/dist/dash/standalone/static/assets/pnext-client-cede3bd7b2735942.js +0 -1
  241. package/dist/dash/standalone/static/assets/pnext-client-d9a3996f22b6816b.js +0 -1
  242. package/dist/dash/standalone/static/assets/pnext-client-f95364a0073ca4ce.js +0 -1
  243. package/dist/remote-CY-qYX2C.js +0 -1
  244. package/dist/serve-D23JqDip.js +0 -12
  245. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.440367ae07204ee7.css.pnext-asset.js → task-view.61d4afa987d59596.css.pnext-asset.js} +0 -0
  246. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.f3737549b4696cc8.css.pnext-asset.js → tasks-list.835b11dc95c95cb5.css.pnext-asset.js} +0 -0
@@ -1,3 +0,0 @@
1
- "use client";import{a as Me,c as xe,d as Oe,e as Ce,f as Ie}from"./task-actions-0b3054dc0f8d17c0.js";import{a as ze,b as At}from"./instructions-7b274685ceb26457.js";import{a as Ee,e as Tt,f as q,j as we,k as lt,l as Te,m as Ae}from"./task-396d849e58e50d59.js";import"./types-3eca2c7f47c46054.js";import"./confirm-14d018653fbe50fc.js";import"./segmented-66a8c77c6294fec3.js";import"./field-adcb6e6a5f9b7131.js";import{$0b as wt}from"./shared-init-96225b8c7758de9d.js";import{$1a as Et,$1b as Se,$1d as $,$1e as ye,$1h as ke}from"./shared-init-96225b8c7758de9d.js";import{$2b as Xt,$2c as Zt,$2d as Qt,$2e as te,$2h as ee,$2j as fe,$2k as me,$2n as kt,$2o as ve,$2p as be}from"./shared-init-abd7653140f37a0c.js";import{$0B as pe,$0C as ge,$0D as yt,$0c as Ut,$0m as St}from"./shared-init-abd7653140f37a0c.js";import{$1a as Jt,$1c as P,$1e as Yt,$1f as de,$1k as he,$1o as rt,$1r as Y}from"./shared-init-abd7653140f37a0c.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-abd7653140f37a0c.js";import{$3F as oe,$3G as re,$3J as le,$3K as ot,$3L as ae,$3M as ce,$3N as ue,$3Q as l,$3R as _,$3S as bt,$3b as Gt,$3c as se,$3d as gt,$3e as ne,$3h as nt,$3i as H,$3n as vt,$3s as ie,$3v as J,$3w as it}from"./shared-init-abd7653140f37a0c.js";import{$4b as Ht}from"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as F,$2h as M,$2i as pt,$2j as W,$2k as st,$2l as z,$2m as K}from"./shared-init-3fcac605fffcc273-2.js";var is=()=>innerHeight+scrollY>=document.documentElement.scrollHeight-48,Mt=()=>scrollTo({top:document.documentElement.scrollHeight});function at(n=!1){let[a,t]=M(n),s=z(n);return s.current=a,W(()=>{let i=location.pathname,r=()=>t(s.current=is()),o=new ResizeObserver(()=>s.current&&location.pathname===i&&Mt());return o.observe(document.body),addEventListener("scroll",r,{passive:!0}),s.current&&Mt(),r(),()=>{o.disconnect(),removeEventListener("scroll",r)}},[]),{following:a,follow:()=>{s.current=!0,t(!0),Mt()}}}function _e(n,a,t){let s=new Array(n);return new Proxy(s,{get(e,i,r){if(typeof i=="string"){let o=i.charCodeAt(0);if(o>=48&&o<=57){let u=+i;if(Number.isInteger(u)&&u>=0&&u<n){let f=e[u];if(!f){let d=a[u*2];f=e[u]={index:u,key:t(u),start:d,size:a[u*2+1],end:d+a[u*2+1],lane:0}}return f}}if(i==="length")return n}return Reflect.get(e,i,r)}})}function j(n,a,t){let s=t.initialDeps??[],e,i=!0;function r(){var o;let f=0,d=n();if(!(d.length!==s.length||d.some((y,m)=>s[m]!==y)))return e;s=d;let h=0;return e=a(...d),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(e),i=!1,e}return r.updateDeps=o=>{s=o},r}function xt(n,a){if(n===void 0)throw new Error(`Unexpected undefined${a?`: ${a}`:""}`);return n}var Re=(n,a)=>Math.abs(n-a)<1.01,De=(n,a,t)=>{let s;return function(...e){n.clearTimeout(s),s=n.setTimeout(()=>a.apply(this,e),t)}};var G,Ot=()=>{if(G!==void 0)return G;if(typeof navigator>"u")return G=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return G=!0;let n=navigator.maxTouchPoints;return G=navigator.platform==="MacIntel"&&n!==void 0&&n>0};var os=n=>n,rs=n=>{let a=Math.max(n.startIndex-n.overscan,0),s=Math.min(n.endIndex+n.overscan,n.count-1)-a+1,e=new Array(s);for(let i=0;i<s;i++)e[i]=a+i;return e};var X={passive:!0},Le=(n,a)=>{let t=n.scrollElement;if(!t)return;let s=()=>{a({width:t.innerWidth,height:t.innerHeight})};return s(),t.addEventListener("resize",s,X),()=>{t.removeEventListener("resize",s)}},ls=typeof window>"u"?!0:"onscrollend"in window,as=(n,a,t)=>{let s=n.scrollElement;if(!s)return;let e=n.targetWindow;if(!e)return;let i=n.options.useScrollendEvent&&ls,r=0,o=i?null:De(e,()=>a(r,!1),n.options.isScrollingResetDelay),u=g=>()=>{r=t(s),o?.(),a(r,g)},f=u(!0),d=u(!1);return s.addEventListener("scroll",f,X),i&&s.addEventListener("scrollend",d,X),()=>{s.removeEventListener("scroll",f),i&&s.removeEventListener("scrollend",d)}};var Fe=(n,a)=>as(n,a,t=>n.options.horizontal?t.scrollX:t.scrollY),cs=(n,a,t)=>{if(t.options.useCachedMeasurements){let s=t.indexFromElement(n),e=t.options.getItemKey(s);return t.itemSizeCache.get(e)??t.options.estimateSize(s)}if(a?.borderBoxSize){let s=a.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!a){let s=t.indexFromElement(n),e=t.options.getItemKey(s),i=t.itemSizeCache.get(e);if(i!==void 0)return i}return n[t.options.horizontal?"offsetWidth":"offsetHeight"]},us=(n,{adjustments:a=0,behavior:t},s)=>{var e,i;(i=(e=s.scrollElement)==null?void 0:e.scrollTo)==null||i.call(e,{[s.options.horizontal?"left":"top"]:n+a,behavior:t})},We=us;var ct=class{constructor(a){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,s,e;return((e=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:e.call(s))??Date.now()},this.observer=(()=>{let t=null,s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(e=>{e.forEach(i=>{let r=()=>{let o=i.target,u=this.indexFromElement(o);if(!o.isConnected){this.observer.unobserve(o);for(let[f,d]of this.elementsCache)if(d===o){this.elementsCache.delete(f);break}return}this.shouldMeasureDuringScroll(u)&&this.resizeItem(u,this.options.measureElement(o,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()})}));return{disconnect:()=>{var e;(e=s())==null||e.disconnect(),t=null},observe:e=>{var i;return(i=s())==null?void 0:i.observe(e,{box:"border-box"})},unobserve:e=>{var i;return(i=s())==null?void 0:i.unobserve(e)}}})(),this.range=null,this.setOptions=t=>{var s,e;let i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:os,rangeExtractor:rs,onChange:()=>{},measureElement:cs,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(let h in t){let y=t[h];y!==void 0&&(i[h]=y)}let r=this.options,o=null,u=null,f=!1;if(r!==void 0&&r.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){let h=r.count,y=i.count,m=this.getMeasurements(),w=h>0?((s=m[0])==null?void 0:s.key)??r.getItemKey(0):null,S=h>0?((e=m[h-1])==null?void 0:e.key)??r.getItemKey(h-1):null;if(y!==h||h>0&&y>0&&(i.getItemKey(0)!==w||i.getItemKey(y-1)!==S)){f=!0;let v=h>0?this.getVirtualItemForOffset(this.getScrollOffset())??m[0]:null;v&&(o=[v.key,this.getScrollOffset()-v.start]);let R=i.followOnAppend===!0?"auto":i.followOnAppend||null;R&&y>h&&this.isAtEnd(r.scrollEndThreshold)&&(h===0||i.getItemKey(y-1)!==S)&&(u=R)}}this.options=i,f&&(this.pendingMin=0,this.itemSizeCacheVersion++);let d=!1,g=0;if(o&&this.scrollOffset!==null){let[h,y]=o,m=this.getMeasurements(),{count:w,getItemKey:S}=this.options,k=0;for(;k<w&&S(k)!==h;)k++;if(k<w){let E=m[k];if(E){let v=E.start+y;v!==this.scrollOffset&&(g=v-this.scrollOffset,this.scrollOffset=v,d=!0)}}}(d||u)&&(this.pendingScrollAnchor=[d?o[0]:null,d?o[1]:0,u,g])},this.notify=t=>{var s,e;(e=(s=this.options).onChange)==null||e.call(s,this,t)},this.maybeNotify=j(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;let s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}if(this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,r)=>{this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=r?this.getScrollOffset()<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=r,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){let i=this.scrollElement,r=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},o=()=>{this._iosTouching=!1,!(!Ot()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",r,X),i.addEventListener("touchend",o,X),this.unsubs.push(()=>{i.removeEventListener("touchstart",r),i.removeEventListener("touchend",o),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let e=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,e&&this.scrollElement&&this.options.enabled){let[i,r,o,u]=e;i!==null&&!o&&(Ot()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?u!==0&&(this._iosDeferredAdjustment+=u):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),o&&this.scrollToEnd({behavior:o})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;let e=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=e,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(t,s)=>{let e=new Map,i=new Map;for(let r=s-1;r>=0;r--){let o=t[r];if(e.has(o.lane))continue;let u=i.get(o.lane);if(u==null||o.end>u.end?i.set(o.lane,o):o.end<u.end&&e.set(o.lane,!0),e.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((r,o)=>r.end===o.end?r.index-o.index:r.end-o.end)[0]:void 0},this.getMeasurementOptions=j(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(t,s,e,i,r,o,u)=>(this.prevLanes!==void 0&&this.prevLanes!==o&&(this.lanesChangedFlag=!0),this.prevLanes=o,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:e,getItemKey:i,enabled:r,lanes:o,laneAssignmentMode:u}),{key:!1}),this.getMeasurements=j(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:e,getItemKey:i,enabled:r,lanes:o,laneAssignmentMode:u},f)=>{let d=this.itemSizeCache;if(!r)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(let m of this.laneAssignments.keys())m>=t&&this.laneAssignments.delete(m);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(m=>{this.itemSizeCache.set(m.key,m.size)}));let g=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),o===1){let m=this.options.gap,w=t*2,S=this._flatMeasurements;if(!S||S.length<w){let v=new Float64Array(w);S&&g>0&&v.set(S.subarray(0,g*2)),S=v,this._flatMeasurements=S}let k;if(g===0)k=s+e;else{let v=g-1;k=S[v*2]+S[v*2+1]+m}for(let v=g;v<t;v++){let R=i(v),C=d.get(R),x=typeof C=="number"?C:this.options.estimateSize(v);S[v*2]=k,S[v*2+1]=x,k+=x+m}let E=_e(t,S,i);return this.measurementsCache=E,E}let h=this.measurementsCache.slice(0,g),y=new Array(o).fill(void 0);for(let m=0;m<g;m++){let w=h[m];w&&(y[w.lane]=m)}for(let m=g;m<t;m++){let w=i(m),S=this.laneAssignments.get(m),k,E,v=u==="estimate"||d.has(w);if(S!==void 0&&this.options.lanes>1){k=S;let D=y[k],Z=D!==void 0?h[D]:void 0;E=Z?Z.end+this.options.gap:s+e}else{let D=this.options.lanes===1?h[m-1]:this.getFurthestMeasurement(h,m);E=D?D.end+this.options.gap:s+e,k=D?D.lane:m%this.options.lanes,this.options.lanes>1&&v&&this.laneAssignments.set(m,k)}let R=d.get(w),C=typeof R=="number"?R:this.options.estimateSize(m),x=E+C;h[m]={index:m,start:E,size:C,end:x,key:w,lane:k},y[k]=m}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=j(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,e,i)=>this.range=t.length>0&&s>0?ds({measurements:t,outerSize:s,scrollOffset:e,lanes:i,flat:i===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=j(()=>{let t=null,s=null,e=this.calculateRange();return e&&(t=e.startIndex,s=e.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,e,i,r)=>i===null||r===null?[]:t({startIndex:i,endIndex:r,overscan:s,count:e}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{let s=this.options.indexAttribute,e=t.getAttribute(s);return e?parseInt(e,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;let e=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(e!==void 0&&this.range){let i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,e-i),o=Math.min(this.options.count-1,e+i);return t>=r&&t<=o}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((r,o)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(o))});return}let s=this.indexFromElement(t),e=this.options.getItemKey(s),i=this.elementsCache.get(e);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(e,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var e,i;if(t<0||t>=this.options.count)return;let r,o,u,f=this._flatMeasurements;if(this.options.lanes===1&&f!==null)u=this.options.getItemKey(t),o=f[t*2],r=f[t*2+1];else{let h=this.measurementsCache[t];if(!h)return;u=h.key,o=h.start,r=h.size}let d=this.itemSizeCache.get(u)??r,g=s-d;if(g!==0){let h=this.options.anchorTo==="end"&&((e=this.scrollState)==null?void 0:e.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,y=h?this.getTotalSize():0,m=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:u,start:o,size:r,end:o+r,lane:0},g,this):o<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(u)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(u,s),this.itemSizeCacheVersion++,h?this.applyScrollAdjustment(this.getTotalSize()-y):m&&this.applyScrollAdjustment(g),this.notify(!1)}},this.getVirtualItems=j(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{let e=[];for(let i=0,r=t.length;i<r;i++){let o=t[i],u=s[o];e.push(u)}return e},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{let s=this.getMeasurements();if(s.length===0)return;let e=this._flatMeasurements,i=this.options.lanes===1&&e!=null,r=Ne(0,s.length-1,i?o=>e[o*2]:o=>xt(s[o]).start,t);return xt(s[r])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,e=0)=>{if(!this.scrollElement)return 0;let i=this.getSize(),r=this.getScrollOffset();s==="auto"&&(s=t>=r+i?"end":"start"),s==="center"?t+=(e-i)/2:s==="end"&&(t-=i);let o=this.getMaxScrollOffset();return Math.max(Math.min(o,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));let e=this.getSize(),i=this.getScrollOffset(),r=this.measurementsCache[t];if(!r)return;if(s==="auto")if(r.end>=i+e-this.options.scrollPaddingEnd)s="end";else if(r.start<=i+this.options.scrollPaddingStart)s="start";else return[i,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];let o=s==="end"?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(o,s,r.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:e="auto"}={})=>{let i=this.getOffsetForAlignment(t,s),r=this.now();this.scrollState={index:null,align:s,behavior:e,startedAt:r,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:e="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));let i=this.getOffsetForIndex(t,s);if(!i)return;let[r,o]=i,u=this.now();this.scrollState={index:t,align:o,behavior:e,startedAt:u,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:e}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{let e=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:i,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;let s=this.getMeasurements(),e;if(s.length===0)e=this.options.paddingStart;else if(this.options.lanes===1){let i=s.length-1,r=this._flatMeasurements;r!=null?e=r[i*2]+r[i*2+1]:e=((t=s[i])==null?void 0:t.end)??0}else{let i=Array(this.options.lanes).fill(null),r=s.length-1;for(;r>=0&&i.some(o=>o===null);){let o=s[r];i[o.lane]===null&&(i[o.lane]=o.end),r--}e=Math.max(...i.filter(o=>o!==null))}return Math.max(e-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let t=[];if(this.itemSizeCache.size===0)return t;let s=this.getMeasurements();for(let e of s)e&&this.itemSizeCache.has(e.key)&&t.push({index:e.index,key:e.key,start:e.start,size:e.size,end:e.end,lane:e.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:e})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:e,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(a)}applyScrollAdjustment(a,t){a!==0&&(Ot()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=a:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=a,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,e=s?s[0]:this.scrollState.lastTargetOffset,i=1,r=e!==this.scrollState.lastTargetOffset;if(!r&&Re(e,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==e&&this._scrollToOffset(e,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,r){let o=this.getSize()||600,u=Math.abs(e-this.getScrollOffset()),f=this.scrollState.behavior==="smooth"&&u>o;this.scrollState.lastTargetOffset=e,f||(this.scrollState.behavior="auto"),this._scrollToOffset(e,{adjustments:void 0,behavior:f?"smooth":"auto"})}this.scheduleScrollReconcile()}},Ne=(n,a,t,s)=>{for(;n<=a;){let e=(n+a)/2|0,i=t(e);if(i<s)n=e+1;else if(i>s)a=e-1;else return e}return n>0?n-1:0};function ds({measurements:n,outerSize:a,scrollOffset:t,lanes:s,flat:e}){let i=n.length-1,r=e?d=>e[d*2]:d=>n[d].start,o=e?d=>e[d*2]+e[d*2+1]:d=>n[d].end;if(n.length<=s)return{startIndex:0,endIndex:i};let u=Ne(0,i,r,t),f=u;if(s===1)for(;f<i&&o(f)<t+a;)f++;else if(s>1){let d=Array(s).fill(0);for(;f<i&&d.some(h=>h<t+a);){let h=n[f];d[h.lane]=h.end,f++}let g=Array(s).fill(t+a);for(;u>=0&&g.some(h=>h>=t);){let h=n[u];g[h.lane]=h.start,u--}u=Math.max(0,u-u%s),f=Math.min(i,f+(s-1-f%s))}return{startIndex:u,endIndex:f}}var qe={assistant:oe,tool:ot,"tool-result":it,approval:vt,status:gt,error:le,line:gt,reasoning:ie,steer:re,usage:ne},hs=n=>!!(n.detail||n.result?.detail)||n.title.length>120||n.title.includes(`
2
- `);function fs(n,a){let[,t]=pt(i=>i+1,0),s={count:n,estimateSize:()=>30,overscan:16,getScrollElement:()=>window,observeElementRect:Le,observeElementOffset:Fe,scrollToFn:We,scrollMargin:a.current?a.current.getBoundingClientRect().top+scrollY:0,onChange:()=>t(0)},[e]=M(()=>new ct(s));return e.setOptions(s),st(()=>e._didMount(),[]),st(()=>e._willUpdate()),e}function Ve(n){let[,a]=pt(t=>t+1,0);Yt(n?async()=>a(0):void 0,1e3)}function je(n,a){let t=n.findLastIndex(s=>s.kind==="assistant"||s.kind==="reasoning");return(s,e)=>a&&!s.result&&(s.state!==void 0||s.kind==="tool"&&e>t)}function ms({row:n,running:a}){Ve(a);let t=n.result,s=a?Math.max(0,Date.now()-n.at):t?.durationMs,e=[n.state,t&&!t.ok&&t.exitCode!==void 0?`exit ${t.exitCode}`:"",s?$(s):""].filter(Boolean).join(" \xB7 ");return l("span",{class:`act-state${t&&!t.ok?" bad":""}`,children:[a?l("i",{class:"spin"}):t?l(_,{d:t.ok?it:J}):null,e]})}function ps({row:n,tz:a,open:t,running:s,onToggle:e}){let i=z(null),[r,o]=M(!1);st(()=>{i.current&&o(i.current.scrollWidth>i.current.clientWidth)},[n.title]);let u=t||r||hs(n),f=n.tone==="error",d=n.kind==="tool"||n.state!==void 0,g=n.kind==="tool-result"?[n.tool,n.exitCode!==void 0?`exit ${n.exitCode}`:void 0,n.durationMs?$(n.durationMs):void 0].filter(Boolean).join(" \xB7 "):n.kind==="reasoning"&&n.durationMs?$(n.durationMs):"";return l("div",{class:`act ${n.kind}${n.tone?` ${n.tone}`:""}${d?" timed":""}${t?" open":""}${u?" fold":""}`,...u?{role:"button",tabIndex:0,"aria-expanded":t,onClick:()=>getSelection()?.isCollapsed!==!1&&e(),onKeyDown:h=>{h.key!=="Enter"&&h.key!==" "||(h.preventDefault(),e())}}:{},children:[l("time",{children:Se(n.at,a)}),l(_,{d:n.kind==="tool-result"&&f?J:qe[n.kind]}),l("span",{class:"act-text",children:[l("span",{class:"act-title",ref:i,children:n.title}),g?l("span",{class:"act-detail",children:g}):null,n.detail&&(t||!n.state)?l("span",{class:"act-detail",children:n.detail}):null,t&&n.result?.detail?l("span",{class:"act-detail",children:n.result.detail}):null]}),d?l(ms,{row:n,running:s}):null,u?l(_,{d:nt,class:"act-chev"}):null]})}function Pe({rows:n,live:a,tz:t,at:s}){let e=z(null),[i,r]=M(()=>new Set(typeof s=="number"?[s]:[])),{following:o,follow:u}=at(s===void 0?a:s==="end"),f=fs(n.length,e),d=je(n,a);return W(()=>{let g=n.findIndex(E=>E.seq===s);if(g<0||!e.current)return;let h=e.current.getBoundingClientRect().top+scrollY;f.setOptions({...f.options,scrollMargin:h}),scrollTo({top:f.getOffsetForIndex(g,"center")?.[0]??0});let y=60,m=0,w=0,S=()=>{cancelAnimationFrame(w);for(let E of["wheel","touchstart","keydown"])removeEventListener(E,S)},k=()=>{let E=e.current?.querySelector(".act-slot.at");if(E){let v=parseFloat(getComputedStyle(E).scrollMarginTop),R=document.querySelector("form.reply")?.getBoundingClientRect().top??innerHeight,C=E.getBoundingClientRect(),x=C.top-(C.height>R-v?v:(v+R-C.height)/2);Math.abs(x)<1?m++:scrollBy(0,x)}m<3&&--y?w=requestAnimationFrame(k):S()};for(let E of["wheel","touchstart","keydown"])addEventListener(E,S,{passive:!0});return w=requestAnimationFrame(k),S},[]),n.length?l(F,{children:[l("div",{class:"act-list",ref:e,style:`height:${f.getTotalSize()}px`,role:"log","aria-live":"off",children:f.getVirtualItems().map(g=>{let h=n[g.index];return l("div",{class:h.seq===s?"act-slot at":"act-slot","data-index":g.index,ref:f.measureElement,style:`transform:translateY(${g.start-f.options.scrollMargin}px)`,children:l(ps,{row:h,tz:t,open:i.has(h.seq),running:d(h,g.index),onToggle:()=>r(y=>{let m=new Set(y);return m.delete(h.seq)||m.add(h.seq),m})})},h.seq)})}),o?null:l("button",{type:"button",class:"jump",onClick:u,children:"Jump to latest"})]}):l("p",{class:"act-empty muted",children:a?"Nothing yet. Events appear here as the task runs.":"No activity recorded."})}var $e=new Set(["tool","tool-result","approval"]);function Ct(n,a){let t=n.filter(o=>o.kind==="tool").length,s=n.filter(o=>o.kind==="approval"&&o.result?.ok).length,e=n.filter(o=>o.kind==="approval"&&o.result?.ok===!1).length,i=n.filter(o=>o.kind==="tool"?o.result?.ok===!1:o.kind==="tool-result"&&o.tone==="error").length,r=n.reduce((o,u)=>o+(u.kind==="reasoning"?u.durationMs??0:0),0);return[t?`${t} tool ${t===1?"call":"calls"}`:"",s?`${s} approved`:"",e?`${e} denied`:"",i?`${i} failed`:"",r?`reasoning ${$(r)}`:"",a===void 0?"":$(a)].filter(Boolean).join(" \xB7 ")}function gs({row:n,running:a,onOpen:t}){let s=a&&n.state==="waiting",e=n.result?!n.result.ok:n.tone==="error",i=s?vt:n.result?n.result.ok?it:J:e?J:qe[n.kind];return l("button",{type:"button",class:`act step ${n.kind}${s||n.tone==="warning"?" warning":e?" error":""}`,onClick:t,children:[a&&!s?l("i",{class:"spin"}):l(_,{d:i}),l("span",{class:"act-text",children:[l("span",{class:"act-title",children:s?"Waiting for your approval":n.title}),s?l("span",{class:"act-detail",children:n.title}):null]},n.seq),l("span",{class:"act-state",children:a&&!s?n.state??"running":ye(n.at+(n.result?.durationMs??0))}),l(_,{d:H,class:"act-chev"})]})}function Be({rows:n,startedAt:a,onOpen:t}){Ve(!0);let s=je(n,!0),e=n.findIndex(d=>$e.has(d.kind)),r=[...(e<0?n:n.slice(0,e)).filter(d=>d.kind==="status"||d.kind==="error").map(d=>({row:d,running:!1})),...n.flatMap((d,g)=>$e.has(d.kind)?[{row:d,running:s(d,g)}]:[])],o=r.filter(d=>d.running&&d.row.state==="waiting"),u=r.filter(d=>!o.includes(d)),f=[...o,...u.slice(Math.max(0,u.length-2+o.length))].slice(0,2);return l("div",{class:"body run",children:[l("button",{type:"button",class:"act run-sum",onClick:()=>t("end"),children:[Ct(n,a===void 0?void 0:Date.now()-a),l(_,{d:H,class:"act-chev"})]}),l("div",{class:r.length>f.length?"run-steps earlier":"run-steps",children:f.map((d,g)=>l(gs,{...d,onOpen:()=>t(d.row.seq)},g))}),l(Y,{inline:!0,dots:!0,label:"The result appears here when the task finishes."})]})}var Ke=n=>n.split("/")[1]??n;function ut(n,a){if(typeof n=="string")return n;if(!n||typeof n!="object")return a;let t=n;for(let s of["output","answer","message"])if(typeof t[s]=="string")return t[s];return a}function vs(n,a,t){let{event:s}=n.task;return ee(a)??(t&&s?.actor&&a===s.text?[{author:s.actor.login!==s.actor.id?s.actor.login??"":"",text:a}]:[{author:"Prompt",text:a}])}var He=(n,a)=>n.logSeq!==void 0?a.seq<n.logSeq:n.finishedAt===void 0||a.at<=n.finishedAt;function bs(n,a){let t=n.map(()=>[]);for(let s of a){let e=s.entry?.kind==="reply"?s.entry.message:void 0;if(!e)continue;let i=n.findIndex(r=>He(r,s));t.at(i).push(e)}return t}function Je(n){return n.trim().replace(/^`+|`+$/g,"").trim()===Xt}function Ss({value:n,required:a}){let t=ut(n,"Result received.");if(Je(t))return l("p",{class:"body muted",children:a?Qt:Zt});let s;if(/^\s*[[{]/.test(t))try{s=JSON.parse(t)}catch{}return s&&typeof s=="object"?l("pre",{class:"body json",children:JSON.stringify(s,null,2)}):l("div",{class:"body md",children:At(t)})}function ys(){let n=Ut(),a=yt();return l(pe,{href:"/dash/[org]/tasks",params:{org:a},label:"Tasks",back:n.get("back")})}function ks({task:n,tz:a}){let t=yt(),s=q(n),e=Te(n),i=n.task.event?.integration??n.task.source,r=n.task.event?.type??(n.task.flow!=="default"?n.task.flow:void 0),o=K(()=>lt(n).split(`
3
- `)[0],[n.task,n.turns]);return l(ge,{back:l(ys,{}),title:o,meta:l(F,{children:[l(fe,{status:n.status,approvals:n.approvals}),n.archivedAt?l(he,{children:"archived"}):null,n.task.access==="read-only"?l(me,{}):null]}),lead:l(F,{children:[l("span",{class:"fact",title:`Created ${Et(n.createdAt,a)}`,children:[l(_,{d:ce}),Et(n.createdAt,a,!0),n.startedAt&&n.finishedAt?`, ran ${$(n.finishedAt-n.startedAt)}`:null]}),l("span",{class:"fact",title:"Source",children:[l(_,{d:n.task.event?ue:ot}),r?`${Tt(i)} ${r}`:Tt(i)]}),n.task.cwd?l("span",{class:"fact",title:n.task.cwd,children:[l(_,{d:ae}),Ae(n.task.cwd)]}):null,l("span",{class:"fact",children:[l(Gt,{class:"agent-link",href:"/dash/[org]/agents/[slug]",params:{org:t,slug:n.task.agent},search:{back:`/dash/${t}/tasks/${n.task.id}`},children:[l(_,{d:se}),n.task.agent]}),e?l("span",{class:"fact-dim",title:"Engine, model and effort",children:e}):null]})]}),actions:l(Me,{task:n,live:s})})}function Es(n){let a=z();return K(()=>{let t=a.current??={log:new te,rows:[],seen:0};for(let s of n.slice(t.seen))for(let e of t.log.reduce(s))e.seq>(t.rows.at(-1)?.seq??-1)?t.rows.push(e):t.rows[t.rows.findLastIndex(({seq:i})=>i===e.seq)]=e;return t.seen=n.length,[...t.rows]},[n])}function kn({initial:n,tz:a,me:t}){let s=Ht(a),[e,i]=M(n),[r,o]=M(n.logs??[]),[u,f]=M((n.logs?.length??0)<ws),[d,g]=M("conversation"),[h,y]=M(),[m,w]=M([]),[S,k]=M(0),E=z(e.answer?.length??0),[v,R]=M(!1),C=z(n.logs?.at(-1)?.seq??-1),x=z(null),D=z(null);W(()=>{let c=D.current,p=c?.closest(".page");if(!c||!p)return;let b=new ResizeObserver(()=>p.style.setProperty("--reply",`${c.offsetHeight}px`));return b.observe(c),()=>b.disconnect()},[e.task.flow]);let{follow:Z}=at(),It=wt({toast:"Not sent"}),Ye=wt({toast:"Not sent"}),dt=!!It.pending,I=q(e),zt=e.task.flow==="default",_t=Es(r);W(()=>ve(e.task.id,e.status,lt(e)),[e.status]);let Rt=z([]),Ue=c=>{let p=c.filter(b=>b.seq>C.current);p.length&&(C.current=p.at(-1).seq,Rt.current.push(...p)===p.length&&setTimeout(()=>{let b=Rt.current.splice(0);o(A=>[...A,...b])}))};W(()=>{I&&zt&&x.current?.focus()},[]);let[Dt,Ge]=M(!0);W(()=>{let c=()=>Ge(document.visibilityState==="visible");return c(),addEventListener("visibilitychange",c),()=>removeEventListener("visibilitychange",c)},[]);let[ht,Q]=M(I||!u),[Xe,Ze]=M(0),Lt=()=>{f(!1),Q(!0),Ze(c=>c+1)},[Ft,Qe]=M(0),B=z(0);B.current=Ft;let ft=()=>{let c=B.current;P.tasks.get(e.task.id).then(({logs:p,...b})=>{B.current===c&&(i(b),q(b)&&Q(!0))}).catch(p=>kt("Task not refreshed",ke(p)))},ts=()=>{ft(),ht||Lt()},Wt=()=>{let c=++B.current;Qe(c),Q(!0),P.tasks.get(e.task.id).then(({turns:p})=>{B.current===c&&i(b=>q(b)?{...b,turns:p}:b)}).catch(p=>console.error("coder dashboard: task turns",p))};be(c=>{if(c.id!==e.task.id||c.deleted)return;I&&!q(c)&&ft();let p=I&&e.startedAt!==void 0&&c.startedAt!==e.startedAt;q(c)&&(!I||p)&&Wt(),!I&&!q(c)&&c.finishedAt!==e.finishedAt&&(ft(),Lt()),i(b=>({...b,status:c.status,approval:c.approval??void 0,approvals:c.approvals??void 0,archivedAt:c.archivedAt,startedAt:c.startedAt,finishedAt:c.finishedAt,...c.result===void 0?{}:{result:c.result??void 0,error:c.error??void 0,answer:c.answer??void 0}}))},ts),W(()=>{if(!ht||!Dt)return;let c=new AbortController;return(async()=>{for(;!c.signal.aborted;){try{let b=await P.tasks.stream(e.task.id,C.current,c.signal);if(!b.ok||!b.body){kt("Live updates stopped","Reload the page to see new activity.");return}for await(let A of Jt(b.body)){if(c.signal.aborted)return;if(A.event==="log")Ue([JSON.parse(A.data)]);else if(A.event==="caught-up")f(!0);else if(A.event==="end")return f(!0),Q(!1)}}catch(b){if(c.signal.aborted)return;console.error("coder dashboard: task stream",b)}await new Promise(b=>setTimeout(b,1e3))}})(),()=>c.abort()},[ht,Dt,Ft,Xe]);let O=e.turns??[{prompt:e.task.prompt??e.task.event?.text??lt(e),result:e.result,error:e.error,finishedAt:e.finishedAt}],Nt=K(()=>O.map((c,p)=>({messages:vs(e,c.prompt,p===0),required:we(e,c.prompt)})),[O,e.task]),es=K(()=>bs(O,r),[O,r]),$t=O.findIndex(c=>!u&&(!r.length||He(c,r.at(-1)))),qt=$t<0?O:O.slice(0,$t),ss=(e.approvals??[]).filter(c=>c.response),Vt=async()=>{let c=x.current?.value.trim();if(!c||dt)return;let p=I?v?"ask":"steer":"continue";if(Z(),p==="ask"){x.current.value="",w(A=>[...A,{kind:p,text:c,turn:O.length-1}]),k(A=>A+1),g("conversation"),Ye.run(p,()=>P.tasks.ask(e.task.id,c)).then(A=>{k(L=>L-1),A||w(L=>L.filter(N=>N.text!==c||N.kind!==p))});return}await It.run(p,()=>P.tasks.steer(e.task.id,c))&&(x.current.value="",p==="continue"?(Wt(),i(A=>({...A,status:"queued",result:void 0,error:void 0,startedAt:void 0,finishedAt:void 0,turns:[...O.map((L,N)=>N===O.length-1?{...L,finishedAt:L.finishedAt??Date.now()}:L),{prompt:c}]}))):(w(A=>[...A,{kind:p,text:c,turn:O.length-1}]),tt()))},tt=c=>{y(c),g("activity")},jt=l(bt,{variant:"ghost",size:"sm",rightIcon:H,onClick:()=>tt("end"),children:"Activity"}),Pt=_t.filter(c=>c.at>=(e.startedAt??0)),mt=!I&&e.startedAt&&e.finishedAt?l("p",{class:"run-foot",children:[Ct(Pt,e.finishedAt-e.startedAt),jt]}):null,Bt=c=>{R(c),setTimeout(()=>x.current?.focus())};return l(F,{children:[l(ks,{task:e,tz:s}),e.fallbacks?.map((c,p)=>l("p",{class:"flash",role:"status",children:[Ke(c.model)," was unavailable. ",c.detail," This task is using"," ",Ke(c.next),c.next===c.model?" on another credential":"","."]},p)),l("nav",{class:"tabs",role:"tablist","aria-label":"Task",children:Ee.map(c=>{let p=c.toLowerCase();return l("button",{type:"button",role:"tab","aria-selected":d===p,"aria-current":d===p?"page":void 0,onClick:()=>p==="activity"?tt():g(p),children:c},p)})}),d==="activity"?l(Pe,{rows:_t,live:I,tz:s,at:h}):l(F,{children:[l(Ie,{task:e,me:t}),l("div",{class:"convo",children:[qt.map((c,p)=>{let b=p===O.length-1,A=es[p],L=A.length>0&&Je(ut(c.result,""))?null:l(Ss,{value:c.result,required:Nt[p].required}),N=c.approval?e.approvals?.find(T=>T.id===c.approval):void 0;return l(F,{children:[N?l(Ce,{approval:N}):null,(N?[]:Nt[p].messages).map((T,V)=>l("div",{class:"turn prompt",children:[T.author?l("p",{class:"who",children:T.author}):null,l(ze,{class:"prose",children:T.text})]},`p${V}`)),b?(e.answer??[]).slice(0,E.current).map((T,V)=>l("div",{class:"turn answer",children:[l("p",{class:"who",children:"Answer"}),l("div",{class:"prose",children:ut(T,"Answer received.")})]},`a${V}`)):null,A.map((T,V)=>l("div",{class:"turn reply",children:[l("p",{class:"who",children:e.task.agent}),l("div",{class:"prose md",children:At(T)})]},`r${V}`)),m.filter(T=>T.turn===p).map((T,V)=>{let et=T.kind==="ask"?m.filter(ns=>ns.kind==="ask").indexOf(T):-1,Kt=et<0?void 0:e.answer?.[E.current+et];return l("div",{class:et<0?"turn you":"turn you qa",children:[l("p",{class:"who",children:T.kind==="ask"?"You asked":"You steered"}),l("div",{class:"prose",children:T.text}),et<0?null:l("div",{class:"answer",children:[l("p",{class:"who",children:"Answer"}),Kt===void 0?l(Y,{inline:!0,dots:!0,label:"Answering without interrupting the run."}):l("div",{class:"prose",children:ut(Kt,"Answer received.")})]})]},V)}),ss.filter(T=>xe(O,T)===p).map(T=>l(Oe,{approval:T},T.id)),c.result&&(L||b&&mt)?l(rt,{title:"Result",children:[L,b?mt:null]}):b&&I?l(rt,{title:"Result",actions:jt,children:l(Be,{rows:Pt,startedAt:e.startedAt,onOpen:tt})}):null,c.error?l(rt,{tone:"danger",title:"Error",children:[l("div",{class:"body prose",children:c.error}),b&&!c.result?mt:null]}):null]},p)}),qt.length<O.length?l(Y,{label:"Loading the conversation."}):null]})]}),zt?l("form",{ref:D,class:"reply",onSubmit:c=>{c.preventDefault(),Vt()},children:l("div",{class:"reply-box",children:[I?l(de,{summary:l(F,{children:[v?"Ask":"Steer",l(_,{d:nt})]}),summaryClass:"mode",label:"Send as",align:"up",wide:!0,children:[l(St,{on:!v,onPick:()=>Bt(!1),sub:"Change course while it works.",children:"Steer"}),l(St,{on:v,onPick:()=>Bt(!0),sub:"A question that does not interrupt it.",children:"Ask"})]}):null,l("textarea",{ref:x,rows:1,"aria-label":"Message",autofocus:I,placeholder:I?v?"Ask about the run without interrupting it.":"Steer the agent while it works.":"Continue the conversation.",onKeyDown:c=>{c.key!=="Enter"||c.shiftKey||c.isComposing||(c.preventDefault(),Vt())}}),l(bt,{type:"submit",size:"sm",disabled:dt,"aria-busy":dt||S>0,children:"Send"})]})}):l("p",{class:"muted no-reply",children:"This flow takes no follow-ups."})]})}var ws=500;export{kn as TaskView};
@@ -1 +0,0 @@
1
- "use client";import{b as N,f as te}from"./task-actions-0b3054dc0f8d17c0.js";import{a as ct}from"./agent-pills-54564413a57d7fa7.js";import{a as Xt}from"./tail-40f16e09eade7eee.js";import{b as Qt}from"./composer-198b844da57b82a3.js";import"./composer-data-b05f3d93fdc472d7.js";import{b as Ht,c as jt,d as Gt,e as at,f as dt,g as Kt,h as Vt,i as Wt,k as Yt,l as Jt,m as Zt}from"./task-396d849e58e50d59.js";import"./connect-repositories-5118edc019fc7890.js";import"./shared-init-96cde32cd50254c0.js";import"./shared-init-96cde32cd50254c0.js";import"./model-options-5e07b3318d69d218.js";import"./types-3eca2c7f47c46054.js";import{a as zt}from"./confirm-14d018653fbe50fc.js";import"./segmented-66a8c77c6294fec3.js";import"./field-adcb6e6a5f9b7131.js";import{$0b as Ut}from"./shared-init-96225b8c7758de9d.js";import{$1a as Bt,$1c as $t,$1d as Ft,$1f as W}from"./shared-init-96225b8c7758de9d.js";import"./back-ba5e4340a9f8bbd2.js";import{$2j as _t,$2p as qt}from"./shared-init-abd7653140f37a0c.js";import{$0D as it,$0a as wt,$0k as x,$0t as It,$0u as Lt,$0v as xt,$0w as Nt,$0x as Ot}from"./shared-init-abd7653140f37a0c.js";import{$1c as S,$1f as Rt,$1k as rt,$1o as V,$1q as st,$1s as Et,$1v as Mt}from"./shared-init-abd7653140f37a0c.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-abd7653140f37a0c.js";import{$3A as Tt,$3B as Ct,$3K as At,$3L as Dt,$3M as St,$3N as Pt,$3Q as t,$3R as H,$3S as K,$3b as bt,$3c as ot,$3l as vt}from"./shared-init-abd7653140f37a0c.js";import{$4b as kt}from"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2b as b,$2c as M,$2d as yt,$2h as T,$2j as z,$2k as nt,$2l as w}from"./shared-init-3fcac605fffcc273-2.js";var ue=Symbol.for("pnext.dynamic");function ne(n,r={},d){let a=null,p=null,s=!1,c=typeof n=="string"?()=>{throw new Error(`dynamic(${JSON.stringify(n)}) was not compiled by PNext.`)}:n,h=()=>(p??=Promise.resolve(c()).then(i=>(a=typeof i=="function"?i:i.default,a)),p);function v(i){let m=w(null),[A,k]=T(0);if(nt(()=>{m.current?.hasAttribute("data-pnext-loading")&&k(1)},[]),a)return b("pnext-dynamic",{key:A,ref:m,style:ee},b(a,i));let C=r.loading;if(s)return b("pnext-dynamic",{ref:m,style:ee,"data-pnext-loading":""},C?b(C,i):null);throw typeof window>"u"?h().then(()=>{},()=>{s=!0}):h()}function l(i){let[m,A]=T(null),[k,C]=T(()=>r.load!=="visible"),g=w(null);if(nt(()=>{a&&A(()=>a)},[]),z(()=>{if(m||k)return;let P=g.current;if(!P||typeof IntersectionObserver>"u"){C(!0);return}let R=new IntersectionObserver(J=>{J.some(_=>_.isIntersecting)&&(R.disconnect(),C(!0))},{rootMargin:r.rootMargin,threshold:r.threshold});return R.observe(P),()=>R.disconnect()},[m,k]),z(()=>{if(m||!k)return;let P=!1;return h().then(R=>{P||A(()=>R)}),()=>{P=!0}},[m,k]),m)return b(m,i);let I=r.loading;return r.load==="visible"?b("div",{ref:g},I?b(I,i):null):I?b(I,i):null}let D=r.ssr===!1||r.load==="visible"?l:i=>typeof window>"u"?b(v,i):b(lt,{fallback:r.loading?b(r.loading,i):null},b(v,i));return D[ue]={load:h,target:d},D}var ee={display:"contents"},pe=32,lt=class extends yt{__c(r,d){this.setState({waiting:!0,held:(d.__u&pe)!==0}),r.then(()=>this.setState({waiting:!1}))}componentDidCatch(r){if(!(r instanceof Promise))throw r;this.__c(r,this.__v.__k[0])}shouldComponentUpdate(r,d){return!(d.waiting&&d.held)}render(){return this.state.waiting&&!this.state.held?this.props.fallback:this.props.children}};var oe=3;function re({rows:n,me:r}){let[d,a]=T([]),[p,s]=T(!1),c=n.filter(l=>!d.includes(l.task.id)&&N(l));if(!c.length)return null;let h=p?c:c.slice(0,oe),v=l=>D=>{a(i=>[...i,l]),D.then(i=>i||a(m=>m.filter(A=>A!==l)))};return t(V,{tone:"accent",title:"Pending approvals",count:c.length,actions:c.length>oe?t(K,{variant:"secondary",size:"sm",onClick:()=>s(!p),children:p?"Show fewer":`Show all ${c.length}`}):void 0,children:t("ul",{class:p?"approval-queue scroll-box":"approval-queue",children:h.map(l=>t(te,{task:l,me:r,queue:{onSent:v(l.task.id)}},l.task.id))})})}var me=ne(()=>import("./composer-b26a3332a1243461.js").then(n=>n.NewTaskButton),{loading:()=>t(K,{class:"new-task",leftIcon:Ct,disabled:!0,children:"New task"})}),fe={dashboard:vt,cli:At,schedule:St},ie=n=>fe[n]??Pt,se=200;function he(n,r,d){if(n===void 0)return"Not available";let a=Math.round((r-n)/6e4);return a<1?"just now":a<60?`${a} min ago`:a<1440?`${Math.round(a/60)} h ago`:$t(n,d)}function ge({task:n,brand:r,back:d,scoped:a,tz:p,now:s,onDone:c}){let h=it(),v=dt(n)&&n.startedAt!==void 0?s-n.startedAt:n.lastTurnMs,l=n.task.event?.integration??n.task.source??"dashboard",D=n.task.event?.type??(n.task.flow==="default"?void 0:n.task.flow);return t("tr",{children:[t("td",{children:[t(bt,{class:"cover",href:"/dash/[org]/tasks/[id]",params:{org:h,id:n.task.id},search:d?{back:d}:void 0,children:Yt(n)}),t("span",{class:"sub",children:[a?null:t(M,{children:[t(H,{d:ot}),n.task.agent]}),D,n.task.cwd?t("span",{title:n.task.cwd,children:[t(H,{d:Dt}),Zt(n.task.cwd)]}):null].filter(Boolean).map((i,m)=>t(M,{children:[m?" \xB7 ":null,i]},m))})]}),t("td",{children:t(_t,{status:n.status,approvals:n.approvals})}),t("td",{class:"model",title:Jt(n),children:n.model??n.task.usage?.model??n.task.definition?.model}),t("td",{class:"when",title:Bt(n.lastActivityAt,p),children:he(n.lastActivityAt,s,p)}),t("td",{class:"num",children:n.startedAt===void 0?null:Ft(v)}),t("td",{children:[t("span",{class:"source",title:at(l),children:[r?t(ct,{brand:r}):t(H,{d:ie(l)}),at(l)]}),t("span",{class:"row-acts",children:t(ye,{task:n,onDone:c})})]})]})}function ye({task:n,onDone:r}){let d=Ut(),[a,p]=T(!1),s=N(n),c=(h,v)=>void d.run(h,()=>h==="approve"?S.tasks.approve(n.task.id,s?.id??"",v??"decline"):h==="delete"?S.tasks.delete(n.task.id):S.tasks[h](n.task.id)).then(l=>{l&&r(h),p(!1)});return t(M,{children:[t(Rt,{summary:t(H,{d:Tt}),button:"icon",label:"Task actions",align:"right",children:[s?t(x,{title:"Approve",onClick:()=>c("approve","accept")}):null,s?t(x,{title:"Deny",onClick:()=>c("approve","decline")}):null,dt(n)?t(x,{title:"Stop",onClick:()=>c("cancel")}):null,n.archivedAt?null:t(x,{title:"Archive",onClick:()=>c("archive")}),t(x,{title:"Delete",danger:!0,onClick:()=>p(!0)})]}),t(zt,{open:a,title:"Delete this task?",body:"Its conversation, activity and diff go with it.",confirmLabel:"Delete",busy:d.pending==="delete",onConfirm:()=>c("delete"),onClose:()=>p(!1)})]})}function fn({first:n,platforms:r,brands:d={},agents:a=[],filters:p,agent:s,head:c,missing:h,pendingApprovals:v,me:l,tz:D,now:i}){let m=kt(D),A=it(),{values:k,set:C,query:g}=Lt(p),I=It(p),P=s?`&agent=${encodeURIComponent(s)}`:"",R=s?`/dash/${A}/agents/${encodeURIComponent(s)}/tasks`:`/dash/${A}/tasks`,J=g||s?`${R}${g?`?${g}`:""}`:void 0,_={limit:Mt,summary:!0,counts:!0,...jt(k),agent:s??k.agent},ut=[{key:"status",label:"Status",options:Ht,inline:!0},{key:"source",label:"Source",options:[...Gt,...r],icon:e=>d[e]?t(ct,{brand:d[e]}):ie(e)}];s||ut.push({key:"agent",label:"Agent",options:a,icon:()=>ot,search:(e,u)=>S.agents.list({cursor:"",limit:u,q:e}).then(o=>o.items.map(y=>[y.id,y.name]))});let O=Et({name:`tasks${P}`,fetchPage:e=>S.tasks.list({..._,cursor:e}),query:g,first:n,initial:I}),[L,j]=T({rows:{},added:[]}),[pt,ae]=T({query:g,ids:[]}),de=pt.query===g?pt.ids:[],q=e=>ae(u=>({query:g,ids:e(u.query===g?u.ids:[])})),Z=Vt(O.rows,L.query===g?L.added:[],L.rows).filter(e=>!de.includes(e.task.id)),E=(L.query===g?L.counts:void 0)??O.meta.counts,B=w(),$=w(!1),Q=w(!1),mt=w(),ft=w(!1),X=w(0),F=w(0),G=w({}),U=()=>{if(document.visibilityState==="hidden")return void(Q.current=!0);if(B.current)return void($.current=!0);let e=B.current=Date.now(),u=F.current;S.tasks.list({..._,cursor:""}).then(o=>{F.current===u&&(j(y=>({rows:{...y.rows,...Object.fromEntries(o.items.filter(f=>(G.current[f.task.id]??0)<=e).map(f=>[f.task.id,{...y.rows[f.task.id],...f}]))},added:Kt(y.query===g?y.added:[],o.items),counts:o.counts,query:g})),X.current=0)}).catch(()=>{X.current++,$.current=!0}).finally(()=>{if(!ft.current){if(!$.current)return void(B.current=void 0);$.current=!1,mt.current=setTimeout(()=>{B.current=void 0,tt.current()},Math.min(3e4,1e3*2**X.current))}})},tt=w(U);tt.current=U,z(()=>{let e=()=>{document.visibilityState!=="visible"||!Q.current||(Q.current=!1,tt.current())};return addEventListener("visibilitychange",e),()=>{removeEventListener("visibilitychange",e),clearTimeout(mt.current),ft.current=!0}},[]);let ce=wt(),le=()=>{F.current++,G.current={},j({rows:{},added:[]}),q(()=>[]),ce.refresh()},ht=e=>{let u=Z.find(o=>o.task.id===e.id);if(!u){e.deleted||e.archivedAt&&k.status!=="archived"?q(o=>[...o,e.id]):q(o=>o.includes(e.id)?o.filter(y=>y!==e.id):o),j(o=>{let{[e.id]:y,...f}=o.rows;return y?{...o,rows:f}:o}),(e.deleted||(s||k.agent||e.agent)===e.agent)&&U();return}if(G.current[e.id]=Date.now(),B.current&&($.current=!0),(e.deleted||e.status!==u.status||!!e.archivedAt!=!!u.archivedAt||!!N(u)!=!!N({approval:e.approval,approvals:e.approvals}))&&U(),e.deleted||e.archivedAt&&k.status!=="archived")return q(o=>[...o,e.id]);j(o=>{let y=o.rows[e.id]??u;return{...o,rows:{...o.rows,[e.id]:{...y,status:e.status,approval:e.approval??void 0,approvals:e.approvals??void 0,archivedAt:e.archivedAt,startedAt:e.startedAt,finishedAt:e.finishedAt}}}})},et=w({since:n.items.reduce((e,u)=>Math.max(e,u.updatedAt),0)||i}),gt=()=>{if(document.visibilityState==="hidden")return;let e=Date.now(),u=F.current;S.tasks.list({...et.current,limit:se,agent:_.agent,source:_.source,archived:_.archived}).then(o=>{if(F.current!==u)return;let y=Wt(o,et.current,G.current,e);et.current=y.cursor;for(let f of y.rows)ht({id:f.task.id,agent:f.task.agent,status:f.status,approval:f.approval,approvals:f.approvals,archivedAt:f.archivedAt,createdAt:f.createdAt,startedAt:f.startedAt,finishedAt:f.finishedAt});o.length===se&&gt()}).catch(o=>console.error("coder dashboard: task resync",o))};return qt(ht,le,gt),t(M,{children:[t(Nt,{head:c,action:c?t(me,{}):void 0,children:[t(xt,{value:k.q,label:"Search tasks",onInput:e=>C("q",e,250)}),t(Ot,{name:"tasks",facets:ut,values:k,onChange:C})]}),h?t(Qt,{}):null,v?.length?t(re,{rows:v.map(e=>L.rows[e.task.id]??e),me:l}):null,t(V,{title:"Tasks",count:E?W(E.all):void 0,actions:E?t(M,{children:[E.active?t(rt,{tone:"acc",onClick:()=>C("status","active"),children:[W(E.active)," active"]}):null,E.waiting?t(rt,{tone:"warn",onClick:()=>C("status","waiting"),children:[W(E.waiting)," awaiting approval"]}):null]}):void 0,children:[Z.length?t("div",{class:"table-scroll",children:t("table",{class:"rows tasks stacked","aria-busy":O.stale,children:[t("thead",{children:t("tr",{children:[t("th",{children:"Task"}),t("th",{children:"Status"}),t("th",{class:"model",children:"Model"}),t("th",{children:"Last activity"}),t("th",{class:"num",children:"Duration"}),t("th",{children:"Source"})]})}),t("tbody",{children:Z.map(e=>t(ge,{task:e,brand:d[e.task.event?.integration??e.task.source],back:J,scoped:!!s,tz:m,now:Date.now(),onDone:u=>{(u==="delete"||u==="archive"&&k.status!=="archived")&&q(o=>[...o,e.task.id]),U()}},e.task.id))})]})}):O.stale?null:g?t(st,{title:"No tasks match",children:"Try another search or filter."}):t(st,{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(Xt,{noun:"tasks",...O})]})]})}export{fn as TasksList};
@@ -1 +0,0 @@
1
- import{a as T,b as R,c as _,d as g,e as E,f as b}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as I,$2s as k}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0D as u,$0F as C,$0a as s,$0j as c}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as p,$1g as f,$1q as l}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3Q as o,$3S as a,$3T as d}from"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as r}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$2c as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";function h(){let t=s(),w=u();return o("div",{class:"task-missing",children:o(l,{title:"Task not found",actions:o(n,{children:[o(a,{variant:"outline",onClick:()=>t.refresh(),children:"Refresh"}),o(d,{href:"/dash/[org]/tasks",params:{org:w},children:"Go to tasks"})]}),children:"It may have been deleted, or it ran somewhere you can't see."})})}var{mountRoute:v,remountRoute:$,unmountRoute:L}=e({islands:[{id:"c-04670c93cb",Component:T},{id:"c-13688e7f8e",Component:R},{id:"c-26e7b5f164",Component:p},{id:"c-322e0a6ac0",Component:_},{id:"c-3347df857a",Component:k},{id:"c-651470b7df",Component:g},{id:"c-6632c70a92",Component:f},{id:"c-67cea92de5",options:{},load:()=>import("./chunks/task-view-9e026dc5da58af5b.js").then(t=>t.TaskView)},{id:"c-9e1aaa9f92",Component:I},{id:"c-b0ff1df70b",Component:h},{id:"c-c156b5107d",Component:C},{id:"c-d5f6d1c671",Component:c},{id:"c-d88f87ef2a",Component:i},{id:"c-f50d7e7ce9",Component:E},{id:"c-f73dbfe27d",Component:b}]});m();r()||v();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:v,unmountRoute:L});export{v as mountRoute,$ as remountRoute,L as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as f,c,d as l,e as C,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as d,$2s as s}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0F as a,$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as i,$1g as e}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-04670c93cb",Component:p},{id:"c-13688e7f8e",Component:f},{id:"c-26e3949a86",options:{},load:()=>import("./chunks/editor-68e9ccd1764fc512.js").then(_=>_.AgentEditor)},{id:"c-26e7b5f164",Component:i},{id:"c-322e0a6ac0",Component:c},{id:"c-3347df857a",Component:s},{id:"c-651470b7df",Component:l},{id:"c-6632c70a92",Component:e},{id:"c-9e1aaa9f92",Component:d},{id:"c-c156b5107d",Component:a},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:I}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import{a as f,b as c,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as s,$2s as p}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as d,$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as m,$1g as a}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:R}=n({islands:[{id:"c-04670c93cb",Component:f},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:m},{id:"c-322e0a6ac0",Component:l},{id:"c-3347df857a",Component:p},{id:"c-349df33426",options:{},load:()=>import("./chunks/composer-b26a3332a1243461.js").then(o=>o.NewTaskButton)},{id:"c-651470b7df",Component:u},{id:"c-6632c70a92",Component:a},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(o=>o.TasksList)},{id:"c-990a90f80b",Component:T},{id:"c-9e1aaa9f92",Component:s},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:t},{id:"c-f0db18b936",Component:d},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:I}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,x as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as r}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:i,remountRoute:p,unmountRoute:m}=o({islands:[{id:"c-d88f87ef2a",Component:t}]});e();r()||i();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:i,unmountRoute:m});export{i as mountRoute,p as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as a,$2s as d}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as i,$1g as m}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:u,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-04670c93cb",Component:s},{id:"c-04bda7a066",options:{},load:()=>import("./chunks/create-link-0651addf1461f901.js").then(I=>I.CreateLink)},{id:"c-13688e7f8e",Component:p},{id:"c-26e7b5f164",Component:i},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:d},{id:"c-651470b7df",Component:c},{id:"c-6632c70a92",Component:m},{id:"c-9e1aaa9f92",Component:a},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:l},{id:"c-f73dbfe27d",Component:C}]});e();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-ba5e4340a9f8bbd2.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as a,$2s as d}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as e,$1g as i}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-04670c93cb",Component:s},{id:"c-13688e7f8e",Component:p},{id:"c-26e7b5f164",Component:e},{id:"c-27d3aea7f2",Component:I},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:d},{id:"c-651470b7df",Component:c},{id:"c-6632c70a92",Component:i},{id:"c-9e1aaa9f92",Component:a},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:l},{id:"c-f73dbfe27d",Component:C}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as r}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:e,remountRoute:d,unmountRoute:m}=o({islands:[{id:"c-04bda7a066",options:{},load:()=>import("./chunks/create-link-0651addf1461f901.js").then(n=>n.CreateLink)},{id:"c-d88f87ef2a",Component:t}]});r();i()||e();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:e,unmountRoute:m});export{e as mountRoute,d as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import{b as T}from"./chunks/composer-198b844da57b82a3.js";import"./chunks/composer-data-b05f3d93fdc472d7.js";import"./chunks/task-396d849e58e50d59.js";import"./chunks/connect-repositories-5118edc019fc7890.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/model-options-5e07b3318d69d218.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/back-ba5e4340a9f8bbd2.js";import{a as f,b as c,c as l,d as C,e as I,f as u}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as s,$2s as p}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as a,$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as m,$1g as d}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:b,remountRoute:B,unmountRoute:R}=n({islands:[{id:"c-04670c93cb",Component:f},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:m},{id:"c-322e0a6ac0",Component:l},{id:"c-3347df857a",Component:p},{id:"c-349df33426",options:{},load:()=>import("./chunks/composer-b26a3332a1243461.js").then(o=>o.NewTaskButton)},{id:"c-651470b7df",Component:C},{id:"c-6632c70a92",Component:d},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(o=>o.TasksList)},{id:"c-8d5433429b",options:{},load:()=>import("./chunks/agent-settings-form-55d294dad2ce5a0d.js").then(o=>o.AgentSettingsForm)},{id:"c-990a90f80b",Component:_},{id:"c-9e1aaa9f92",Component:s},{id:"c-d3050b3ed6",Component:T},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:t},{id:"c-f0db18b936",Component:a},{id:"c-f50d7e7ce9",Component:I},{id:"c-f73dbfe27d",Component:u}]});e();i()||b();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:b,unmountRoute:R});export{b as mountRoute,B as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/custom-range-b6919bab9846ebf7.js";import"./chunks/field-adcb6e6a5f9b7131.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as a,$2s as d}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as e,$1g as i}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-04670c93cb",Component:s},{id:"c-13688e7f8e",Component:p},{id:"c-26e7b5f164",Component:e},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:d},{id:"c-651470b7df",Component:c},{id:"c-6632c70a92",Component:i},{id:"c-7636147aee",Component:u},{id:"c-9e1aaa9f92",Component:a},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:l},{id:"c-f73dbfe27d",Component:C}]});m();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as h,b as g,c as T,d as b,e as k,f as w}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2l as t,$2r as C,$2s as N}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as I}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as p,$1g as u}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3Q as e}from"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as d}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as l}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as f}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$2h as s,$2j as c}from"./chunks/shared-init-3fcac605fffcc273-2.js";function _(){let[S,a]=s(!1),[r,i]=s(!1);c(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),a(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let E=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,a(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:S,disabled:r,onChange:o=>void E(o.currentTarget)}),r?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:R,remountRoute:V,unmountRoute:v}=m({islands:[{id:"c-04670c93cb",Component:h},{id:"c-13688e7f8e",Component:g},{id:"c-26e7b5f164",Component:p},{id:"c-322e0a6ac0",Component:T},{id:"c-3347df857a",Component:N},{id:"c-651470b7df",Component:b},{id:"c-6632c70a92",Component:u},{id:"c-947c7e090c",Component:_},{id:"c-9e1aaa9f92",Component:C},{id:"c-d5f6d1c671",Component:I},{id:"c-d88f87ef2a",Component:d},{id:"c-f50d7e7ce9",Component:k},{id:"c-f73dbfe27d",Component:w}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import{b as T}from"./chunks/composer-198b844da57b82a3.js";import"./chunks/composer-data-b05f3d93fdc472d7.js";import"./chunks/task-396d849e58e50d59.js";import"./chunks/connect-repositories-5118edc019fc7890.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/model-options-5e07b3318d69d218.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/back-ba5e4340a9f8bbd2.js";import{a as f,b as c,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as a,$2s as p}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as s,$0j as m}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as d,$1g as r}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:b,remountRoute:D,unmountRoute:R}=n({islands:[{id:"c-04670c93cb",Component:f},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:d},{id:"c-322e0a6ac0",Component:l},{id:"c-3347df857a",Component:p},{id:"c-349df33426",options:{},load:()=>import("./chunks/composer-b26a3332a1243461.js").then(o=>o.NewTaskButton)},{id:"c-651470b7df",Component:u},{id:"c-6632c70a92",Component:r},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(o=>o.TasksList)},{id:"c-7043383d00",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-ceb756236e69b761.js").then(o=>o.VersionsList)},{id:"c-990a90f80b",Component:_},{id:"c-9e1aaa9f92",Component:a},{id:"c-d3050b3ed6",Component:T},{id:"c-d5f6d1c671",Component:m},{id:"c-d88f87ef2a",Component:t},{id:"c-ec8c312746",options:{},load:()=>import("./chunks/instructions-0022dd3bdd57c13f.js").then(o=>o.Instructions)},{id:"c-f0db18b936",Component:s},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:I}]});e();i()||b();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:b,unmountRoute:R});export{b as mountRoute,D as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as u}from"./chunks/composer-198b844da57b82a3.js";import"./chunks/composer-data-b05f3d93fdc472d7.js";import"./chunks/task-396d849e58e50d59.js";import"./chunks/connect-repositories-5118edc019fc7890.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/model-options-5e07b3318d69d218.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/back-ba5e4340a9f8bbd2.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as d,$2s as a}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as i,$1g as m}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:I,remountRoute:Y,unmountRoute:R}=o({islands:[{id:"c-04670c93cb",Component:s},{id:"c-13688e7f8e",Component:p},{id:"c-26e7b5f164",Component:i},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:a},{id:"c-372d8acf2e",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-69461c53abbba433.js").then(_=>_.AgentsGrid)},{id:"c-651470b7df",Component:c},{id:"c-6632c70a92",Component:m},{id:"c-9e1aaa9f92",Component:d},{id:"c-d3050b3ed6",Component:u},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:l},{id:"c-f73dbfe27d",Component:C}]});e();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,Y as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import{b}from"./chunks/composer-198b844da57b82a3.js";import"./chunks/composer-data-b05f3d93fdc472d7.js";import"./chunks/task-396d849e58e50d59.js";import"./chunks/connect-repositories-5118edc019fc7890.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/shared-init-96cde32cd50254c0.js";import"./chunks/model-options-5e07b3318d69d218.js";import"./chunks/types-3eca2c7f47c46054.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import{a as T}from"./chunks/back-ba5e4340a9f8bbd2.js";import{a as f,b as c,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as s,$2s as p}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as r,$0j as m}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as d,$1g as a}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:R,remountRoute:Q,unmountRoute:g}=t({islands:[{id:"c-04670c93cb",Component:f},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:d},{id:"c-27eafece96",Component:T},{id:"c-322e0a6ac0",Component:l},{id:"c-3347df857a",Component:p},{id:"c-349df33426",options:{},load:()=>import("./chunks/composer-b26a3332a1243461.js").then(o=>o.NewTaskButton)},{id:"c-651470b7df",Component:u},{id:"c-6632c70a92",Component:a},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(o=>o.TasksList)},{id:"c-75b27f32e8",options:{},load:()=>import("./chunks/outcome-dialog-546fe090efc129c2.js").then(o=>o.OutcomeDialog)},{id:"c-88249538c7",options:{},load:()=>import("./chunks/platform-actions-2be223e68e648134.js").then(o=>o.DriftQueue)},{id:"c-8f4fca81dd",options:{},load:()=>import("./chunks/platform-step-9a52703f4c4f6a31.js").then(o=>o.PlatformStep)},{id:"c-990a90f80b",Component:_},{id:"c-9e1aaa9f92",Component:s},{id:"c-ad5bd694f4",options:{},load:()=>import("./chunks/platform-actions-2be223e68e648134.js").then(o=>o.InstallButton)},{id:"c-d3050b3ed6",Component:b},{id:"c-d5f6d1c671",Component:m},{id:"c-d88f87ef2a",Component:n},{id:"c-f0db18b936",Component:r},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:I}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:g});export{R as mountRoute,Q as remountRoute,g as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-ba5e4340a9f8bbd2.js";import{a as p,b as c,c as f,d as l,e as C,f as u}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as r,$2s as s}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as m}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as a,$1g as d}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:R,remountRoute:X,unmountRoute:T}=t({islands:[{id:"c-04670c93cb",Component:p},{id:"c-0ff1a419d8",options:{},load:()=>import("./chunks/outcome-toast-c00becdb638cd9a8.js").then(o=>o.OutcomeToast)},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:a},{id:"c-27d3aea7f2",Component:I},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:s},{id:"c-3edfc784a2",options:{},load:()=>import("./chunks/runners-list-20d42f19fb4bec8a.js").then(o=>o.RunnersList)},{id:"c-405ca9b423",options:{},load:()=>import("./chunks/models-list-ae1e2eff30d21824.js").then(o=>o.ModelsList)},{id:"c-651470b7df",Component:l},{id:"c-6632c70a92",Component:d},{id:"c-6fe00c63a5",options:{},load:()=>import("./chunks/credentials-list-e64c973aee5602d3.js").then(o=>o.EngineLogins)},{id:"c-9e1aaa9f92",Component:r},{id:"c-a18c293500",options:{},load:()=>import("./chunks/credentials-list-e64c973aee5602d3.js").then(o=>o.CredentialsList)},{id:"c-a5c2e14296",options:{},load:()=>import("./chunks/secrets-list-89f89ee70edb3856.js").then(o=>o.TaskSecrets)},{id:"c-ca9bafc9a2",options:{},load:()=>import("./chunks/advanced-list-b75a9c2bd11026de.js").then(o=>o.AdvancedList)},{id:"c-d5f6d1c671",Component:m},{id:"c-d88f87ef2a",Component:n},{id:"c-f33e1f7aa1",options:{},load:()=>import("./chunks/connections-list-5412dad7e0def52f.js").then(o=>o.ConnectionsList)},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:u}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:T});export{R as mountRoute,X as remountRoute,T as unmountRoute};
@@ -1 +0,0 @@
1
- import{a,b as d,c as s,d as p,e as f,f as c}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as i,$2s as r}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as e}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-04670c93cb",Component:a},{id:"c-13688e7f8e",Component:d},{id:"c-26e7b5f164",Component:e},{id:"c-322e0a6ac0",Component:s},{id:"c-3347df857a",Component:r},{id:"c-651470b7df",Component:p},{id:"c-9e1aaa9f92",Component:i},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:f},{id:"c-f73dbfe27d",Component:c}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,h as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as s,b as p,c as f,d as c,e as l,f as u}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as a,$2s as d}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as e,$1g as m}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:C,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-04670c93cb",Component:s},{id:"c-13688e7f8e",Component:p},{id:"c-26e7b5f164",Component:e},{id:"c-322e0a6ac0",Component:f},{id:"c-3347df857a",Component:d},{id:"c-651470b7df",Component:c},{id:"c-6632c70a92",Component:m},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(I=>I.TasksList)},{id:"c-9e1aaa9f92",Component:a},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f50d7e7ce9",Component:l},{id:"c-f73dbfe27d",Component:u}]});i();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:_});export{C as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import{a as p,b as f,c,d as l,e as C,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as d,$2s as s}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as a,$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as i,$1g as e}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as o}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as m}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:T}=o({islands:[{id:"c-04670c93cb",Component:p},{id:"c-13688e7f8e",Component:f},{id:"c-26e3949a86",options:{},load:()=>import("./chunks/editor-68e9ccd1764fc512.js").then(R=>R.AgentEditor)},{id:"c-26e7b5f164",Component:i},{id:"c-322e0a6ac0",Component:c},{id:"c-3347df857a",Component:s},{id:"c-651470b7df",Component:l},{id:"c-6632c70a92",Component:e},{id:"c-990a90f80b",Component:u},{id:"c-9e1aaa9f92",Component:d},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:n},{id:"c-f0db18b936",Component:a},{id:"c-f50d7e7ce9",Component:C},{id:"c-f73dbfe27d",Component:I}]});m();t()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:T});export{_ as mountRoute,x as remountRoute,T as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/custom-range-b6919bab9846ebf7.js";import{a as R}from"./chunks/agent-toggle-b5dcc4ea6292fb3d.js";import"./chunks/field-adcb6e6a5f9b7131.js";import"./chunks/shared-init-96225b8c7758de9d.js";import"./chunks/shared-init-96225b8c7758de9d.js";import{a as f,b as c,c as l,d as C,e as u,f as I}from"./chunks/side-toggle-8a410cc6d6bd9b1d.js";import{$2r as s,$2s as p}from"./chunks/shared-init-abd7653140f37a0c.js";import{$0E as d,$0j as r}from"./chunks/shared-init-abd7653140f37a0c.js";import{$1f as m,$1g as a}from"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/wular-pnext-3fcac605fffcc273-0.js";import"./chunks/shared-init-abd7653140f37a0c.js";import"./chunks/shared-init-abd7653140f37a0c.js";import{$3a as n}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$4a as t}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$1c as e}from"./chunks/shared-init-3fcac605fffcc273-2.js";import{$0i as i}from"./chunks/shared-init-3fcac605fffcc273-2.js";import"./chunks/shared-init-3fcac605fffcc273-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:b}=n({islands:[{id:"c-04670c93cb",Component:f},{id:"c-13688e7f8e",Component:c},{id:"c-26e7b5f164",Component:m},{id:"c-322e0a6ac0",Component:l},{id:"c-3347df857a",Component:p},{id:"c-349df33426",options:{},load:()=>import("./chunks/composer-b26a3332a1243461.js").then(o=>o.NewTaskButton)},{id:"c-651470b7df",Component:C},{id:"c-6632c70a92",Component:a},{id:"c-67acd5aafe",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-04c6568d7f7237b7.js").then(o=>o.TasksList)},{id:"c-7636147aee",Component:T},{id:"c-990a90f80b",Component:R},{id:"c-9e1aaa9f92",Component:s},{id:"c-d5f6d1c671",Component:r},{id:"c-d88f87ef2a",Component:t},{id:"c-f0db18b936",Component:d},{id:"c-f50d7e7ce9",Component:u},{id:"c-f73dbfe27d",Component:I}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:b});export{_ as mountRoute,D as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{Ea as e}from"./args-CJsHYWbt.js";import{t}from"./errors-DK_trCff.js";import{c as n,o as r}from"./load-BtIDghgd.js";import{a as i,i as a,n as o,o as s,r as c}from"./http-615JJgHo.js";import{a as l,c as u,i as d,n as f,r as p}from"./session-D7eeJIaH.js";import m from"node:path";import h from"node:process";import g from"node:http";import _ from"node:fs/promises";import{Readable as v}from"node:stream";var y=class extends t{authenticate;needs;constructor(e,t,n=``,r,i){super(`server`,t,{status:e,...r?{hint:r}:{}}),this.authenticate=n,this.needs=i}};const b=new Set([`completed`,`failed`,`cancelled`]);var x=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,n,r={}){if(this.cookie=`cookie`in n,this.url=e?s(e):``,!this.cookie&&!this.url)throw new t(`invalid-option`,`Bearer clients need a server URL.`);this.token=`token`in n?n.token:void 0,this.fetchImpl=r.fetch??((e,t)=>fetch(e,t)),this.organization=r.organization,this.renewal=r.renewal,this.onError=r.onError}request(e,t={}){let n=this.read(e,t);return n.catch(()=>{}),n}async read(e,n){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let r=await this.send(e,n);r.status===401&&this.renewal&&/invalid_token/.test(r.headers.get(`www-authenticate`)??``)&&(this.token=await this.renewal.renew(),r=await this.send(e,n));let i=await r.text().catch(()=>``),a={},o;try{i&&r.status!==204&&(a=JSON.parse(i))}catch{if(r.ok)throw new t(`server`,`The server answered ${r.status} with a body that is not JSON.`);this.cookie&&i&&(o=i)}if(r.status===202&&a.pending){let{approval:e,reason:n,changes:r}=a;throw new t(`approval-pending`,n,{approval:{id:e,reason:n,actions:r}})}if(!r.ok){let e=new y(r.status,a.error??a.message??o??`The server answered ${r.status}.`,r.headers.get(`www-authenticate`)??``,a.hint,a.needs===`key`?a.needs:void 0);throw this.onError?.(e),e}return a}send(e,n){let r=new Headers(n.headers);return n.body&&!r.has(`content-type`)&&r.set(`content-type`,`application/json`),this.token&&r.set(`authorization`,`Bearer ${this.token}`),this.organization&&r.set(`x-coder-organization`,this.organization),this.fetchImpl(`${this.url}${e}`,{...n,headers:r,...this.cookie?{credentials:`same-origin`}:{}}).catch(e=>{throw e instanceof t||e.name===`AbortError`?e:new t(`server`,this.url?`No Coder server answers at ${this.url}: ${e.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`)}signOut(){return this.post(`/api/auth/sign-out`,{})}agents={list:e=>this.request(c(`/admin/agents`,e??{})),get:(e,t)=>this.request(c(`/admin/agents/${encodeURIComponent(e)}`,{...t?.versions===!1?{versions:0}:{},...t?.content===!1?{content:0}:{},...t?.handles?{handles:1}:{},...t?.installations?{installations:1}:{}})),versions:(e,t={})=>this.request(c(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:`DELETE`}),preview:(e,t)=>this.request(c(`/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(t=>({id:e,version:t.version,unchanged:t.unchanged,...t.apps?.length?{apps:t.apps}:{}})),settings:(e,t)=>this.request(`/admin/agents/${encodeURIComponent(e)}/settings`,{method:`PATCH`,body:JSON.stringify(t)}),import:(e,t,n)=>this.post(`/admin/agents/import`,{repo:e,ref:t,...n?{agents:n}:{}})};composer(){return this.request(`/admin/composer`)}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={list:e=>this.request(c(`/admin/tasks`,{limit:20,...e,...e?.archived?{archived:1}:{},...e?.summary?{summary:1}:{},...e?.counts?{counts:1}:{},...e?.approvals?{approvals:1}:{}})),get:e=>this.request(`/admin/tasks/${encodeURIComponent(e)}`),logs:(e,t=-1,n)=>this.request(c(`/admin/tasks/${encodeURIComponent(e)}/logs`,{after:t,limit:n})),stream:(e,t=-1,n)=>this.send(`/admin/tasks/${encodeURIComponent(e)}/stream?after=${t}`,{headers:{accept:`text/event-stream`},signal:n}),events:(e,t,n)=>this.send(c(`/admin/events`,{tasks:e}),{headers:{accept:`text/event-stream`,...t?{"last-event-id":t}:{}},signal:n}),cancel:e=>this.post(`/admin/tasks/${encodeURIComponent(e)}/cancel`),steer:(e,t,n={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/steer`,{text:t,...n}),ask:(e,t,n={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/ask`,{question:t,...n}),approve:(e,t,n,r={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:n,...r}),request:(e,t,n,r={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/requests/${encodeURIComponent(t)}`,{decision:n,...r}),pendingApprovals:()=>this.request(`/admin/approvals/pending`),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,n={})=>{let r=-1;for(;;){let i=new AbortController,o=await this.tasks.stream(e,r,i.signal);if(!o.ok||!o.body){let n=await this.tasks.get(e);if(b.has(n.status))return n;if(o.status===401)continue;throw new t(`server`,`The task stream answered ${o.status}.`)}let s=!1;for await(let e of a(o.body))if(e.event===`log`){let t=JSON.parse(e.data);r=t.seq,n.onLog?.(t)}else if(e.event===`end`||e.event===`approval`){s=!0;break}if(s)return this.tasks.get(e)}}};credentials={list:e=>this.request(c(`/admin/credentials`,e??{})),add:e=>this.post(`/admin/credentials`,e),remove:(e,{workspace:t}={})=>this.request(`/admin/credentials/${encodeURIComponent(e)}${t?`?workspace`:``}`,{method:`DELETE`}),login:e=>this.post(`/admin/logins`,{engine:e}),loginStatus:(e,t)=>this.request(`/admin/logins/${encodeURIComponent(e)}${t?`?state=${encodeURIComponent(t)}`:``}`),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:e=>this.request(c(`/admin/integrations`,{agent:e}))};repositories={list:()=>this.request(`/admin/repositories`),refresh:()=>this.post(`/admin/repositories/refresh`,{})};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(c(`/admin/apps`,{agent:e})),install:(e,t)=>this.post(c(`/admin/apps/${encodeURIComponent(e)}/install`,{back:t})),remove:e=>this.request(`/admin/apps/${encodeURIComponent(e)}`,{method:`DELETE`}),update:e=>this.post(`/admin/apps/${encodeURIComponent(e)}/update`,{}),drift:e=>this.request(`/admin/apps/${encodeURIComponent(e)}/drift`),create:(e,t)=>this.post(`/admin/apps/create/${encodeURIComponent(e)}`,t),start:(e,t)=>this.post(c(`/create/${encodeURIComponent(e)}`,t)),finish:(e,t)=>this.request(`/create/${encodeURIComponent(e)}/callback`,{method:`POST`,headers:{accept:`application/json`,"content-type":`application/x-www-form-urlencoded`},body:new URLSearchParams(t)})};operator={apps:()=>this.request(`/admin/operator/apps`),setUp:(e,t)=>this.post(`/admin/operator/apps/${encodeURIComponent(e)}`,t),audit:()=>this.request(`/admin/operator/audit`),drift:e=>this.request(`/admin/operator/apps/${encodeURIComponent(e)}/drift`),update:e=>this.post(`/admin/operator/apps/${encodeURIComponent(e)}/update`,{})};installations={list:(e,t={})=>this.request(c(`/admin/installations`,{agent:e,limit:t.limit,...t.active?{active:1}:{}})),uninstall:e=>this.request(`/admin/installations/${encodeURIComponent(e)}`,{method:`DELETE`})};connections={list:(e,t)=>this.request(c(`/admin/connections`,{authorization:e,wait:t})),add:e=>this.post(`/admin/connections`,e),update:(e,t)=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),remove:e=>this.request(`/admin/connections/${encodeURIComponent(e)}`,{method:`DELETE`}),authorize:e=>this.post(`/admin/connections/${encodeURIComponent(e)}/authorize`)};config={get:()=>this.request(`/admin/config`),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`}),update:(e,t)=>this.request(`/admin/models/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),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={search:e=>this.request(c(`/admin/mcp-registry`,{q:e}))};flows={list:e=>this.request(c(`/admin/flows`,{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(c(`/admin/pulls`,{repo:e}))};usage(e={}){return this.request(c(`/admin/usage/totals`,{...e,since:e.since??Date.now()-6048e5}))}usageRows(e){return this.request(c(`/admin/usage`,{installation:e}))}},S=e({addCredential:()=>j,coderClient:()=>T,connect:()=>w,credentials:()=>N,loginCredential:()=>M,pushAgents:()=>D,serverFor:()=>C});function C(e={}){let n=u(e.server);if(!f(n)){if(!e.yes)throw new t(`invalid-option`,`First use of Coder server ${new URL(n).origin} needs confirmation.`,{hint:`Inspect the origin, then pass yes: true.`});p(n)}return n}function w(e={}){let t=C(e);return T(t,{token:e.token,missingHint:`auth.login({ server: '${t}' })`,organization:e.organization})}function T(e,{token:n,missingHint:r,organization:a}={}){let s=u(e),c=i();if(c&&s===`unix:${c}`)return new x(`http://localhost`,{},{fetch:E(c),organization:a});let f=l(s),p=f?.token,m=h.env.ADMIN_TOKEN,g=h.env.CODER_MCP_MODE===`cloud`?h.env.CODER_TASK_TOKEN:void 0,_=n??g??p??m;if(_&&_===m&&!o(s))throw new t(`invalid-option`,`ADMIN_TOKEN cannot be sent to a non-loopback server.`);if(!_)throw new t(`login-failed`,`Not signed in to ${s}.`,{...r?{hint:r}:{}});return new x(s,{token:_},{organization:a??f?.organization?.slug,renewal:f&&_===p?d(s,f):void 0})}function E(e){return async(t,n={})=>{let r=new URL(String(t)),i=n.body?Buffer.from(await new Response(n.body).arrayBuffer()):void 0;return new Promise((t,a)=>{let o=g.request({socketPath:e,path:`${r.pathname}${r.search}`,method:n.method??`GET`,headers:Object.fromEntries(new Headers(n.headers)),signal:n.signal??void 0},e=>{let r=new Headers;for(let t=0;t<e.rawHeaders.length;t+=2)r.append(e.rawHeaders[t],e.rawHeaders[t+1]);let i=e.statusCode??502,a=i===204||i===304||n.method===`HEAD`;a&&e.resume(),t(new Response(a?null:v.toWeb(e),{status:i,headers:r}))});o.on(`error`,a),o.end(i)})}}async function D(e,i,a){let{INTEGRATIONS:o}=await import(`./integrations-DSZSa8Rc.js`).then(e=>e.r),s=(await n(i,o)).filter(e=>!e.builtin),c=a?s.filter(e=>e.id===a):s;if(a&&!c.length)throw new t(`invalid-option`,`No workspace agent named "${a}".`);let l=[];for(let t of c)l.push(await e.agents.put(t.id,{definition:t.definition,systemPrompt:await _.readFile(m.join(t.dir,`system.md`),`utf8`).catch(()=>``),files:await r(t.dir),name:t.name,description:t.definition.description}));return l}const O=/^[A-Z_][A-Z0-9_]*$/,k=(e,n)=>new t(`invalid-option`,e,n?{hint:n}:{});async function A(){let e=``;for await(let t of h.stdin)e+=t.toString();return e.replace(/\r?\n$/,``)}async function j(e){let t=e.env;if(!t)throw k(`Missing required --env NAME.`,`Like --env ANTHROPIC_API_KEY`);if(!O.test(t))throw k(`Invalid environment variable name ${JSON.stringify(t)}.`);let n=e.value===`-`?await A():e.value??h.env[t];if(!n)throw k(`Environment variable ${t} is not set.`);return w(e).credentials.add({env:{[t]:n},workspace:e.workspace,noCheck:e.noCheck})}async function M(e,t={}){if(e!==`claude`&&e!==`codex`)throw k(`Name the engine to sign in to.`,`Usage: coder credentials login <claude|codex>`);let n=w(t).credentials,r=await n.login(e);t.onStart?.(()=>n.cancelLogin(r.id));let i=async e=>{for(;!e(r.state);)r=await n.loginStatus(r.id,r.state)};return await i(e=>e!==`starting`),t.onOpen?.(r),e===`claude`&&r.state===`open`&&t.code&&await n.loginCode(r.id,await t.code()),await i(e=>e===`done`||e===`failed`),r}const N={list:(e={})=>w(e).credentials.list(),add:j,remove:(e,t={})=>w(t).credentials.remove(e,t),login:M};export{S as a,D as i,w as n,C as o,N as r,T as t};
@@ -1,12 +0,0 @@
1
- import{t as e}from"./errors-DK_trCff.js";import{E as t,T as n,V as r}from"./state-CxAUec80.js";import{n as i}from"./types-DHBqXFE2.js";import{Z as a,s as o}from"./config-_32PHl9g.js";import{n as s}from"./integrations-DSZSa8Rc.js";import{i as c,n as l}from"./crypto-Ittsv-m4.js";import"./dispatch-BkoIU4GU.js";import{_ as u,a as d,g as f,l as p,o as m,p as h,r as g,s as _,t as v}from"./http-DRk8cDjf.js";import{n as y,r as b}from"./env-BwFCHakK.js";import{l as x}from"./github-actions-2RjyRseX.js";import{$ as S,$r as C,$t as w,A as ee,An as te,Ar as ne,B as T,Bn as E,Br as D,Bt as re,C as ie,Cn as ae,Cr as oe,Ct as se,D as ce,Dn as le,Dr as ue,Dt as de,E as fe,En as pe,Er as me,Et as he,F as O,Fn as ge,Fr as _e,Ft as ve,G as ye,Gn as be,Gr as xe,H as Se,Hn as Ce,Hr as we,Ht as Te,I as Ee,In as De,Ir as Oe,Jn as ke,Jr as Ae,K as je,Kn as Me,Kr as Ne,Kt as Pe,L as Fe,Ln as Ie,Lr as Le,Lt as Re,M as ze,Mn as Be,Mr as Ve,N as He,Nn as Ue,Nr as We,O as Ge,On as Ke,Or as qe,Ot as Je,P as k,Pn as Ye,Pr as Xe,Pt as Ze,Q as Qe,Qn as $e,Qr as et,R as A,Rn as tt,Rr as nt,Rt as rt,S as it,Sn as at,Sr as ot,St as st,T as ct,Tn as lt,Tr as ut,Tt as dt,U as ft,Un as pt,V as j,Vn as mt,Vr as ht,Vt as gt,W as _t,Wn as vt,Wt as yt,X as bt,Xn as xt,Xr as St,Xt as Ct,Y as wt,Yn as Tt,Yr as Et,Yt as Dt,Z as Ot,Zn as kt,Zr as At,_ as jt,_n as Mt,_r as Nt,_t as Pt,a as Ft,ai as It,at as Lt,b as Rt,bn as zt,br as Bt,c as M,ci as Vt,cn as Ht,ct as Ut,d as Wt,dn as Gt,dr as N,dt as Kt,ei as P,en as qt,er as Jt,et as Yt,f as Xt,fn as Zt,fr as Qt,ft as $t,g as en,gn as tn,gr as nn,gt as rn,h as an,hn as on,hr as sn,i as cn,ii as ln,in as F,ir as un,it as dn,j as fn,jn as pn,jr as mn,jt as hn,k as I,kn as gn,kr as _n,l as vn,li as yn,ln as bn,lt as xn,m as Sn,mn as Cn,mr as wn,n as Tn,ni as L,nn as En,nr as Dn,nt as On,o as kn,on as An,or as R,ot as jn,p as Mn,pn as Nn,pr as Pn,q as Fn,qn as In,qr as Ln,r as z,ri as B,rn as V,rr as Rn,rt as zn,s as Bn,sn as Vn,sr as Hn,st as Un,ti as H,tn as Wn,tr as Gn,tt as U,u as Kn,un as qn,ur as Jn,ut as Yn,v as Xn,vn as Zn,vr as Qn,w as $n,wn as er,wr as tr,wt as nr,x as W,xn as rr,xr as ir,xt as ar,y as or,yn as sr,yr as cr,z as G,zn as lr,zr as ur,zt as K}from"./apps-BORri-28.js";import{m as dr,p as fr,v as pr}from"./local-BzMvgiwL.js";import{a as mr,c as hr,n as gr,o as _r,r as vr,s as yr}from"./metadata-D_bBfr3H.js";import br from"node:path";import q from"node:process";import xr from"node:fs";import{spawnSync as Sr}from"node:child_process";import{createHash as Cr,randomBytes as wr,randomUUID as Tr}from"node:crypto";import Er from"node:http";async function Dr(e){let t=(e.now??Date.now)(),n=await e.store.list(`runner`);return{online:1+n.filter(({value:e})=>e.lastSeen!==void 0&&t-e.lastSeen<3e5).length,total:1+n.length}}async function Or(e){let t=(e.now??Date.now)(),n=e.healthyAt!==void 0&&t-e.healthyAt<5e3,r=n||await kr(e);return e.healthyAt=r?n?e.healthyAt:t:void 0,d({ok:r},r?200:503,{"cache-control":`no-store`})}async function kr(e){return e.config.store===`postgres`?e.databaseHealth?e.databaseHealth().then(()=>!0,()=>!1):!1:!0}async function Ar(e){let t=(e.now??Date.now)();if(!e.local)return{...await e.queue.metrics(e.organizationId,t-864e5),runnersOnline:(await Dr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0};let n=await e.queue.list(e.organizationId),r=e.local?[...F(e.local.cwd,!1),...F(e.local.cwd,!0)]:[],i=new Map([...r,...n.map(e=>e.status===`queued`?e:r.find(t=>t.task.id===e.task.id)??e)].map(e=>[e.task.id,e])),a={queued:0,running:0,waiting:0,completed:0,failed:0,cancelled:0},o=0;for(let e of i.values())e.createdAt>=t-864e5&&a[e.status]++,e.status===`queued`&&o++;return{tasks:a,queueDepth:o,runnersOnline:(await Dr(e)).online,requests:e.limits?.requests??0,rateLimitRejections:e.limits?.rejections??0}}async function jr(e,t,n,r){let i=t.session.user.id,a=(await e.json().catch(()=>({}))).engine??``;if(!Ir.has(a)||!t.config.subscriptions?.[a])return d({error:`Sign in with ${a||`that engine`} is off on this server.`},403);let o=t.runners[t.config.runner];if(!o||o.kind===`github-actions`)return d({error:`Sign-in cannot run on the ${t.config.runner} runner.`},409);let s=(await t.store.list(`login`)).find(({value:e})=>e.owner===i&&e.engine===a&&e.state!==`done`&&e.state!==`failed`&&e.expiresAt>J(t));if(s)return d(Y(s.id,s.value));let c=`login-${wr(12).toString(`base64url`)}`,l=Hn(c,t.organizationId,0),u={owner:i,engine:a,state:`starting`,tokenHash:l.hash,runner:o.kind,createdAt:J(t),expiresAt:J(t)+Fr};await Lr(t,c,u);let f;try{let e=await o.start({id:c},{CODER_SERVER:t.config.publicUrl??``,CODER_TASK_TOKEN:l.token,CODER_LOGIN:a},void 0,{timeoutMs:Fr,hosts:[D[a].api,...D[a].account]}),n=await t.store.patchLogin(c,{handle:e},{tokenHash:u.tokenHash});if(!n)return await o.stop(e).catch(()=>{}),d({error:`This sign-in is gone. Start again.`},409);f=n}catch(e){return await t.store.delete(`login`,c),d({error:e instanceof Error?e.message:String(e)},502)}return d(Y(c,f),201)}async function Mr(e,t,n,r){let i=n.id??``;if(!r.searchParams.has(`state`)){let e=i&&!i.includes(`/`)?await X(t,i):void 0;return e?d(Y(i,e)):d({error:`This sign-in is gone. Start again.`},404)}let a=await t.store.watch(`login`,i);try{let n=i&&!i.includes(`/`)?await X(t,i):void 0;if(!n)return d({error:`This sign-in is gone. Start again.`},404);let o=r.searchParams.get(`state`),s=Date.now()+25e3;for(;o&&n.state===o&&Date.now()<s&&!e.signal.aborted;)if(await a.wait(Math.min(1e4,s-Date.now()),e.signal),n=await X(t,i),!n)return d({error:`This sign-in is gone. Start again.`},404);return d(Y(i,n))}finally{a.close()}}async function Nr(e,t,n,r){let i=n.id??``,a=i&&!i.includes(`/`)?await X(t,i):void 0;if(!a)return d({error:`This sign-in is gone. Start again.`},404);let o=await e.json().catch(()=>({})),s=typeof o.code==`string`?o.code.trim():``;return a.engine!==`claude`||a.state!==`open`||!s||!await t.store.patchLogin(i,{state:`verifying`,input:It(t.config,s)},{state:`open`,tokenHash:a.tokenHash})?d({error:`This sign-in is not waiting for a code.`},409):d({ok:!0})}async function Pr(e,t,n,r){let i=n.id??``,a=i&&!i.includes(`/`)?await X(t,i):void 0;return a?(await t.store.delete(`login`,i),a.handle&&await t.runners[a.runner]?.stop(a.handle).catch(()=>{}),d({ok:!0})):d({error:`This sign-in is gone. Start again.`},404)}const Fr=6e5,Ir=new Set([`claude`,`codex`]),J=e=>(e.now??Date.now)();function Lr(e,t,n){return e.store.put(`login`,t,n,{ttlMs:Math.max(1,n.expiresAt-J(e))})}function Y(e,t){return{id:e,engine:t.engine,state:t.state,expiresAt:t.expiresAt,...t.url?{url:t.url}:{},...t.code?{code:t.code}:{},...t.error?{error:t.error}:{}}}async function X(e,t){let n=await e.store.get(`login`,t);return n&&n.owner===e.session?.user.id?n:void 0}function Rr(e,t){let n=t.handle&&e.runners[t.runner]?.stop(t.handle);if(!n)return;let r=n.catch(e=>console.error(`coder server: could not stop the machine of a finished ${t.engine} sign-in`,e));e.waitUntil?.(r)}async function zr(e,t,n,r){let i=n.id,a=await t.store.watch(`login`,i),o=Date.now()+25e3;try{for(;;){if(e.signal.aborted)return d({});let n=await t.store.get(`login`,i);if(!n||n.tokenHash!==t.callbackLogin.tokenHash)return new Response(`Unauthorized`,{status:401});if(n.input){let e=await t.store.patchLogin(i,{input:null},{input:n.input,tokenHash:n.tokenHash});return d(e?{code:B(t.config,n.input)}:{})}if(n.state===`verifying`||n.state===`done`||n.state===`failed`||Date.now()>=o)return d({});await a.wait(Math.min(1e4,o-Date.now()),e.signal)}}finally{a.close()}}async function Br(e,t,n,r){return d({engine:t.callbackLogin.engine})}async function Vr(e,t,n,r){let i=n.id,a=t.callbackLogin,o=await e.json().catch(()=>({}));if(a.state===`done`||a.state===`failed`)return d({ok:!0});let s={state:[`starting`,`open`,`verifying`],tokenHash:a.tokenHash};if(typeof o.error==`string`)return await t.store.patchLogin(i,{state:`failed`,error:o.error.slice(0,500)},s)&&Rr(t,a),d({ok:!0});let c=o.result?.env;if(c){let e=a.engine===`claude`?`CLAUDE_CODE_OAUTH_TOKEN`:`CODEX_AUTH_JSON`;if(Object.keys(c).join()!==e||typeof c[e]!=`string`)return d({error:`Invalid sign-in result`},400);let n=o.result?.account;return await t.store.completeLogin(i,a.tokenHash,{...ln(t.config,{env:c}),createdAt:(t.now??Date.now)(),...n?.email||n?.plan?{account:{...typeof n.email==`string`?{email:n.email}:{},...typeof n.plan==`string`?{plan:n.plan}:{}}}:{}})?(Rr(t,a),d({ok:!0})):d({error:`This sign-in changed. Try again.`},409)}let l={...typeof o.url==`string`&&/^https:\/\//.test(o.url)?{url:o.url}:{},...typeof o.code==`string`?{code:o.code.slice(0,64)}:{}};return await t.store.patchLogin(i,l.url?{...l,state:`open`}:l,s)?d({ok:!0}):d({error:`This sign-in changed. Try again.`},409)}const Hr=e=>`create-finished:${c(e)}`;async function Ur(e,t){let n=await e.store.get(`delivery`,Hr(t));return n&&`target`in n?n.target:void 0}async function Wr(e,t,n){let r=e.operatorApp??!1,i=r?`*`:e.session?.user.id??`anonymous`;if(!e.integrations[t])return{error:`Unknown integration "${t}"; run coder agent integrations list to see them`,status:404};if(!e.config.publicUrl)return{error:`PUBLIC_URL is not set on this server; set it to the address platforms should call and restart`,status:400};if(r&&!e.integrations[t].app.shareable)return{error:`Create this app in your workspace from the agent's Platforms tab.`,status:400};let a=Kn(n);if(!a)return{error:`Setup link is missing or malformed; start again from the agent's Platforms tab`,status:400};if(!a.definition.integrations[t])return{error:`This agent declares no ${t} integration in its agent.json`,status:400};if(a.state.public&&!r&&!e.integrations[t].publicApps)return{error:`${e.integrations[t].name} apps cannot be public here. Create a private one.`,status:400};let o=kn(t,a.state),s=a.state.tx?await Vt(e,a.state.tx,`create`,i)===o?a.state.tx:void 0:await yn(e,`create`,i,o);return s?{state:{...a.state,tx:s},definition:a.definition}:{error:`This app creation link is invalid, expired, or already used`,status:403}}async function Gr(e,t,n,r){let i=r.searchParams.get(`tx`);if(t.operatorApp&&i&&(await Vt(t,i,`create`,`*`)||await Ur(t,i)===n.id))return await At(e,t.dashboardHosts)??St();let a=new URLSearchParams(r.searchParams);return a.set(`create`,n.id),h(`${Bn(t)}${Sn(en(t),`/setup`)}?${a}`)}async function Kr(e,t,n){let r=await Wr(e,t,n);if(`error`in r)return d({error:r.error},r.status);let{app:i}=e.integrations[t],a=r.state.tx,o=i.createStep&&(e.operatorApp||r.state.public)?i.createStep(e.config.publicUrl,{saved:await Wt(e,t),name:r.definition.name,public:r.state.public}):void 0,s=e.config.publicUrl;if(i.createPost&&W.has(new URL(s).hostname))return d({error:`${e.integrations[t].name} cannot reach ${s}. Set a public address first.`},400);let c=e.operatorApp?void 0:vn(e,r.state.agent),u=i.createPost?.({publicUrl:s,spec:z(r.definition,r.state.agent,t),state:l({tx:a,...c?{back:c}:{}}),...r.state.owner?{owner:r.state.owner}:{},...r.state.public?{public:!0}:{}});return d({tx:a,...u?{post:u}:{},...o?{create:o}:{}})}async function qr(e,t,n,r){return Kr(t,n.id,r.searchParams)}async function Jr(e,t,n){let r=await e.json().catch(()=>void 0);return Kr(t,n.integration,new URLSearchParams(r&&typeof r==`object`?r:{}))}async function Yr(e,t,n,r,a){let o=t.operatorApp??!1,s=o?`*`:t.session?.user.id??`anonymous`,c=t.integrations[n];if(!c)return M(t,`unknown-integration`,{platform:n},a);if(o&&!c.app.shareable)return d({error:`Create this app in your workspace from the agent's Platforms tab.`},400);let u=t.config.publicUrl;if(!u)return M(t,`no-public-url`,{},a);let f=r?await Xt(t,r,n,s):void 0;if(!f)return M(t,`create-expired`,{platform:n},a);o&&await t.store.put(`delivery`,Hr(r),{at:t.now?.()??Date.now(),target:n},{ttlMs:6e5});let p=o?`/create/${n}`:vn(t,f.state.agent),m=o?{tx:r}:{},g=o?void 0:(await Tn(t)).find(e=>e.integration===n),_=await c.app.createCallback(e,{publicUrl:u,spec:z(f.definition,f.state.agent,n),fetch:t.fetch??fetch,tokens:cn(t,n),...g?{shared:B(t.config,g.credentials)}:{}}).catch(r=>r instanceof i&&r.code===`invalid-field`&&e.headers.get(`accept`)===`application/json`?d({error:r.message},400):r instanceof i?M(t,r.code,{platform:n,error:r.error,...m},p):(console.error(`coder server: creating the ${n} app failed`,r),M(t,`failed`,{platform:n,...m},p)));if(_ instanceof Response)return _;let v={id:`${n}:${_.platformAppId}`,integration:n,agent:f.state.agent,name:_.name,...f.state.repo?{agentsRepo:f.state.repo}:{},...f.state.repo?{branch:f.state.branch??`main`}:{},...o?{builtin:!0}:{},...`shared`in _?{shared:g.id,credentials:``}:{credentials:It(t.config,_.credentials)},createdAt:t.now?.()??Date.now()};if(await t.store.put(`app`,v.id,v),c.app.values&&await t.store.put(`delivery`,Ve(v.id),{version:0,manifest:c.app.values(v,{publicUrl:u,spec:z(f.definition,v.agent,n)}).lines,changed:!1}),o)return await ir(t,`Created the shared app`,`${_.name} on ${c.name}`),M(t,`created`,{platform:n,app:_.name,...m},p);let y=await yn(t,`install`,s,v.id);return h(`${u}/install/${n}?app=${encodeURIComponent(v.id)}&state=${l({tx:y,back:p})}`)}async function Xr(e,t,n,r){let i=g(r.searchParams.get(`state`));return Yr(e,t,n.id,i?.tx,Ft(i?.back))}async function Zr(e,t,n,r){let i=new URLSearchParams(await e.clone().text()).get(`tx`),a=await Yr(e,t,n.id,i,void 0),o=a.headers.get(`location`);return o&&e.headers.get(`accept`)===`application/json`?d({url:o}):a}async function Qr(e,t){let n=(await e.store.list(`installation`)).filter(({value:t})=>!t.deletedAt&&e.integrations[t.integration]?.repos),r=new Map((await qe(e.store,n.map(({value:e})=>e.app))).map(({id:e,value:t})=>[e,t]));for(let{value:i}of n){let n=e.integrations[i.integration];if(i.deletedAt||!n?.repos)continue;let a=r.get(i.app);if(!(!a||a.integration!==n.id))try{let r=await qn(e,n,i,B(e.config,a.credentials));if(i.repos?.includes(t)||(await n.repos.list(Gt(e,i),r)).includes(t))return{contents:n,token:r,app:a,installation:i}}catch(e){console.error(`coder server: repository access for ${i.id} failed`,e)}}}async function $r(e,t,n){let r=await Qr(e,t);if(!r)return d({error:`No installed app can read ${t}`},400);let i=await r.contents.repos.listDir(t,_n,r.token,n).catch(()=>[]),o=await Promise.all(i.map(async i=>{let o=await r.contents.repos.readFile(t,`${_n}/${i}/agent.json`,r.token,n).catch(()=>void 0);if(o===void 0)return;let s={};try{let e=JSON.parse(o);e&&typeof e==`object`&&(s=e)}catch{}let c=Object.entries(s.mcp&&typeof s.mcp==`object`&&!Array.isArray(s.mcp)?s.mcp:{}).flatMap(([e,t])=>a(e,t)),l=await fr(e.store,i),u=l?.source===`repo`&&l.repo===t,d=u?await dr(e.store,i):void 0;return{id:i,name:typeof s.name==`string`?s.name:i,...c.length?{warnings:c}:{},...typeof s.description==`string`?{description:s.description}:{},...u?{version:l.currentVersion,...d?.source?{commit:d.source.commit}:{}}:{},...l&&!u?{taken:!0}:{}}}));return d({repo:t,agents:o.filter(Boolean)})}async function ei(e,t,n,r){let i=r.searchParams.get(`repo`);return i?$r(t,i,r.searchParams.get(`ref`)||`HEAD`):d({error:`repo is required`},400)}async function ti(e,t,n,r){let i=await e.json().catch(()=>void 0),a=i?.agents;if(typeof i?.repo!=`string`||i.ref!==void 0&&typeof i.ref!=`string`||a!==void 0&&!(Array.isArray(a)&&a.every(e=>typeof e==`string`)))return d({error:`repo is required, ref must be a string and agents a list of ids`},400);try{let e=await Qr(t,i.repo);if(!e)return d({error:`No installed app can read ${i.repo}`},400);let n=i.ref??`HEAD`,r=a??await e.contents.repos.listDir(i.repo,`.coder/agents`,e.token,n);for(let e of r){let n=await fr(t.store,e);if(n&&(n.source!==`repo`||n.repo!==i.repo))return d({error:`Agent id "${e}" is already taken`},409)}let o=await ne(t.store,e.contents,i.repo,n,e.token,(t.now??Date.now)(),{slugs:r});return await We(t,o),d({imported:o.map(e=>e.agent)})}catch(e){return d({error:e instanceof Error?e.message:String(e)},400)}}async function ni(e,t,n,r){let i=n.id,a=Number(r.searchParams.get(`after`)??-1),o=Number.isFinite(a)?a:-1,s=t.routeTask??await t.store.get(`task`,i);if(!s&&t.taskPrincipal)return d({error:`No task "${i}"`},404);if(!s||t.local&&s.handle?.startsWith(`cli:`)&&s.task.flow==="default"){let n=s?.task.cwd??t.local?.cwd;if(!n||!V(n,i,!1))return d({error:`No task "${i}"`},404);{let r=Number(e.headers.get(`last-event-id`)??o);return hi(e,t,`cli:${n}:${i}`,Number.isFinite(r)?r:o,async e=>{let t=V(n,i);if(t)return{status:t,lines:En(n,i,e,oi),pendingResult:ai(n,t,!t.result)}})}}let c=Number(e.headers.get(`last-event-id`)??o);return hi(e,t,i,Number.isFinite(c)?c:o,{ctx:t,id:i},ii(t))}const ri=3e4;function ii(e){let t=e.now??Date.now,n={at:t(),seen:!0};return async r=>{let{task:i}=r,a=await N(e);return R(a&&{...a,spaces:[]},i)?!0:i.audience?.startsWith(`space:`)?((n.audience!==i.audience||t()-n.at>=ri)&&(n={at:t(),audience:i.audience,seen:R(await N(e,[i.audience]),i)}),n.seen):!1}}function ai(e,t,i=!1){if(!on.has(t.status)||t.error||t.status===`cancelled`)return!1;let a=n(e,t.task.id),o=Date.parse(a?.resumedAt??a?.createdAt??``)||0;return i||(xr.statSync(br.join(r(e,t.task.id),`result.json`),{throwIfNoEntry:!1})?.mtimeMs??0)<o}const Z=1e3,oi=500,si=29e4,ci=2e4,Q=3e4;function li(e,t,n,r){let i=[...new Set((r.searchParams.get(`tasks`)??``).split(`,`).filter(Boolean))].slice(0,100),a=Date.now(),o=t.taskWatcher??new fi,s=o.tag(t),[c,l]=(e.headers.get(`last-event-id`)??``).split(`-`),u=Number(c),d=u>0&&`-${l}`===s,f=d?Math.min(Math.max(u,a-si),a):a,p=u>0&&(!d||u<f)?`event: reset
2
- data: {}
3
-
4
- `:``,m=new TextEncoder,h=()=>{},g=new ReadableStream({start(n){n.enqueue(m.encode(`retry: ${Z}\nid: ${f}${s}\n\n${p}`)),h=o.watch(t,i,f,e=>n.enqueue(m.encode(e)),()=>n.close());let r=()=>{h();try{n.close()}catch{}};e.signal.aborted?r():e.signal.addEventListener(`abort`,r)},cancel(){h()}});return new Response(g,{headers:{"content-type":`text/event-stream; charset=utf-8`,"cache-control":`no-cache, no-transform`}})}function ui(e,t){let{task:n,approval:r,archivedAt:i,createdAt:a,startedAt:o,finishedAt:s}=e;return{id:n.id,agent:n.agent,status:e.status,approval:r??null,approvals:e.approvals??n.context?.approvals??null,archivedAt:e.autoArchived&&!t?void 0:i,createdAt:a,startedAt:o,finishedAt:s,...Re(e),...t?{result:e.result??null,error:e.error??null,answer:e.answer??null}:{}}}const di=(e,t)=>`${e}:${t??``}`;var fi=class{options;watches=new Set;timer;counts=new Map;views=new Map;runners=new Map;reading=!1;closed=!1;last=Date.now();scans=new Map;left=new Map;archived=new Map;reads=0;generation=Tr().slice(0,8);constructor(e={}){this.options=e}watch(e,t,n,r,i){if(this.closed)return queueMicrotask(i),()=>{};let a=Date.now();this.watches.size||(this.last=a);let o={ctx:e,ids:new Set(t),sent:new Map,gone:new Set,from:n,fresh:!0,runners:``,tag:this.tag(e),beat:a,marked:a,until:a+(this.options.lifeMs??si),send:r,close:i};return this.watches.add(o),this.timer||(this.timer=setInterval(()=>this.tick(),this.options.pollMs??Z),this.timer.unref?.()),this.tick(),()=>this.drop(o)}tag(e){return`-${Cr(`sha256`).update(e.organizationId).digest(`hex`).slice(0,8)}${e.queue instanceof hn?`.${this.generation}`:``}`}runnersChanged(e){this.runners.delete(e)}close(){this.closed=!0;for(let e of[...this.watches]){this.drop(e);try{e.close()}catch{}}}drop(e){if(this.watches.delete(e)){if(![...this.watches].some(t=>t.ctx.organizationId===e.ctx.organizationId)){for(let t of[this.counts,this.views])for(let n of t.keys())n.startsWith(`${e.ctx.organizationId}:`)&&t.delete(n);this.runners.delete(e.ctx.organizationId)}this.watches.size||(clearInterval(this.timer),this.timer=void 0,this.counts.clear(),this.views.clear(),this.runners.clear())}}tick(){let e=Date.now();for(let t of[...this.watches])if(e>=t.until){this.drop(t);try{t.close()}catch{}}else e-t.beat>=(this.options.heartbeatMs??ci)&&(t.beat=e,this.send(t,`: ping
5
-
6
- `));this.reading||!this.watches.size||(this.reading=!0,this.read(e).finally(()=>this.reading=!1))}send(e,t){try{e.send(t)}catch{this.drop(e)}}async read(e){let t=[...this.watches],n=new Map;for(let e of t){let t=n.get(e.ctx.organizationId)??{ctx:e.ctx,ids:new Set,fresh:new Set};for(let n of e.ids)t.ids.add(n),e.fresh&&t.fresh.add(n);n.set(e.ctx.organizationId,t)}let r=Math.min(this.last,...t.flatMap(e=>e.fresh?[e.from]:[]));this.reads++;let i=await this.changes(n,r-Q,e).catch(e=>{console.error(`coder server: task events failed`,e)});if(!i)return;this.last=e;let a=new Map;try{for(let[r,{ctx:o}]of n){let n=JSON.stringify([[...i.rows.get(r)??[]].map(([e,t])=>[e,t.status,t.archivedAt]).sort(),[...i.deleted.get(r)?.keys()??[]].sort()]),s=t.filter(e=>e.ctx.organizationId===r),c=s.some(e=>!On(e.ctx)&&!e.ctx.taskPrincipal);for(let t of new Set(s.map(e=>e.ctx.taskPrincipal?.task))){let l=di(r,t),u=this.counts.get(l),d=u?.fingerprint!==n||c&&!t&&e-u.at>=ri,f=o.local?[...i.rows.get(r)?.values()??[]].filter(e=>!e.archivedAt&&[`queued`,`running`,`waiting`].includes(e.status)&&(!t||e.task.parent===t)).map(e=>({...Jn(e.task),requestedBy:e.task.requestedBy,active:1})):d?t?[{audience:``,active:(await o.queue.counts(r,{archived:!1,statuses:[`queued`,`running`,`waiting`],parent:t})).active}]:await o.queue.activeCounts(r):u.groups;a.set(l,f),s.some(e=>this.watches.has(e))&&this.counts.set(l,{groups:f,fingerprint:n,at:d?e:u.at})}}}catch(e){console.error(`coder server: task counts failed`,e);return}let o=new Map(await Promise.all(t.map(async t=>{let{organizationId:n,session:r,taskPrincipal:o}=t.ctx,s=`${n}:${r?.user.id??``}:${o?.task??``}`,c=[...i.rows.get(n)?.values()??[]],l=new Set([...c.map(e=>e.task.audience),...[...i.deleted.get(n)?.values()??[]].map(e=>e.audience),...(a.get(di(n,o?.task))??[]).map(e=>e.audience)].filter(e=>!!e?.startsWith(`space:`))),u=this.views.get(s);if(!u||e-u.at>=ri||[...l].some(e=>!u.audiences.has(e))||c.some(e=>e.updatedAt>u.at&&l.has(e.task.audience))){let n=N(t.ctx,[...l]),r={at:e,audiences:l,view:n};this.views.set(s,r),n.catch(()=>this.views.get(s)===r&&this.views.delete(s))}return[t,await this.views.get(s).view]})));await Promise.all([...n].filter(([t])=>e-(this.runners.get(t)?.at??-1/0)>=15e3).map(async([t,{ctx:n}])=>{let r=this.runners.get(t),i={at:e,records:r?.records??[]};this.runners.set(t,i);try{let e=await n.store.list(`runner`);this.runners.get(t)===i&&(i.records=e)}catch(e){this.runners.get(t)===i&&(r?this.runners.set(t,r):this.runners.delete(t)),console.error(`coder server: runner events failed`,e)}}));for(let n of t){if(!this.watches.has(n))continue;let t=[];try{let r=o.get(n);t=this.news(n,i,e,r);let s=a.get(di(n.ctx.organizationId,n.ctx.taskPrincipal?.task))?.filter(e=>R(r,e)).reduce((e,t)=>e+t.active,0);s!==void 0&&s!==n.active&&(n.active=s,t.push(`id: ${e}${n.tag}\nevent: counts\ndata: ${JSON.stringify({active:s})}\n\n`)),t.push(...this.runnerNews(n,e))}catch{}!t.length&&e-n.marked>=(this.options.heartbeatMs??ci)&&t.push(`id: ${e}${n.tag}\n\n`),t.length&&(n.marked=e,this.send(n,t.join(``)))}}runnerNews(e,t){let n=this.runners.get(e.ctx.organizationId);if(!n)return[];let r=de(e.ctx,n.records,t),i=JSON.stringify(r.map(({lastSeen:e,...t})=>t.online?t:{...t,lastSeen:e})),a=e.runners;return e.runners=i,a===i?[]:[`id: ${t}${e.tag}\nevent: runners\ndata: ${JSON.stringify({items:r})}\n\n`]}async changes(e,t,r){let i=await[...e.values()][0].ctx.queue.changes([...e].map(([e,t])=>({organizationId:e,ids:[...t.ids],fresh:[...t.fresh]})),t),a=new Map;for(let{organizationId:e,status:t}of i.rows){let n=a.get(e)??new Map;a.set(e,n.set(t.task.id,t))}let o=new Map;for(let{organizationId:e,id:t,...n}of i.deleted){let r=o.get(e)??new Map;o.set(e,r.set(t,n))}for(let[t,{ctx:i}]of e){if(!i.local)continue;let e=[...a.get(t)?.values()??[]],o=this.scans.get(i.local.cwd);if(!o||r-o.at>=(this.options.localScanMs??4e3)||e.some(e=>e.updatedAt>o.at)){let e=!o||r-o.archivedAt>=(this.options.archiveScanMs??15e3);await Ht(i,i.local.cwd);let t=e?F(i.local.cwd,!0):o.archived,a=F(i.local.cwd,!1),s=new Set(a.map(e=>e.task.id)),c=[...a,...t.filter(e=>!s.has(e.task.id))],l=new Set(c.map(e=>e.task.id)),u=this.left.get(i.local.cwd)??new Map;for(let e of o?.rows??[])l.has(e.task.id)||u.set(e.task.id,o.at);for(let[e,t]of u)(t<r-6e5||l.has(e))&&u.delete(e);let d=this.archived.get(i.local.cwd)??new Set;for(let e of d)l.has(e)?d.delete(e):n(i.local.cwd,e)||(u.set(e,o?.at??r),d.delete(e));this.left.set(i.local.cwd,u),this.scans.set(i.local.cwd,o={at:r,rows:c,archived:t,archivedAt:e?r:o.archivedAt})}a.set(t,new Map(ae(i.local.cwd,o.rows,e).map(e=>[e.task.id,e])))}return{rows:a,deleted:o}}news(e,{rows:t,deleted:n},r,i){let{ctx:a}=e,o=a.taskPrincipal?.task,s=t.get(a.organizationId)??new Map;if(o&&e.fresh)for(let t of e.ids)s.get(t)?.task.parent!==o&&e.ids.delete(t);let c=[],l=(t,n)=>{let i=JSON.stringify(n);e.sent.get(t)!==i&&(e.sent.set(t,i),c.push(`id: ${r}${e.tag}\nevent: task\ndata: ${i}\n\n`))},u=e=>({id:e,deleted:!0}),d=t=>{let n=a.local&&!o&&V(a.local.cwd,t,e.ids.has(t));if(l(t,n?ui(n,e.ids.has(t)):u(t)),e.gone.add(t),n&&a.local){let e=this.archived.get(a.local.cwd)??new Set;this.archived.set(a.local.cwd,e.add(t))}};for(let[t,n]of s){if(o&&n.task.parent!==o)continue;if(!R(i,n.task)){e.sent.has(t)&&l(t,u(t));continue}let s=e.ids.has(t);e.gone.delete(t);let c=ui(s&&a.local&&n.local&&on.has(n.status)?V(a.local.cwd,t)??n:n,s);if(a.local&&n.local&&e.sent.get(t)!==JSON.stringify(c)&&r-(n.finishedAt??0)<Q&&ai(a.local.cwd,n)){e.sent.has(t)||e.sent.set(t,``);continue}s||a.local&&!e.fresh||n.updatedAt>e.from-Q?l(t,c):e.fresh&&e.sent.set(t,JSON.stringify(c))}if(e.fresh||a.queue instanceof hn)for(let t of e.ids)s.has(t)||d(t);for(let[t,{at:r,...s}]of n.get(a.organizationId)??[])r>e.from-Q&&R(i,s)&&(!o||e.ids.has(t))&&l(t,u(t));if(a.local){for(let t of e.sent.keys())!s.has(t)&&!e.ids.has(t)&&!e.gone.has(t)&&d(t);for(let[t,n]of this.left.get(a.local.cwd)??[])n>e.from-Q&&!s.has(t)&&e.sent.get(t)!==JSON.stringify(u(t))&&d(t)}return e.fresh=!1,e.from=r,c}};const pi=1e4;var mi=class{options;feeds=new Map;timer;interval;closed=!1;reads=0;constructor(e={}){this.options=e,this.interval=e.pollMs??Z}watch(e,t,n,r,i,a){if(this.closed)return queueMicrotask(i),()=>{};let o=this.feeds.get(e),s=o?.reading!==void 0&&Date.now()-o.reading>=(this.options.stallMs??pi);if(!o||s){let t={key:e,source:n,watches:new Set,head:1/0};if(o){for(let e of o.watches)t.watches.add(Object.assign(e,{feed:t}));o.watches.clear()}this.feeds.set(e,o=t)}let c={cursor:t,feed:o,timers:[],send:r,close:i,sees:a};c.timers=[setTimeout(()=>this.end(c),this.options.lifeMs??5e4),setInterval(()=>this.send(c,`: ping
7
-
8
- `),this.options.heartbeatMs??ci)];for(let e of c.timers)e.unref?.();return o.watches.add(c),o.reading===void 0&&t<o.head&&this.read([o]),this.schedule(),()=>this.drop(c)}close(){this.closed=!0;for(let e of[...this.feeds.values()])for(let t of[...e.watches])this.end(t)}drop(e){let{feed:t}=e;for(let t of e.timers)clearTimeout(t);!t.watches.delete(e)||t.watches.size||(this.feeds.get(t.key)===t&&this.feeds.delete(t.key),!this.feeds.size&&(clearTimeout(this.timer),this.timer=void 0,this.interval=this.options.pollMs??Z))}end(e,t=``){try{t&&e.send(t),e.close()}catch{}this.drop(e)}send(e,t){try{e.send(t)}catch{this.drop(e)}}schedule(){this.timer||this.closed||!this.feeds.size||(this.timer=setTimeout(()=>this.tick(),this.interval),this.timer.unref?.())}tick(){this.timer=void 0;let e=[...this.feeds.values()].filter(e=>e.reading===void 0);this.schedule(),this.read(e).then(e=>{let t=e?this.options.pollMs??Z:Math.min(this.interval*2,this.options.idleMs??5e3);t!==this.interval&&(this.interval=t,clearTimeout(this.timer),this.timer=void 0,this.schedule())})}async read(e){let t=e.filter(e=>this.feeds.get(e.key)===e&&e.watches.size).map(e=>{let t=[...e.watches];return{feed:e,readers:t,from:Math.min(...t.map(e=>e.cursor))}});if(!t.length)return!1;let n=Date.now();for(let{feed:e}of t)e.reading=n;this.reads+=t.length;let r=new Map,i=[];for(let e of t){let{source:t}=e.feed;typeof t==`function`?i.push({...e,read:t}):r.set(t.ctx.queue,[...r.get(t.ctx.queue)??[],{...e,...t}])}let a=e=>(console.error(`coder server: task log read failed`,e),null);return(await Promise.all([...[...r].map(async([e,t])=>{let{statementTimeout:n}=t[0].ctx,r=()=>e.logTails(t.map(({ctx:e,id:t,from:n})=>({organizationId:e.organizationId,id:t,after:n})),500),i=await(n?n(pi,r):r()).catch(a);return Promise.all(t.map((e,t)=>this.settle(e,i&&i[t])))}),...i.map(async e=>[await this.settle(e,await e.read(e.from).catch(a))])])).flat().includes(!0)}async settle({feed:e,readers:t,from:n},r){let i=r?await Promise.all(t.map(async e=>await e.sees?.(r.status).catch(()=>!1)===!1)):[];if(e.reading=void 0,this.feeds.get(e.key)!==e)return!1;t.forEach((e,t)=>i[t]&&this.end(e));let a=t.filter(t=>e.watches.has(t)),o=a.length<e.watches.size,s=!1;if(r===void 0)for(let e of a)this.end(e);else if(r){let{status:t,lines:i,pendingLogs:c,pendingResult:l}=r,u=i.length===500,d=on.has(t.status)&&!u&&!c&&!l,f=i.map(e=>[e.seq,`id: ${e.seq}\nevent: log\ndata: ${JSON.stringify(e)}\n\n`]),p=i.at(-1)?.seq??n;s=e.head!==1/0&&p>e.head,e.head=Math.max(n,p),u&&(o=!0);let m=t.status===`waiting`?t.approval:void 0;for(let e of a){let t=f.flatMap(([t,n])=>t>e.cursor?[n]:[]).join(``);!u&&!d&&!e.caught&&(e.caught=!0,t+=`event: caught-up
9
- data: {}
10
-
11
- `),!u&&m?.id&&e.approval!==m.id&&(e.approval=m.id,t+=`event: approval\ndata: ${JSON.stringify(m)}\n\n`),e.cursor=Math.max(e.cursor,i.at(-1)?.seq??-1),d?this.end(e,`${t}event: end\ndata: {}\n\n`):t&&this.send(e,t)}}return o&&this.feeds.get(e.key)===e&&this.read([e]),s}};function hi(e,t,n,r,i,a){let o=t.logWatcher??new mi,s=new TextEncoder,c=()=>{},l=new ReadableStream({start(l){l.enqueue(s.encode(`retry: ${Z}\n\n`)),c=o.watch(`${t.organizationId}:${n}`,r,i,e=>l.enqueue(s.encode(e)),()=>l.close(),a);let u=()=>{c();try{l.close()}catch{}};e.signal.aborted?u():e.signal.addEventListener(`abort`,u)},cancel(){c()}});return new Response(l,{headers:{"content-type":`text/event-stream; charset=utf-8`,"cache-control":`no-cache, no-transform`}})}const gi={npm:[`npx`,`-y`],pypi:[`uvx`],oci:[`docker`,`run`,`-i`,`--rm`]},_i=(e=[])=>e.map(({name:e,description:t,isRequired:n,isSecret:r,value:i,default:a})=>({name:e,...t?{description:t}:{},...i??a?{placeholder:i??a}:{},required:n===!0,secret:r===!0}));function vi(e=[],t,n){return e.flatMap((e,r)=>{let i=`${t}:${r}`,a=Object.entries(e.variables??{}),o=e.value??e.default,s=(e,t,r)=>{let[i]=_i([{...r,name:e}]);return n.push({...i,label:t}),`{${e}}`};if(a.length)for(let[e,t]of a)o=o?.replaceAll(`{${e}}`,s(`${i}:${e}`,e,t));else o===void 0&&(e.valueHint||e.isRequired)&&(o=s(i,e.valueHint??e.name??i,e));return[...e.type===`named`&&e.name?[e.name]:[],...o===void 0?[]:[o]]})}function yi(e){let t=e.remotes?.find(e=>e.type===`streamable-http`);if(t)return{type:`http`,url:t.url,env:[],headers:_i(t.headers)};let n=e.packages?.find(e=>gi[e.registryType]&&(e.transport?.type??`stdio`)===`stdio`);if(!n)return;let[r,...i]=gi[n.registryType],a=[],o=vi(n.runtimeArguments,`runtime`,a),s=vi(n.packageArguments,`package`,a);return{type:`stdio`,command:n.runtimeHint??r,args:[...!n.runtimeHint||n.runtimeHint===r?i:[],...o,n.identifier,...s],...a.length?{argumentInputs:a}:{},env:_i(n.environmentVariables),headers:[]}}function bi(e,t){let[n=``,r]=e.replace(/^v/,``).split(`+`)[0].split(/-(.*)/),[i=``,a]=t.replace(/^v/,``).split(`+`)[0].split(/-(.*)/),o=n.localeCompare(i,`en`,{numeric:!0});if(o)return o;if(r===void 0||a===void 0)return Number(r===void 0)-Number(a===void 0);let s=r.split(`.`),c=a.split(`.`);for(let e=0;e<Math.max(s.length,c.length);e++){let t=s[e],n=c[e];if(t===void 0||n===void 0)return Number(t!==void 0)-Number(n!==void 0);let r=/^\d+$/.test(t),i=/^\d+$/.test(n),a=r===i?t.localeCompare(n,`en`,{numeric:r}):Number(i)-Number(r);if(a)return a}return 0}function xi(e,t,n){for(let{server:r,_meta:i}of n){let n=i?.[`io.modelcontextprotocol.registry/official`]?.isLatest===!0,a=r.version??``,o=t.get(r.name);if(o&&(o.latest===n?bi(o.version,a)>=0:o.latest))continue;let s=yi(r),c=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+\//i.test(r.name)&&!/^io\.github(?:\.|\/)/i.test(r.name),l=r.name.split(`/`).pop()??r.name,u=c&&/^(mcp|mcp-server|server)$/i.test(l)?r.name.split(`/`)[0].split(`.`).pop():l;t.set(r.name,{version:a,latest:n,found:s?{name:r.name,title:r._meta?.[`io.modelcontextprotocol.registry/publisher-provided`]?.github?.displayName??r.title??u,description:r.description??``,...c?{verified:!0}:{},...e.curated?{curated:!0}:{},...s}:void 0})}}var Si=class{sources=[{url:`https://api.mcp.github.com/v0.1/servers`,curated:!0,rows:new Map,ready:!1,failed:!1},{url:`https://registry.modelcontextprotocol.io/v0.1/servers`,curated:!1,rows:new Map,ready:!1,failed:!1}];refreshAt=0;timer;controller;closed=!1;inFlight;async response(e,t){(e.now??Date.now)()>=this.refreshAt&&this.refresh(e);let n=t.trim().toLowerCase(),r=n?await Promise.all(this.sources.map(async t=>{let r=new Map;if(!t.ready)try{let i=new URLSearchParams({search:n,limit:`100`}),a=await(e.fetch??fetch)(`${t.url}?${i}`,{headers:{accept:`application/json`},signal:AbortSignal.any([this.controller.signal,AbortSignal.timeout(2e4)])});if(!a.ok)throw Error(`Registry unavailable`);let{servers:o}=await a.json();xi(t,r,o)}catch{}return r})):[],i=this.sources.map((e,t)=>{let n=r[t];if(!n?.size)return e.rows;let i=new Map(e.rows);for(let[e,t]of n)i.has(e)||i.set(e,t);return i});if(!this.inFlight&&this.sources.some(e=>e.failed)&&!i.some(e=>[...e.values()].some(e=>e.found)))return d({error:`The MCP registry did not answer. Try again.`},502);let a=new Set,o=this.sources.flatMap((e,t)=>[...i[t]].flatMap(([t,{found:r}],i)=>{if(a.has(t)||(a.add(t),!r))return[];let o=r.verified?r.name.split(`/`)[0].split(`.`).pop().toLowerCase():void 0,s=[r.name.split(`/`).pop(),r.title,...o?[o]:[]].map(e=>e.toLowerCase()),c=!n||s.includes(n)?0:s.some(e=>e.startsWith(n))?1:s.some(e=>e.includes(n))?2:r.description.toLowerCase().includes(n)?3:4;if(c===4)return[];let l=!n||c===3?2:o===n?0:r.verified?1:2;return[{found:r,curated:e.curated,order:i,vendor:l,quality:c}]})),s=e=>Number(e===3);return o.sort((e,t)=>s(e.quality)-s(t.quality)||Number(t.curated)-Number(e.curated)||(e.curated?e.order-t.order:e.vendor-t.vendor||e.quality-t.quality||e.found.name.localeCompare(t.found.name))),d(o.slice(0,30).map(({found:e})=>e),200,this.sources.every(e=>e.ready)?{}:{partial:`true`})}refresh(e){if(this.inFlight||this.closed)return;this.timer&&clearTimeout(this.timer);let t=this.controller=new AbortController;this.inFlight=Promise.all(this.sources.map(n=>this.fill(e,n,t.signal))).then(()=>{}).finally(()=>{this.inFlight=void 0,this.refreshAt=(e.now??Date.now)()+36e5,this.closed||(this.timer=setTimeout(()=>this.refresh(e),36e5),this.timer.unref())}),e.waitUntil?.(this.inFlight)}async fill(e,t,n){let r=new Map,i=new Set,a;try{do{let o=new URLSearchParams({limit:`100`});a&&o.set(`cursor`,a);let s=await(e.fetch??fetch)(`${t.url}?${o}`,{headers:{accept:`application/json`},signal:AbortSignal.any([n,AbortSignal.timeout(2e4)])});if(!s.ok)throw Error(`Registry unavailable`);let{servers:c,metadata:l}=await s.json();if(xi(t,r,c),t.ready||(t.rows=new Map(r)),a=l?.nextCursor,a&&i.has(a))throw Error(`Registry cursor repeated`);a&&i.add(a)}while(a);t.rows=r,t.ready=!0,t.failed=!1}catch{t.failed=!0}}close(){this.closed=!0,this.timer&&clearTimeout(this.timer),this.controller?.abort()}};async function Ci(e,t,n){let r=t.settings??={};return await(r.registry??=new Si).response(t,n.searchParams.get(`q`)??``)}const wi=[L(`GET`,`/runner/:file`,x),L(`GET`,Xn,Rt),L(`GET`,mr,hr,{guard:j}),L(`GET`,gr,_r,{guard:j}),L(`GET`,vr,yr,{guard:j}),L(`GET`,`/health`,(e,t)=>Or(t)),L(`GET`,new URL(o).pathname,Zt),L(`GET`,`/`,Ae,{guard:ye}),L(`GET`,`/login`,et,{guard:Ot}),...H(`/login`,Et,Ot).filter(e=>e.method!==`GET`),L(`POST`,`/dash/token`,Ln,{guard:ze}),...H(`/dash/:org/operator`,Ne,_t),...H(`/dash`,Ne,fn)],Ti=[L(`GET`,`/api/auth/capabilities`,(e,t)=>d({wular:t.auth?.issuer??null})),...H(`/api/auth`,(e,t)=>t.auth.handler(e),fe),L(`GET`,`/me`,an,{guard:it})],Ei=[...P(`/tasks`,[L(`GET`,`/:id/messages`,jn,{guard:k}),L(`POST`,`/:id/ack`,zn,{guard:k}),L(`POST`,`/:id/heartbeat`,dn,{guard:k}),L(`POST`,`/:id/logs`,Ut,{guard:T}),L(`POST`,`/:id/result`,xn,{guard:wt}),L(`POST`,`/:id/credential`,Un,{guard:wt}),L(`POST`,`/:id/connection`,$t,{guard:U}),L(`POST`,`/:id/reply`,Kt,{guard:U}),L(`POST`,`/:id/react`,Yn,{guard:U}),L(`GET`,`/:id/history`,Dn,{guard:U}),L(`GET`,`/:id/history/:conversation`,Rn,{guard:U}),L(`POST`,`/:id/history`,un,{guard:wt}),L(`GET`,`/:id`,Lt,{guard:Ge})]),...P(`/logins`,[L(`GET`,`/:id/input`,zr,{guard:G}),L(`GET`,`/:id`,Br,{guard:G}),L(`POST`,`/:id`,Vr,{guard:G})]),...P(`/runners`,[L(`POST`,`/register`,he)])],Di=[...P(`/create`,[L(`GET`,`/:id`,Gr,{guard:I}),L(`POST`,`/:id`,qr,{guard:I}),L(`GET`,`/:id/callback`,Xr,{guard:I}),L(`POST`,`/:id/callback`,Zr,{guard:I})]),...P(`/install`,[L(`GET`,`/:id`,Ue,{guard:O}),L(`POST`,`/:id`,Ue,{guard:O}),L(`GET`,`/:id/callback`,Be,{guard:O}),L(`POST`,`/:id/callback`,Be,{guard:O})])],Oi=P(`/connect`,[L(`GET`,`/:integration`,jt,{guard:Se}),L(`GET`,`/:integration/callback`,Mn,{guard:Se})]),ki=[...P(`/hooks`,[L(`POST`,`/*`,(e,t,n)=>Ke(e,t,n[`*`]),{guard:(e,t,n)=>t.integrations[n[`*`]]?t:p()})]),...Di,...Oi],Ai=[L(`GET`,`/metrics`,async(e,t)=>d(await Ar(t),200,{"cache-control":`no-store`}),{guard:$n}),L(`GET`,`/usage`,rn,{approvalPolicy:`allow`}),L(`GET`,`/usage/totals`,Pt,{approvalPolicy:`allow`})],ji=P(``,[L(`GET`,`/folders`,(e,t)=>d(Oe(t.local.cwd))),L(`POST`,`/folders/check`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return d(Xe(n?.path))}),L(`POST`,`/folders/clone`,async(e,t)=>{let n=await e.json().catch(()=>void 0);return d(await _e(n?.url))}),L(`POST`,`/folders/pick`,async(e,t)=>d(await Le()))],Fe),Mi=P(``,[L(`GET`,`/engines/status`,async(e,t)=>d(await Wn(t))),L(`POST`,`/engines/:engine/login`,w),L(`POST`,`/engines/:engine/logout`,qt)],He),Ni=[L(`POST`,`/apps/:id/install`,(e,t,n,r)=>Qt(e,t,n.id,r.searchParams.get(`back`))),L(`POST`,`/apps/create/:integration`,Jr),L(`GET`,`/apps`,sn),L(`DELETE`,`/apps/:id`,Qn),L(`GET`,`/apps/:id/drift`,Nt),L(`POST`,`/apps/:id/update`,Bt),L(`GET`,`/installations`,nn),L(`DELETE`,`/installations/:id`,cr,{guard:(e,t)=>Fn(t,`Only an owner or admin can uninstall an app.`)}),L(`GET`,`/connections`,Te,{guard:K,approvalPolicy:`allow`}),L(`POST`,`/connections`,re,{guard:K}),L(`PATCH`,`/connections/:id`,yt,{guard:K}),L(`DELETE`,`/connections/:id`,gt,{guard:K}),L(`POST`,`/connections/:id/authorize`,rt,{guard:K}),L(`GET`,`/integrations`,(e,t,n,r)=>wn(t,r)),L(`GET`,`/repositories`,(e,t)=>Pn(t)),L(`POST`,`/repositories/refresh`,(e,t)=>Pn(t,!0))],Pi=[L(`GET`,`/agents/import`,ei),L(`POST`,`/agents/import`,ti),L(`GET`,`/agents`,In,{approvalPolicy:`allow`}),L(`PATCH`,`/agents/:slug/settings`,Me,{guard:ct,approvalPolicy:`ask`,change:`agent-settings`}),L(`GET`,`/agents/:slug/versions`,ke),L(`GET`,`/agents/:slug/versions/:version`,xt,{approvalPolicy:`allow`}),L(`GET`,`/agents/:slug`,Tt,{approvalPolicy:`allow`}),L(`DELETE`,`/agents/:slug`,vt,{guard:(e,t)=>Fn(t,`Only an owner or admin can delete an agent.`)}),L(`PUT`,`/agents/:slug`,be,{approvalPolicy:`ask`,change:`agent-version`})],Fi=[L(`GET`,`/credentials`,Ct,{approvalPolicy:`allow`}),L(`POST`,`/credentials`,Pe,{guard:ee}),L(`DELETE`,`/credentials/:name`,Dt),L(`POST`,`/logins`,jr,{guard:A}),L(`GET`,`/logins/:id`,Mr,{guard:A}),L(`POST`,`/logins/:id`,Nr,{guard:A}),L(`DELETE`,`/logins/:id`,Pr,{guard:A})],Ii=[L(`GET`,`/runners`,nr,{approvalPolicy:`allow`}),L(`POST`,`/runners`,st),L(`POST`,`/runners/pair`,dt),L(`POST`,`/runners/:id/test`,ar),L(`PATCH`,`/runners/:id`,Je,{approvalPolicy:`ask`,change:`runner-default`}),L(`DELETE`,`/runners/:id`,se)],Li=[L(`GET`,`/composer`,rr),L(`GET`,`/tasks`,at,{approvalPolicy:`allow`}),L(`POST`,`/tasks`,tn,{guard:Yt,approvalPolicy:`allow`}),L(`GET`,`/tasks/:id`,er,{guard:S(),approvalPolicy:`allow`}),L(`DELETE`,`/tasks/:id`,lt,{guard:S()}),L(`GET`,`/tasks/:id/logs`,le,{guard:S(),approvalPolicy:`allow`}),L(`GET`,`/tasks/:id/stream`,ni,{guard:S(),approvalPolicy:`allow`}),L(`POST`,`/tasks/:id/steer`,pe,{guard:S(!0),approvalPolicy:`allow`}),L(`POST`,`/tasks/:id/ask`,sr,{guard:S(!0),approvalPolicy:`allow`}),L(`POST`,`/tasks/:id/approve`,Mt,{guard:S(!0),approvalPolicy:`allow`}),L(`POST`,`/tasks/:id/requests/:approval`,Ye,{guard:S()}),L(`GET`,`/approvals/pending`,(e,t)=>ge(t),{guard:$n}),L(`POST`,`/tasks/:id/cancel`,zt,{guard:S(),approvalPolicy:`allow`}),L(`POST`,`/tasks/:id/archive`,Zn,{guard:S(),approvalPolicy:`allow`}),L(`GET`,`/events`,li,{approvalPolicy:`allow`})],Ri=[L(`GET`,`/config`,Cn),L(`PATCH`,`/config`,Nn)],zi=[L(`POST`,`/models/probe`,(e,t)=>Ce(e,t)),L(`GET`,`/models`,mt,{approvalPolicy:`allow`}),L(`POST`,`/models`,Ie),L(`DELETE`,`/models/:name`,tt),L(`PATCH`,`/models/:name`,pt,{approvalPolicy:`ask`,change:`model-update`}),L(`POST`,`/models/:name/alias`,De,{approvalPolicy:`ask`,change:`model-alias`}),L(`POST`,`/models/:name/disable`,lr,{approvalPolicy:`ask`,change:`model-disable`}),L(`POST`,`/models/:name/enable`,E,{approvalPolicy:`ask`,change:`model-enable`})],Bi=[L(`GET`,`/mcp-registry`,(e,t,n,r)=>Ci(e,t,r))],Vi=P(`/operator`,[L(`GET`,`/apps`,oe),L(`POST`,`/apps/:integration`,tr),L(`GET`,`/apps/:integration/drift`,ut),L(`POST`,`/apps/:integration/update`,me),L(`GET`,`/audit`,ot)],ft),Hi=[L(`GET`,`/flows`,gn),L(`GET`,`/pulls`,te),L(`POST`,`/flows/:name/run`,pn)],Ui=P(`/admin`,[...Ai,...ji,...Mi,...Ni,...Pi,...Fi,...Ii,...Li,...Ri,...zi,...Bi,...Hi,...Vi]).map(e=>({...e,guard:ie(e.guard,e)})),Wi=[L(`GET`,`/connections/oauth/callback`,(e,t,n,r)=>or(e,t,r),{guard:ce}),...Ei,...Ui,...Ti,...ki,...wi];async function Gi(e,t,n){if(!Ee(e,t))return p();let r=new URL(e.url);return n.scope instanceof Response?n.scope:(t=n.scope??t,await C(Wi,e,t,r)??Ne(e,t))}async function Ki(e,t,n={}){t.limits??=new Jt((t.now??Date.now)()),t.limits.requests++,t.settings??={},t.taskWatcher??=new fi,t.logWatcher??=new mi,t.dashboardHosts??=new xe;let r=()=>qi(e,t,n);return t.dbProfile?t.dbProfile.request(n.inProcess===!0,r):r()}async function qi(e,t,n){let r=await m(e,v(new URL(e.url).pathname));if(r instanceof Response)return r;let i=je(r,t,n.inProcess===!0),a=!1;try{let r=n.clientIp??`unknown`,o=await Gn(i.req,i.ctx,r),s=u(o instanceof Response?o:await Gi(i.req,i.ctx,o),i.cookies),c=new URL(e.url).pathname.split(`/`),l=c[1]===`tasks`,d=c[1]===`admin`&&c[2]===`tasks`;if(e.method!==`GET`&&s.ok&&![`hooks`,`tasks`,`logins`].includes(c[1])&&!(o instanceof Response)){let e=o.scope instanceof Response?void 0:o.scope??i.ctx;e&&ve(e,e.organizationId)}return e.method!==`GET`&&s.ok&&!(l&&c.length===4&&c[2]&&[`heartbeat`,`logs`].includes(c[3]))&&!(d&&c.length===5&&c[3]&&[`steer`,`ask`,`approve`,`archive`].includes(c[4]))&&(l||d||c[1]===`admin`&&c[2]===`flows`&&c.length===5&&c[3]&&c[4]===`run`)&&$e(t,d&&c.length===3&&e.method===`POST`),a=!!s.body&&(s.headers.get(`content-type`)??``).includes(`text/html`),a?f(s,i.end):s}finally{a||i.end()}}async function Ji(t={}){let n=t.env??q.env,r=y(n,t.host??`node`),i=t.runner??r.runner;if((t.host===`vercel`||n.VERCEL)&&(i===`local`||i===`local-docker`))throw new e(`invalid-option`,`The ${i} runner cannot run on Vercel.`,{hint:`Leave RUNNER unset to use vercel-sandbox.`});if(r.store===`memory`&&i!==`local`&&i!==`local-docker`)throw new e(`invalid-option`,`The ${i} runner needs a database.`,{hint:`Set DATABASE_URL, or use RUNNER=local for a memory server.`});if(!r.publicUrl)throw new e(`invalid-option`,`PUBLIC_URL is required to start a Coder server.`,{hint:`Set PUBLIC_URL to the address platforms and browsers use.`});let a=[];if(r.store===`memory`&&!t.local&&a.push(`test server, not for production: everything is in memory, nothing survives a restart, no sign-in; set DATABASE_URL for a real deployment`),!n.SERVER_ENCRYPTION_KEY&&!t.local&&a.push(`secrets are stored unencrypted; set SERVER_ENCRYPTION_KEY (openssl rand -base64 32)`),r.store===`postgres`&&!r.encryptionKey)throw new e(`invalid-option`,`SERVER_ENCRYPTION_KEY is required for a Postgres server.`,{hint:`Set SERVER_ENCRYPTION_KEY (openssl rand -base64 32); sign-in keys derive from it.`});let o=s(r.integrations),c=r.store===`memory`&&!r.adminToken?wr(18).toString(`base64url`):void 0;r.store===`postgres`&&r.adminToken&&a.push(`ADMIN_TOKEN is ignored with Postgres; owners and admins sign in with coder auth login`);let l={...r,...r.store===`postgres`?{adminToken:void 0}:{},...c?{adminToken:c}:{},...t.runner?{runner:t.runner}:{}},u=await ue(l,{local:!!t.local});try{l.store===`memory`&&await pr(u.store(u.defaultOrganizationId),Date.now());let r=u.connection&&l.auth?await(await import(`./auth-C16ylySv.js`)).createAuth(u.connection.db,l):void 0,i=t.cwd??q.cwd(),s=u.store(u.defaultOrganizationId),d=ur({kind:l.runner,workDir:l.workDir,config:l.runnerConfig,local:!(t.host===`vercel`||n.VERCEL),sandbox:{region:ht(l.databaseUrl),snapshots:we(s)}});if(!d[l.runner])throw await u.close(),new e(`invalid-option`,`Runner ${l.runner} is not configured.`,{hint:`Set RUNNER_CONFIG to JSON containing url and secret.`});let f=new xe,p=new Jt,m=new Si,h=new Map,g=new Map,_=new fi,v=new mi,y=e=>{let n=h.get(e);if(n)return n;let a=u.store(e),s=new Map,c={registry:m},b={limits:p,...u.connection?{databaseHealth:async()=>{let{sql:e}=await import(`./drizzle-orm-CYU7WOQS.js`).then(e=>e.t);await u.connection.db.execute(e`select 1`)},statementTimeout:u.connection.statementTimeout}:{},config:l,settings:c,organizationId:e,integrations:o,runners:d,store:a,queue:u.queue,requestScopes:g,taskWatcher:_,logWatcher:v,dashboardHosts:f,dbProfile:u.connection?.profile,chatState:u.chatState,fileReads:s,repositoryLists:new Map,loadAgent:mn(o,{...t.local?{cwd:i}:{},config:l,store:a,fileReads:s,settings:c}),...r?{auth:r}:{},scope:y,webhookTarget:(e,t)=>u.webhookTarget(e,t),appRecord:e=>u.appRecord(e),apps:e=>u.apps(e),installationOrganization:e=>u.installationOrganization(e),installations:e=>u.installations(e),serverOrganizationId:u.defaultOrganizationId,taskOrganization:(e,t)=>u.taskOrganization(e,t),...t.local?{local:t.local}:{}};return h.set(e,b),b};globalThis.__coder={handle:e=>Ki(e,y(u.defaultOrganizationId),{inProcess:!0})};let b=y(u.defaultOrganizationId);b.local&&Wn(b).catch(()=>{});let x;return t.local&&(await An(b),x=setImmediate(()=>{bn(b).catch(()=>void 0)})),{config:l,context:y,defaultContext:b,warnings:a,...c?{mintedToken:c}:{},sweep:u.sweep,close:async()=>{m.close(),_.close(),v.close(),x&&clearImmediate(x),await b.local?.usageSync?.catch(()=>void 0),await Vn(b),await u.close()}}}catch(e){throw await u.close(),e}}const $=36e5;function Yi(e){try{let t=new URL(e);return W.has(t.hostname)?Number(t.port||(t.protocol===`https:`?443:80)):void 0}catch{return}}function Xi(e=q.env,t=e.VERCEL?`vercel`:`node`){b();let n,r,i=()=>n??=Ji({env:e,host:t}).catch(e=>{throw n=void 0,e}),a=e=>Promise.all([e.sweep(),kt(e.defaultContext,!1,!0),Ze(e.defaultContext)]).then(()=>void 0);return Object.assign(async(t,n)=>{let o=await i(),s=n?e=>n(e):e=>void e.catch(()=>{}),c=Date.now();(r===void 0||c-r>=$)&&(r=c,s(o.defaultContext.store.create(`delivery`,`maintenance:${o.config.publicUrl}`,{at:c},{ttlMs:$}).then(e=>e?a(o):void 0).catch(e=>console.error(`coder server: maintenance failed`,e))));let l=e=>({...o.context(e),waitUntil:s,scope:l});return Ki(t,l(o.defaultContext.organizationId),{clientIp:e.VERCEL?t.headers.get(`x-forwarded-for`)?.split(`,`,1)[0]?.trim():void 0})},{scheduled:async()=>{let e=await i();await a(e)},close:async()=>{let e=n;n=void 0,r=void 0,await(await e)?.close()}})}function Zi(e){let t=Sr(`lsof`,[`-nP`,`-iTCP:${e}`,`-sTCP:LISTEN`,`-t`],{encoding:`utf8`}),n=Number(t.stdout?.split(`
12
- `)[0]);if(n)return{pid:n,command:Sr(`ps`,[`-o`,`command=`,`-p`,String(n)],{encoding:`utf8`}).stdout?.trim().slice(0,120)||`another process`}}function Qi(t){let n=Zi(t),r=n&&/\bcoder (dash|server serve)\b/.test(n.command);return new e(`server`,n?r?`Coder is already running on port ${t} (pid ${n.pid}): http://localhost:${t}`:`Port ${t} is in use by ${n.command} (pid ${n.pid}).`:`Port ${t} is in use.`,{hint:n?`Stop it with \`kill ${n.pid}\`, or use another port: --port ${t+1}`:`Use another port: --port ${t+1}`})}async function $i(n={}){b();let r=n.env??q.env;if(n.runner&&!nt.includes(n.runner))throw new e(`invalid-option`,`Invalid --runner value: use ${nt.join(`, `)}`);if(n.port!==void 0&&(!Number.isInteger(n.port)||n.port<1||n.port>65535))throw new e(`invalid-option`,`Invalid port: use 1 through 65535.`);let i=r.PORT&&/^\d+$/.test(r.PORT)?Number(r.PORT):void 0,a=Yi(r.PUBLIC_URL),o=n.port??i??a??8787;if(!Number.isInteger(o)||o<1||o>65535)throw new e(`invalid-option`,`Invalid PORT: use 1 through 65535.`);let s=r.PUBLIC_URL?r:{...r,PUBLIC_URL:`http://localhost:${o}`},c=!!(r.DATABASE_URL||r.POSTGRES_URL);if(c&&n.memory)throw new e(`invalid-option`,`A memory server cannot use DATABASE_URL.`,{hint:`Unset DATABASE_URL, or drop --memory.`});let l=(n.host??r.HOST??(c?void 0:`127.0.0.1`))?.replace(/^\[(.*)\]$/,`$1`),u=!c&&!n.memory;if(u&&!W.has(l))throw new e(`invalid-option`,`A local server listens on loopback only.`,{hint:`Reach it through a tunnel or a proxy on this machine; set DATABASE_URL for a deployment, or use --memory for a test server.`});if(n.memory&&r.VERCEL)throw new e(`invalid-option`,`A memory server cannot run on Vercel.`,{hint:`Set DATABASE_URL for a real deployment.`});let d,f,p=u?new Promise((e,n)=>{f=n,d=()=>{t().then(e,n)}}):void 0,m=p?.then(()=>void 0).catch(()=>void 0),h=u?{cwd:n.cwd??q.cwd(),port:o,cacheMaintenance:m}:void 0,g=await Ji({cwd:n.cwd,env:s,runner:n.runner,...h?{local:h}:{}}),v=g.defaultContext,y=()=>{g.sweep().catch(e=>console.error(`coder server: sweep failed`,e))};y();let x=setInterval(y,$);x.unref();let S=setInterval(()=>{kt(v,!1,!0).catch(e=>console.error(`coder server: scheduled kick failed`,e)),Ze(v).catch(e=>console.error(`coder server: inbox flush failed`,e))},6e4);S.unref();let C=Er.createServer(_((e,t)=>Ki(e,v,{clientIp:t}),{admit:e=>c||Qe(e.socket.remoteAddress,e.url??`/`)})),w=g.config.publicUrl;a!==void 0&&a!==o&&g.warnings.push(`PUBLIC_URL points at port ${a} but the server listens on ${o}`),await new Promise((e,t)=>{C.once(`error`,t),C.listen(o,l,e)}).catch(async e=>{throw f?.(e),clearInterval(S),clearInterval(x),await g.close(),e.code===`EADDRINUSE`?Qi(o):e}),d?.();let ee=!1,te=async()=>{ee||(ee=!0,clearInterval(S),clearInterval(x),v.taskWatcher?.close(),v.logWatcher?.close(),await new Promise((e,t)=>C.close(n=>n?t(n):e())),await m,await g.close())},ne=v.auth?`Wular Auth (${v.auth.issuer})`:void 0,T=`http://localhost:${o}`,E=bt(v),D=E===`local`?T:w,re=g.config.store===`memory`?g.mintedToken??r.ADMIN_TOKEN:void 0;return{address:T,publicUrl:w,warnings:g.warnings,close:te,runner:g.config.runner,store:g.config.store,mode:E,...p?{cacheMigration:p}:{},maxTasks:g.config.maxTasks??g.config.limits?.concurrentTasks??10,...ne?{signIn:ne}:{},...g.mintedToken?{mintedToken:g.mintedToken}:{},...g.config.store===`postgres`&&r.DATABASE_URL?{database:(await import(`./client-nBo9Mhsr.js`).then(e=>e.n)).describeDatabase(r.DATABASE_URL)}:{},...W.has(new URL(D).hostname)?{dashboard:`${D}/dash${re?`#token=${encodeURIComponent(re)}`:``}`}:{}}}async function ea(t={}){try{return await $i(t)}catch(t){if(t instanceof e)throw t;let n=t instanceof Error&&t.cause instanceof Error?`: ${t.cause.message}`:``;throw new e(`server`,`${t instanceof Error?t.message:String(t)}${n}`)}}export{ea as serve,Xi as serverHandler};