@wular/coder 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) 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 +1231 -1231
  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.ff03c26886d248d2.js} +3 -3
  16. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.c36570a56d279ce2.js → notify.5b9c5a4ab975b01e.js} +1 -1
  17. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.13fdd9cc55ad3a52.js → page.6e80433ca86c927d.js} +3 -3
  18. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.38a7f39cddc670f7.js → sign-out.e419e0eae59a1394.js} +1 -1
  19. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.2385ffa8fdad08d6.js → agents-grid.53dc6597be8d6049.js} +1 -1
  20. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.5ca6921e50484f8c.js → page.82a238c790c19a6c.js} +5 -5
  21. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.afc4a8a5a8360975.js → layout.4a5c6f90ebaccf6f.js} +7 -7
  22. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.ba65063a1aa99a62.js → page.ed696703c6fb5796.js} +6 -6
  23. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.03c5e72b0fe50ba9.js → page.12dbb62edaa16b4f.js} +11 -11
  24. 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.1e7bb5f00112eeac.js} +3 -3
  25. 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.45adc3fb28e7d33b.js} +1 -1
  26. 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.1693e7dc34f5b94a.js} +4 -4
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.fad77cea17947d47.js → page.fbbcdf8fde222f1e.js} +6 -6
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.4120e6979eaed441.js → loading.099f0e549e964a5c.js} +1 -1
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.474b3524d5ea53b7.js → page.577e64210260faf2.js} +1 -1
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.7868a07efcaa26f4.js → page.2d10853615403293.js} +3 -3
  31. 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
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.6e53829bd1f3021d.js → loading.f0dfaf4552b8cde1.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.5798ede8ba8ace97.js → page.9f09979ad3435fe3.js} +6 -6
  34. 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.adaebe98ec9d32e8.js} +2 -2
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/{page.ce391cad0d78795f.js → page.e2dc60bbcac65b1f.js} +3 -3
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.0cec822c6099f058.js → agent-toggle.d795b7112534872c.js} +2 -2
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.7151c467e7ecf6a5.js → hero.b74c6eb40c45b498.js} +1 -1
  38. 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
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.f314d92af0bb33b0.js → editor.288736c2a52c7df4.js} +5 -5
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.11028d5329ad537b.js → import-picker.58bad50dd8e60d63.js} +3 -3
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.1476d31e4554e88b.js → page.83a490948f585e69.js} +4 -4
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.150d950d191db477.js → layout.61ad05aceb425910.js} +3 -3
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.3e72de86b86a7338.js → operator-apps.6f71999915848a2c.js} +6 -6
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.6a4be3b1a473ff8c.js → page.4758811b7fc86d84.js} +5 -5
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.262ed73437c17872.js → page.7de674df6cd0e824.js} +1 -1
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{advanced-list.7180570379e2625c.js → advanced-list.851275e04f8e7305.js} +1 -1
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connection-add.632b1847c16ecd42.js → connection-add.45a224c5e612b15f.js} +3 -3
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.4378ae707b2092ed.js → connections-list.6cacd41c18de261d.js} +5 -5
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.e47897acb6867df8.js → credentials-list.79a1355d894b8642.js} +3 -3
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.6bd06f96afbe7329.js → credentials.30db114aef2c6ff6.js} +8 -8
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.38e70272eeb98cd0.js → list.fa3b9eff6657bc57.js} +2 -2
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.a08cd37d0f7ff86c.js → models-list.2a8f6a5679fc5c4d.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.f096b5a9ac419326.js → page.7681780b48e2aa3e.js} +13 -13
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.0df1f9329df1b67d.js → runners-list.e9834546550a3c2c.js} +4 -4
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.6d2f56fa7d6fcab0.js → secrets-list.ff9f3b3d88f2b8df.js} +3 -3
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.0fd865c865e5bab4.js → layout.3f8a61434ceaa186.js} +1 -1
  57. 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
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.60aadbe43ea1e39c.js → create-link.371225925a83e900.js} +3 -3
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-toast.e2b9ef0344b1a1a2.js → outcome-toast.c7d02e38464dec0b.js} +1 -1
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.c456ad99c8a9f875.js → page.885e5ae7913d8f5b.js} +4 -4
  61. 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
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.578be2f6c89fcba0.js → page.70ce5ef3bcf56310.js} +5 -5
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.d131453dd2a423c3.js → task-actions.783070d7dbd198e4.js} +3 -3
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.3d72a4ecd2b3826e.js → task-view.db256c7f111b8f23.js} +20 -9
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.97be3e67214889c1.js → composer.6a331de70f3baff4.js} +4 -4
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{pending-approvals.9175908da02960e1.js → pending-approvals.7ff2eadf13a3ee90.js} +1 -1
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.028798c79227a366.js → tasks-list.57c90c66384141a0.js} +8 -8
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.9a9d13057b326f25.js → tasks-section.22e4f86847e1a3e2.js} +4 -4
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.045c6db0c56975b2.js → page.c6b9db3ca88aaa1f.js} +2 -2
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.938d29ff7edb678d.js → page.743fe359f09f5648.js} +2 -2
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.2cdb8eabd8f6df70.js → stream.c7ffa724145ce870.js} +1 -1
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.8733901ca0e4c246.js → task-toasts.b0ba5a1b4976ae27.js} +47 -20
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.56cea462eb725c39.js → action.44115286faf6c0f8.js} +1 -1
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.685154f230716834.js → client.b9225923da59febe.js} +1 -1
  75. package/dist/dash/standalone/static/assets/chunks/{advanced-list-b75a9c2bd11026de.js → advanced-list-4a393f37c461986f.js} +1 -1
  76. package/dist/dash/standalone/static/assets/chunks/{agent-pills-54564413a57d7fa7.js → agent-pills-f07bea43753a9342.js} +1 -1
  77. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-55d294dad2ce5a0d.js → agent-settings-form-6c1b6776328cd046.js} +1 -1
  78. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-b5dcc4ea6292fb3d.js → agent-toggle-dabbca2fe4006852.js} +1 -1
  79. package/dist/dash/standalone/static/assets/chunks/{agents-grid-69461c53abbba433.js → agents-grid-a9440caa1768bfd8.js} +1 -1
  80. package/dist/dash/standalone/static/assets/chunks/{back-ba5e4340a9f8bbd2.js → back-8ca96656264a0d1c.js} +1 -1
  81. package/dist/dash/standalone/static/assets/chunks/{chain-hint-491eb09a20a15702.js → chain-hint-c7994aad798ef430.js} +1 -1
  82. package/dist/dash/standalone/static/assets/chunks/{combo-6df61e8a1cc31037.js → combo-7b125f3927083749.js} +1 -1
  83. package/dist/dash/standalone/static/assets/chunks/{composer-198b844da57b82a3.js → composer-3efd63e2e0192937.js} +1 -1
  84. package/dist/dash/standalone/static/assets/chunks/composer-a6cf207b9c69b43f.js +1 -0
  85. package/dist/dash/standalone/static/assets/chunks/{confirm-14d018653fbe50fc.js → confirm-6e26ab941d655b9f.js} +1 -1
  86. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-5118edc019fc7890.js → connect-repositories-90f1aedea6de7a99.js} +1 -1
  87. package/dist/dash/standalone/static/assets/chunks/{connections-list-5412dad7e0def52f.js → connections-list-90935e956e8f4626.js} +1 -1
  88. package/dist/dash/standalone/static/assets/chunks/{copy-04781f9af4e10f06.js → copy-38fa78628f39ec10.js} +1 -1
  89. package/dist/dash/standalone/static/assets/chunks/create-link-a3c963721aa06a72.js +1 -0
  90. package/dist/dash/standalone/static/assets/chunks/{credentials-list-e64c973aee5602d3.js → credentials-list-ae950b9891d30c29.js} +1 -1
  91. package/dist/dash/standalone/static/assets/chunks/{custom-range-b6919bab9846ebf7.js → custom-range-e9185a23187b3fe6.js} +1 -1
  92. package/dist/dash/standalone/static/assets/chunks/{editor-68e9ccd1764fc512.js → editor-e0cc472111713852.js} +1 -1
  93. package/dist/dash/standalone/static/assets/chunks/{field-adcb6e6a5f9b7131.js → field-444bab2e16b91c26.js} +1 -1
  94. package/dist/dash/standalone/static/assets/chunks/instructions-7d9131eb37c4619e.js +1 -0
  95. package/dist/dash/standalone/static/assets/chunks/{instructions-7b274685ceb26457.js → instructions-9f173d4229d9b77e.js} +1 -1
  96. package/dist/dash/standalone/static/assets/chunks/{list-662f042656857c82.js → list-84356c9286747b10.js} +1 -1
  97. package/dist/dash/standalone/static/assets/chunks/{models-list-ae1e2eff30d21824.js → models-list-eca9705ab89a2ce5.js} +1 -1
  98. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-3006ae63624b3940.js +1 -0
  99. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-fd86ded4c44c2de7.js → outcome-dialog-c4d61a288688f53a.js} +1 -1
  100. package/dist/dash/standalone/static/assets/chunks/{outcome-toast-c00becdb638cd9a8.js → outcome-toast-ba59a3c06c25f0fd.js} +1 -1
  101. package/dist/dash/standalone/static/assets/chunks/platform-actions-0c61a03082f9d169.js +1 -0
  102. package/dist/dash/standalone/static/assets/chunks/{platform-actions-f3979ab69a6ceb53.js → platform-actions-267a43c805e3c3a6.js} +1 -1
  103. package/dist/dash/standalone/static/assets/chunks/{platform-step-5454b6c0a19caefd.js → platform-step-adfc87c1fa86e7e1.js} +1 -1
  104. package/dist/dash/standalone/static/assets/chunks/platform-step-fd1616528b2f6f12.js +1 -0
  105. package/dist/dash/standalone/static/assets/chunks/{runners-list-20d42f19fb4bec8a.js → runners-list-c858c5546c6fd513.js} +1 -1
  106. package/dist/dash/standalone/static/assets/chunks/{secrets-list-89f89ee70edb3856.js → secrets-list-06cd41b5a2627452.js} +1 -1
  107. package/dist/dash/standalone/static/assets/chunks/{segmented-66a8c77c6294fec3.js → segmented-15503e745dd97f56.js} +1 -1
  108. package/dist/dash/standalone/static/assets/chunks/shared-init-02666a6f76606589.js +1 -0
  109. package/dist/dash/standalone/static/assets/chunks/shared-init-7a7f1e623f0f5861.js +9 -0
  110. package/dist/dash/standalone/static/assets/chunks/{shared-init-96225b8c7758de9d.js → shared-init-a69029db2d72fb52.js} +1 -1
  111. package/dist/dash/standalone/static/assets/chunks/side-toggle-800f7bacd6de5aa8.js +1 -0
  112. package/dist/dash/standalone/static/assets/chunks/{tail-40f16e09eade7eee.js → tail-3024b828bce41f94.js} +1 -1
  113. package/dist/dash/standalone/static/assets/chunks/{task-396d849e58e50d59.js → task-1e6f9ba22fb5e29f.js} +1 -1
  114. package/dist/dash/standalone/static/assets/chunks/{task-actions-0b3054dc0f8d17c0.js → task-actions-c8fe1201a56901d9.js} +1 -1
  115. package/dist/dash/standalone/static/assets/chunks/{task-view-9e026dc5da58af5b.js → task-view-531e243f8222f802.js} +3 -3
  116. package/dist/dash/standalone/static/assets/chunks/{tasks-list-04c6568d7f7237b7.js → tasks-list-5373f9a2772a386a.js} +1 -1
  117. package/dist/dash/standalone/static/assets/chunks/{versions-list-ceb756236e69b761.js → versions-list-6642a24e9cef352b.js} +1 -1
  118. package/dist/dash/standalone/static/assets/pnext-client-02b9bb5ae78a37d6.js +1 -0
  119. package/dist/dash/standalone/static/assets/pnext-client-063d14b5b5c893a3.js +1 -0
  120. package/dist/dash/standalone/static/assets/pnext-client-1710a65c5b8280af.js +1 -0
  121. package/dist/dash/standalone/static/assets/pnext-client-2936b44e963219bc.js +1 -0
  122. package/dist/dash/standalone/static/assets/pnext-client-2f14cc4bf71bf456.js +1 -0
  123. package/dist/dash/standalone/static/assets/{pnext-client-27207e4f43f9a21b.js → pnext-client-2f81535a69d0c8a3.js} +1 -1
  124. package/dist/dash/standalone/static/assets/pnext-client-368d90341055d7ff.js +1 -0
  125. package/dist/dash/standalone/static/assets/pnext-client-58e0efbceb6c595f.js +1 -0
  126. package/dist/dash/standalone/static/assets/{pnext-client-435db60553fa3a67.js → pnext-client-5fc693a6184e48a4.js} +1 -1
  127. package/dist/dash/standalone/static/assets/pnext-client-6ee756a74310a9fe.js +1 -0
  128. package/dist/dash/standalone/static/assets/pnext-client-713f7a6bc55d23fb.js +1 -0
  129. package/dist/dash/standalone/static/assets/pnext-client-7c91f8543cd360fa.js +1 -0
  130. package/dist/dash/standalone/static/assets/pnext-client-827b030f2c8e738e.js +1 -0
  131. package/dist/dash/standalone/static/assets/pnext-client-8b165b7e5c14a1f3.js +1 -0
  132. package/dist/dash/standalone/static/assets/pnext-client-95a81597ac1bdea0.js +1 -0
  133. package/dist/dash/standalone/static/assets/pnext-client-a4c2fb8a94ccce04.js +1 -0
  134. package/dist/dash/standalone/static/assets/pnext-client-a7faaaf8c4cc8145.js +1 -0
  135. package/dist/dash/standalone/static/assets/pnext-client-bab8ffb68e7dd229.js +1 -0
  136. package/dist/dash/standalone/static/assets/pnext-client-d9fab2611c2e7246.js +1 -0
  137. package/dist/dash/standalone/static/assets/{pnext-client-b1af82c6f0db0033.js → pnext-client-f3804c9ffb299fe0.js} +1 -1
  138. package/dist/{drive-B7SBFfcb.js → drive-MggMiKA0.js} +1 -1
  139. package/dist/{exec-D9jF2F-H.js → exec-CNygM6yF.js} +1 -1
  140. package/dist/{executor-DBW7R7Tf.js → executor-Ds4wDCzV.js} +1 -1
  141. package/dist/flow/builtin/review/index.js +1 -1
  142. package/dist/flow/index.js +1 -1
  143. package/dist/{hook-DN__zYOG.js → hook-CVJU-ZD0.js} +1 -1
  144. package/dist/{local-BzMvgiwL.js → local-CqOUpEtl.js} +1 -1
  145. package/dist/{local-GIxwz_Or.js → local-DFrTuJFN.js} +1 -1
  146. package/dist/{login-LlZrIlxb.js → login-93jO9qjx.js} +1 -1
  147. package/dist/{maintenance-DyiyHI8S.js → maintenance-BuDKnfc7.js} +1 -1
  148. package/dist/{mcp-CrtKQoVi.js → mcp-CTVOR7r6.js} +1 -1
  149. package/dist/{mcp-Caq72REF.js → mcp-EwT2mCaa.js} +1 -1
  150. package/dist/{models-BVxs3I8o.js → models-mKyePWrV.js} +1 -1
  151. package/dist/{permission-RSZM3DUk.js → permission-F6F25GJU.js} +1 -1
  152. package/dist/remote-Cl-j8r3W.js +1 -0
  153. package/dist/{runner-CKMOh5Q3.js → runner-DK0jnzPr.js} +1 -1
  154. package/dist/runner.json +1 -1
  155. package/dist/runner.tgz +0 -0
  156. package/dist/schema.js +1 -1
  157. package/dist/sdk.d.ts +34 -0
  158. package/dist/sdk.js +1 -1
  159. package/dist/serve-Cqlkgdfd.js +8 -0
  160. package/dist/{serve-YlU04KO7.js → serve-DHe6dZM6.js} +1 -1
  161. package/dist/{session-D7eeJIaH.js → session-BMbMzzPu.js} +1 -1
  162. package/dist/{shared-BzNReirj.js → shared-D-KqAi7b.js} +1 -1
  163. package/dist/{sign-in-Dr6sU7vz.js → sign-in-Dv-rdYD4.js} +1 -1
  164. package/dist/{store-BrnWdtRw.js → store-BpDipcKB.js} +18 -18
  165. package/dist/{task-CyqtCXo3.js → task-BRHXn5y1.js} +1 -1
  166. package/dist/{task-DN4assR8.js → task-CzXNLREX.js} +1 -1
  167. package/dist/{tools-DVtBtED6.js → tools-BCm26CeV.js} +1 -1
  168. package/dist/{tools-Ck-ZWtmB.js → tools-C69W1B6S.js} +1 -1
  169. package/dist/{tools-search-BNDea9vZ.js → tools-search-BDaeCoWe.js} +1 -1
  170. package/dist/{worker-DeuC38Vp.js → worker-DGhRPDDt.js} +2 -2
  171. package/dist/{worker-DJANNSCT.js → worker-DHNBRRl-.js} +1 -1
  172. package/package.json +1 -1
  173. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  174. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  175. package/dist/dash/standalone/static/assets/chunks/composer-b26a3332a1243461.js +0 -1
  176. package/dist/dash/standalone/static/assets/chunks/create-link-0651addf1461f901.js +0 -1
  177. package/dist/dash/standalone/static/assets/chunks/instructions-0022dd3bdd57c13f.js +0 -1
  178. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-546fe090efc129c2.js +0 -1
  179. package/dist/dash/standalone/static/assets/chunks/platform-actions-2be223e68e648134.js +0 -1
  180. package/dist/dash/standalone/static/assets/chunks/platform-step-9a52703f4c4f6a31.js +0 -1
  181. package/dist/dash/standalone/static/assets/chunks/shared-init-96cde32cd50254c0.js +0 -1
  182. package/dist/dash/standalone/static/assets/chunks/shared-init-abd7653140f37a0c.js +0 -9
  183. package/dist/dash/standalone/static/assets/chunks/side-toggle-8a410cc6d6bd9b1d.js +0 -1
  184. package/dist/dash/standalone/static/assets/pnext-client-07b41bfab64b61c0.js +0 -1
  185. package/dist/dash/standalone/static/assets/pnext-client-0d388d56250f9f46.js +0 -1
  186. package/dist/dash/standalone/static/assets/pnext-client-1443e45181b60bb0.js +0 -1
  187. package/dist/dash/standalone/static/assets/pnext-client-523dd4071aa294ba.js +0 -1
  188. package/dist/dash/standalone/static/assets/pnext-client-5f6bda3919f68382.js +0 -1
  189. package/dist/dash/standalone/static/assets/pnext-client-684fd8ad16563ed3.js +0 -1
  190. package/dist/dash/standalone/static/assets/pnext-client-6b952cdda9a1eb2b.js +0 -1
  191. package/dist/dash/standalone/static/assets/pnext-client-6fe9e98f7dd8dcbf.js +0 -1
  192. package/dist/dash/standalone/static/assets/pnext-client-730c2c507a159f9e.js +0 -1
  193. package/dist/dash/standalone/static/assets/pnext-client-7c46573e45b67166.js +0 -1
  194. package/dist/dash/standalone/static/assets/pnext-client-83a865c3d75705bd.js +0 -1
  195. package/dist/dash/standalone/static/assets/pnext-client-907d1db4fb398a1d.js +0 -1
  196. package/dist/dash/standalone/static/assets/pnext-client-9baf701f3e641d09.js +0 -1
  197. package/dist/dash/standalone/static/assets/pnext-client-a57705e4e1047a9e.js +0 -1
  198. package/dist/dash/standalone/static/assets/pnext-client-cede3bd7b2735942.js +0 -1
  199. package/dist/dash/standalone/static/assets/pnext-client-d9a3996f22b6816b.js +0 -1
  200. package/dist/dash/standalone/static/assets/pnext-client-f95364a0073ca4ce.js +0 -1
  201. package/dist/remote-CY-qYX2C.js +0 -1
  202. package/dist/serve-D23JqDip.js +0 -12
@@ -1,9 +0,0 @@
1
- import{$2a as Ge,$2b as Ot,$2c as Ht,$2j as Nt,$2l as Bt}from"./shared-init-3fcac605fffcc273-2.js";function te(e,t={}){let n=Kt(Jt(e,t.params??{})),a=Vt(t.search),r=Qt(t.hash);return`${n}${a}${r}`}function zt(){return window.__PNEXT_TRAILING_SLASH__===!0}function Ft(){let e=window.__PNEXT_PREFETCH__;return e===void 0?"visible":e}function Kt(e){let[,t="",n=""]=/^([^?#]*)([\s\S]*)$/.exec(e)??[];return t.startsWith("/")?zt()?t==="/"||t.endsWith("/")||/\.[^/]+$/.test(t)?e:`${t}/${n}`:t==="/"||!t.endsWith("/")||/\.[^/]+\/$/.test(t)?e:`${t.replace(/\/+$/,"")}${n}`:e}function Jt(e,t){let n=e.replace(/\[\[\.\.\.([^\]]+)\]\]/g,(a,r)=>pe(t[r],!0)).replace(/\[\.\.\.([^\]]+)\]/g,(a,r)=>pe(t[r],!0)).replace(/\[([^\]]+)\]/g,(a,r)=>pe(t[r],!1));return Wt(n)}function Wt(e){return e.length<=1?e:e.replace(/\/+$/,"")||"/"}function pe(e,t){if(Array.isArray(e)){let n=e.map(a=>encodeURIComponent(a));return t?n.join("/"):n[0]??""}return encodeURIComponent(e??"")}function Vt(e){if(!e)return"";let t=(e instanceof URLSearchParams?e:Zt(e)).toString();return t?`?${t}`:""}function Zt(e){let t=new URLSearchParams;for(let[n,a]of Object.entries(e)){let r=Array.isArray(a)?a:[a];for(let i of r)i!=null&&t.append(n,String(i))}return t}function Qt(e){return e?e.startsWith("#")?e:`#${e}`:""}function F({href:e,params:t,prefetch:n,replace:a,scroll:r,search:i,hash:o,onClick:l,onNavigate:d,onPrefetchStart:u,onPrefetchFinish:p,children:g,...w}){let I=te(e,{params:t??{},search:i,hash:o}),k=n??Ft(),v=Xt(u,p);return Ot("a",{...w,ref:v,href:I,"data-pnext-link":!0,"data-prefetch":k===!1?"false":k,"data-pnext-replace":a?"true":void 0,"data-pnext-scroll":r===!1?"false":void 0,onClick:y=>{let $=y;if(l?.($),$.defaultPrevented||!d||!Yt($))return;let C=Gt();d(C),C.defaultPrevented&&$.preventDefault()}},g)}function Xt(e,t){let n=Bt(null);return Nt(()=>{let a=n.current;if(!a||!e&&!t)return;let r=()=>e?.(),i=()=>t?.();return a.addEventListener("pnext:prefetchstart",r),a.addEventListener("pnext:prefetchfinish",i),()=>{a.removeEventListener("pnext:prefetchstart",r),a.removeEventListener("pnext:prefetchfinish",i)}},[e,t]),n}function Gt(){return{defaultPrevented:!1,preventDefault(){this.defaultPrevented=!0}}}function Yt(e){return e.button===0&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.currentTarget.target&&!e.currentTarget.download}var en="M12 8V4H8M6 8h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2ZM2 14h2M20 14h2M15 13v2M9 13v2",tn="M22 12h-4l-3 9L9 3l-3 9H2",nn="M3 3v18h18M18 17V9M13 17V5M8 17v-3",an="M5 5v14M19 12H9M13 8l-4 4 4 4",ne="m15 18-6-6 6-6",me="m6 9 6 6 6-6",fe="m9 18 6-6-6-6",rn="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M6.3 17.7l-1.4 1.4M19.1 4.9l-1.4 1.4",sn="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",on="M4 4h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM8 20h8M12 16v4",ln="M6 11h12v9H6zM8 11V8a4 4 0 0 1 8 0v3",cn="M2 15.5a5.5 5.5 0 1 0 11 0a5.5 5.5 0 1 0 -11 0M21 2l-9.6 9.6M15.5 7.5l3 3L22 7l-3-3",dn="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M5 7a4 4 0 1 0 8 0a4 4 0 1 0 -8 0M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8",un="M8 8a4 4 0 1 0 8 0a4 4 0 1 0 -8 0M4 21a8 8 0 0 1 16 0",Ye="M7 17 17 7M8 7h9v9",hn="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9",pn="m12 3 1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9ZM19 3v4M17 5h4",mn="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2ZM10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0M14 13h3M7 13h3",fn="M4 6h16M4 12h16M4 18h16",J="M18 6 6 18M6 6l12 12",ae="M20 6 9 17l-5-5",vn="M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6",gn="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12",ve="M12 16v-4M12 8h.01M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0",wn="M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",X="M12 5v14M5 12h14",$n="M5.6 5.6l12.8 12.8M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",bn="M9 14 4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",yn="M4 20h4L19 9l-4-4L4 16v4ZM13 7l4 4",kn="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12Z",Mn="M4 12h12M12 6l6 6-6 6",xn="M16 4h4v4M20 4l-7 7M4 20l6-6M16 20h4v-4M20 20l-5-5M4 4l5 5",ge="M4 11a7 7 0 1 0 14 0a7 7 0 1 0 -14 0M20 20l-3.5-3.5",Cn="m21.7 18-8-14a2 2 0 0 0-3.4 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.7-3M12 9v4M12 17h.01",En="m4 17 6-6-6-6M12 19h8",In="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.7-.9l-.8-1.2A2 2 0 0 0 7.9 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",Sn="M12 7v5l3 2M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",Ln="M9 2v6M15 2v6M6 8h12v4a6 6 0 0 1-12 0ZM12 18v4",Un="M9 9h11v11H9ZM5 15H4V4h11v1",Rn="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6",Tn=0;function s(e,t,n,a,r,i){t||(t={});var o,l,d=t;if("ref"in d)for(l in d={},t)l=="ref"?o=t[l]:d[l]=t[l];var u={type:e,props:d,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Tn,__i:-1,__u:0,__source:r,__self:i};if(typeof e=="function"&&(o=e.defaultProps))for(l in o)d[l]===void 0&&(d[l]=o[l]);return Ge.vnode&&Ge.vnode(u),u}function T({d:e,class:t}){return s("svg",{class:t?`ic ${t}`:"ic",viewBox:"0 0 24 24","aria-hidden":"true",children:s("path",{d:e})})}var et=({variant:e,danger:t,size:n,wide:a,class:r})=>["btn",e!=="primary"&&e,t&&"danger",n,a&&"wide",r].filter(Boolean).join(" ");function tt({leftIcon:e,rightIcon:t,loading:n,children:a}){let r=s("i",{class:"btn-spin"});return s(Ht,{children:[e?n?r:s(T,{d:e}):null,a,t?n&&!e?r:s(T,{d:t}):null]})}function W({variant:e,danger:t,size:n,wide:a,leftIcon:r,rightIcon:i,loading:o,disabled:l,href:d,external:u,as:p,type:g="button",class:w,children:I,...k}){let v=et({variant:e,danger:t,size:n,wide:a,class:w}),y=s(tt,{leftIcon:r,rightIcon:i??(u?Ye:void 0),loading:o,children:I});return p==="span"?s("span",{class:v,"aria-hidden":"true",children:y}):d&&!l&&!o?s("a",{...k,class:v,href:d,...u?{target:"_blank",rel:"noopener noreferrer"}:{},children:y}):s("button",{"aria-busy":o||void 0,...k,type:g,class:v,disabled:l||o,children:y})}function qn({variant:e,danger:t,size:n,wide:a,leftIcon:r,rightIcon:i,class:o,children:l,...d}){return s(F,{...d,class:et({variant:e,danger:t,size:n,wide:a,class:o}),children:s(tt,{leftIcon:r,rightIcon:i,children:l})})}function V({icon:e,label:t,tip:n,type:a="button",class:r,children:i,...o}){return s("button",{...o,type:a,class:r?`icon-btn ${r}`:"icon-btn","aria-label":t,title:n?void 0:t,"data-tip":n,children:e?s(T,{d:e}):i})}import{$2h as we,$2j as G,$2l as H,$2n as at}from"./shared-init-3fcac605fffcc273-2.js";var j=class extends Error{code;hint;taskId;payload;approval;result;runId;status;needs;constructor(e,t,n={}){super(t),this.name="CoderError",this.code=e,Object.assign(this,n)}};function _n(e){try{let t=new URL(e).hostname.toLowerCase();return t==="localhost"||t==="[::1]"||/^127(?:\.\d{1,3}){3}$/.test(t)}catch{return!1}}function Pn(e){let t;try{t=new URL(e)}catch{throw new j("invalid-option","Give the server as a URL, e.g. https://agents.example.com.")}if(t.protocol!=="https:"&&!(t.protocol==="http:"&&_n(t.origin)))throw new j("invalid-option","Coder servers require HTTPS unless they are loopback.",{hint:"Use https://, or http://localhost for a local server."});if(t.username||t.password||t.search||t.hash)throw new j("invalid-option","The server must be an origin without credentials, query, or fragment.");return t.toString().replace(/\/+$/,"")}var L=(e,t)=>{let n=new URLSearchParams;"cursor"in t&&typeof t.cursor=="string"&&n.set("cursor",t.cursor);for(let[a,r]of Object.entries(t))a!=="cursor"&&r!==void 0&&r!==!1&&r!==""&&n.set(a,r===!0?"1":Array.isArray(r)?r.join(","):String(r));return`${e}?${n}`};async function*se(e){let t=new TextDecoder,n="";for await(let a of e){n+=t.decode(a,{stream:!0});let r;for(;(r=n.indexOf(`
2
-
3
- `))>=0;){let i=n.slice(0,r);n=n.slice(r+2);let o="message",l,d=[];for(let u of i.split(`
4
- `))u.startsWith("event: ")?o=u.slice(7):u.startsWith("data: ")?d.push(u.slice(6)):u.startsWith("id: ")&&(l=u.slice(4));(d.length||l)&&(yield{event:o,data:d.join(`
5
- `),...l?{id:l}:{}})}}}var rt=class extends j{constructor(e,t,n="",a,r){super("server",t,{status:e,...a?{hint:a}:{}}),this.authenticate=n,this.needs=r}},An=new Set(["completed","failed","cancelled"]),jn=class{url;fetchImpl;organization;renewal;onError;token;cookie;constructor(e,t,n={}){if(this.cookie="cookie"in t,this.url=e?Pn(e):"",!this.cookie&&!this.url)throw new j("invalid-option","Bearer clients need a server URL.");this.token="token"in t?t.token:void 0,this.fetchImpl=n.fetch??((a,r)=>fetch(a,r)),this.organization=n.organization,this.renewal=n.renewal,this.onError=n.onError}request(e,t={}){let n=this.read(e,t);return n.catch(()=>{}),n}async read(e,t){this.renewal&&this.renewal.expiresAt()-Date.now()<3e4&&(this.token=await this.renewal.renew());let n=await this.send(e,t);n.status===401&&this.renewal&&/invalid_token/.test(n.headers.get("www-authenticate")??"")&&(this.token=await this.renewal.renew(),n=await this.send(e,t));let a=await n.text().catch(()=>""),r={},i;try{a&&n.status!==204&&(r=JSON.parse(a))}catch{if(n.ok)throw new j("server",`The server answered ${n.status} with a body that is not JSON.`);this.cookie&&a&&(i=a)}if(n.status===202&&r.pending){let{approval:o,reason:l,changes:d}=r;throw new j("approval-pending",l,{approval:{id:o,reason:l,actions:d}})}if(!n.ok){let o=new rt(n.status,r.error??r.message??i??`The server answered ${n.status}.`,n.headers.get("www-authenticate")??"",r.hint,r.needs==="key"?r.needs:void 0);throw this.onError?.(o),o}return r}send(e,t){let n=new Headers(t.headers);return t.body&&!n.has("content-type")&&n.set("content-type","application/json"),this.token&&n.set("authorization",`Bearer ${this.token}`),this.organization&&n.set("x-coder-organization",this.organization),this.fetchImpl(`${this.url}${e}`,{...t,headers:n,...this.cookie?{credentials:"same-origin"}:{}}).catch(a=>{throw a instanceof j||a.name==="AbortError"?a:new j("server",this.url?`No Coder server answers at ${this.url}: ${a.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(L("/admin/agents",e??{})),get:(e,t)=>this.request(L(`/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(L(`/admin/agents/${encodeURIComponent(e)}/versions`,t)),remove:e=>this.request(`/admin/agents/${encodeURIComponent(e)}`,{method:"DELETE"}),preview:(e,t)=>this.request(L("/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(n=>({id:e,version:n.version,unchanged:n.unchanged,...n.apps?.length?{apps:n.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(L("/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(L(`/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(L("/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,a={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/approve`,{approvalId:t,decision:n,...a}),request:(e,t,n,a={})=>this.post(`/admin/tasks/${encodeURIComponent(e)}/requests/${encodeURIComponent(t)}`,{decision:n,...a}),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,t={})=>{let n=-1;for(;;){let a=new AbortController,r=await this.tasks.stream(e,n,a.signal);if(!r.ok||!r.body){let o=await this.tasks.get(e);if(An.has(o.status))return o;if(r.status===401)continue;throw new j("server",`The task stream answered ${r.status}.`)}let i=!1;for await(let o of se(r.body))if(o.event==="log"){let l=JSON.parse(o.data);n=l.seq,t.onLog?.(l)}else if(o.event==="end"||o.event==="approval"){i=!0;break}if(i)return this.tasks.get(e)}}};credentials={list:e=>this.request(L("/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(L("/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(L("/admin/apps",{agent:e})),install:(e,t)=>this.post(L(`/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(L(`/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(L("/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(L("/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(L("/admin/mcp-registry",{q:e}))};flows={list:e=>this.request(L("/admin/flows",{repo:e})),run:(e,t)=>this.post(`/admin/flows/${encodeURIComponent(e)}/run`,t)};pulls={list:e=>this.request(L("/admin/pulls",{repo:e}))};usage(e={}){return this.request(L("/admin/usage/totals",{...e,since:e.since??Date.now()-10080*60*1e3}))}usageRows(e){return this.request(L("/admin/usage",{installation:e}))}},ie=new jn("",{cookie:!0},{fetch(e,t){let n=/^\/dash\/([^/]+)/.exec(globalThis.location?.pathname??"")?.[1];if(!n)return fetch(e,t);let a=new Headers(t?.headers);return a.set("x-coder-organization",decodeURIComponent(n)),fetch(e,{...t,headers:a})},onError(e){e.status===401&&(e.authenticate||/^Sign in/.test(e.message))&&(location.href=`/login?return=${encodeURIComponent(location.pathname+location.search)}`)}});async function Dn(){let{url:e}=await ie.signOut();location.href=e??"/?signed_out=1"}function On(e,t){let n,a=!1,r=()=>{a||(n=setTimeout(i,t))},i=()=>{if(document.visibilityState==="hidden")return r();e().catch(o=>console.error("coder dashboard: poll",o)).finally(r)};return r(),()=>{a=!0,clearTimeout(n)}}function Hn(e,t,n=[]){let a=H(e);a.current=e;let r=!!e;G(()=>{if(!r)return;let i=new AbortController,o=On(async()=>a.current?.(i.signal),t);return()=>{i.abort(),o()}},[r,t,...n])}function be({summary:e,summaryClass:t,button:n,label:a,tip:r,align:i="right",wide:o,class:l,children:d}){let u=at();return s("span",{class:`menu ${i}${l?` ${l}`:""}`,children:[n==="icon"?s(V,{popovertarget:u,label:a??"",children:e}):n?s(W,{...n,popovertarget:u,"aria-label":a,title:r?void 0:a,children:e}):s("button",{popovertarget:u,type:"button",class:t,"aria-label":a,title:r?void 0:a,"data-tip":r,children:e}),s("div",{id:u,class:o?"pop wide":"pop",popover:"auto",onBeforeToggle:p=>{if(p.newState!=="open")return;let g=p.currentTarget,w=g.parentElement?.querySelector("button")?.getBoundingClientRect();if(!w)return;g.style.cssText="display: block; visibility: hidden; max-height: none";let I=g.offsetHeight;g.style.cssText="";let k=window.innerHeight-w.bottom-20,v=w.top-20,[y,$]=i==="up"?[v,k]:[k,v],C=I>y&&$>y;g.classList.toggle("flip",C),g.style.maxHeight=`${Math.max(120,Math.round(C?$:y))}px`},onClick:p=>{p.target.closest("a, button:not([data-keep])")&&p.currentTarget.hidePopover()},children:d})]})}function ye({label:e,title:t,class:n,children:a}){let r=at(),i=H(null),o=H(),l=d=>u=>{u.pointerType==="mouse"&&(clearTimeout(o.current),d?i.current.togglePopover(!0):o.current=setTimeout(()=>i.current?.togglePopover(!1),150))};return s("span",{class:n?`more ${n}`:"more",onPointerEnter:l(!0),onPointerLeave:l(!1),children:[s("button",{popovertarget:r,type:"button","aria-label":t,children:e}),s("div",{id:r,ref:i,class:"more-list scroll-box",popover:"auto",children:a})]})}var Nn=({label:e,children:t})=>s(ye,{label:s(T,{d:ve}),title:e,class:"info",children:t}),st=5,$e=3;function ke({tone:e,title:t,onClick:n,href:a,external:r,class:i,children:o}){let l=["badge",e,i].filter(Boolean).join(" ");return a?s("a",{class:l,href:a,title:t,...r?{target:"_blank",rel:"noopener noreferrer"}:{},children:o}):n?s("button",{type:"button",class:l,title:t,onClick:n,children:o}):s("span",{class:l,title:t,children:o})}function oe({onClick:e,children:t,...n}){return e?s("button",{...n,type:"button",class:"chip",onClick:e,children:t}):s("span",{class:"chip",children:t})}function Bn({values:e,label:t,children:n}){if(n)return s("span",{class:"chips",role:"group","aria-label":t,children:n});let a=(e??[]).filter(o=>!!o);if(!a.length)return s("span",{class:"muted",children:"None"});let r=o=>s(oe,{children:o},o),i=a.length>=st;return s("span",{class:"chips",children:[(i?a.slice(0,$e):a).map(r),i?s(ye,{label:`+${a.length-$e}`,children:s("span",{class:"chips",children:a.map(r)})}):null]})}function zn({value:e,title:t}){return s("span",{class:"id",title:t??e,children:e})}var it=(e,...t)=>["card frame",e==="filled"?"filled":void 0,...t].filter(Boolean).join(" ");function Fn({id:e,title:t,count:n,actions:a,tone:r,look:i="outlined",children:o}){return s("section",{id:e,class:it(i,r),children:[t?s("div",{class:"bar",children:[s("h2",{children:[t,n!==void 0?s("span",{class:"n",children:n}):null]}),a?s("span",{class:"bar-r",children:a}):null]}):null,o]})}function Kn({title:e,note:t,actions:n,open:a="Add",opened:r,look:i="outlined",children:o}){return s("details",{class:it(i,"fold"),open:r,children:[s("summary",{class:"bar",children:[s("h2",{children:e}),s("span",{class:"fold-note",children:t}),n?s("span",{class:"bar-r",children:n}):null,s(W,{as:"span",variant:"outline",size:"sm",class:"fold-open",leftIcon:a==="Add"?X:void 0,children:a}),s(W,{as:"span",variant:"ghost",size:"sm",class:"fold-close",children:"Close"})]}),o]})}function Jn({title:e,actions:t,children:n}){return s("div",{class:"empty",children:[s("b",{children:e}),n?s("span",{children:n}):null,t?s("div",{class:"actions",children:t}):null]})}function Wn({label:e,inline:t,dots:n,late:a,h:r}){return s(t?"span":"div",{class:["loading",t&&"inline",a&&"late"].filter(Boolean).join(" "),role:"status",style:r?`--h:${r}px`:void 0,children:s("span",{children:[n?s("i",{class:"dots",children:[s("b",{}),s("b",{}),s("b",{})]}):s("i",{class:"spin"}),e]})})}var nt=e=>`${history.state?.__pnextEntry??location.pathname}|${e}`,Vn=e=>history.state?.coderPages?.[e],Zn=(e,t)=>history.replaceState({...history.state,coderPages:{...history.state?.coderPages,[e]:t}},""),Qn=6e4,re=(e,t)=>({query:e,rows:t.items,next:t.next,meta:t});function Xn({name:e,query:t,first:n,initial:a,root:r,fetchPage:i}){let o=H(new Map([[a,{page:n,at:Date.now()}]])),[l,d]=we(()=>re(a,n)),[u,p]=we(""),[g,w]=we(!1),I=H(null),k=H(l);k.current=l;let v=H(void 0),y=H(void 0),$=(c,m,h)=>{let f=`${m}|${c}`;if(v.current?.key===f)return;let M={key:f};v.current=M,p(""),w(!0);let E=nt(e),S=h?void 0:o.current.get(m);S&&Date.now()-S.at<Qn&&d(re(m,S.page)),i(c).then(R=>{v.current===M&&(h||o.current.set(m,{page:R,at:Date.now()}),p(""),y.current=void 0,d(q=>{if(h&&(q.query!==m||q.next!==c))return q;let z=h&&q.query===m?{...q,rows:[...q.rows,...R.items],next:R.next}:re(m,R);return nt(e)===E&&Zn(e,z),z}))}).catch(R=>{v.current===M&&(y.current=()=>$(c,m,h),p(R instanceof Error?R.message:String(R)))}).finally(()=>{v.current===M&&(v.current=void 0,w(!1))})};G(()=>()=>{v.current=void 0},[]);let C=H(n);return G(()=>{C.current!==n&&(C.current=n,v.current=void 0,w(!1),o.current.set(a,{page:n,at:Date.now()}),d(re(a,n)))},[n]),G(()=>{v.current=void 0,y.current=void 0,p(""),w(!1);let c=Vn(e);if(c&&c.query===t&&c.rows.length>k.current.rows.length){d(c);return}t!==k.current.query&&$("",t,!1)},[t]),G(()=>{let c=I.current;if(!c||!l.next||u)return;let m=new IntersectionObserver(([h])=>{h?.isIntersecting&&k.current.next&&k.current.query===t&&$(k.current.next,t,!0)},{root:r?.()??null,rootMargin:"0px 0px 300px 0px"});return m.observe(c),()=>m.disconnect()},[l.next,l.rows.length,t,u]),{rows:l.rows,meta:l.meta,more:!!l.next,busy:g,error:u,stale:g&&l.query!==t,sentinel:I,retry:()=>{p(""),y.current?.()}}}function Me(e){let t=new URL(location.href);for(let[n,a]of Object.entries(e))a?t.searchParams.set(n,a):t.searchParams.delete(n);history.replaceState(history.state,"",t)}function xe(e){let t=new URLSearchParams(location.search);return Object.fromEntries(e.map(n=>[n,t.get(n)??""]))}var Gn=20,Y=20;import{f as Yn,i as ea,j as ot,k as lt}from"./wular-pnext-3fcac605fffcc273-0.js";import{$1a as pt,$1b as ta}from"./shared-init-3fcac605fffcc273-2.js";import{$0a as na,$0d as aa}from"./shared-init-3fcac605fffcc273-2.js";import{$2a as ra,$2c as D,$2h as P,$2j as N,$2k as Ie,$2l as K,$2n as sa}from"./shared-init-3fcac605fffcc273-2.js";var le=class extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}},ia=class extends URLSearchParams{append(){throw new le}delete(){throw new le}set(){throw new le}sort(){throw new le}};Yn();function Te(){return oa}var oa={push(e,...[t]){ut(Ce(e,t),"push",t?.scroll)},replace(e,...[t]){ut(Ce(e,t),"replace",t?.scroll)},prefetch(e,...[t]){ta(Ce(e,t),{strict:!0,full:t?.kind==="full",onInvalidate:t?.onInvalidate})},refresh(){pt(window.location.href,{replace:!0,scroll:!1})},back(){window.history.back()},forward(){window.history.forward()},get bfcacheId(){return ft().bfcacheId??""}};function Ce(e,t){return la(t)?te(e,t):String(e)}function la(e){return!!(e&&("params"in e||"search"in e||"hash"in e))}function qe(){return _e().pathname}function ca(){return new ia(_e().search)}function mt(){return _e(),ft().params??{}}function da(){let e=ra,t=e.__h,n;e.__h=(i,...o)=>{n=i.__P,t?.(i,...o)};let[a,r]=P(!1);return e.__h=t,N(()=>{let i=n?.closest("a[data-pnext-link]");if(!i)return;let o=i.__pnextHints??=new Set;return o.add(r),()=>o.delete(r)},[]),{pending:a}}function _e(){let e=dt(),[,t]=P(()=>ct(e));return N(()=>{ua();let n=()=>t(a=>{let r=ct(dt());return a===r?a:r});return ot().add(n),n(),()=>ot().delete(n)},[]),e}function ct(e){return`${e.pathname}${e.search}${e.hash}`}function dt(){return{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash}}function ft(){let e=history.state??{},t=window.__PNEXT_ROUTE__??{},n=typeof e.__pnextBfcacheId=="string"?e.__pnextBfcacheId:void 0;return n?{...t,bfcacheId:n}:t}function ut(e,t,n=!0){if(aa(e))return;let a=new URL(e,window.location.href);if(a.origin!==window.location.origin){let r=globalThis;r.__pnextMpaNavigation=(r.__pnextMpaNavigation??0)+1,requestAnimationFrame(()=>requestAnimationFrame(()=>{t==="replace"?window.location.replace(a.href):window.location.assign(a.href)}));return}if(a.pathname!==window.location.pathname||a.search!==window.location.search){pt(a.href,{replace:t==="replace",scroll:n});return}t==="replace"?window.history.replaceState(history.state,"",a):window.history.pushState(history.state,"",a),ea(a,{scroll:n}),na.settleLink?.()}function ua(){if(window.__PNEXT_HISTORY_PATCHED__)return;window.__PNEXT_HISTORY_PATCHED__=!0;let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history);function n(a){let r=window.history.state??{},i={};for(let l of Object.keys(r))l.startsWith("__pnext")&&(i[l]=r[l]);if(Object.keys(i).length===0)return a;let o=a??{};return Object.keys(o).some(l=>l.startsWith("__pnext"))?a:{...o,...i}}window.history.pushState=function(a,r,i){let o=window.location.href,l=e(n(a),r,i);return window.location.href!==o&&lt(),l},window.history.replaceState=function(a,r,i){let o=window.location.href,l=t(n(a),r,i);return window.location.href!==o&&lt(),l}}var vt={agents:{title:"Agents",lead:"Each agent listens on the platforms it declares and answers as itself."},tasks:{title:"Tasks"},newAgent:{title:"New agent",lead:"Start from a template or a repository. Everything but the name has a sensible default."},usage:{title:"Usage",lead:"Tasks, runner time, and tokens by agent. Pick a range, or open an agent for its breakdown."}};function Pe(){let e=K(null);return N(()=>{let t=e.current,n=t.nextElementSibling??t.parentElement.nextElementSibling,a=n.closest(".page"),r=()=>{let u=n.classList.contains("stuck"),p=n.offsetHeight;n.classList.toggle("stuck",!u);let g=n.offsetHeight;return n.classList.toggle("stuck",u),Math.max(0,u?g-p:p-g)},i,o=()=>{i?.disconnect();let u=56-r();i=new IntersectionObserver(([p])=>{let g=!p.isIntersecting&&p.boundingClientRect.top<u;if(g===n.classList.contains("stuck"))return;let w=n.offsetHeight;a&&(a.style.paddingBottom=`${w}px`),n.classList.toggle("stuck",g),n.style.marginBottom=g?`${w-n.offsetHeight}px`:"",a&&(a.style.paddingBottom="")},{rootMargin:`${-u}px 0px 0px 0px`}),i.observe(t)};o();let l=n.offsetWidth,d=new ResizeObserver(()=>{a?.style.setProperty("--head",`${n.offsetHeight}px`),n.offsetWidth!==l&&(l=n.offsetWidth,o())});return d.observe(n,{box:"border-box"}),()=>{i?.disconnect(),d.disconnect(),a?.style.removeProperty("--head")}},[]),s("i",{class:"sentinel",ref:e})}var ce=(...e)=>["pop-item",...e].filter(Boolean).join(" ");function de({icon:e,sub:t,end:n,children:a}){return s(D,{children:[typeof e=="string"?s(T,{d:e}):e,s("span",{class:"grow",children:[a,t?s("small",{children:t}):null]}),n]})}function Se({icon:e,title:t,sub:n,end:a,href:r,type:i="button",disabled:o,danger:l,...d}){let u=ce(n?"rich":!1,l&&"danger"),p=s(de,{icon:e,sub:n,end:a,children:t});return o?s("div",{class:u,"aria-disabled":"true",children:p}):r?s("a",{...d,class:u,href:r,children:p}):s("button",{...d,type:i,class:u,children:p})}function ha({icon:e,sub:t,end:n,class:a,children:r,...i}){return s(F,{...i,class:ce(t?"rich":!1,a),children:s(de,{icon:e,sub:t,end:n,children:r})})}function Le({on:e,onPick:t,href:n,disabled:a,icon:r,sub:i,end:o,children:l}){let d={role:"menuitemradio","aria-checked":e,class:ce(e&&"on",i?"rich":!1)},u=s(de,{icon:r,sub:i,end:s(D,{children:[o,s(T,{d:ae})]}),children:l});return a?s("div",{...d,"aria-disabled":"true",children:u}):n?s("a",{href:n,...d,children:u}):s("button",{type:"button",...d,onClick:t,children:u})}function Ue({active:e,selected:t,check:n,icon:a,sub:r,end:i,class:o,children:l,...d}){return s("div",{...d,role:"option","aria-selected":t,class:ce(e&&"on",o),children:s(de,{icon:a,sub:r,end:s(D,{children:[i,n?s(T,{d:ae}):null]}),children:l})})}var Ae=({children:e,...t})=>s("p",{...t,class:"pop-label",children:e}),Re=({children:e})=>s("p",{class:"pop-note",children:e}),pa=({icon:e,title:t,sub:n})=>s("div",{class:"pop-head",children:[e,s("div",{class:"grow",children:[s("b",{children:t}),s("small",{children:n})]})]}),ma=({children:e})=>s("div",{class:"pop-row",children:e});function gt({panelRef:e,class:t,children:n,...a}){return s("div",{...a,ref:e,class:t?`pop ${t}`:"pop",children:n})}var wt=e=>new URLSearchParams(Object.entries(e).filter(([,t])=>t)).toString();function fa(e){let[t,n]=P(e),[a,r]=P(e),i=K();return N(()=>{let o=xe(Object.keys(e));Object.keys(e).some(l=>o[l]!==e[l])&&(n(o),r(o))},[]),N(()=>()=>clearTimeout(i.current),[]),{values:t,set:(o,l,d=0)=>{let u={...t,[o]:l};n(u),clearTimeout(i.current);let p=()=>{r(u),Me(u)};d?i.current=setTimeout(p,d):p()},query:wt(a)}}function $t({value:e,label:t,onInput:n,disabled:a,...r}){return s("label",{class:"search","aria-hidden":a||void 0,children:[s(T,{d:ge}),s("input",{...r,type:"search",value:e,placeholder:t,"aria-label":t,disabled:a,tabIndex:a?-1:void 0,onInput:i=>n?.(i.currentTarget.value)})]})}function va({head:e,action:t,children:n}){return e?s(D,{children:[s(Pe,{}),s("header",{class:"head tools",children:[s("div",{children:[s("h1",{children:e.title}),e.lead?s("p",{class:"lead",children:e.lead}):null]}),s("div",{class:"filters",children:n}),t?s("div",{class:"actions",children:t}):null]})]}):s("div",{class:"filters",children:[n,t?s("span",{class:"end",children:t}):null]})}var bt="coder:filters",ga=5,Ee=5;function wa(e,t){if(e.length<=Ee)return e;let n=e.slice(0,Ee),a=e.find(([r])=>r===t);return a&&!n.includes(a)?[...n.slice(0,Ee-1),a]:n}var $a=e=>e.options.filter(([t])=>t).length>=ga;function ba(e,t,n={}){return t?e.options.find(([a])=>a===t)?.[1]??n[`${e.key}:${t}`]??t:"Any"}function ya(e,t,n={}){return e.filter(a=>t[a.key]).map(a=>{let r=ba(a,t[a.key],n);return{key:a.key,text:a.inline?r:`${a.label}: ${r}`}})}function ka(e,t,n){let a=n.trim().toLowerCase(),r=t.filter(([,o])=>o.toLowerCase().includes(a)),i=[...r,...e.filter(([o])=>!r.some(([l])=>l===o))];return{shown:i.slice(0,Y),more:i.length>Y}}function je(){try{return JSON.parse(localStorage.getItem(bt)??"{}")??{}}catch{return{}}}function Ma(e,t){let n=je();n[e]=[t,...(n[e]??[]).filter(([a])=>a!==t[0])].slice(0,5),localStorage.setItem(bt,JSON.stringify(n))}function xa({name:e,facets:t,values:n,onChange:a}){let[r,i]=P({}),o=(d,u)=>i(p=>({...p,...Object.fromEntries(u.map(([g,w])=>[`${d}:${g}`,w]))}));N(()=>{let d=je();for(let u of t)o(u.key,d[`${e}:${u.key}`]??[])},[]);let l=ya(t,n,r);return s(D,{children:[s(be,{class:"filter-more",summaryClass:`field-btn${l.length?" on":""}`,summary:l.length?`Filter \xB7 ${l.length}`:"Filter",children:s(Ca,{name:e,facets:t,values:n,seen:r,onFound:o,onPick:(d,[u,p])=>{!d.inline&&u!==n[d.key]&&(Ma(`${e}:${d.key}`,[u,p]),o(d.key,[[u,p]])),a(d.key,d.inline||u!==n[d.key]?u:"")}})}),s("span",{class:"filter-chips",children:l.map(d=>s(oe,{title:d.text,"aria-label":`Clear ${d.text}`,onClick:()=>a(d.key,""),children:[s("span",{class:"grow",children:d.text}),s(T,{d:J})]},d.key))})]})}function Ca({name:e,facets:t,values:n,seen:a,onFound:r,onPick:i}){let o=K(null),[l,d]=P(),[u,p]=P(""),[g,w]=P(),I=K(0),k=K(),v=u.trim(),y=h=>o.current?.querySelector(h)?.focus(),$=h=>{h&&(k.current=h.key),d(h),p(""),w(void 0)};N(()=>{let h=o.current.closest("[popover]"),f=M=>{M.newState==="open"?y("button"):$()};return h.addEventListener("toggle",f),()=>h.removeEventListener("toggle",f)},[]),N(()=>{o.current?.closest(":popover-open")&&y(l?"input":`[data-facet="${k.current}"]`)},[l]),N(()=>{if(!l?.search||!v)return;let h=++I.current,f=setTimeout(()=>void l.search(v,Y+1).then(M=>{I.current===h&&(w(M),r(l.key,M))},()=>I.current===h&&w([])),200);return()=>clearTimeout(f)},[l,v]);let C=l?l.search&&v?g??[]:l.options.filter(([h,f])=>h&&f.toLowerCase().includes(v.toLowerCase())):[],c=l?ka(C,je()[`${e}:${l.key}`]??[],v):{shown:[],more:!1},m=!!(l?.search&&v&&!g);return s("div",{ref:o,class:"filter-panel",onKeyDown:h=>{let f=[...o.current.querySelectorAll("input, button")],M=f.indexOf(document.activeElement),E=h.target,S=h.key;if(S==="ArrowDown")f[(M+1)%f.length]?.focus();else if(S==="ArrowUp")f[(M-1+f.length)%f.length]?.focus();else if(S==="ArrowRight"&&E.dataset.facet)E.click();else if(S==="ArrowLeft"&&l&&E.tagName!=="INPUT")$();else if(S==="Enter"&&E.tagName==="INPUT")y("[role=menuitemradio]");else if(S==="Escape"&&l)h.stopPropagation(),$();else return;h.preventDefault()},children:l?s(D,{children:[s(Se,{"data-keep":!0,icon:ne,title:l.label,onClick:()=>$()}),$a(l)?s($t,{value:u,label:`Find ${l.label.toLowerCase()}`,autocomplete:"off",onInput:p}):null,s("div",{role:"group","aria-label":l.label,"aria-busy":m,children:c.shown.map(([h,f])=>s(Le,{icon:l.icon?.(h),on:n[l.key]===h,onPick:()=>i(l,[h,f]),children:f},h))}),c.more?s(Re,{children:"Type to find more."}):!c.shown.length&&!m?s(Re,{children:"Nothing matches."}):null]}):t.map(h=>{let f=h.options.filter(([E])=>h.inline||E);if(!f.length)return null;let M=wa(f,n[h.key]);return s(D,{children:[s(Ae,{children:h.label}),s("div",{role:"group","aria-label":h.label,children:M.map(([E,S])=>s(Le,{icon:h.icon?.(E),on:n[h.key]===E,onPick:()=>i(h,[E,S]),children:S},E))}),f.length>M.length?s(Se,{"data-keep":!0,"data-facet":h.key,"aria-haspopup":"true",title:"More",end:s(D,{children:[s("span",{class:"muted",children:f.length-M.length}),s(T,{d:fe})]}),onClick:()=>$(h)}):null]},h.key)})})}var ht=10;function yt(e,t,n,a,r=[]){let[i,o]=P("");return Ie(()=>{if(!n)return;t.current?.showPopover();let l=()=>{let d=e.current?.getBoundingClientRect(),u=t.current;if(!d||!u)return;let p=innerHeight-d.bottom-12,g=p<Math.min(u.scrollHeight,240)&&d.top>p;o(`left:${Math.round(Math.min(d.left,innerWidth-u.offsetWidth-8))}px;min-width:${Math.round(d.width)}px;`+(g?`bottom:${Math.round(innerHeight-d.top+4)}px;max-height:${Math.round(Math.min(a,d.top-12))}px`:`top:${Math.round(d.bottom+4)}px;max-height:${Math.round(Math.min(a,p))}px`))};return l(),addEventListener("resize",l),addEventListener("scroll",l,!0),()=>{removeEventListener("resize",l),removeEventListener("scroll",l,!0)}},[n,...r]),i}function Ea({label:e,options:t,value:n,defaultValue:a,onChange:r,onFocus:i,name:o,disabled:l,headings:d,subs:u,unavailable:p,icons:g,action:w}){let[I,k]=P(a??t[0]?.[0]??""),v=Math.max(0,t.findIndex(([b])=>b===(n??I))),y=t[v]?.[0]??"",[$,C]=P(!1),[c,m]=P(v),h=K(null),f=K(null),M=yt(h,f,$,560),E=K({text:"",at:0}),S=sa(),R=(b=v)=>{m(b),C(!0)},q=(b=!0)=>{C(!1),b&&h.current?.focus()},z=b=>{if(w&&b===t.length){q(),w.onPick();return}let U=t[b]?.[0];U!==void 0&&p?.[U]||(q(),!(U===void 0||U===y)&&(n===void 0&&k(U),r?.(U)))},Ze=(b,U)=>{let x=Date.now(),_=x-E.current.at>600?b:E.current.text+b;E.current={text:_,at:x};let Qe=/^(.)\1*$/.test(_)?_[0]:_,Dt=Qe.length===1?U+1:U;for(let he=0;he<t.length;he++){let Xe=(Dt+he)%t.length;if(t[Xe][1].toLowerCase().startsWith(Qe.toLowerCase()))return Xe}return-1},jt=b=>{let U=t.length-1+(w?1:0),x=b.key;if(!$){if(["ArrowDown","ArrowUp","Enter"," "].includes(x))R();else if(x==="Home")R(0);else if(x==="End")R(U);else if(x.length===1&&!b.ctrlKey&&!b.metaKey){let _=Ze(x,v);if(_>=0)R(_);else return}else return;b.preventDefault();return}if(x==="ArrowDown")m(Math.min(U,c+1));else if(x==="ArrowUp"&&b.altKey)z(c);else if(x==="ArrowUp")m(Math.max(0,c-1));else if(x==="Home")m(0);else if(x==="End")m(U);else if(x==="PageDown")m(Math.min(U,c+ht));else if(x==="PageUp")m(Math.max(0,c-ht));else if(x==="Enter"||x===" "&&Date.now()-E.current.at>600)z(c);else if(x==="Escape")b.stopPropagation(),q();else if(x==="Tab"){p?.[t[c]?.[0]??""]?q(!1):z(c);return}else if(x.length===1&&!b.ctrlKey&&!b.metaKey){let _=Ze(x,c);_>=0&&m(_)}else return;b.preventDefault()};return Ie(()=>{if(!$)return;let b=U=>{let x=U.target;!h.current?.contains(x)&&!f.current?.contains(x)&&q(!1)};return document.addEventListener("pointerdown",b),()=>document.removeEventListener("pointerdown",b)},[$]),Ie(()=>{$&&f.current?.querySelector(`[data-index="${c}"]`)?.scrollIntoView({block:"nearest"})},[$,c,M]),s("span",{class:"select",children:[s("button",{ref:h,type:"button",role:"combobox","data-keep":!0,"aria-label":e,"aria-haspopup":"listbox","aria-expanded":$,"aria-controls":`${S}-list`,"aria-activedescendant":$?`${S}-${c}`:void 0,disabled:l,onFocus:i,onPointerDown:i,onClick:b=>{b.preventDefault(),$?q():R()},onKeyDown:jt,children:[g?.[y]??null,s("span",{class:"grow",children:t[v]?.[1]??""}),s(T,{d:me})]}),o?s("input",{type:"hidden",name:o,value:y}):null,$?s(kt,{id:S,label:e,listRef:f,place:M,children:[t.map(([b,U],x)=>s(D,{children:[d?.[b]?s(Ae,{children:d[b]}):null,s(Ue,{id:`${S}-${x}`,"data-index":x,active:x===c,selected:x===v,check:!0,icon:g?.[b],"aria-disabled":p?.[b]?"true":void 0,sub:p?.[b]??(u?.[b]?s("bdi",{dir:"ltr",children:u[b]}):null),onPointerMove:()=>x!==c&&m(x),onClick:_=>{_.preventDefault(),z(x)},children:U})]},b)),w?s(Ue,{id:`${S}-${t.length}`,"data-index":t.length,active:c===t.length,selected:!1,class:"action",icon:w.icon??X,onPointerMove:()=>c!==t.length&&m(t.length),onClick:b=>{b.preventDefault(),z(t.length)},children:w.label}):null]}):null]})}var kt=({id:e,label:t,listRef:n,place:a,children:r})=>s(gt,{panelRef:n,id:`${e}-list`,class:"select-pop",popover:"manual",role:"listbox","aria-label":t,style:a||"visibility:hidden",onMouseDown:i=>i.preventDefault(),children:r}),De=e=>e,Ia=e=>{let t=e.params??{};return e.href.replace(/\[([^\]]+)\]/g,(n,a)=>encodeURIComponent(String(t[a]??"")))};function Sa(e,t){let n=new URLSearchParams((e instanceof URLSearchParams,e));for(let[a,r]of Object.entries(t))n.set(a,r);return n}function La(e){if(!e?.startsWith("/"))return;let t=new URL(e,"http://dash");if(t.origin!=="http://dash"||!/^\/dash(\/|$)/.test(t.pathname))return;let[,,,n,a]=t.pathname.split("/"),r=vt[n]?.title??"Back";if(n==="tasks"&&a&&(r="Task"),n==="settings"&&(r=a?a[0].toUpperCase()+a.slice(1):"Settings"),n==="agents"&&a)try{r=decodeURIComponent(a)}catch{}return{to:{href:t.pathname,search:t.searchParams},label:r}}function Mt({label:e,back:t,named:n,...a}){let r=La(t),i=n??r?.label??e;return s(F,{class:"back","aria-label":i,...De(r?.to??a),children:[s(T,{d:ne}),s("span",{children:i})]})}function Ua({title:e,lead:t,actions:n,meta:a,back:r}){return s(D,{children:[s(Pe,{}),s("header",{class:"head",children:[s("div",{children:[r,s("div",{class:"title-row",children:[s("h1",{children:e}),a?s("div",{class:"meta",children:a}):null]}),t?s("p",{class:"lead",children:t}):null]}),n?s("div",{class:"actions",children:n}):null]})]})}var Z=()=>mt().org;function Ra({href:e,params:t,...n}){return s(F,{...n,...De({href:e,params:{...t,org:Z()}})})}function Ta({href:e,label:t}){return s(Mt,{href:e,params:{org:Z()},label:t})}import{$2h as Q,$2j as A,$2l as B}from"./shared-init-3fcac605fffcc273-2.js";var qa=e=>e.replace(/&(amp|lt|gt);/g,(t,n)=>({amp:"&",lt:"<",gt:">"})[n]);function Lt(e="",t=!1){let n=/<event>\n([^]*?)\n<\/event>/g;if(!t&&(!e.trimStart().startsWith("<event>")||e.replace(n,"").trim()))return;let a=[];for(let[,r]of e.matchAll(n))try{let i=JSON.parse(qa(r));if(!i||typeof i!="object"||Array.isArray(i)){if(!t)return;continue}a.push(i)}catch(i){if(console.error("coder: unreadable event prompt",i),!t)return}return a.length?a:void 0}function _a(e,t,n=[]){let a=[e??"",...n].flatMap(r=>(Lt(r,!0)??[]).flatMap(i=>typeof i.mustReply=="boolean"?[i.mustReply]:[]));return a.length?a.includes(!0):t}var Pa="__EMPTY__",Aa="Skipped: the agent chose not to reply.",ja="The agent returned no reply.",Da=/\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function O(e,t){return t?e.split(`${t}/`).join("").split(t).join("."):e}var Oa=class{constructor(e,t={}){this.cwd=e,this.opts=t}prevKind=null;lastAssistant="";lastToolText="";openCalls=[];callIds=new WeakMap;approvals=new Map;lastUsageTotal=0;get lastAssistantMessage(){return this.lastAssistant}reduce(e){let t=e.entry,n=t?String(t.kind??"status"):"line",a=t?n==="tool-result"?this.close(e,t):n==="approval-answered"?this.decide(e,t):void 0:void 0;if(a)return this.prevKind=n,[a];let r={seq:e.seq,at:e.at,kind:"status",title:"",sourceKind:n,separated:!1,tone:"muted"};if(!t)r.kind=e.level==="err"?"error":e.level==="sys"?"status":"line",r.title=O(e.line,this.cwd),e.level==="err"&&(r.tone="error");else if(n==="usage"){let i=t.tokens;if(!i)return[];let o=this.lastUsageTotal>0,l=i.total-this.lastUsageTotal;if(!o||l<Math.max(2e4,this.lastUsageTotal*.2))return this.lastUsageTotal=Math.max(this.lastUsageTotal,i.total),[];this.lastUsageTotal=i.total,r.kind="usage",r.tokens=i;let d=typeof t.context=="number"?t.context:i.input+i.cachedInput;r.title=`ctx ${Ct(d)} \xB7 out ${Ct(i.output)}`}else if(n==="approval-escalated"){let i=Array.isArray(t.actions)?t.actions.map(String):[],o=O(t.reason?String(t.reason):"",this.cwd);r.kind="approval",r.title=["Approval needed",o,`${i.length} action${i.length===1?"":"s"}`].filter(Boolean).join(" \xB7 "),r.detail=O(i.map((l,d)=>`${d+1}. ${l.replaceAll(`
6
- `,`
7
- `)}`).join(`
8
- `),this.cwd),r.state="waiting",this.approvals.set(String(t.approvalId),r)}else if(n==="approval-answered")r.kind="approval",r.title="Approval",Object.assign(r,xt(r,e,t));else if(n==="approval-decision"){let i=O(t.summary?String(t.summary):"",this.cwd),o=t.decision==="accept";r.kind="approval",r.title=[o?"Allowed as approved":"Refused by the reviewer",i].filter(Boolean).join(" \xB7 "),r.detail=O(t.reason?String(t.reason):"",this.cwd),o||(r.tone="error")}else if(n==="auto-review"){r.kind="approval";let i=t.riskLevel?`(${String(t.riskLevel)} risk)`:"",o=O(t.summary?String(t.summary):"",this.cwd),l=o.slice(o.indexOf(": ")+2),d=o&&l&&this.lastToolText.includes(l)?"":o,u=d?"":String(t.method??"");r.title=`${["auto-review",String(t.decision??""),i,u].filter(Boolean).join(" ")}${d?` \xB7 ${d}`:""}`,r.detail=O(t.reason?String(t.reason):"",this.cwd)}else{let i=t.message?String(t.message):n==="tool-result"?"(no output)":String(t.tool||t.kind||"");if(!i&&!(n==="tool-result"&&(t.exitCode!=null||t.isError)))return[];r.title=O(i,this.cwd),n==="assistant"?(r.kind="assistant",r.tone=void 0,this.lastAssistant=r.title):n==="error"||n==="steer"?(r.kind=n,r.tone=n==="error"?"error":"warning"):n==="warning"?r.tone="warning":n==="reasoning"?(r.kind="reasoning",r.durationMs=typeof t.durationMs=="number"?t.durationMs:0):n==="tool"?(r.kind="tool",t.tool&&(r.tool=String(t.tool)),this.lastToolText=r.title,t.callId&&this.callIds.set(r,String(t.callId)),this.openCalls.push(r)):n==="tool-result"&&(r.kind="tool-result",r.title=this.output(i),r.exitCode=typeof t.exitCode=="number"?t.exitCode:void 0,r.tone=r.exitCode!==void 0&&r.exitCode!==0||t.isError===!0?"error":"muted",r.durationMs=typeof t.durationMs=="number"?t.durationMs:0,t.tool&&(r.tool=String(t.tool)))}return this.prevKind!==null&&(r.separated=["assistant","error","steer"].includes(n)||n==="reasoning"&&this.prevKind!=="reasoning"||n==="tool"&&["assistant","reasoning"].includes(this.prevKind)),this.prevKind=n,[r]}close(e,t){let n=t.tool?String(t.tool):void 0,a=t.callId?this.openCalls.findIndex(d=>this.callIds.get(d)===String(t.callId)):-1,r=t.callId?a:n?this.openCalls.findIndex(d=>d.tool===n):this.openCalls.length-1;if(r<0)return;let[i]=this.openCalls.splice(r,1),o=typeof t.exitCode=="number"?t.exitCode:void 0,l=typeof t.durationMs=="number"?t.durationMs:e.at-i.at||0;return{...i,title:t.callMessage?O(String(t.callMessage),this.cwd):i.title,result:{ok:!o&&t.isError!==!0,exitCode:o,durationMs:Math.max(0,l),detail:this.output(t.message?String(t.message):"")}}}decide(e,t){let n=this.approvals.get(String(t.approvalId));return n?xt(n,e,t):void 0}output(e){return O(this.opts.keepAnsi?e:e.replace(Da,""),this.cwd)}};function xt(e,t,n){let a=n.decision==="accept";return{...e,state:`${a?"approved":"denied"} ${n.by?`by ${String(n.by)}`:"in Coder"}`,result:{ok:a,durationMs:Math.max(0,t.at-e.at||0),detail:!a&&n.reason?String(n.reason):""}}}function Ct(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(e<1e4?1:0)}k`:`${(e/1e6).toFixed(1)}M`}var Ha=e=>e==="failed"?0:e==="completed"?3:e==="cancelled"?2:1,Na=(e,t)=>e==="waiting"||!!t?.some(n=>!n.response),Ba=(e,t)=>e<t?-1:e>t?1:0,za=(e,t)=>e.rank-t.rank||t.createdAt-e.createdAt||Ba(t.id,e.id);function Oe(e){return Lt(e)?.flatMap(t=>t.reactions?t.reactions.map(({emoji:n,by:a})=>({author:a.join(", "),text:`reacted ${n}`,reaction:!0})):(t.messages??(t.message?[t.message]:[])).map(({text:n,author:a})=>({author:[a.handle,a.name].find(r=>r&&r!==a.id)??"",text:n||(t.event??"")})))}function Fa(e,t){let n=e?.trim();return n&&!Oe(n)?n:t?.trim()||Oe(n)?.find(a=>!a.reaction)?.text.trim()}function Ut({status:e,approvals:t}){let n=Na(e,t)?"waiting":e;return s("span",{class:`st ${n}`,children:[s("i",{}),Rt[n]??n]})}var Ka=()=>s(ke,{title:"Ran with read-only access",children:"read-only"}),Rt={queued:"waiting for slot",running:"running",waiting:"needs approval",completed:"completed",failed:"failed",cancelled:"cancelled"},ee="coder:watched",Tt="coder:notify",ue="coder:toast",Ve=new Set(["completed","failed","cancelled"]),Ja=new Set([...Ve,"waiting"]),Wa=20,Et=3,Va=8e3,It="coder:events",He="coder:task",Ne="coder:task-replay",Be="coder:task-reset",ze="coder:task-resync",Fe="coder:task-counts",Ke="coder:task-counts-replay",Je="coder:runners",Za=6e4,Qa=200,We=()=>{try{return JSON.parse(localStorage.getItem(ee)??"{}")??{}}catch{return{}}},qt=e=>{let t=Object.entries(e).sort(([,n],[,a])=>a.at-n.at).slice(0,Wa);localStorage.setItem(ee,JSON.stringify(Object.fromEntries(t))),dispatchEvent(new Event(ee))},_t=(e,t,n)=>dispatchEvent(new CustomEvent(ue,{detail:{title:e,line:t,tone:n}})),Xa=(e,t)=>_t(e,t,"error");function Pt(e,t,n){let a=We(),r=a[e];!r&&Ve.has(t)||r?.status===t&&(!n||r.title===n)||(a[e]={title:n||r?.title||e,status:t,at:r?.at??Date.now(),org:r?.org??location.pathname.split("/")[2]},qt(a))}var St=e=>/^\/dash\/[^/]+\/tasks\/([^/]+)$/.exec(e)?.[1];function Ga(e){let t=r=>typeof r=="string"?r.trim().split(`
9
- `)[0]:"",n=e.approval??{},a=typeof e.result=="object"?e.result?.output:e.result;return e.status==="waiting"?t(n.reason)||"It is waiting for your approval.":e.status==="completed"?t(a)||"It finished.":t(e.error)||(e.status==="failed"?"It failed.":"It was stopped.")}function At(e,t,n){let a=B({on:e,reset:t,resync:n});a.current={on:e,reset:t,resync:n},A(()=>{let r=l=>a.current.on(l.detail),i=()=>a.current.reset?.(),o=()=>a.current.resync?.();return addEventListener(He,r),addEventListener(Be,i),addEventListener(ze,o),dispatchEvent(new CustomEvent(Ne,{detail:l=>a.current.on(l)})),()=>{removeEventListener(He,r),removeEventListener(Be,i),removeEventListener(ze,o)}},[])}function Ya(e,t,n){let a=B(e);a.current=e;let r=B(),i=[...e].sort().join(",");A(()=>{let o=new Map,l=c=>{o.delete(c.id),o.set(c.id,c),o.size>Qa&&o.delete(o.keys().next().value),dispatchEvent(new CustomEvent(He,{detail:c}))},d=c=>{for(let m of o.values())c.detail(m)};addEventListener(Ne,d);let u,p=c=>u&&c.detail(u);addEventListener(Ke,p);let g=typeof BroadcastChannel<"u"&&navigator.locks?new BroadcastChannel(`${It}:${n}`):void 0,w=new AbortController,I,k=()=>{},v,y=c=>{I=c.id??I,c.event&&l(c.event),c.counts&&(u=c.counts,dispatchEvent(new CustomEvent(Fe,{detail:u}))),c.runners&&dispatchEvent(new CustomEvent(Je,{detail:c.runners})),c.resync&&dispatchEvent(new Event(ze)),c.reset&&(o.clear(),dispatchEvent(new Event(Be)))};g?.addEventListener("message",({data:c})=>{if(!c.hello)return y(c);v??=setTimeout(()=>{v=void 0,r.current?.abort.abort(),k()},300)}),g?.postMessage({hello:!0});let $=async()=>{t.current=!0;let c=setInterval(()=>{g?.postMessage({resync:!0}),y({resync:!0})},Za);try{await C()}finally{clearInterval(c)}},C=async()=>{for(;!w.signal.aborted;){let c=new AbortController,m=()=>c.abort();w.signal.addEventListener("abort",m);let h=a.current;r.current={key:[...h].sort().join(","),abort:c};let f=1e3;try{let M=await ie.tasks.events(h,I,c.signal);if(M.status===404)return void(t.current=!1);if(!M.ok||!M.body)f=[401,403].includes(M.status)?6e4:5e3;else for await(let{event:E,data:S,id:R}of se(M.body)){if(c.signal.aborted)break;let q={...R?{id:R}:{},...E==="task"?{event:JSON.parse(S)}:{},...E==="counts"?{counts:JSON.parse(S)}:{},...E==="runners"?{runners:JSON.parse(S)}:{},...E==="reset"?{reset:!0}:{}};g?.postMessage(q),y(q)}}catch(M){c.signal.aborted||console.error("coder dashboard: events",M)}w.signal.removeEventListener("abort",m),!c.signal.aborted&&(await new Promise(M=>{let E=setTimeout(M,f);k=()=>{clearTimeout(E),M()}}),k=()=>{})}};return g?navigator.locks.request(`${It}:${n}`,{signal:w.signal},$).catch(c=>{w.signal.aborted||console.error("coder dashboard: events",c)}):$(),()=>{w.abort(),k(),clearTimeout(v),g?.close(),removeEventListener(Ne,d),removeEventListener(Ke,p)}},[]),A(()=>{r.current&&r.current.key!==i&&r.current.abort.abort()},[i])}function er(e){let t=B(e);t.current=e,A(()=>{let n=a=>t.current(a.detail);return addEventListener(Je,n),()=>removeEventListener(Je,n)},[])}function tr(){let[e,t]=Q();return A(()=>{let n=a=>t(a.detail.active);return addEventListener(Fe,n),dispatchEvent(new CustomEvent(Ke,{detail:a=>t(a.active)})),()=>removeEventListener(Fe,n)},[]),e?s("span",{class:"n",title:`${e} active`,children:e}):null}function nr({toast:e,paused:t,dismiss:n}){let a=Z(),r=B(Va);return A(()=>{if(t)return;let i=Date.now(),o=setTimeout(()=>n(e.key),r.current);return()=>{clearTimeout(o),r.current-=Date.now()-i}},[t]),s("div",{class:e.tone?`toast ${e.tone}`:"toast",children:[s("p",{class:"toast-head",children:[e.id?s(F,{class:"toast-title",href:"/dash/[org]/tasks/[id]",params:{org:a,id:e.id},onClick:()=>n(e.key),children:e.title}):s("span",{class:"toast-title",children:e.title}),e.status?s(Ut,{status:e.status}):null,s(V,{icon:J,label:"Dismiss",onClick:()=>n(e.key)})]}),s("p",{class:"toast-line",children:e.line})]})}function ar(){let e=Z(),t=qe(),n=Te(),[a,r]=Q({}),[i,o]=Q([]),[l,d]=Q(!1),[u,p]=Q(!1),[g,w]=Q(!1),I=B(St(t));I.current=St(t);let k=B({}),v=B(!1);A(()=>{let c=()=>{let m=We();for(let[h,f]of Object.entries(m))k.current[h]??=f.status;r(m)};return c(),addEventListener(ee,c),addEventListener("storage",c),()=>{removeEventListener(ee,c),removeEventListener("storage",c)}},[]),A(()=>{let c=m=>{let h=m.detail;o(f=>[{key:`${ue}:${Date.now()}`,...h},...f].slice(0,Et))};return addEventListener(ue,c),()=>removeEventListener(ue,c)},[]),A(()=>{if(!i.length)return;let c=m=>m.key==="Escape"&&o([]);return addEventListener("keydown",c),()=>removeEventListener("keydown",c)},[i.length]);let y=B(null);A(()=>{let c=y.current;c.matches(":popover-open")&&c.hidePopover(),i.length&&c.showPopover()},[i[0]?.key]);let $=c=>o(m=>m.filter(h=>h.key!==c));At(c=>{let m=a[c.id];if(m?.org!==e)return;if(c.deleted){let f=We();return delete f[c.id],qt(f)}let h=k.current[c.id]??m.status;k.current[c.id]=c.status,h!==c.status&&C(c.id,{...c,result:c.result??void 0,error:c.error??void 0},m)});let C=(c,m,h)=>{if(Pt(c,m.status),!Ja.has(m.status)||I.current===c)return;let f={key:`${c}:${Date.now()}`,id:c,title:h.title,status:m.status,line:Ga(m)};if(o(E=>[f,...E].slice(0,Et)),!v.current||localStorage.getItem(Tt)!=="1"||typeof Notification>"u"||Notification.permission!=="granted")return;let M=new Notification(`${f.title} (${Rt[f.status]})`,{body:f.line,tag:c});M.onclick=()=>{focus(),n.push("/dash/[org]/tasks/[id]",{params:{org:e,id:c}})}};return Ya(Object.entries(a).filter(([,c])=>c.org===e&&!Ve.has(c.status)).map(([c])=>c),v,e),A(()=>{let c=()=>w(!0),m=()=>w(!1);return addEventListener("blur",c),addEventListener("focus",m),()=>{removeEventListener("blur",c),removeEventListener("focus",m)}},[]),s("section",{ref:y,class:"toasts",popover:"manual","aria-label":"Task updates","aria-live":"polite",onPointerOver:()=>d(!0),onPointerOut:c=>d(!!y.current?.contains(c.relatedTarget)),onFocusIn:()=>p(!0),onFocusOut:c=>p(!!y.current?.contains(c.relatedTarget)),children:i.map(c=>s(nr,{toast:c,paused:l||u||g,dismiss:$},c.key))})}import{$2e as rr,$2j as sr,$2l as ir,$2n as or}from"./shared-init-3fcac605fffcc273-2.js";function lr({open:e=!0,class:t,tone:n,title:a,icon:r,dismiss:i,busy:o,cancel:l="Cancel",cancelDanger:d,focus:u="cancel",actions:p,onSubmit:g,onClose:w,children:I}){let k=ir(null),v=or();sr(()=>{let C=k.current;e&&!C.open?C.showModal():!e&&C.open&&C.close()},[e]);let y=()=>!o&&k.current.close(),$=rr(p).length===0;return s("dialog",{ref:k,class:["modal",t,n&&`tone ${n}`].filter(Boolean).join(" "),"aria-labelledby":v,onClose:w,onCancel:C=>{C.preventDefault(),y()},onClick:C=>C.target===C.currentTarget&&y(),children:s("form",{method:g?void 0:"dialog",onSubmit:g??(i&&$?C=>C.preventDefault():void 0),children:[s("header",{children:[r?s(T,{d:r}):null,s("h2",{id:v,children:a}),i?s(V,{icon:J,label:"Close",onClick:y}):null]}),I,i&&$?null:s("div",{class:"actions",children:[s(W,{variant:$&&!d?"primary":"ghost",danger:d,disabled:o,autofocus:u==="cancel",onClick:y,children:l}),p]})]})})}export{kt as $0A,Mt as $0B,Ua as $0C,Z as $0D,Ra as $0E,Ta as $0F,Te as $0a,qe as $0b,ca as $0c,mt as $0d,da as $0e,De as $0f,Ia as $0g,Sa as $0h,vt as $0i,Pe as $0j,Se as $0k,ha as $0l,Le as $0m,Ue as $0n,Ae as $0o,Re as $0p,pa as $0q,ma as $0r,gt as $0s,wt as $0t,fa as $0u,$t as $0v,va as $0w,xa as $0x,yt as $0y,Ea as $0z,se as $1a,rt as $1b,ie as $1c,Dn as $1d,Hn as $1e,be as $1f,ye as $1g,Nn as $1h,st as $1i,$e as $1j,ke as $1k,oe as $1l,Bn as $1m,zn as $1n,Fn as $1o,Kn as $1p,Jn as $1q,Wn as $1r,Xn as $1s,Me as $1t,xe as $1u,Gn as $1v,Y as $1w,_a as $2a,Pa as $2b,Aa as $2c,ja as $2d,Oa as $2e,Ha as $2f,za as $2g,Oe as $2h,Fa as $2i,Ut as $2j,Ka as $2k,Tt as $2l,_t as $2m,Xa as $2n,Pt as $2o,At as $2p,er as $2q,tr as $2r,ar as $2s,wn as $3A,X as $3B,$n as $3C,bn as $3D,yn as $3E,kn as $3F,Mn as $3G,xn as $3H,ge as $3I,Cn as $3J,En as $3K,In as $3L,Sn as $3M,Ln as $3N,Un as $3O,Rn as $3P,s as $3Q,T as $3R,W as $3S,qn as $3T,V as $3U,te as $3a,F as $3b,en as $3c,tn as $3d,nn as $3e,an as $3f,ne as $3g,me as $3h,fe as $3i,rn as $3j,sn as $3k,on as $3l,ln as $3m,cn as $3n,dn as $3o,un as $3p,Ye as $3q,hn as $3r,pn as $3s,mn as $3t,fn as $3u,J as $3v,ae as $3w,vn as $3x,gn as $3y,ve as $3z,lr as $4a};
@@ -1 +0,0 @@
1
- import{$0b as d,$0e as b,$0g as T,$0k as P,$0m as A}from"./shared-init-abd7653140f37a0c.js";import{$1d as y}from"./shared-init-abd7653140f37a0c.js";import{$4a as B}from"./shared-init-abd7653140f37a0c.js";import{$3J as R,$3Q as t,$3S as f,$3U as g,$3b as L,$3g as S,$3i as E,$3j as O,$3k as C,$3l as M,$3r as w,$3u as x}from"./shared-init-abd7653140f37a0c.js";import{$2c as l,$2h as a,$2j as p,$2k as h,$2l as k}from"./shared-init-3fcac605fffcc273-2.js";function N({within:n,children:r,onClick:s,...i}){let e=d(),o=e===T(i)||n!==void 0&&(e===n||e.startsWith(`${n}/`)),c=k(null);return t(L,{...i,"aria-current":o?"page":void 0,onClick:u=>{c.current=u.currentTarget,s?.(u)},children:[r,t($,{anchor:c,current:o})]})}function $({anchor:n,current:r}){let{pending:s}=b();return h(()=>{n.current&&(s&&!r?n.current.setAttribute("data-pending",""):n.current.removeAttribute("data-pending"))},[s,r]),null}function Q({link:n}){let r=`/api/auth/sign-in?${new URLSearchParams({return:n,prompt:"login"})}`;return t(B,{class:"outcome-dialog",tone:"warning",title:"Not in this workspace",icon:R,cancel:"Stay here",actions:t(f,{href:r,children:"Sign in with another account"}),onClose:()=>history.replaceState(history.state,"",location.pathname),children:t("p",{role:"status",children:"The link you followed does not belong to this workspace."})})}function ot({menu:n}){let r=()=>void y().catch(()=>location.reload());return n?t(P,{icon:w,title:"Sign out",onClick:r}):t(f,{variant:"secondary",danger:!0,onClick:r,children:"Sign out"})}var v=3600*24*365,I=[["light","Light",O],["dark","Dark",C],["system","System",M]];function mt({theme:n}){let[r,s]=a(n),i=e=>{let o=document.documentElement;e==="system"?delete o.dataset.theme:o.dataset.theme=e,document.cookie=`theme=${e}; path=/; max-age=${v}; samesite=lax`,s(e)};return t(l,{children:I.map(([e,o,c])=>t(A,{on:r===e,onPick:()=>i(e),icon:c,children:o},e))})}var H="side";function ht({collapsed:n}){let[r,s]=a(n);p(()=>{let o=document.querySelector(".app");if(!o)return;let c=()=>s(o.classList.contains("side-min"));c();let u=new MutationObserver(c);return u.observe(o,{attributes:!0,attributeFilter:["class"]}),()=>u.disconnect()},[]);let i=()=>{let o=!r;document.querySelector(".app")?.classList.toggle("side-min",o),document.cookie=`${H}=${o?"min":"max"}; path=/; max-age=31536000; samesite=lax`},e=r?"Expand sidebar":"Collapse sidebar";return t(g,{icon:r?E:S,label:e,tip:e,class:"side-toggle",onClick:i})}function xt(){let n=d(),[r,s]=a(),i=r===n,e=o=>s(o?n:void 0);return p(()=>{if(document.documentElement.classList.toggle("drawer",i),!i)return;let o=c=>c.key==="Escape"&&e(!1);return addEventListener("keydown",o),()=>removeEventListener("keydown",o)},[i]),t(l,{children:[t(g,{icon:x,label:"Open navigation",class:"only-m",onClick:()=>e(!i)}),t("div",{class:"scrim",onClick:()=>e(!1)})]})}export{N as a,Q as b,ot as c,mt as d,ht as e,xt as f};
@@ -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{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};