@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
@@ -3,18 +3,18 @@ import "./tasks-list.f3737549b4696cc8.css.pnext-asset.js";
3
3
  import { Fragment } from "../../../../../../../../../../node_modules/preact/dist/preact.mjs";
4
4
  import { dynamic } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/dynamic.tsx";
5
5
  import { useEffect, useRef, useState } from "../../../../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
6
- import { client } from "../../../../../utils/client.685154f230716834.js";
7
- import { useAction } from "../../../../../utils/action.56cea462eb725c39.js";
6
+ import { client } from "../../../../../utils/client.b9225923da59febe.js";
7
+ import { useAction } from "../../../../../utils/action.44115286faf6c0f8.js";
8
8
  import { formatCount, formatDate, formatDay, formatDuration } from "../../../../../utils/format.ceeaafa10a0563f3.js";
9
9
  import { iAgent, iClock, iDots, iFolder, iMonitor, iPlug, iPlus, iTerminal } from "../../../../../comps/ui/icons.f769275420d072ce.js";
10
10
  import { Menu } from "../../../../../comps/ui/menu.7f558c7c6f6345d5.js";
11
11
  import { MenuItem } from "../../../../../comps/ui/menu-items.759a1b1f7c5ee365.js";
12
12
  import { Link } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/link.tsx";
13
- import { PendingApprovals } from "./pending-approvals.9175908da02960e1.js";
13
+ import { PendingApprovals } from "./pending-approvals.7ff2eadf13a3ee90.js";
14
14
  import { useRouter } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
15
15
  import { usePaged } from "../../../../../utils/paged.0e54c3044f8ca567.js";
16
16
  import { useZone } from "../../../../zone.0515a688ee5ff6ca.js";
17
- import { pendingApproval } from "../[id]/task-actions.d131453dd2a423c3.js";
17
+ import { pendingApproval } from "../[id]/task-actions.783070d7dbd198e4.js";
18
18
  import { BrandIcon } from "../../agents/agent/agent-pills.1012e04bfbc7bffd.js";
19
19
  import { Button } from "../../../../../comps/ui/button.b62fa52e18fa338b.js";
20
20
  import { Card, Empty } from "../../../../../comps/ui/card.c0030eafd76587e3.js";
@@ -29,11 +29,11 @@ import { LIST_PAGE } from "../../../../../utils/paged.0e54c3044f8ca567.js";
29
29
  import { Search, Toolbar, queryOf, useFilters } from "../../../../../comps/ui/toolbar.ff8367c641d28c1e.js";
30
30
  import { Tail } from "../../../../../comps/ui/tail.7eb303330802ac18.js";
31
31
  import { SOURCES, STATUSES, folderName, listFilters, sourceLabel } from "./task.a25847399a4dfb30.js";
32
- import { NeedsCredential } from "../composer.97be3e67214889c1.js";
33
- import { useTaskEvents } from "../../../../../comps/frame/task-toasts.8733901ca0e4c246.js";
32
+ import { NeedsCredential } from "../composer.6a331de70f3baff4.js";
33
+ import { useTaskEvents } from "../../../../../comps/frame/task-toasts.b0ba5a1b4976ae27.js";
34
34
  import { useOrg } from "../../../../../comps/nav/org.853d173b55368728.js";
35
35
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
36
- const NewTaskButton = dynamic(() => import("../composer.97be3e67214889c1.js").then((m) => m.NewTaskButton), {
36
+ const NewTaskButton = dynamic(() => import("../composer.6a331de70f3baff4.js").then((m) => m.NewTaskButton), {
37
37
  // TODO: stays disabled after client navigation until pnext SSRs nested dynamic() like Next.js.
38
38
  loading: () => /* @__PURE__ */ _jsx(Button, {
39
39
  class: "new-task",
@@ -43,7 +43,7 @@ loading: () => /* @__PURE__ */ _jsx(Button, {
43
43
  }) }, {
44
44
  "file": decodeURIComponent(new URL("../../../../../../../../../../../../../src/server/dash/app/dash/[org]/tasks/composer.tsx", import.meta.url).pathname),
45
45
  "exportName": "NewTaskButton",
46
- "id": "c-349df33426"
46
+ "id": "c-6ad71039d9"
47
47
  });
48
48
  const SOURCE_ICONS = {
49
49
  dashboard: iMonitor,
@@ -2,19 +2,19 @@ import "./tasks-list.f3737549b4696cc8.css.pnext-asset.js";
2
2
  import { dynamic } from "../../../../../../../../../../node_modules/@wular/pnext/src/api/dynamic.tsx";
3
3
  import { zoneOf } from "../../../../../utils/format.ceeaafa10a0563f3.js";
4
4
  import { FILTER_ROWS, LIST_PAGE } from "../../../../../utils/paged.0e54c3044f8ca567.js";
5
- import { load } from "../../../../../api/load.858c062c7891a2c1.js";
6
- import { Settle } from "../../../../../comps/frame/stream.2cdb8eabd8f6df70.js";
5
+ import { load } from "../../../../../api/load.3e1c235ecb89201a.js";
6
+ import { Settle } from "../../../../../comps/frame/stream.c7ffa724145ce870.js";
7
7
  import { LoadingCard, LoadingToolbar } from "../../../../../comps/frame/loading-card.77bea8c5870b5d3c.js";
8
8
  import { listFilters } from "./task.a25847399a4dfb30.js";
9
9
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
10
10
  // Rows arrive rendered; paging and filters hydrate once the list is in view.
11
- const TasksList = dynamic(() => import("./tasks-list.028798c79227a366.js").then((m) => m.TasksList), {
11
+ const TasksList = dynamic(() => import("./tasks-list.57c90c66384141a0.js").then((m) => m.TasksList), {
12
12
  load: "visible",
13
13
  ssr: true
14
14
  }, {
15
15
  "file": decodeURIComponent(new URL("../../../../../../../../../../../../../src/server/dash/app/dash/[org]/tasks/list/tasks-list.tsx", import.meta.url).pathname),
16
16
  "exportName": "TasksList",
17
- "id": "c-67acd5aafe"
17
+ "id": "c-ca3ddc4b71"
18
18
  });
19
19
  /** A task list before it arrives; an agent's own tab has no head and no agent filter. */
20
20
  export function TasksLoading({ head }) {
@@ -1,7 +1,7 @@
1
- import { load } from "../../../../api/load.858c062c7891a2c1.js";
1
+ import { load } from "../../../../api/load.3e1c235ecb89201a.js";
2
2
  import { HEADS } from "../../../../comps/frame/heads.37e35439c02fc636.js";
3
3
  import { Page } from "../../../../comps/frame/page-head.2eb1e0213eb50349.js";
4
- import { TasksSection, loadTasks } from "./list/tasks-section.9a9d13057b326f25.js";
4
+ import { TasksSection, loadTasks } from "./list/tasks-section.22e4f86847e1a3e2.js";
5
5
  import { credentialMissing } from "./composer-data.c16854be11a561e4.js";
6
6
  import { jsx as _jsx } from "../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
7
7
  /** Every task, with New task in the head, and for an admin the changes waiting for their approval. */
@@ -2,11 +2,11 @@ import "./@/comps/ui/segmented.41728247cda62f82.css.pnext-asset.js";
2
2
  import "./@/app/dash/[org]/usage/range-bar.85d30ec5f022f124.css.pnext-asset.js";
3
3
  import { formatCompact, formatCount, formatDuration, zoneOf } from "../../../../utils/format.ceeaafa10a0563f3.js";
4
4
  import { daysIn, rangeFor } from "../../../../utils/range.f73ba9cac0a60af1.js";
5
- import { load, orgOf } from "../../../../api/load.858c062c7891a2c1.js";
5
+ import { load, orgOf } from "../../../../api/load.3e1c235ecb89201a.js";
6
6
  import { Card } from "../../../../comps/ui/card.c0030eafd76587e3.js";
7
7
  import { Page, PageHead } from "../../../../comps/frame/page-head.2eb1e0213eb50349.js";
8
8
  import { Stat, Stats } from "./stats.de820599cf126120.js";
9
- import { Settle } from "../../../../comps/frame/stream.2cdb8eabd8f6df70.js";
9
+ import { Settle } from "../../../../comps/frame/stream.c7ffa724145ce870.js";
10
10
  import { HEADS } from "../../../../comps/frame/heads.37e35439c02fc636.js";
11
11
  import { TopAgents } from "./top-agents.93c916167299ffb6.js";
12
12
  import { DayChart } from "./day-chart.20faaaf57c81ad9e.js";
@@ -1,5 +1,5 @@
1
1
  import { Suspense } from "../../../../../../../node_modules/preact/compat/dist/compat.mjs";
2
- import { signedOut } from "../../api/load.858c062c7891a2c1.js";
2
+ import { signedOut } from "../../api/load.3e1c235ecb89201a.js";
3
3
  import { Card } from "../ui/card.c0030eafd76587e3.js";
4
4
  import { reasonText } from "../../utils/format.ceeaafa10a0563f3.js";
5
5
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
@@ -2,7 +2,7 @@
2
2
  import "./task-toasts.682322f6f729b33e.css.pnext-asset.js";
3
3
  import { useEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
4
4
  import { serverEvents } from "../../../../client/http.e78b470f4ecf125b.js";
5
- import { client } from "../../utils/client.685154f230716834.js";
5
+ import { client } from "../../utils/client.b9225923da59febe.js";
6
6
  import { Link } from "../../../../../../../node_modules/@wular/pnext/src/api/link.tsx";
7
7
  import { usePathname, useRouter } from "../../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
8
8
  import { Status, STATUS_LABEL } from "../../app/dash/[org]/tasks/list/status.d2c05c397780b833.js";
@@ -22,7 +22,7 @@ const SHOWN = new Set([...DONE, "waiting"]);
22
22
  const KEEP = 20;
23
23
  const MAX = 3;
24
24
  const TTL = 8e3;
25
- // The Web Lock that picks the one tab holding the events stream, and the channel it shares them on.
25
+ // The Web Lock that picks the one tab polling the events, and the channel it shares them on.
26
26
  const EVENTS = "coder:events";
27
27
  const TASK = "coder:task";
28
28
  const REPLAY = "coder:task-replay";
@@ -35,6 +35,7 @@ const RUNNERS = "coder:runners";
35
35
  const RESYNC_MS = 6e4;
36
36
  // Latest events a tab keeps, so a page that mounts later starts from them.
37
37
  const LATEST = 200;
38
+ const POLL_MS = 5e3;
38
39
  const read = () => {
39
40
  try {
40
41
  return JSON.parse(localStorage.getItem(WATCHED) ?? "{}") ?? {};
@@ -104,15 +105,18 @@ export function useTaskEvents(on, reset, resync) {
104
105
  };
105
106
  }, []);
106
107
  }
107
- /** One events stream per browser and organization: the tab holding the lock reads it, shares it on a channel, and a tab that takes over resumes from the last event id. */
108
+ /** One events poll per browser and organization: the tab holding the lock polls, shares the events on a channel, and a tab that takes over resumes from the last event id. */
108
109
  function useEventsStream(ids, leading, org) {
109
110
  const asked = useRef(ids);
110
111
  asked.current = ids;
111
112
  const current = useRef();
113
+ const sync = useRef(() => {});
112
114
  const key = [...ids].sort().join(",");
113
115
  useEffect(() => {
114
116
  const latest = new Map();
115
117
  const deliver = (event) => {
118
+ // Each poll repeats what changed lately; pages hear a change once.
119
+ if (JSON.stringify(latest.get(event.id)) === JSON.stringify(event)) return;
116
120
  latest.delete(event.id);
117
121
  latest.set(event.id, event);
118
122
  if (latest.size > LATEST) latest.delete(latest.keys().next().value);
@@ -123,6 +127,7 @@ function useEventsStream(ids, leading, org) {
123
127
  };
124
128
  addEventListener(REPLAY, replay);
125
129
  let counts;
130
+ let runners = "";
126
131
  const replayCounts = (event) => counts && event.detail(counts);
127
132
  addEventListener(COUNTS_REPLAY, replayCounts);
128
133
  const channel = typeof BroadcastChannel !== "undefined" && navigator.locks ? new BroadcastChannel(`${EVENTS}:${org}`) : undefined;
@@ -137,7 +142,10 @@ function useEventsStream(ids, leading, org) {
137
142
  counts = message.counts;
138
143
  dispatchEvent(new CustomEvent(COUNTS, { detail: counts }));
139
144
  }
140
- if (message.runners) dispatchEvent(new CustomEvent(RUNNERS, { detail: message.runners }));
145
+ if (message.runners && JSON.stringify(message.runners) !== runners) {
146
+ runners = JSON.stringify(message.runners);
147
+ dispatchEvent(new CustomEvent(RUNNERS, { detail: message.runners }));
148
+ }
141
149
  if (message.resync) dispatchEvent(new Event(RESYNC));
142
150
  if (!message.reset) return;
143
151
  latest.clear();
@@ -145,7 +153,7 @@ function useEventsStream(ids, leading, org) {
145
153
  };
146
154
  channel?.addEventListener("message", ({ data }) => {
147
155
  if (!data.hello) return receive(data);
148
- // A tab that just loaded: the next stream resumes for it too.
156
+ // A tab that just loaded: the next poll goes now, for it too.
149
157
  soon ??= setTimeout(() => {
150
158
  soon = undefined;
151
159
  current.current?.abort.abort();
@@ -153,37 +161,38 @@ function useEventsStream(ids, leading, org) {
153
161
  }, 300);
154
162
  });
155
163
  channel?.postMessage({ hello: true });
156
- const lead = async () => {
164
+ const lead = async (signal) => {
157
165
  leading.current = true;
158
166
  const resync = setInterval(() => {
159
167
  channel?.postMessage({ resync: true });
160
168
  receive({ resync: true });
161
169
  }, RESYNC_MS);
162
170
  try {
163
- await follow();
171
+ await follow(signal);
164
172
  } finally {
165
173
  clearInterval(resync);
174
+ leading.current = false;
166
175
  }
167
176
  };
168
- const follow = async () => {
169
- while (!abort.signal.aborted) {
177
+ const follow = async (signal) => {
178
+ while (!signal.aborted) {
170
179
  const once = new AbortController();
171
180
  const stop = () => once.abort();
172
- abort.signal.addEventListener("abort", stop);
181
+ signal.addEventListener("abort", stop);
173
182
  const ids = asked.current;
174
183
  current.current = {
175
184
  key: [...ids].sort().join(","),
176
185
  abort: once
177
186
  };
178
- let wait = 1e3;
187
+ let wait = POLL_MS;
179
188
  try {
180
189
  const response = await client.tasks.events(ids, last, once.signal);
181
190
  // A server without the events stream: nothing to follow.
182
191
  if (response.status === 404) return void (leading.current = false);
183
192
  // Signed out: a tab that signs in again wakes the next try.
184
- if (!response.ok || !response.body) wait = [401, 403].includes(response.status) ? 6e4 : 5e3;
185
- else for await (const { event, data, id } of serverEvents(response.body)) {
186
- // A stream replaced by the next one says nothing more.
193
+ if ([401, 403].includes(response.status)) wait = 6e4;
194
+ else if (response.ok && response.body) for await (const { event, data, id } of serverEvents(response.body)) {
195
+ // A poll replaced by the next one says nothing more.
187
196
  if (once.signal.aborted) break;
188
197
  const message = {
189
198
  ...id ? { id } : {},
@@ -198,8 +207,8 @@ function useEventsStream(ids, leading, org) {
198
207
  } catch (reason) {
199
208
  if (!once.signal.aborted) console.error("coder dashboard: events", reason);
200
209
  }
201
- abort.signal.removeEventListener("abort", stop);
202
- // A new task set opens the next stream at once.
210
+ signal.removeEventListener("abort", stop);
211
+ // A new task set polls again at once.
203
212
  if (once.signal.aborted) continue;
204
213
  await new Promise((done) => {
205
214
  const timer = setTimeout(done, wait);
@@ -211,21 +220,39 @@ function useEventsStream(ids, leading, org) {
211
220
  wake = () => {};
212
221
  }
213
222
  };
214
- if (channel) void navigator.locks.request(`${EVENTS}:${org}`, { signal: abort.signal }, lead).catch((reason) => {
215
- if (!abort.signal.aborted) console.error("coder dashboard: events", reason);
216
- });
217
- else void lead();
223
+ // A hidden tab polls nothing, unless it notifies of a watched task still running.
224
+ let turn;
225
+ const wanted = () => document.visibilityState !== "hidden" || asked.current.length > 0 && localStorage.getItem(NOTIFY) === "1" && typeof Notification !== "undefined" && Notification.permission === "granted";
226
+ sync.current = () => {
227
+ if (!wanted()) {
228
+ turn?.abort();
229
+ turn = undefined;
230
+ return wake();
231
+ }
232
+ if (turn) return;
233
+ turn = new AbortController();
234
+ const signal = AbortSignal.any([abort.signal, turn.signal]);
235
+ if (channel) void navigator.locks.request(`${EVENTS}:${org}`, { signal }, () => lead(signal)).catch((reason) => {
236
+ if (!signal.aborted) console.error("coder dashboard: events", reason);
237
+ });
238
+ else void lead(signal);
239
+ };
240
+ const visibility = () => sync.current();
241
+ addEventListener("visibilitychange", visibility);
242
+ sync.current();
218
243
  return () => {
219
244
  abort.abort();
220
245
  wake();
221
246
  clearTimeout(soon);
222
247
  channel?.close();
248
+ removeEventListener("visibilitychange", visibility);
223
249
  removeEventListener(REPLAY, replay);
224
250
  removeEventListener(COUNTS_REPLAY, replayCounts);
225
251
  };
226
252
  }, []);
227
253
  useEffect(() => {
228
254
  if (current.current && current.current.key !== key) current.current.abort.abort();
255
+ sync.current();
229
256
  }, [key]);
230
257
  }
231
258
  /** Hears the runners this person sees whenever one is added, changed, removed, or goes on or offline. */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { useState } from "../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
3
3
  import { useRouter } from "../../../../../../node_modules/@wular/pnext/src/api/client-navigation.ts";
4
- import { toastError } from "../comps/frame/task-toasts.8733901ca0e4c246.js";
4
+ import { toastError } from "../comps/frame/task-toasts.b0ba5a1b4976ae27.js";
5
5
  import { reasonText } from "./format.ceeaafa10a0563f3.js";
6
6
  const FAILED = "Something went wrong";
7
7
  /** A failure no action ran, as the same toast. */
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useEffect, useRef } from "../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
3
- import { ServerClient } from "../../../client/index.91e126d7a389d4bd.js";
3
+ import { ServerClient } from "../../../client/index.a036e2c6ae93ec75.js";
4
4
  export const client = new ServerClient("", { cookie: true }, {
5
5
  // The page's organization, so a tab open in another one never changes what this one acts on.
6
6
  fetch(input, init) {
@@ -1 +1 @@
1
- "use client";import{a as u}from"./list-662f042656857c82.js";import"./confirm-14d018653fbe50fc.js";import"./shared-init-96225b8c7758de9d.js";import"./shared-init-96225b8c7758de9d.js";import"./shared-init-abd7653140f37a0c.js";import"./shared-init-abd7653140f37a0c.js";import{$1o as h}from"./shared-init-abd7653140f37a0c.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-abd7653140f37a0c.js";import{$3Q as e,$3R as p,$3v as d}from"./shared-init-abd7653140f37a0c.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2h as c}from"./shared-init-3fcac605fffcc273-2.js";function T({first:f,admin:r}){let n=u(f.config),o=n.value.network?.allowedHosts??[],[l,a]=c(""),i=t=>n.patch({network:{allowedHosts:t}});return e(h,{look:"filled",title:"Network",children:[e("p",{class:"body muted",children:"Hosts tasks reach without review, with their subdomains."}),e("div",{class:"hosts",children:[o.map(t=>e("span",{class:"host mono",children:[t,r?e("button",{type:"button","aria-label":`Remove ${t}`,onClick:()=>void i(o.filter(s=>s!==t)),children:e(p,{d})}):null]},t)),r?e("input",{class:"mono",value:l,onInput:t=>a(t.currentTarget.value),onKeyDown:t=>{let s=l.trim();t.key!=="Enter"||!s||(t.preventDefault(),a(""),o.includes(s)||i([...o,s]))},placeholder:o.length?"Add a host, then Enter":"registry.npmjs.org, then Enter","aria-label":"Add a host",autocomplete:"off",spellcheck:!1}):null]}),e("label",{class:"hosts-switch",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:n.value.network?.readOnlyTasks??!1,disabled:!r,onChange:t=>void n.patch({network:{readOnlyTasks:t.currentTarget.checked}})}),"Read-only tasks reach these hosts too"]})]})}export{T as AdvancedList};
1
+ "use client";import{a as u}from"./list-84356c9286747b10.js";import"./confirm-6e26ab941d655b9f.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import{$0o as h}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import{$4Q as e,$4R as p,$4v as d}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2h as c}from"./shared-init-3fcac605fffcc273-2.js";function T({first:f,admin:r}){let n=u(f.config),o=n.value.network?.allowedHosts??[],[l,a]=c(""),i=t=>n.patch({network:{allowedHosts:t}});return e(h,{look:"filled",title:"Network",children:[e("p",{class:"body muted",children:"Hosts tasks reach without review, with their subdomains."}),e("div",{class:"hosts",children:[o.map(t=>e("span",{class:"host mono",children:[t,r?e("button",{type:"button","aria-label":`Remove ${t}`,onClick:()=>void i(o.filter(s=>s!==t)),children:e(p,{d})}):null]},t)),r?e("input",{class:"mono",value:l,onInput:t=>a(t.currentTarget.value),onKeyDown:t=>{let s=l.trim();t.key!=="Enter"||!s||(t.preventDefault(),a(""),o.includes(s)||i([...o,s]))},placeholder:o.length?"Add a host, then Enter":"registry.npmjs.org, then Enter","aria-label":"Add a host",autocomplete:"off",spellcheck:!1}):null]}),e("label",{class:"hosts-switch",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:n.value.network?.readOnlyTasks??!1,disabled:!r,onChange:t=>void n.patch({network:{readOnlyTasks:t.currentTarget.checked}})}),"Read-only tasks reach these hosts too"]})]})}export{T as AdvancedList};
@@ -1,2 +1,2 @@
1
- import{$0E as b}from"./shared-init-abd7653140f37a0c.js";import{$1g as h,$1i as m,$1j as f,$1k as n}from"./shared-init-abd7653140f37a0c.js";import{$3Q as r,$3R as a,$3t as l}from"./shared-init-abd7653140f37a0c.js";import{$2c as u,$2n as g}from"./shared-init-3fcac605fffcc273-2.js";var k=(e,o)=>e.replace(/\bid="([^"]+)"/g,`id="$1${o}"`).replace(/url\(#([^)]+)\)/g,`url(#$1${o})`).replace(/href="#([^"]+)"/g,`href="#$1${o}"`);function y({brand:e}){let o=g().replace(/[^a-zA-Z0-9_-]/g,"");return e.svg?r("span",{class:"brand-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:k(e.svg,`-${o}`)}}):r("svg",{class:"brand-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{color:e.dark?`light-dark(${e.color}, ${e.dark})`:e.color},children:r("path",{d:e.icon})})}function B({id:e,info:o,state:s}){let i=o?.name??e;return r("span",{class:`pf ${s}`,children:[o?r(y,{brand:o.brand}):null,i]})}function S({platforms:e,catalog:o,agent:s}){let i=e.length>=m?f:e.length,c=({id:t,state:I},d)=>{let p=r(B,{id:t,info:o.find(L=>L.id===t),state:I});return s?r(b,{class:d,href:"/dash/[org]/agents/[slug]/platforms",params:{slug:s},children:p},t):r("span",{class:d,children:p},t)};return r("span",{class:"pfs",children:[e.slice(0,i).map(t=>c(t)),e.length>i?r(h,{label:`+${e.length-i}`,children:e.map(t=>c(t,"pf-row"))}):null]})}var R={builtin:"built-in",upload:"dashboard",repo:"repository",home:"local"};function w(){return r(n,{tone:"warn",title:"Disabled in this workspace",children:"disabled"})}function E({agent:e,fix:o}){return r(u,{children:[e.source==="repo"&&e.repo?e.sourceUrl?r(n,{class:"link-pill",href:e.sourceUrl,external:!0,title:`Repository agent, opens ${e.repo}`,children:[r(a,{d:l}),e.repo]}):r(n,{class:"link-pill",title:"Repository agent",children:[r(a,{d:l}),e.repo]}):r(n,{tone:e.source==="builtin"?"acc":void 0,title:e.local&&e.source==="repo"?"Repo agent, a folder in this repository":e.source==="home"?"Local agent, a folder on this machine":e.source!=="upload"?"Ships with Coder":e.local?"Local agent, a folder on this machine":"Dashboard agent, made and edited here",children:e.local&&e.source==="upload"?"local":R[e.source]??e.source}),e.local?e.commit&&r(n,{title:"Last commit of the agent's folder",children:e.commit.slice(0,7)}):r(n,{children:["v",e.currentVersion]}),e.settings?.disabled?r(w,{}):null,e.problems?.length?r(n,{tone:"bad",title:e.problems.join(`
1
+ import{$2E as b}from"./shared-init-7a7f1e623f0f5861.js";import{$0g as h,$0i as m,$0j as f,$0k as n}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r,$4R as a,$4t as l}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as u,$2n as g}from"./shared-init-3fcac605fffcc273-2.js";var k=(e,o)=>e.replace(/\bid="([^"]+)"/g,`id="$1${o}"`).replace(/url\(#([^)]+)\)/g,`url(#$1${o})`).replace(/href="#([^"]+)"/g,`href="#$1${o}"`);function y({brand:e}){let o=g().replace(/[^a-zA-Z0-9_-]/g,"");return e.svg?r("span",{class:"brand-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:k(e.svg,`-${o}`)}}):r("svg",{class:"brand-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{color:e.dark?`light-dark(${e.color}, ${e.dark})`:e.color},children:r("path",{d:e.icon})})}function B({id:e,info:o,state:s}){let i=o?.name??e;return r("span",{class:`pf ${s}`,children:[o?r(y,{brand:o.brand}):null,i]})}function S({platforms:e,catalog:o,agent:s}){let i=e.length>=m?f:e.length,c=({id:t,state:I},d)=>{let p=r(B,{id:t,info:o.find(L=>L.id===t),state:I});return s?r(b,{class:d,href:"/dash/[org]/agents/[slug]/platforms",params:{slug:s},children:p},t):r("span",{class:d,children:p},t)};return r("span",{class:"pfs",children:[e.slice(0,i).map(t=>c(t)),e.length>i?r(h,{label:`+${e.length-i}`,children:e.map(t=>c(t,"pf-row"))}):null]})}var R={builtin:"built-in",upload:"dashboard",repo:"repository",home:"local"};function w(){return r(n,{tone:"warn",title:"Disabled in this workspace",children:"disabled"})}function E({agent:e,fix:o}){return r(u,{children:[e.source==="repo"&&e.repo?e.sourceUrl?r(n,{class:"link-pill",href:e.sourceUrl,external:!0,title:`Repository agent, opens ${e.repo}`,children:[r(a,{d:l}),e.repo]}):r(n,{class:"link-pill",title:"Repository agent",children:[r(a,{d:l}),e.repo]}):r(n,{tone:e.source==="builtin"?"acc":void 0,title:e.local&&e.source==="repo"?"Repo agent, a folder in this repository":e.source==="home"?"Local agent, a folder on this machine":e.source!=="upload"?"Ships with Coder":e.local?"Local agent, a folder on this machine":"Dashboard agent, made and edited here",children:e.local&&e.source==="upload"?"local":R[e.source]??e.source}),e.local?e.commit&&r(n,{title:"Last commit of the agent's folder",children:e.commit.slice(0,7)}):r(n,{children:["v",e.currentVersion]}),e.settings?.disabled?r(w,{}):null,e.problems?.length?r(n,{tone:"bad",title:e.problems.join(`
2
2
  `),...o,children:"not running"}):null]})}export{y as a,S as b,w as c,E as d};
@@ -1 +1 @@
1
- "use client";import{a as ne}from"./chain-hint-491eb09a20a15702.js";import{a as Z}from"./agent-pills-54564413a57d7fa7.js";import{a as ee}from"./agent-toggle-b5dcc4ea6292fb3d.js";import{$0c as X}from"./shared-init-96cde32cd50254c0.js";import{d as H,h as R,l as W}from"./model-options-5e07b3318d69d218.js";import{b as I,c as Y}from"./types-3eca2c7f47c46054.js";import{a as K}from"./confirm-14d018653fbe50fc.js";import{a as f}from"./field-adcb6e6a5f9b7131.js";import{$0b as F}from"./shared-init-96225b8c7758de9d.js";import"./shared-init-96225b8c7758de9d.js";import{$2m as J}from"./shared-init-abd7653140f37a0c.js";import{$0D as G,$0a as _,$0v as z,$0z as w}from"./shared-init-abd7653140f37a0c.js";import{$1c as P}from"./shared-init-abd7653140f37a0c.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-abd7653140f37a0c.js";import{$3Q as e,$3S as D,$3b as y}from"./shared-init-abd7653140f37a0c.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as b,$2h as d,$2k as V,$2l as Q}from"./shared-init-3fcac605fffcc273-2.js";function Ie({agent:t,catalog:te,shape:k,runners:$,connections:q}){let se=_(),p=G(),[m,x]=d("run"),B=F({refresh:!0}),N=F({leaves:!0}),oe=!!B.pending,[S,ae]=d(""),[h,ie]=d(),[le,A]=d(!1),O=Q(null),l=t.settings??{},[C,re]=d(l.model?.includes("/")?l.model:[l.engine,l.model,l.effort].filter(Boolean).join("/")),[E,ce]=d(l.connections?"some":""),L=t.definition?.integrations??{},g=Object.keys(L).sort(),T=t.definition,j=t.source!=="builtin";V(()=>{let n=S.trim().toLowerCase(),o=[];O.current.querySelectorAll(".vpanel").forEach(i=>{let a=!1;i.querySelectorAll(".field").forEach(s=>{let r=[...s.querySelectorAll("input")].map(v=>v.value).join(" "),c=s.closest(".vplatform")?.querySelector("h3")?.textContent??"",u=!n||`${c} ${s.textContent} ${r}`.toLowerCase().includes(n);s.hidden=!u,a||=u}),i.querySelectorAll(".vplatform").forEach(s=>{s.hidden=!s.querySelector(".field:not([hidden])")}),a&&o.push(i.dataset.panel)}),ie(n?o:void 0),n&&o.length&&!o.includes(m)&&x(o[0])},[S]);let de=()=>void N.run("delete",async()=>{await P.agents.remove(t.id),se.push("/dash/[org]/agents",{params:{org:p}})}).then(n=>n||A(!1)),M=(n,o)=>e("button",{type:"button","aria-current":m===n?"true":void 0,class:h&&!h.includes(n)?"miss":void 0,onClick:()=>x(n),children:o});return e("form",{ref:O,class:"vsettings card frame",onSubmit:async n=>{n.preventDefault();let o=new FormData(n.currentTarget),i=c=>String(o.get(c)??"").trim(),a={};i("runner")&&(a.runner=i("runner")),i("access")!==(T?.access??"auto")&&(a.access=i("access")),C.trim()&&(a.model=C.trim()),E&&(a.connections=o.getAll("connection").map(String));for(let c of g){let u={},v=I(L[c]?.events),U=o.getAll(`event:${c}`).map(String);v.length&&U.length<v.length&&(u.allowedEvents=U),Object.keys(u).length&&((a.integrations??={})[c]=u)}t.settings?.disabled&&(a.disabled=!0);let s;await B.run("save",async()=>{({warning:s}=await P.agents.settings(t.id,a))})&&J("Saved",s??"New tasks use these settings.",s?"warning":"success")},children:[e("nav",{class:"tabs vertical","aria-label":"Settings sections",children:[e("p",{class:"tabs-label",children:"Runtime"}),M("run","How it runs"),g.length?M("platforms","Platforms"):null,e("p",{class:"tabs-label",children:"Agent"}),M("manage","Manage")]}),e("div",{class:"vbody",children:[e("div",{class:"vsearch",children:[e(z,{value:S,label:"Search settings",onInput:ae}),h&&!h.length?e("span",{class:"muted",children:"No setting matches."}):null]}),e("section",{class:"vpanel","data-panel":"run",hidden:m!=="run",children:[e("h2",{children:"How it runs"}),e("p",{class:"muted",children:"Anything left empty follows the agent's own definition, then the workspace chain."}),e("div",{class:"fields",children:[e(f,{label:"Model",hint:e(ne,{org:p,own:t.definition?.model&&R(t.definition.model,k.builtin)}),group:!0,children:e(X,{shape:k,empty:t.definition?.model?{label:`Its own, ${R(t.definition.model,k.builtin)}`,sub:"from agent.json"}:W(),value:C,onChange:re})}),e(f,{label:"Access",hint:"what its tasks, platforms and connections may do",group:!0,children:e(w,{name:"access",label:"Access",defaultValue:l.access??T?.access??"auto",options:T?.access==="read-only"?H.filter(([n])=>n==="read-only"):H})}),$.length>1?e(f,{label:"Runs on",group:!0,children:e(w,{name:"runner",label:"Runs on",defaultValue:l.runner??"",options:$})}):null,e(f,{label:"Connections",hint:"which workspace connections its tasks can use",group:!0,children:e(w,{label:"Connections",value:E,options:[["","Every workspace connection"],["some","Only the ones picked"]],onChange:ce})}),E?e("div",{class:"field picked",children:[e("span",{children:["Picked connections ",e("small",{children:"tasks can use only these"})]}),q.length?e("div",{class:"checks",children:q.map(n=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:"connection",value:n.id,defaultChecked:l.connections?.includes(n.id)}),n.name]},n.id))}):e("span",{class:"muted",children:["This workspace has no connections yet."," ",e(y,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:p,tab:"connections"},children:"Add one in Settings"})]})]}):null]})]}),g.length?e("section",{class:"vpanel","data-panel":"platforms",hidden:m!=="platforms",children:[e("h2",{children:"Platforms"}),e("p",{class:"muted",children:["Turn events off for this workspace."," ",Y(t)?e(b,{children:["To add an event or a platform,"," ",e(y,{href:"/dash/[org]/agents/[slug]/edit",params:{org:p,slug:t.id},search:{section:"platforms"},children:["edit ",t.name]}),"."]}):t.source==="repo"?e(b,{children:[t.name," comes from ",t.repo??"a repository","; add an event or a platform in its"," ",t.sourceUrl?e("a",{href:t.sourceUrl,target:"_blank",rel:"noreferrer",children:"agent.json"}):"agent.json"," ","there."]}):e(b,{children:[t.name," is built in, so its events and platforms ship with Coder. To listen anywhere else,"," ",e(y,{href:"/dash/[org]/agents/new",params:{org:p},children:"create your own agent"}),"."]})]}),g.map(n=>{let o=l.integrations?.[n]??{},i=I(L[n]?.events),a=o.allowedEvents,s=te.find(r=>r.id===n);return e("div",{class:"vplatform",children:[e("h3",{children:[s?e(Z,{brand:s.brand}):null,s?.name??n]}),i.length?e("div",{class:"field",children:[e("span",{children:["Events"," ",e("small",{children:"the definition's events; turn off any it should ignore here"})]}),e("div",{class:"checks",children:i.map(r=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${n}`,value:r,defaultChecked:!a||a.includes(r)}),r]},r))})]}):null]},n)})]}):null,e("section",{class:"vpanel","data-panel":"manage",hidden:m!=="manage",children:[e("h2",{children:"Manage"}),e("div",{class:"field row-action",children:[e("span",{children:["Disable agent",e("small",{children:"stops its events and new tasks in this workspace; its apps and tasks stay"})]}),e(ee,{agent:t})]}),e("div",{class:"field row-action",children:[e("span",{children:["Delete agent",e("small",{children:j?"removes it and every version; its tasks and platform apps stay":`${t.name} is built in and cannot be deleted; disable it above instead`})]}),e(D,{variant:"secondary",danger:!0,disabled:!j,onClick:()=>A(!0),children:"Delete agent"})]})]}),m==="manage"?null:e("div",{class:"form-actions save",children:e(D,{type:"submit",loading:oe,children:"Save"})})]}),le?e(K,{open:!0,title:`Delete ${t.name}?`,body:"It stops answering on every platform. This cannot be undone.",confirmLabel:"Delete agent",busy:!!N.pending,onClose:()=>A(!1),onConfirm:de}):null]})}export{Ie as AgentSettingsForm};
1
+ "use client";import{a as ne}from"./chain-hint-c7994aad798ef430.js";import{a as Z}from"./agent-pills-f07bea43753a9342.js";import{a as ee}from"./agent-toggle-dabbca2fe4006852.js";import{$1c as X}from"./shared-init-02666a6f76606589.js";import{d as H,h as R,l as W}from"./model-options-5e07b3318d69d218.js";import{b as I,c as Y}from"./types-3eca2c7f47c46054.js";import{a as K}from"./confirm-6e26ab941d655b9f.js";import{a as f}from"./field-444bab2e16b91c26.js";import{$1b as F}from"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import{$1m as J}from"./shared-init-7a7f1e623f0f5861.js";import{$2D as G,$2a as _,$2v as z,$2z as w}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as P}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import{$4Q as e,$4S as D,$4b as y}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as b,$2h as d,$2k as V,$2l as Q}from"./shared-init-3fcac605fffcc273-2.js";function Ie({agent:t,catalog:te,shape:k,runners:$,connections:q}){let se=_(),p=G(),[m,x]=d("run"),B=F({refresh:!0}),N=F({leaves:!0}),oe=!!B.pending,[S,ae]=d(""),[h,ie]=d(),[le,A]=d(!1),O=Q(null),l=t.settings??{},[C,re]=d(l.model?.includes("/")?l.model:[l.engine,l.model,l.effort].filter(Boolean).join("/")),[E,ce]=d(l.connections?"some":""),L=t.definition?.integrations??{},g=Object.keys(L).sort(),T=t.definition,j=t.source!=="builtin";V(()=>{let n=S.trim().toLowerCase(),o=[];O.current.querySelectorAll(".vpanel").forEach(i=>{let a=!1;i.querySelectorAll(".field").forEach(s=>{let r=[...s.querySelectorAll("input")].map(v=>v.value).join(" "),c=s.closest(".vplatform")?.querySelector("h3")?.textContent??"",u=!n||`${c} ${s.textContent} ${r}`.toLowerCase().includes(n);s.hidden=!u,a||=u}),i.querySelectorAll(".vplatform").forEach(s=>{s.hidden=!s.querySelector(".field:not([hidden])")}),a&&o.push(i.dataset.panel)}),ie(n?o:void 0),n&&o.length&&!o.includes(m)&&x(o[0])},[S]);let de=()=>void N.run("delete",async()=>{await P.agents.remove(t.id),se.push("/dash/[org]/agents",{params:{org:p}})}).then(n=>n||A(!1)),M=(n,o)=>e("button",{type:"button","aria-current":m===n?"true":void 0,class:h&&!h.includes(n)?"miss":void 0,onClick:()=>x(n),children:o});return e("form",{ref:O,class:"vsettings card frame",onSubmit:async n=>{n.preventDefault();let o=new FormData(n.currentTarget),i=c=>String(o.get(c)??"").trim(),a={};i("runner")&&(a.runner=i("runner")),i("access")!==(T?.access??"auto")&&(a.access=i("access")),C.trim()&&(a.model=C.trim()),E&&(a.connections=o.getAll("connection").map(String));for(let c of g){let u={},v=I(L[c]?.events),U=o.getAll(`event:${c}`).map(String);v.length&&U.length<v.length&&(u.allowedEvents=U),Object.keys(u).length&&((a.integrations??={})[c]=u)}t.settings?.disabled&&(a.disabled=!0);let s;await B.run("save",async()=>{({warning:s}=await P.agents.settings(t.id,a))})&&J("Saved",s??"New tasks use these settings.",s?"warning":"success")},children:[e("nav",{class:"tabs vertical","aria-label":"Settings sections",children:[e("p",{class:"tabs-label",children:"Runtime"}),M("run","How it runs"),g.length?M("platforms","Platforms"):null,e("p",{class:"tabs-label",children:"Agent"}),M("manage","Manage")]}),e("div",{class:"vbody",children:[e("div",{class:"vsearch",children:[e(z,{value:S,label:"Search settings",onInput:ae}),h&&!h.length?e("span",{class:"muted",children:"No setting matches."}):null]}),e("section",{class:"vpanel","data-panel":"run",hidden:m!=="run",children:[e("h2",{children:"How it runs"}),e("p",{class:"muted",children:"Anything left empty follows the agent's own definition, then the workspace chain."}),e("div",{class:"fields",children:[e(f,{label:"Model",hint:e(ne,{org:p,own:t.definition?.model&&R(t.definition.model,k.builtin)}),group:!0,children:e(X,{shape:k,empty:t.definition?.model?{label:`Its own, ${R(t.definition.model,k.builtin)}`,sub:"from agent.json"}:W(),value:C,onChange:re})}),e(f,{label:"Access",hint:"what its tasks, platforms and connections may do",group:!0,children:e(w,{name:"access",label:"Access",defaultValue:l.access??T?.access??"auto",options:T?.access==="read-only"?H.filter(([n])=>n==="read-only"):H})}),$.length>1?e(f,{label:"Runs on",group:!0,children:e(w,{name:"runner",label:"Runs on",defaultValue:l.runner??"",options:$})}):null,e(f,{label:"Connections",hint:"which workspace connections its tasks can use",group:!0,children:e(w,{label:"Connections",value:E,options:[["","Every workspace connection"],["some","Only the ones picked"]],onChange:ce})}),E?e("div",{class:"field picked",children:[e("span",{children:["Picked connections ",e("small",{children:"tasks can use only these"})]}),q.length?e("div",{class:"checks",children:q.map(n=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:"connection",value:n.id,defaultChecked:l.connections?.includes(n.id)}),n.name]},n.id))}):e("span",{class:"muted",children:["This workspace has no connections yet."," ",e(y,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:p,tab:"connections"},children:"Add one in Settings"})]})]}):null]})]}),g.length?e("section",{class:"vpanel","data-panel":"platforms",hidden:m!=="platforms",children:[e("h2",{children:"Platforms"}),e("p",{class:"muted",children:["Turn events off for this workspace."," ",Y(t)?e(b,{children:["To add an event or a platform,"," ",e(y,{href:"/dash/[org]/agents/[slug]/edit",params:{org:p,slug:t.id},search:{section:"platforms"},children:["edit ",t.name]}),"."]}):t.source==="repo"?e(b,{children:[t.name," comes from ",t.repo??"a repository","; add an event or a platform in its"," ",t.sourceUrl?e("a",{href:t.sourceUrl,target:"_blank",rel:"noreferrer",children:"agent.json"}):"agent.json"," ","there."]}):e(b,{children:[t.name," is built in, so its events and platforms ship with Coder. To listen anywhere else,"," ",e(y,{href:"/dash/[org]/agents/new",params:{org:p},children:"create your own agent"}),"."]})]}),g.map(n=>{let o=l.integrations?.[n]??{},i=I(L[n]?.events),a=o.allowedEvents,s=te.find(r=>r.id===n);return e("div",{class:"vplatform",children:[e("h3",{children:[s?e(Z,{brand:s.brand}):null,s?.name??n]}),i.length?e("div",{class:"field",children:[e("span",{children:["Events"," ",e("small",{children:"the definition's events; turn off any it should ignore here"})]}),e("div",{class:"checks",children:i.map(r=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${n}`,value:r,defaultChecked:!a||a.includes(r)}),r]},r))})]}):null]},n)})]}):null,e("section",{class:"vpanel","data-panel":"manage",hidden:m!=="manage",children:[e("h2",{children:"Manage"}),e("div",{class:"field row-action",children:[e("span",{children:["Disable agent",e("small",{children:"stops its events and new tasks in this workspace; its apps and tasks stay"})]}),e(ee,{agent:t})]}),e("div",{class:"field row-action",children:[e("span",{children:["Delete agent",e("small",{children:j?"removes it and every version; its tasks and platform apps stay":`${t.name} is built in and cannot be deleted; disable it above instead`})]}),e(D,{variant:"secondary",danger:!0,disabled:!j,onClick:()=>A(!0),children:"Delete agent"})]})]}),m==="manage"?null:e("div",{class:"form-actions save",children:e(D,{type:"submit",loading:oe,children:"Save"})})]}),le?e(K,{open:!0,title:`Delete ${t.name}?`,body:"It stops answering on every platform. This cannot be undone.",confirmLabel:"Delete agent",busy:!!N.pending,onClose:()=>A(!1),onConfirm:de}):null]})}export{Ie as AgentSettingsForm};
@@ -1 +1 @@
1
- import{$0b as b}from"./shared-init-96225b8c7758de9d.js";import{$1c as r}from"./shared-init-abd7653140f37a0c.js";import{$3Q as s,$3S as c}from"./shared-init-abd7653140f37a0c.js";import{$2h as g}from"./shared-init-3fcac605fffcc273-2.js";function A({agent:o,link:u}){let i=b({refresh:!0}),e=!!i.pending,t=!!o.settings?.disabled,[l,m]=g({saved:t,disabled:t}),n=l.saved===t?l.disabled:t,a=()=>void i.run("toggle",async()=>{await r.agents.settings(o.id,{...o.settings,disabled:!n}),m({saved:t,disabled:!n})}),d=n?"Enable":"Disable";return u?s("button",{type:"button",class:"link",disabled:e,"aria-busy":e,onClick:a,children:d}):s(c,{variant:"outline",loading:e,onClick:a,children:d})}export{A as a};
1
+ import{$1b as b}from"./shared-init-a69029db2d72fb52.js";import{$0c as r}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as s,$4S as c}from"./shared-init-7a7f1e623f0f5861.js";import{$2h as g}from"./shared-init-3fcac605fffcc273-2.js";function A({agent:o,link:u}){let i=b({refresh:!0}),e=!!i.pending,t=!!o.settings?.disabled,[l,m]=g({saved:t,disabled:t}),n=l.saved===t?l.disabled:t,a=()=>void i.run("toggle",async()=>{await r.agents.settings(o.id,{...o.settings,disabled:!n}),m({saved:t,disabled:!n})}),d=n?"Enable":"Disable";return u?s("button",{type:"button",class:"link",disabled:e,"aria-busy":e,onClick:a,children:d}):s(c,{variant:"outline",loading:e,onClick:a,children:d})}export{A as a};
@@ -1 +1 @@
1
- "use client";import{a as P,b as R,d as q}from"./agent-pills-54564413a57d7fa7.js";import{a as L}from"./tail-40f16e09eade7eee.js";import{c as N}from"./types-3eca2c7f47c46054.js";import{$1g as k}from"./shared-init-96225b8c7758de9d.js";import{$0D as a,$0t as A,$0u as w,$0v as C,$0w as I,$0x as v}from"./shared-init-abd7653140f37a0c.js";import{$1c as f,$1q as y,$1s as b}from"./shared-init-abd7653140f37a0c.js";import"./wular-pnext-3fcac605fffcc273-0.js";import{$3Q as e,$3T as h,$3b as g,$3c as u}from"./shared-init-abd7653140f37a0c.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as c}from"./shared-init-3fcac605fffcc273-2.js";function B(){return e(h,{href:"/dash/[org]/agents/new",params:{org:a()},leftIcon:u,children:"New agent"})}function x({agent:t,catalog:i}){let n=a(),o=`/dash/${n}/agents/${encodeURIComponent(t.id)}`,l=N(t)?{href:`${o}/edit?section=platforms`}:t.source==="repo"&&t.sourceUrl?{href:t.sourceUrl,external:!0}:{href:`${o}/settings`};return e("li",{class:"agent-card",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:k(t.name)}),e("div",{class:"grow",children:[e("h3",{children:e(g,{class:"cover",href:"/dash/[org]/agents/[slug]",params:{org:n,slug:t.id},children:t.name})}),e("span",{class:"pills",children:e(q,{agent:t,fix:l})})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:t.problems?.length?t.problems.join(" "):t.description??"No description yet."})}),t.platforms.length?e(R,{platforms:t.platforms,catalog:i,agent:t.id}):e("span",{class:"pfs muted",children:"No handles yet"})]})}var O=[["","All agents"],["dashboard","Dashboard agents"],["repository","Repository agents"],["builtin","Built-in"]];function te({first:t,limit:i,filters:n,catalog:o,head:l,children:K}){let{values:m,set:p,query:S}=w(n),s=b({name:"agents",fetchPage:r=>f.agents.list({cursor:r,limit:i,...m}),query:S,first:t,initial:A(n)});return e(c,{children:[e(I,{head:l,action:e(B,{}),children:[e(C,{value:m.q,label:"Search agents",onInput:r=>p("q",r,250)}),e(v,{name:"agents",facets:[{key:"platform",label:"Platform",options:o.map(r=>[r.id,r.name]),icon:r=>{let d=o.find(T=>T.id===r);return d?e(P,{brand:d.brand}):void 0}},{key:"type",label:"Source",options:O}],values:m,onChange:p})]}),K,s.rows.length?e("ul",{class:"agent-grid","aria-busy":s.stale,children:s.rows.map(r=>e(x,{agent:r,catalog:o},r.id))}):s.stale?null:e(y,{title:"No agents match",children:"Try another search or filter."}),e(L,{noun:"agents",...s})]})}export{te as AgentsGrid};
1
+ "use client";import{a as P,b as R,d as q}from"./agent-pills-f07bea43753a9342.js";import{a as L}from"./tail-3024b828bce41f94.js";import{c as N}from"./types-3eca2c7f47c46054.js";import{$0g as k}from"./shared-init-a69029db2d72fb52.js";import{$2D as a,$2t as A,$2u as w,$2v as C,$2w as I,$2x as v}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as f,$0q as y,$0s as b}from"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import{$4Q as e,$4T as h,$4b as g,$4c as u}from"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import{$2c as c}from"./shared-init-3fcac605fffcc273-2.js";function B(){return e(h,{href:"/dash/[org]/agents/new",params:{org:a()},leftIcon:u,children:"New agent"})}function x({agent:t,catalog:i}){let n=a(),o=`/dash/${n}/agents/${encodeURIComponent(t.id)}`,l=N(t)?{href:`${o}/edit?section=platforms`}:t.source==="repo"&&t.sourceUrl?{href:t.sourceUrl,external:!0}:{href:`${o}/settings`};return e("li",{class:"agent-card",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:k(t.name)}),e("div",{class:"grow",children:[e("h3",{children:e(g,{class:"cover",href:"/dash/[org]/agents/[slug]",params:{org:n,slug:t.id},children:t.name})}),e("span",{class:"pills",children:e(q,{agent:t,fix:l})})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:t.problems?.length?t.problems.join(" "):t.description??"No description yet."})}),t.platforms.length?e(R,{platforms:t.platforms,catalog:i,agent:t.id}):e("span",{class:"pfs muted",children:"No handles yet"})]})}var O=[["","All agents"],["dashboard","Dashboard agents"],["repository","Repository agents"],["builtin","Built-in"]];function te({first:t,limit:i,filters:n,catalog:o,head:l,children:K}){let{values:m,set:p,query:S}=w(n),s=b({name:"agents",fetchPage:r=>f.agents.list({cursor:r,limit:i,...m}),query:S,first:t,initial:A(n)});return e(c,{children:[e(I,{head:l,action:e(B,{}),children:[e(C,{value:m.q,label:"Search agents",onInput:r=>p("q",r,250)}),e(v,{name:"agents",facets:[{key:"platform",label:"Platform",options:o.map(r=>[r.id,r.name]),icon:r=>{let d=o.find(T=>T.id===r);return d?e(P,{brand:d.brand}):void 0}},{key:"type",label:"Source",options:O}],values:m,onChange:p})]}),K,s.rows.length?e("ul",{class:"agent-grid","aria-busy":s.stale,children:s.rows.map(r=>e(x,{agent:r,catalog:o},r.id))}):s.stale?null:e(y,{title:"No agents match",children:"Try another search or filter."}),e(L,{noun:"agents",...s})]})}export{te as AgentsGrid};
@@ -1 +1 @@
1
- import{$0B as c,$0D as a}from"./shared-init-abd7653140f37a0c.js";import{$3Q as r,$3T as i}from"./shared-init-abd7653140f37a0c.js";import{$2j as m}from"./shared-init-3fcac605fffcc273-2.js";var n="coder-back";function s(o){let t=new RegExp(`(?:^|; )${n}=([^;]*)`).exec(o)?.[1];try{let e=t&&JSON.parse(decodeURIComponent(t));return e&&typeof e.path=="string"&&e.path.startsWith("/dash/")?e:null}catch{return null}}function x({label:o,children:t,...e}){let p=()=>{let l=encodeURIComponent(JSON.stringify({path:location.pathname,label:o}));document.cookie=`${n}=${l}; path=/dash; max-age=600; samesite=lax`};return r(i,{...e,href:"/dash/[org]/settings/[tab]",params:{org:a(),tab:"credentials"},onClick:p,children:t})}function B({initial:o}){let t=a(),e=typeof document>"u"?o:s(document.cookie);return m(()=>()=>void setTimeout(()=>{location.pathname.split("/")[3]!=="settings"&&(document.cookie=`${n}=; path=/dash; max-age=0`)}),[]),e?r(c,{href:"/dash/[org]",params:{org:t},label:"Back",back:e.path,named:e.label}):null}export{x as a,B as b};
1
+ import{$2B as c,$2D as a}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r,$4T as i}from"./shared-init-7a7f1e623f0f5861.js";import{$2j as m}from"./shared-init-3fcac605fffcc273-2.js";var n="coder-back";function s(o){let t=new RegExp(`(?:^|; )${n}=([^;]*)`).exec(o)?.[1];try{let e=t&&JSON.parse(decodeURIComponent(t));return e&&typeof e.path=="string"&&e.path.startsWith("/dash/")?e:null}catch{return null}}function x({label:o,children:t,...e}){let p=()=>{let l=encodeURIComponent(JSON.stringify({path:location.pathname,label:o}));document.cookie=`${n}=${l}; path=/dash; max-age=600; samesite=lax`};return r(i,{...e,href:"/dash/[org]/settings/[tab]",params:{org:a(),tab:"credentials"},onClick:p,children:t})}function B({initial:o}){let t=a(),e=typeof document>"u"?o:s(document.cookie);return m(()=>()=>void setTimeout(()=>{location.pathname.split("/")[3]!=="settings"&&(document.cookie=`${n}=; path=/dash; max-age=0`)}),[]),e?r(c,{href:"/dash/[org]",params:{org:t},label:"Back",back:e.path,named:e.label}):null}export{x as a,B as b};
@@ -1 +1 @@
1
- import{$3Q as n,$3R as e,$3b as o,$3q as s}from"./shared-init-abd7653140f37a0c.js";import{$2c as r}from"./shared-init-3fcac605fffcc273-2.js";var f=({org:t,own:i})=>i?n(r,{children:[i," from agent.json, unless picked here"]}):n(r,{children:[n(o,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:t,tab:"models"},children:["default chain",n(e,{d:s})]})," ","unless picked here"]});export{f as a};
1
+ import{$4Q as n,$4R as e,$4b as o,$4q as s}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as r}from"./shared-init-3fcac605fffcc273-2.js";var f=({org:t,own:i})=>i?n(r,{children:[i," from agent.json, unless picked here"]}):n(r,{children:[n(o,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:t,tab:"models"},children:["default chain",n(e,{d:s})]})," ","unless picked here"]});export{f as a};
@@ -1 +1 @@
1
- import{$0A as S,$0n as E,$0y as M}from"./shared-init-abd7653140f37a0c.js";import{$3Q as r}from"./shared-init-abd7653140f37a0c.js";import{$2c as L,$2h as u,$2k as $,$2l as d,$2n as C}from"./shared-init-3fcac605fffcc273-2.js";var H=50;function F({label:m,name:D,class:I,options:g,placeholder:O,value:f,onChange:k,onOpen:y}){let[T,o]=u(!1),[A,a]=u(!1),[l,c]=u(0),h=d(null),p=d(null),i=C(),w=A?f.trim().toLowerCase():"",s=(w?g.filter(e=>e.toLowerCase().includes(w)):g).slice(0,H),n=T&&s.length>0,b=e=>{let t=s[e];t&&k(t),o(!1),a(!1)},v=M(h,p,n,360,[s.length]);return $(()=>{n&&p.current?.querySelector(`[data-index="${l}"]`)?.scrollIntoView({block:"nearest"})},[n,l,v]),r(L,{children:[r("input",{ref:h,name:D,class:I,role:"combobox","aria-label":m,"aria-autocomplete":"list","aria-expanded":n,"aria-controls":`${i}-list`,"aria-activedescendant":n?`${i}-${l}`:void 0,autocomplete:"off",placeholder:O,value:f,onInput:e=>{k(e.currentTarget.value),a(!0),c(0),o(!0)},onFocus:()=>{a(!1),o(!0),y?.()},onClick:()=>{o(!0),y?.()},onBlur:()=>{o(!1),a(!1)},onKeyDown:e=>{if(n){if(e.key==="ArrowDown")c((l+1)%s.length);else if(e.key==="ArrowUp")c((l-1+s.length)%s.length);else if(e.key==="Enter")b(l);else if(e.key==="Escape")o(!1);else return;e.preventDefault()}}}),n?r(S,{id:i,label:m,listRef:p,place:v,children:s.map((e,t)=>r(E,{id:`${i}-${t}`,"data-index":t,active:t===l,selected:e===f,check:!0,onPointerMove:()=>t!==l&&c(t),onClick:()=>b(t),children:e},e))}):null]})}export{F as a};
1
+ import{$2A as S,$2n as E,$2y as M}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as r}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as L,$2h as u,$2k as $,$2l as d,$2n as C}from"./shared-init-3fcac605fffcc273-2.js";var H=50;function F({label:m,name:D,class:I,options:g,placeholder:O,value:f,onChange:k,onOpen:y}){let[T,o]=u(!1),[A,a]=u(!1),[l,c]=u(0),h=d(null),p=d(null),i=C(),w=A?f.trim().toLowerCase():"",s=(w?g.filter(e=>e.toLowerCase().includes(w)):g).slice(0,H),n=T&&s.length>0,b=e=>{let t=s[e];t&&k(t),o(!1),a(!1)},v=M(h,p,n,360,[s.length]);return $(()=>{n&&p.current?.querySelector(`[data-index="${l}"]`)?.scrollIntoView({block:"nearest"})},[n,l,v]),r(L,{children:[r("input",{ref:h,name:D,class:I,role:"combobox","aria-label":m,"aria-autocomplete":"list","aria-expanded":n,"aria-controls":`${i}-list`,"aria-activedescendant":n?`${i}-${l}`:void 0,autocomplete:"off",placeholder:O,value:f,onInput:e=>{k(e.currentTarget.value),a(!0),c(0),o(!0)},onFocus:()=>{a(!1),o(!0),y?.()},onClick:()=>{o(!0),y?.()},onBlur:()=>{o(!1),a(!1)},onKeyDown:e=>{if(n){if(e.key==="ArrowDown")c((l+1)%s.length);else if(e.key==="ArrowUp")c((l-1+s.length)%s.length);else if(e.key==="Enter")b(l);else if(e.key==="Escape")o(!1);else return;e.preventDefault()}}}),n?r(S,{id:i,label:m,listRef:p,place:v,children:s.map((e,t)=>r(E,{id:`${i}-${t}`,"data-index":t,active:t===l,selected:e===f,check:!0,onPointerMove:()=>t!==l&&c(t),onClick:()=>b(t),children:e},e))}):null]})}export{F as a};
@@ -1 +1 @@
1
- import{a as ne,b as ze,c as We,d as Je,f as Xe}from"./composer-data-b05f3d93fdc472d7.js";import{m as qe}from"./task-396d849e58e50d59.js";import{a as Ie}from"./connect-repositories-5118edc019fc7890.js";import{$1a as Ge}from"./shared-init-96cde32cd50254c0.js";import{$0a as Ke,$0b as Ue}from"./shared-init-96cde32cd50254c0.js";import{c as He,d as je,h as oe}from"./model-options-5e07b3318d69d218.js";import{$0a as H,$0b as Fe}from"./shared-init-96225b8c7758de9d.js";import{$1h as $}from"./shared-init-96225b8c7758de9d.js";import{a as Qe}from"./back-ba5e4340a9f8bbd2.js";import{$2o as Be}from"./shared-init-abd7653140f37a0c.js";import{$0D as De,$0a as ve,$0c as Me,$0k as Te,$0m as ee,$0n as Ae,$0o as E,$0p as Ne,$0r as Pe,$0s as I,$0z as te}from"./shared-init-abd7653140f37a0c.js";import{$1c as b,$1r as xe}from"./shared-init-abd7653140f37a0c.js";import{$3B as Re,$3G as Le,$3J as $e,$3P as Oe,$3Q as t,$3R as F,$3S as _,$3U as Se,$3i as Ce,$3v as Ee}from"./shared-init-abd7653140f37a0c.js";import{$2c as y,$2h as f,$2j as B,$2k as ye,$2l as w,$2n as Z}from"./shared-init-3fcac605fffcc273-2.js";var ht=(a,r)=>[...a.split("/").filter(s=>!He.some(([l])=>l===s)),r].join("/"),j="coder:draft",Ve="+connect",Ye="+refresh",re="+other",se="+pick",ie="+clone",bt=/^\/(flow)(?:\s+(\S+))?\s*([\s\S]*)$/,wt=(a,r,s)=>[["",a],...[...new Set([r,...s])].filter(Boolean).map(l=>[l,l])],Ze=(a,r,s)=>{let l=[...a.recent,...r].map(u=>u.path);return[["","No folder"],...[...new Set([...l,s])].filter(u=>u&&u!==a.current.path).map(u=>[u,qe(u)]),a.picker?[se,"Choose\u2026"]:[re,"Type a path\u2026"],[ie,"Repository\u2026"]]};function _e({label:a,options:r,value:s,onPick:l}){let u=`${Z()}-pick`;return t(Pe,{children:[t(Te,{title:r.find(([d])=>d===s)?.[1]??r[0]?.[1],"aria-label":a,"data-keep":!0,popovertarget:u}),t("button",{type:"button",class:"pop-chev","data-keep":!0,popovertarget:u,"aria-label":`${a} options`,children:t(F,{d:Ce})}),t(I,{id:u,class:"pop-flyout",popover:"auto",role:"group","aria-label":a,onBeforeToggle:Ue,children:r.map(([d,m])=>t(ee,{on:d===s,onPick:()=>l(d),children:m},d))})]})}function kt(a){let r=a.currentTarget,s=document.querySelector(`[popovertarget="${r.id}"]`)?.getBoundingClientRect();if(a.newState!=="open"||!s)return;let l=Math.round(s.bottom+6);r.style.top=`${l}px`,r.style.right=`${Math.round(document.documentElement.clientWidth-s.right)}px`,r.style.maxHeight=`${Math.max(160,window.innerHeight-l-16)}px`}function yt(a){return Object.fromEntries(a.split(/\s+/).filter(Boolean).map(r=>{let s=r.indexOf("="),l=s<0?"true":r.slice(s+1);try{return[s<0?r:r.slice(0,s),JSON.parse(l)]}catch{return[r.slice(0,s),l]}}))}function vt({id:a,entries:r,active:s,selected:l,onActive:u}){return t(y,{children:r.flatMap((d,m)=>[d.head?t(E,{role:"presentation",children:d.head},`h:${d.key}`):null,t(Ae,{id:`${a}-${m}`,active:m===s,selected:l===void 0?m===s:d.key===l,check:l!==void 0,end:d.hint?t("small",{children:d.hint}):null,onMouseDown:i=>i.preventDefault(),onPointerMove:()=>m!==s&&u(m),onClick:d.pick,children:d.label},d.key)])})}var Mt=(a,r,s,l)=>{let u={ArrowDown:1,ArrowUp:-1}[a.key];return!u||!s?!1:(a.preventDefault(),l((r+u+s)%s),!0)};function Ct({reason:a,label:r}){return t(Ge,{tone:"warning",slim:!0,children:[t(F,{d:$e}),t("span",{class:"grow",children:a||"Tasks need a model credential to run."}),t(Qe,{variant:"outline",size:"sm",label:r,children:"Add credential"})]})}function Et({initial:a,data:r,defaults:s,missing:l,connectLabel:u}){let d=ve(),m=De(),[i,K]=f(()=>We({...ze,...a},r)),[c,R]=f(r),g=w(),[U,ae]=f(!1),[le,et]=f(),[O,q]=f(""),[tt,v]=f(!1),[ot,A]=f(0),[z,nt]=f([]),[M,S]=f(""),[L,ce]=f(!1),ue=w(null),h=w(null),de=w(null),pe=w(null),C=Z();B(()=>void(M&&pe.current?.focus()),[M]),B(()=>{let e=localStorage.getItem(j);e&&h.current&&!h.current.value&&(h.current.value=e),q(h.current?.value??""),N(h.current?.value??""),h.current?.focus(),v(!0)},[]);let N=(e,o=i.repo)=>{!e.startsWith("/")||!o||g.current===o||(g.current=o,b.flows.list(o).then(n=>R(Q=>({...Q,flows:n.map(D=>D.name)}))).catch(n=>console.error("coder dashboard: flows",n)))},W=w(!!r.repos),rt=()=>{W.current||(W.current=!0,b.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>R(o=>({...o,repos:e.map(n=>n.repo)}))))},fe=Fe(),me=!!fe.pending,st=()=>{W.current=!0,fe.run("refresh",async()=>{let e=await b.repositories.refresh();R(o=>({...o,repos:e.map(n=>n.repo)}))})},J=(e,o)=>{if(o===re)return S("path");if(o===ie)return S("url");if(o===se)return void at();if(o===Ye)return me?void 0:st();if(o===Ve)return void Ie(`/dash/${m}/tasks`).catch(H);x({[e]:o}),(e==="repo"||e==="cwd")&&h.current?.focus({preventScroll:!0})},x=e=>{let o={...i,...e};K(o),N(O,o.repo),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},X=e=>{if(!e.ok)return H(e.detail);S(""),nt(o=>[...o.filter(n=>n.path!==e.folder.path),e.folder]),J("cwd",e.folder.path===c.folders?.current.path?"":e.folder.path)},it=async e=>{e.trim()&&X(await b.folders.check(e.trim()).catch(o=>({ok:!1,detail:$(o)})))},at=async()=>{document.body.style.cursor="progress";let e=await b.folders.pick().catch(o=>({ok:!1,detail:$(o)}));document.body.style.cursor="",(e.ok||e.detail)&&X(e)},lt=async e=>{if(!e.trim())return;ce(!0),document.body.style.cursor="progress";let o=await b.folders.clone(e.trim()).catch(n=>({ok:!1,detail:$(n)}));document.body.style.cursor="",ce(!1),X(o)},ge=e=>{let o=h.current;o.value=e,localStorage.setItem(j,e),q(e),N(e),A(0),v(!1),o.focus(),o.setSelectionRange(e.length,e.length)},G=async()=>{let e=h.current?.value.trim()??"";if(U||L||c.agentsOff||!e)return;let[,o,n="",Q=""]=bt.exec(e)??[];if(o&&!n)return void v(!1);let{agent:D,model:dt,effort:V,access:we,runner:pt}=i,[ft,mt]=c.folders?["",i.cwd]:[i.repo,""],Y=dt||(V?s.chain[0]:""),ke=Object.fromEntries(Object.entries({repo:ft,cwd:mt,model:Y&&V?ht(Y,V):Y,access:we==="auto"?"":we,runner:pt}).filter(([,k])=>k));ae(!0);try{let k=o==="flow"?await b.flows.run(n,{...ke,agent:D,args:yt(Q)}):await b.tasks.create({...ke,agent:D,prompt:e});localStorage.removeItem(j),Be(k.task.id,"queued",e),d.push("/dash/[org]/tasks/[id]",{params:{org:m,id:k.task.id}})}catch(k){ae(!1),k.status===409?et($(k)):H(k)}},p=(()=>{let e=/^\/(\S*)$/.exec(O)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[...c.flows.map(n=>({key:`flow ${n}`,label:`/flow ${n}`,hint:`Run the ${n} flow`,pick:()=>ge(`/flow ${n} `)}))].filter(n=>n.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(O)?.[1];if(o!==void 0)return{label:"Flows",entries:c.flows.filter(n=>n.includes(o)).map(n=>({key:n,label:n,hint:`Run the ${n} flow`,pick:()=>n===o?void G():ge(`/flow ${n} `)})),note:"No flow matches."}})(),T=!!(p&&!tt),P=p?Math.min(ot,Math.max(0,p.entries.length-1)):0;ye(()=>{let e=de.current;if(!e)return;if(!T)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let n=ue.current.getBoundingClientRect();e.style.top=`${Math.round(n.bottom+6)}px`,e.style.left=`${Math.round(n.left)}px`,e.style.width=`${Math.round(Math.min(n.width,460))}px`};return o(),e.matches(":popover-open")||e.showPopover(),addEventListener("scroll",o,!0),addEventListener("resize",o),()=>{removeEventListener("scroll",o,!0),removeEventListener("resize",o)}},[T,O]);let ct=s.chain[0]??"",he=c.agents.some(([e])=>e===i.agent)?c.agents:[...c.agents,[i.agent,i.agent]],ut=[[i.model||oe(ct,s.builtin),!!i.model],[i.effort,!!i.effort],[i.access,i.access!=="auto"]].filter(([e])=>e),be=[i.agent!==c.defaultAgent&&i.agent,i.runner&&(c.runners.find(([e])=>e===i.runner)?.[1]??i.runner)].filter(Boolean).join(" \xB7 ");return t(y,{children:[t("form",{ref:ue,class:"composer",onSubmit:e=>{e.preventDefault(),G()},children:[t("textarea",{ref:h,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":T,"aria-controls":`${C}-slash`,"aria-activedescendant":T&&p?.entries.length?`${C}-slash-${P}`:void 0,placeholder:ne,autofocus:!0,onFocus:()=>v(!1),onBlur:()=>v(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(j,o),q(o),N(o),A(0),v(!1)},onKeyDown:e=>{if(!e.isComposing){if(T&&p){if(Mt(e,P,p.entries.length,A))return;if(e.key==="Escape")return e.preventDefault(),v(!0);if(p.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),p.entries[P].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),G())}}}),t("div",{class:"composer-line",children:[c.folders?M?t(y,{children:[t("input",{class:"folder-path","aria-label":M==="url"?"Repository URL":"Folder path",ref:pe,placeholder:M==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:L,"aria-busy":L,onKeyDown:e=>{if(L)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),S("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(M==="url"?lt:it)(e.currentTarget.value))},onBlur:e=>!L&&!e.currentTarget.value.trim()&&S("")}),L?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:i.cwd||c.folders.current.path,children:t(te,{label:"Folder",value:i.cwd,options:Ze(c.folders,z,i.cwd),subs:Object.fromEntries(Ze(c.folders,z,i.cwd).flatMap(([e])=>e&&e!==re&&e!==se&&e!==ie?[[e,z.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>J("cwd",e)})}):t(te,{label:"Repository",value:i.repo,options:[...wt("No repository",i.repo,c.repos??[]),[Ye,me?"Refreshing repositories\u2026":"Refresh repositories"],[Ve,u]],onChange:e=>J("repo",e),onFocus:rt}),t("button",{type:"button",class:"quiet",popovertarget:`${C}-settings`,"aria-label":"Run options",title:"Model, effort, access and more",children:[t(F,{d:Oe}),t("span",{class:"run-picks",children:ut.map(([e,o],n)=>t("span",{class:o?void 0:"dim",children:n?` \xB7 ${e}`:e},n))}),be?t("span",{children:be}):null]}),t(_,{type:"submit",size:"sm",class:"send",leftIcon:Le,disabled:!O.trim()||c.agentsOff,loading:U,"aria-label":U?"Starting task":"Start task",title:"Start task (Enter)"})]}),c.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,M==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(I,{id:`${C}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:kt,children:[t(E,{children:"Model"}),t(Ke,{groups:c.models,first:{label:`Default: ${s.chain.map(e=>oe(e,s.builtin)).join(", then ")}`,efforts:!0},model:i.model,effort:i.effort,onPick:(e,o)=>{x({model:e,effort:o}),document.getElementById(`${C}-settings`)?.hidePopover()}}),t(E,{children:"Access"}),t("div",{role:"group","aria-label":"Access",children:je.map(([e,o])=>t(ee,{on:i.access===e,onPick:()=>x({access:e}),children:o},e))}),he.length>1?t(y,{children:[t(E,{children:"Agent"}),t(_e,{label:"Agent",options:he,value:i.agent,onPick:e=>x({agent:e})})]}):null,c.runners.length>1?t(y,{children:[t(E,{children:"Runs on"}),t(_e,{label:"Runs on",options:c.runners,value:i.runner,onPick:e=>x({runner:e})})]}):null]}),t(I,{panelRef:de,id:`${C}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":p?.label??"Commands",children:p?t(y,{children:[t(E,{children:p.label}),t(vt,{id:`${C}-slash`,entries:p.entries,active:P,onActive:A}),p.note==="loading"?t(xe,{label:"Loading pull requests",inline:!0}):p.note&&!p.entries.length?t(Ne,{children:p.note}):null]}):null})]}),le===void 0||l?null:t(Ct,{reason:le})]})}function Rt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:ne}),t("div",{class:"composer-line"})]})}function Yt({agent:a}){let r=w(null),[s,l]=f(),[u,d]=f(""),[m,i]=f(!1),K=w(),c=()=>{i(!0),r.current?.showModal(),K.current??=Xe(b).then(l,g=>d($(g)))},R=Me().has("new");return B(()=>{if(!R)return;let g=new URL(location.href);g.searchParams.delete("new"),history.replaceState(history.state,"",g),c()},[R]),t(y,{children:[t(_,{class:"new-task",leftIcon:Re,onClick:c,children:"New task"}),t("dialog",{ref:r,class:"compose-dialog","aria-label":a?`New task for ${a}`:"New task",onClose:()=>i(!1),onClick:g=>g.target===g.currentTarget&&r.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),a?t("span",{class:"sub",children:a}):null,t(Se,{icon:Ee,label:"Close",onClick:()=>r.current?.close()})]}),m?s?t(Et,{...s,initial:{...Je(document.cookie),...a?{agent:a}:{}}}):u?t("p",{class:"flash err",role:"alert",children:u}):t(Rt,{}):null]})]})}export{ht as a,Ct as b,Yt as c};
1
+ import{a as ne,b as ze,c as We,d as Je,f as Xe}from"./composer-data-b05f3d93fdc472d7.js";import{m as qe}from"./task-1e6f9ba22fb5e29f.js";import{a as Ie}from"./connect-repositories-90f1aedea6de7a99.js";import{$0a as Ge}from"./shared-init-02666a6f76606589.js";import{$1a as Ke,$1b as Ue}from"./shared-init-02666a6f76606589.js";import{c as He,d as je,h as oe}from"./model-options-5e07b3318d69d218.js";import{$1a as H,$1b as Fe}from"./shared-init-a69029db2d72fb52.js";import{$0h as $}from"./shared-init-a69029db2d72fb52.js";import{a as Qe}from"./back-8ca96656264a0d1c.js";import{$1o as Be}from"./shared-init-7a7f1e623f0f5861.js";import{$2D as De,$2a as ve,$2c as Me,$2k as Te,$2m as ee,$2n as Ae,$2o as E,$2p as Ne,$2r as Pe,$2s as I,$2z as te}from"./shared-init-7a7f1e623f0f5861.js";import{$0c as b,$0r as xe}from"./shared-init-7a7f1e623f0f5861.js";import{$4B as Re,$4G as Le,$4J as $e,$4P as Oe,$4Q as t,$4R as F,$4S as _,$4U as Se,$4i as Ce,$4v as Ee}from"./shared-init-7a7f1e623f0f5861.js";import{$2c as y,$2h as f,$2j as B,$2k as ye,$2l as w,$2n as Z}from"./shared-init-3fcac605fffcc273-2.js";var ht=(a,r)=>[...a.split("/").filter(s=>!He.some(([l])=>l===s)),r].join("/"),j="coder:draft",Ve="+connect",Ye="+refresh",re="+other",se="+pick",ie="+clone",bt=/^\/(flow)(?:\s+(\S+))?\s*([\s\S]*)$/,wt=(a,r,s)=>[["",a],...[...new Set([r,...s])].filter(Boolean).map(l=>[l,l])],Ze=(a,r,s)=>{let l=[...a.recent,...r].map(u=>u.path);return[["","No folder"],...[...new Set([...l,s])].filter(u=>u&&u!==a.current.path).map(u=>[u,qe(u)]),a.picker?[se,"Choose\u2026"]:[re,"Type a path\u2026"],[ie,"Repository\u2026"]]};function _e({label:a,options:r,value:s,onPick:l}){let u=`${Z()}-pick`;return t(Pe,{children:[t(Te,{title:r.find(([d])=>d===s)?.[1]??r[0]?.[1],"aria-label":a,"data-keep":!0,popovertarget:u}),t("button",{type:"button",class:"pop-chev","data-keep":!0,popovertarget:u,"aria-label":`${a} options`,children:t(F,{d:Ce})}),t(I,{id:u,class:"pop-flyout",popover:"auto",role:"group","aria-label":a,onBeforeToggle:Ue,children:r.map(([d,m])=>t(ee,{on:d===s,onPick:()=>l(d),children:m},d))})]})}function kt(a){let r=a.currentTarget,s=document.querySelector(`[popovertarget="${r.id}"]`)?.getBoundingClientRect();if(a.newState!=="open"||!s)return;let l=Math.round(s.bottom+6);r.style.top=`${l}px`,r.style.right=`${Math.round(document.documentElement.clientWidth-s.right)}px`,r.style.maxHeight=`${Math.max(160,window.innerHeight-l-16)}px`}function yt(a){return Object.fromEntries(a.split(/\s+/).filter(Boolean).map(r=>{let s=r.indexOf("="),l=s<0?"true":r.slice(s+1);try{return[s<0?r:r.slice(0,s),JSON.parse(l)]}catch{return[r.slice(0,s),l]}}))}function vt({id:a,entries:r,active:s,selected:l,onActive:u}){return t(y,{children:r.flatMap((d,m)=>[d.head?t(E,{role:"presentation",children:d.head},`h:${d.key}`):null,t(Ae,{id:`${a}-${m}`,active:m===s,selected:l===void 0?m===s:d.key===l,check:l!==void 0,end:d.hint?t("small",{children:d.hint}):null,onMouseDown:i=>i.preventDefault(),onPointerMove:()=>m!==s&&u(m),onClick:d.pick,children:d.label},d.key)])})}var Mt=(a,r,s,l)=>{let u={ArrowDown:1,ArrowUp:-1}[a.key];return!u||!s?!1:(a.preventDefault(),l((r+u+s)%s),!0)};function Ct({reason:a,label:r}){return t(Ge,{tone:"warning",slim:!0,children:[t(F,{d:$e}),t("span",{class:"grow",children:a||"Tasks need a model credential to run."}),t(Qe,{variant:"outline",size:"sm",label:r,children:"Add credential"})]})}function Et({initial:a,data:r,defaults:s,missing:l,connectLabel:u}){let d=ve(),m=De(),[i,K]=f(()=>We({...ze,...a},r)),[c,R]=f(r),g=w(),[U,ae]=f(!1),[le,et]=f(),[O,q]=f(""),[tt,v]=f(!1),[ot,A]=f(0),[z,nt]=f([]),[M,S]=f(""),[L,ce]=f(!1),ue=w(null),h=w(null),de=w(null),pe=w(null),C=Z();B(()=>void(M&&pe.current?.focus()),[M]),B(()=>{let e=localStorage.getItem(j);e&&h.current&&!h.current.value&&(h.current.value=e),q(h.current?.value??""),N(h.current?.value??""),h.current?.focus(),v(!0)},[]);let N=(e,o=i.repo)=>{!e.startsWith("/")||!o||g.current===o||(g.current=o,b.flows.list(o).then(n=>R(Q=>({...Q,flows:n.map(D=>D.name)}))).catch(n=>console.error("coder dashboard: flows",n)))},W=w(!!r.repos),rt=()=>{W.current||(W.current=!0,b.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>R(o=>({...o,repos:e.map(n=>n.repo)}))))},fe=Fe(),me=!!fe.pending,st=()=>{W.current=!0,fe.run("refresh",async()=>{let e=await b.repositories.refresh();R(o=>({...o,repos:e.map(n=>n.repo)}))})},J=(e,o)=>{if(o===re)return S("path");if(o===ie)return S("url");if(o===se)return void at();if(o===Ye)return me?void 0:st();if(o===Ve)return void Ie(`/dash/${m}/tasks`).catch(H);x({[e]:o}),(e==="repo"||e==="cwd")&&h.current?.focus({preventScroll:!0})},x=e=>{let o={...i,...e};K(o),N(O,o.repo),document.cookie=`compose=${encodeURIComponent(JSON.stringify(o))}; path=/; max-age=31536000; samesite=lax`},X=e=>{if(!e.ok)return H(e.detail);S(""),nt(o=>[...o.filter(n=>n.path!==e.folder.path),e.folder]),J("cwd",e.folder.path===c.folders?.current.path?"":e.folder.path)},it=async e=>{e.trim()&&X(await b.folders.check(e.trim()).catch(o=>({ok:!1,detail:$(o)})))},at=async()=>{document.body.style.cursor="progress";let e=await b.folders.pick().catch(o=>({ok:!1,detail:$(o)}));document.body.style.cursor="",(e.ok||e.detail)&&X(e)},lt=async e=>{if(!e.trim())return;ce(!0),document.body.style.cursor="progress";let o=await b.folders.clone(e.trim()).catch(n=>({ok:!1,detail:$(n)}));document.body.style.cursor="",ce(!1),X(o)},ge=e=>{let o=h.current;o.value=e,localStorage.setItem(j,e),q(e),N(e),A(0),v(!1),o.focus(),o.setSelectionRange(e.length,e.length)},G=async()=>{let e=h.current?.value.trim()??"";if(U||L||c.agentsOff||!e)return;let[,o,n="",Q=""]=bt.exec(e)??[];if(o&&!n)return void v(!1);let{agent:D,model:dt,effort:V,access:we,runner:pt}=i,[ft,mt]=c.folders?["",i.cwd]:[i.repo,""],Y=dt||(V?s.chain[0]:""),ke=Object.fromEntries(Object.entries({repo:ft,cwd:mt,model:Y&&V?ht(Y,V):Y,access:we==="auto"?"":we,runner:pt}).filter(([,k])=>k));ae(!0);try{let k=o==="flow"?await b.flows.run(n,{...ke,agent:D,args:yt(Q)}):await b.tasks.create({...ke,agent:D,prompt:e});localStorage.removeItem(j),Be(k.task.id,"queued",e),d.push("/dash/[org]/tasks/[id]",{params:{org:m,id:k.task.id}})}catch(k){ae(!1),k.status===409?et($(k)):H(k)}},p=(()=>{let e=/^\/(\S*)$/.exec(O)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[...c.flows.map(n=>({key:`flow ${n}`,label:`/flow ${n}`,hint:`Run the ${n} flow`,pick:()=>ge(`/flow ${n} `)}))].filter(n=>n.key.includes(e)),note:"No command matches."};let o=/^\/flow\s+(\S*)$/.exec(O)?.[1];if(o!==void 0)return{label:"Flows",entries:c.flows.filter(n=>n.includes(o)).map(n=>({key:n,label:n,hint:`Run the ${n} flow`,pick:()=>n===o?void G():ge(`/flow ${n} `)})),note:"No flow matches."}})(),T=!!(p&&!tt),P=p?Math.min(ot,Math.max(0,p.entries.length-1)):0;ye(()=>{let e=de.current;if(!e)return;if(!T)return void(e.matches(":popover-open")&&e.hidePopover());let o=()=>{let n=ue.current.getBoundingClientRect();e.style.top=`${Math.round(n.bottom+6)}px`,e.style.left=`${Math.round(n.left)}px`,e.style.width=`${Math.round(Math.min(n.width,460))}px`};return o(),e.matches(":popover-open")||e.showPopover(),addEventListener("scroll",o,!0),addEventListener("resize",o),()=>{removeEventListener("scroll",o,!0),removeEventListener("resize",o)}},[T,O]);let ct=s.chain[0]??"",he=c.agents.some(([e])=>e===i.agent)?c.agents:[...c.agents,[i.agent,i.agent]],ut=[[i.model||oe(ct,s.builtin),!!i.model],[i.effort,!!i.effort],[i.access,i.access!=="auto"]].filter(([e])=>e),be=[i.agent!==c.defaultAgent&&i.agent,i.runner&&(c.runners.find(([e])=>e===i.runner)?.[1]??i.runner)].filter(Boolean).join(" \xB7 ");return t(y,{children:[t("form",{ref:ue,class:"composer",onSubmit:e=>{e.preventDefault(),G()},children:[t("textarea",{ref:h,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":T,"aria-controls":`${C}-slash`,"aria-activedescendant":T&&p?.entries.length?`${C}-slash-${P}`:void 0,placeholder:ne,autofocus:!0,onFocus:()=>v(!1),onBlur:()=>v(!0),onInput:e=>{let o=e.currentTarget.value;localStorage.setItem(j,o),q(o),N(o),A(0),v(!1)},onKeyDown:e=>{if(!e.isComposing){if(T&&p){if(Mt(e,P,p.entries.length,A))return;if(e.key==="Escape")return e.preventDefault(),v(!0);if(p.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),p.entries[P].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),G())}}}),t("div",{class:"composer-line",children:[c.folders?M?t(y,{children:[t("input",{class:"folder-path","aria-label":M==="url"?"Repository URL":"Folder path",ref:pe,placeholder:M==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:L,"aria-busy":L,onKeyDown:e=>{if(L)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),S("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(M==="url"?lt:it)(e.currentTarget.value))},onBlur:e=>!L&&!e.currentTarget.value.trim()&&S("")}),L?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:i.cwd||c.folders.current.path,children:t(te,{label:"Folder",value:i.cwd,options:Ze(c.folders,z,i.cwd),subs:Object.fromEntries(Ze(c.folders,z,i.cwd).flatMap(([e])=>e&&e!==re&&e!==se&&e!==ie?[[e,z.find(o=>o.path===e)?.url??e]]:[])),onChange:e=>J("cwd",e)})}):t(te,{label:"Repository",value:i.repo,options:[...wt("No repository",i.repo,c.repos??[]),[Ye,me?"Refreshing repositories\u2026":"Refresh repositories"],[Ve,u]],onChange:e=>J("repo",e),onFocus:rt}),t("button",{type:"button",class:"quiet",popovertarget:`${C}-settings`,"aria-label":"Run options",title:"Model, effort, access and more",children:[t(F,{d:Oe}),t("span",{class:"run-picks",children:ut.map(([e,o],n)=>t("span",{class:o?void 0:"dim",children:n?` \xB7 ${e}`:e},n))}),be?t("span",{children:be}):null]}),t(_,{type:"submit",size:"sm",class:"send",leftIcon:Le,disabled:!O.trim()||c.agentsOff,loading:U,"aria-label":U?"Starting task":"Start task",title:"Start task (Enter)"})]}),c.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,M==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(I,{id:`${C}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:kt,children:[t(E,{children:"Model"}),t(Ke,{groups:c.models,first:{label:`Default: ${s.chain.map(e=>oe(e,s.builtin)).join(", then ")}`,efforts:!0},model:i.model,effort:i.effort,onPick:(e,o)=>{x({model:e,effort:o}),document.getElementById(`${C}-settings`)?.hidePopover()}}),t(E,{children:"Access"}),t("div",{role:"group","aria-label":"Access",children:je.map(([e,o])=>t(ee,{on:i.access===e,onPick:()=>x({access:e}),children:o},e))}),he.length>1?t(y,{children:[t(E,{children:"Agent"}),t(_e,{label:"Agent",options:he,value:i.agent,onPick:e=>x({agent:e})})]}):null,c.runners.length>1?t(y,{children:[t(E,{children:"Runs on"}),t(_e,{label:"Runs on",options:c.runners,value:i.runner,onPick:e=>x({runner:e})})]}):null]}),t(I,{panelRef:de,id:`${C}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":p?.label??"Commands",children:p?t(y,{children:[t(E,{children:p.label}),t(vt,{id:`${C}-slash`,entries:p.entries,active:P,onActive:A}),p.note==="loading"?t(xe,{label:"Loading pull requests",inline:!0}):p.note&&!p.entries.length?t(Ne,{children:p.note}):null]}):null})]}),le===void 0||l?null:t(Ct,{reason:le})]})}function Rt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:ne}),t("div",{class:"composer-line"})]})}function Yt({agent:a}){let r=w(null),[s,l]=f(),[u,d]=f(""),[m,i]=f(!1),K=w(),c=()=>{i(!0),r.current?.showModal(),K.current??=Xe(b).then(l,g=>d($(g)))},R=Me().has("new");return B(()=>{if(!R)return;let g=new URL(location.href);g.searchParams.delete("new"),history.replaceState(history.state,"",g),c()},[R]),t(y,{children:[t(_,{class:"new-task",leftIcon:Re,onClick:c,children:"New task"}),t("dialog",{ref:r,class:"compose-dialog","aria-label":a?`New task for ${a}`:"New task",onClose:()=>i(!1),onClick:g=>g.target===g.currentTarget&&r.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),a?t("span",{class:"sub",children:a}):null,t(Se,{icon:Ee,label:"Close",onClick:()=>r.current?.close()})]}),m?s?t(Et,{...s,initial:{...Je(document.cookie),...a?{agent:a}:{}}}):u?t("p",{class:"flash err",role:"alert",children:u}):t(Rt,{}):null]})]})}export{ht as a,Ct as b,Yt as c};
@@ -0,0 +1 @@
1
+ "use client";import{a,b,c}from"./composer-3efd63e2e0192937.js";import"./composer-data-b05f3d93fdc472d7.js";import"./task-1e6f9ba22fb5e29f.js";import"./connect-repositories-90f1aedea6de7a99.js";import"./shared-init-02666a6f76606589.js";import"./shared-init-02666a6f76606589.js";import"./model-options-5e07b3318d69d218.js";import"./types-3eca2c7f47c46054.js";import"./shared-init-a69029db2d72fb52.js";import"./shared-init-a69029db2d72fb52.js";import"./back-8ca96656264a0d1c.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-7a7f1e623f0f5861.js";import"./wular-pnext-3fcac605fffcc273-0.js";import"./shared-init-7a7f1e623f0f5861.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";import"./shared-init-3fcac605fffcc273-2.js";export{b as NeedsCredential,c as NewTaskButton,a as withEffort};
@@ -1 +1 @@
1
- import{$4a as r}from"./shared-init-abd7653140f37a0c.js";import{$3Q as o,$3S as i,$3x as e}from"./shared-init-abd7653140f37a0c.js";function b({open:l,title:m,body:n,confirmLabel:p,onConfirm:a,onClose:f,busy:t}){return o(r,{open:l,class:"confirm",title:m,busy:t,onSubmit:C=>{C.preventDefault(),a()},onClose:f,actions:o(i,{type:"submit",danger:!0,leftIcon:e,loading:t,children:p}),children:n?o("p",{children:n}):null})}export{b as a};
1
+ import{$3a as r}from"./shared-init-7a7f1e623f0f5861.js";import{$4Q as o,$4S as i,$4x as e}from"./shared-init-7a7f1e623f0f5861.js";function b({open:l,title:m,body:n,confirmLabel:p,onConfirm:a,onClose:f,busy:t}){return o(r,{open:l,class:"confirm",title:m,busy:t,onSubmit:C=>{C.preventDefault(),a()},onClose:f,actions:o(i,{type:"submit",danger:!0,leftIcon:e,loading:t,children:p}),children:n?o("p",{children:n}):null})}export{b as a};
@@ -1 +1 @@
1
- import{$1c as i}from"./shared-init-abd7653140f37a0c.js";async function u(o){let[a,n]=await Promise.all([i.apps.list(),i.integrations.list()]),r=new Set(n.filter(t=>t.repositories).map(t=>t.id)),e=a.map(t=>t.value).sort((t,l)=>+!!l.builtin-+!!t.builtin).find(t=>r.has(t.integration));if(!e)throw new Error("No app here can reach repositories yet.");let{url:s}=await i.apps.install(e.id,o);location.href=s}export{u as a};
1
+ import{$0c as i}from"./shared-init-7a7f1e623f0f5861.js";async function u(o){let[a,n]=await Promise.all([i.apps.list(),i.integrations.list()]),r=new Set(n.filter(t=>t.repositories).map(t=>t.id)),e=a.map(t=>t.value).sort((t,l)=>+!!l.builtin-+!!t.builtin).find(t=>r.has(t.integration));if(!e)throw new Error("No app here can reach repositories yet.");let{url:s}=await i.apps.install(e.id,o);location.href=s}export{u as a};