@wular/coder 0.4.8 → 0.4.9

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 (402) hide show
  1. package/dist/{add-yIlNqPSu.js → add-BftLUw05.js} +1 -1
  2. package/dist/{add-BDBCRqKN.js → add-CXAGrCnC.js} +1 -1
  3. package/dist/{add-Df1Ezy3y.js → add-Ck_y_nKX.js} +2 -2
  4. package/dist/{add-DcR15CL7.js → add-CvBTpxgY.js} +1 -1
  5. package/dist/agent-ChnedLBv.js +8 -0
  6. package/dist/{agent-B2Ikhp7u.js → agent-vYm7Geh-.js} +1 -1
  7. package/dist/{alias-DghaKDbh.js → alias-BpgVDY6_.js} +1 -1
  8. package/dist/{app-snjvOKJA.js → app-CJPFaLIV.js} +1 -1
  9. package/dist/{approvals-BziBKWgU.js → approvals-CE8dXZhE.js} +1 -1
  10. package/dist/{approve-DAuvq9Eq.js → approve-CBuGu3du.js} +1 -1
  11. package/dist/{approve-DKrTnZfk.js → approve-dWW4qt76.js} +1 -1
  12. package/dist/{apps-aj_JtpAm.js → apps-B60OpAHX.js} +2 -2
  13. package/dist/{archive-BhfGdyuC.js → archive-C89Z4kSx.js} +1 -1
  14. package/dist/{archive-DxWYJ7Zi.js → archive-CmRVm4iS.js} +1 -1
  15. package/dist/{archive-sweep-CqTQUafj.js → archive-sweep-EiiXIqjr.js} +1 -1
  16. package/dist/{ask-B_si1yM4.js → ask-Bou8zg-4.js} +1 -1
  17. package/dist/auth-CImjIcG5.js +1 -0
  18. package/dist/{auth-B3RiDPMI.js → auth-CWzSsiSC.js} +1 -1
  19. package/dist/{chat-DLolwsuq.js → chat-Djps0Seg.js} +1 -1
  20. package/dist/{cli-D5hyqGq0.js → cli-ZUdhZnuW.js} +1 -1
  21. package/dist/cli.js +1 -1
  22. package/dist/{config-BdeKsCPh.js → config-CF3_A3NX.js} +1 -1
  23. package/dist/{connection-wq0CJZKh.js → connection-BCRJHTgp.js} +1 -1
  24. package/dist/{connection-CQPndo-u.js → connection-BtUZA2St.js} +1 -1
  25. package/dist/{create-8_XbAnHs.js → create-Z0QxarzN.js} +1 -1
  26. package/dist/credentials-Dt2uP3AQ.js +1 -0
  27. package/dist/dash/standalone/server/build-index.json +1 -1
  28. package/dist/dash/standalone/server/manifest.json +1614 -1463
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.a4ec4bce860e3e71.js → page.a2a16ead424b2185.js} +3 -3
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.4c818ef18a084013.js → page.90e312759b87cfa2.js} +2 -2
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.f8373428f20c270b.js → loading.787d09fb0b2b6b57.js} +2 -2
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.b0946ff7951ecc11.js → notify.5fc5e4346dcbfc32.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.55eef4b0e71415d9.js → page.1641da62504df30a.js} +11 -12
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/sign-out.5dac3bf780c74354.js +20 -0
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.f1dacbfebc27a656.js +13 -0
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.3a3c550ff68aeb11.js → agents-grid.5da78e9a741b028a.js} +7 -7
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.7a4cfa5c917e5db9.js → connect-apps.722bc3e4ec1f9fad.js} +8 -7
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.fd26a5414b0a06db.js → loading.2815a010098aa676.js} +4 -4
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.b2bed855b68a77b2.js → page.b01992337eeca2dc.js} +7 -7
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.95b8bf3c438955c2.js → layout.8aeb0fddffe22ad5.js} +24 -26
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.39c596735b108f80.js → loading.50692149df9abb28.js} +1 -1
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.1401a08ea4e27c01.js → page.e2e23101c05b9548.js} +15 -14
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.2d6e75e5923f73f2.js → loading.31d2c13229ae9222.js} +2 -2
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.848ccc3a609385a9.js → page.11c7b50d6119efe6.js} +32 -37
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.4b14873a20ebd56c.js → platform-actions.92ac7aa258e706a4.js} +49 -66
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.dd8f3cbc00876ebd.js → agent-settings-form.fc530622fa2292a0.js} +16 -19
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.80f597fd04fc4a97.js → loading.bf17bd39f41db826.js} +1 -1
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.35d01036ce840ff9.js → page.6e95dfe07dfebf4b.js} +4 -4
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.ff54c7100f781fbc.js → loading.7b17368ee81275ab.js} +1 -1
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.e5a405c518c1d8e6.js → page.0bd3da9b3227b12f.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.55aa8df7712e6820.js → loading.d2cc33cf044a92a3.js} +3 -3
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.67c3489c62b661da.js → page.91c43fbc54e37646.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.0c20e2100b321316.js → versions-list.23e4131cdf71daa5.js} +2 -2
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/loading.47c4c8f31b4f17cc.js +23 -0
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.7132b3ef68d33cc4.js → page.cbd2bad8fede6fef.js} +6 -6
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.19e913c8cb22db21.js → agent-pills.d8e785c45f5410a6.js} +9 -10
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.ec6d07ccd1f9796e.js → agent-toggle.a6e27ac4171bfdb0.js} +13 -6
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.9de48723967d8546.js → hero.96bdca9762ff3e2e.js} +5 -5
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.6558ffd02a59ad53.js → instructions.ca0c09d4849bfc30.js} +1 -1
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.9e1a0945f6880076.js → editor.20c42102ed262db7.js} +33 -36
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.e54af9841da11373.js → import-picker.b8093a7ca97656a5.js} +27 -32
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.38715a27e2d25ebd.js → loading.6012b36c10c68657.js} +11 -13
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.6c8e9ef5d72b7ef1.js → page.1ebdb0247922fc14.js} +4 -4
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.c67ccee8b4770821.js → layout.6d2242d49ae9dd35.js} +51 -81
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.3365f9248dfe735d.js → operator-apps.a56516bc0ba79187.js} +18 -21
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.c60ebc5afe4dcdae.js → page.af19494c89ac62c0.js} +6 -6
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.544315916300ed07.js → connections-list.9b96914a4fa4e2a9.js} +52 -58
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.41ce6eb622300bb3.js → credentials-list.dbaa8f3d82445b90.js} +147 -165
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.c1a312e6ec58db83.js → credentials.c4b01484d183549d.js} +7 -7
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.75dc69caed34ff8f.js → engines-list.5c03e83663a6a9b7.js} +9 -9
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.6d6180438e2bd0c8.js → list.df5ee5d74bec0f5b.js} +10 -8
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.9d7c30db2ecccda3.js → loading.480b8f915bae18c1.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.04eb5a47bca3bd09.js → models-list.2835a48d1edeb6d1.js} +17 -18
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.dd00f57d398be882.js → page.1d53415d55e77fee.js} +15 -15
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.e644287ae91ea8c3.js → runners-list.bf5746f48e3f78f5.js} +30 -37
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.35fa72bf3f00d1af.js → secrets-list.b0dedc1567efc09f.js} +14 -13
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.3a17085fb262e4ab.js → layout.567d27e39d42d719.js} +8 -8
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.a14b9796a8af62dc.js → settings-head.5e2dff2550b3b73e.js} +1 -1
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.1fd664df1fd0e3c1.js → tunnel-guide.d6fae1c5d62f2c74.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.3acdd50e1cc0c729.js → create-link.03989d2f7585a045.js} +5 -6
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.d730e0bfbe0cf2f8.js → outcome-dialog.4debc1a8c644df4b.js} +6 -6
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.079600422889e725.js → page.43c969f59a710781.js} +9 -8
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.ed49ee2686d1ee41.js → activity.3755ae6065c3fc28.js} +3 -3
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.0d973b51fee68801.js → loading.9efbed6531879838.js} +4 -4
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.05dd344bada1d4d8.js → page.7b92dcd08095b934.js} +4 -4
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.ece7ec732352ce70.js → task-actions.62422b873f98ee8e.js} +24 -24
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.8a5908c42647923f.js → task-view.ae0e9c9dffe0ff9f.js} +32 -38
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.c7ec618e215d63ce.js → composer.fdad306647cbaa59.js} +71 -109
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.0976f1812d6d15f5.js → tasks-list.952f37a9486aebe7.js} +28 -28
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.fd72404364042b87.js → tasks-section.1247d4765d0e1bdc.js} +4 -4
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.293492d13a9dca2e.js → page.cf74c55e6528c7c9.js} +2 -2
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.471edcb853889c2e.js → custom-range.2d55812ec086b540.js} +25 -26
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.d40438efa74b0596.js → day-chart.08d378cca93d3ab1.js} +1 -1
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.5b28c7d8f3a473a3.js → loading.7aed78a276b08a4f.js} +3 -3
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.69adbf6cde427292.js → page.fed9345ebac3e1b3.js} +6 -6
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/range-bar.b1296c2378128472.js +57 -0
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.b00f571862b5b608.js → top-agents.e215d44e00192271.js} +2 -2
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.ab6f86cc5b8b2dab.js → layout.b7e3af142b17941b.js} +1 -1
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.088b41424cd6cf3c.js → page.226544940a39fd3a.js} +5 -3
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.0e2e3636f33049f5.js → drawer.8287e5a02144e4f1.js} +8 -9
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.fe46528a6a66c0f4.js → foreign-link.86f0cc228353da6e.js} +4 -4
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/loading-card.0c6ac62ff3ccf38a.js +40 -0
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.e5d2185c1cdac740.js → page-head.bd54e52ac4a7a89c.js} +8 -1
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.2fea238dc4f4f9a4.js → stream.1cc355a530dcc5e3.js} +1 -1
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.4282affa47415a36.js → task-toasts.63f673632770924d.js} +2 -2
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.ef190ef1cd197199.js → theme-choices.5f59814a635caeec.js} +8 -17
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.af528135d7e33d6d.js → back.5681714d0cf45454.js} +6 -6
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.813dc34bd23a336f.js → org.4d84ad0ac340fbe2.js} +1 -1
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.bafcb4b273b1c4d0.js → side-toggle.249400957d6a7527.js} +9 -9
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.0851f234f300c694.js +83 -0
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/button.983daea9e687fc5d.js +91 -0
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.6227f43fc0ae4bd1.js → card.c08471eaa0bc1cec.js} +14 -9
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.dab7f208cbbe6a33.js → collapse.762eba56417214ca.js} +5 -3
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.0572dd5730c94112.js → combo.efb84f0cca771948.js} +13 -20
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.53edc755945b0563.js +27 -0
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.9be99c94423eb1ca.js → copy.0b23d7dc05757df5.js} +8 -10
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.4f703a4ce7d2a519.js → filter.1983b85dd0679af6.js} +33 -52
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.868385119bf2de28.js → icons.a34176f37808cd66.js} +1 -0
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/menu-items.a8e580a0c90631ff.js +145 -0
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.0f064f75822888be.js → menu.a41edd5cde1c90cf.js} +16 -45
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.92432959e3a3e2c0.js → modal.b5f74ebf59590fa6.js} +10 -11
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.5ac52bb38fb64ae5.js → segmented.a08dc08338d080e9.js} +13 -2
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.7f481669998074f8.js → select.36c6f21ce6aa720f.js} +36 -40
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.30913c92f5ca6102.js → tail.a8a951c757376590.js} +5 -4
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.801bbd3163d3fbb0.js → toolbar.9621ef221a896a8e.js} +9 -4
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.568346602027ac74.js → action.1a6356d5b722cafb.js} +1 -1
  127. package/dist/dash/standalone/static/assets/chunks/action-977f2355e308d7d0.js +1 -0
  128. package/dist/dash/standalone/static/assets/chunks/agent-pills-e75e6ac80d515ffc.js +1 -0
  129. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-09f23ed893d441c7.js +1 -0
  130. package/dist/dash/standalone/static/assets/chunks/agent-toggle-b2f2c22e63dedc1f.js +1 -0
  131. package/dist/dash/standalone/static/assets/chunks/agents-grid-bb4f3e4d38b2f459.js +1 -0
  132. package/dist/dash/standalone/static/assets/chunks/back-1d1b062f0e1b29b7.js +1 -0
  133. package/dist/dash/standalone/static/assets/chunks/combo-126d5709a0b3a5bd.js +1 -0
  134. package/dist/dash/standalone/static/assets/chunks/composer-6bf94d1087a6e6a6.js +1 -0
  135. package/dist/dash/standalone/static/assets/chunks/composer-9c1fe67a0de73997.js +1 -0
  136. package/dist/dash/standalone/static/assets/chunks/confirm-1cb4d8df3974f34a.js +1 -0
  137. package/dist/dash/standalone/static/assets/chunks/connect-apps-32c169b6e00711ff.js +1 -0
  138. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-569c181ff81509f4.js → connect-repositories-995d55b3f166337d.js} +1 -1
  139. package/dist/dash/standalone/static/assets/chunks/connections-list-a102e909edff14d4.js +1 -0
  140. package/dist/dash/standalone/static/assets/chunks/copy-c938369a1bfe75fd.js +1 -0
  141. package/dist/dash/standalone/static/assets/chunks/create-link-a147953f343355ec.js +1 -0
  142. package/dist/dash/standalone/static/assets/chunks/credentials-list-31e0fbc1ef0d003e.js +1 -0
  143. package/dist/dash/standalone/static/assets/chunks/custom-range-4eeb710748887f3a.js +1 -0
  144. package/dist/dash/standalone/static/assets/chunks/editor-79560c0f91cfc2f6.js +7 -0
  145. package/dist/dash/standalone/static/assets/chunks/engines-list-d22f50040e6842ae.js +1 -0
  146. package/dist/dash/standalone/static/assets/chunks/{field-f40df6a5289dfe05.js → field-657227821326b5b3.js} +1 -1
  147. package/dist/dash/standalone/static/assets/chunks/instructions-a08bb02650dedb8d.js +2 -0
  148. package/dist/dash/standalone/static/assets/chunks/instructions-a1f10bc3c2866e3f.js +1 -0
  149. package/dist/dash/standalone/static/assets/chunks/list-a0cc9bdb05fc71d4.js +1 -0
  150. package/dist/dash/standalone/static/assets/chunks/models-list-63ab774de3bf3788.js +1 -0
  151. package/dist/dash/standalone/static/assets/chunks/{notice-84358e912a9f01cc.js → notice-cd32ca98bbc10844.js} +1 -1
  152. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-4ab62d613bee243a.js +1 -0
  153. package/dist/dash/standalone/static/assets/chunks/platform-actions-40824017c7b5b910.js +1 -0
  154. package/dist/dash/standalone/static/assets/chunks/platform-actions-a515643f341df568.js +1 -0
  155. package/dist/dash/standalone/static/assets/chunks/runners-list-a9f4f71695f7b376.js +1 -0
  156. package/dist/dash/standalone/static/assets/chunks/{runtime-37175329f2865f15-1.js → runtime-e8b9eb1e537215ed-1.js} +1 -1
  157. package/dist/dash/standalone/static/assets/chunks/secrets-list-34e09c332363564c.js +1 -0
  158. package/dist/dash/standalone/static/assets/chunks/segmented-24da438244eedc8f.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/shared-init-02aaa49ed4606a76.js +2 -0
  160. package/dist/dash/standalone/static/assets/chunks/shared-init-03e620f936463465.js +5 -0
  161. package/dist/dash/standalone/static/assets/chunks/shared-init-6f8c76316a2cd9da.js +1 -0
  162. package/dist/dash/standalone/static/assets/chunks/shared-init-e8b9eb1e537215ed-2.js +1 -0
  163. package/dist/dash/standalone/static/assets/chunks/side-toggle-8563e6056e862225.js +1 -0
  164. package/dist/dash/standalone/static/assets/chunks/tail-ebdefca4d5c23266.js +1 -0
  165. package/dist/dash/standalone/static/assets/chunks/task-actions-462507b76bda4657.js +1 -0
  166. package/dist/dash/standalone/static/assets/chunks/{task-view-1696d47594c6dbfa.js → task-view-341d79730a341007.js} +5 -5
  167. package/dist/dash/standalone/static/assets/chunks/tasks-list-6037ecd098332564.js +1 -0
  168. package/dist/dash/standalone/static/assets/chunks/versions-list-31f31eb1923a0ded.js +1 -0
  169. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-37175329f2865f15-0.js → wular-pnext-e8b9eb1e537215ed-0.js} +1 -1
  170. package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +1 -0
  171. package/dist/dash/standalone/static/assets/create-param-id-8fa3e9101430f26a.css +1 -0
  172. package/dist/dash/standalone/static/assets/dash-param-org-67f7811b1343c064.css +1 -0
  173. package/dist/dash/standalone/static/assets/dash-param-org-account-3f646d473e3bd795.css +1 -0
  174. package/dist/dash/standalone/static/assets/dash-param-org-agents-0ddb989cab5b0fbf.css +1 -0
  175. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-504d1a906feabb6f.css +1 -0
  176. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-7cd987a1a42a3b44.css +1 -0
  177. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-fcdddf2dc26453ce.css +1 -0
  178. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-26b84d659dbca7f4.css +1 -0
  179. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-97ff652f9fe5979d.css +1 -0
  180. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-d47377c0f877c5c0.css +1 -0
  181. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-6a09580f11d669b7.css +1 -0
  182. package/dist/dash/standalone/static/assets/dash-param-org-operator-56742192a9aafc19.css +1 -0
  183. package/dist/dash/standalone/static/assets/dash-param-org-settings-a851a659784d94b5.css +1 -0
  184. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-06283106fffbd5c6.css +1 -0
  185. package/dist/dash/standalone/static/assets/dash-param-org-setup-1b708aa5bb2f83ef.css +1 -0
  186. package/dist/dash/standalone/static/assets/dash-param-org-tasks-9cb2bb12389c9a04.css +1 -0
  187. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-a87fa0eaa02e4008.css +1 -0
  188. package/dist/dash/standalone/static/assets/dash-param-org-usage-786c91a7640542e6.css +1 -0
  189. package/dist/dash/standalone/static/assets/global-eee296f070a9bb95.css +1 -0
  190. package/dist/dash/standalone/static/assets/login-9760b85feae40270.css +1 -0
  191. package/dist/dash/standalone/static/assets/pnext-client-17c3ee29b7487596.js +1 -0
  192. package/dist/dash/standalone/static/assets/pnext-client-1eaa8deb5395345f.js +1 -0
  193. package/dist/dash/standalone/static/assets/pnext-client-29e2b964470f6587.js +1 -0
  194. package/dist/dash/standalone/static/assets/pnext-client-2a1e756934e7be1a.js +1 -0
  195. package/dist/dash/standalone/static/assets/pnext-client-31e64d49f6132b26.js +1 -0
  196. package/dist/dash/standalone/static/assets/pnext-client-3d13328ad0b1148b.js +1 -0
  197. package/dist/dash/standalone/static/assets/pnext-client-4ac29d3e9f1a91be.js +1 -0
  198. package/dist/dash/standalone/static/assets/pnext-client-7d479b3375e3c07e.js +1 -0
  199. package/dist/dash/standalone/static/assets/pnext-client-9eac45990b233b55.js +1 -0
  200. package/dist/dash/standalone/static/assets/pnext-client-a8c9c169322e7e3d.js +1 -0
  201. package/dist/dash/standalone/static/assets/pnext-client-b622d087a38b1b77.js +1 -0
  202. package/dist/dash/standalone/static/assets/pnext-client-b7fea94dfda72453.js +1 -0
  203. package/dist/dash/standalone/static/assets/pnext-client-cc8e5e6c95040688.js +1 -0
  204. package/dist/dash/standalone/static/assets/pnext-client-d16e2a42b0a274c0.js +1 -0
  205. package/dist/dash/standalone/static/assets/pnext-client-dbccfef0cbb6b18d.js +1 -0
  206. package/dist/dash/standalone/static/assets/pnext-client-e74706ae238018e5.js +1 -0
  207. package/dist/dash/standalone/static/assets/pnext-client-ebe7c9692619ea00.js +1 -0
  208. package/dist/dash/standalone/static/assets/pnext-client-ef8d348060493085.js +1 -0
  209. package/dist/dash/standalone/static/assets/pnext-client-fcdfa8b2c8824449.js +1 -0
  210. package/dist/dash/standalone/static/assets/pnext-client-ff36e2f8a0522759.js +1 -0
  211. package/dist/{default-CNhVH61w.js → default-DcYwZCnl.js} +1 -1
  212. package/dist/{default-dQC33jLt.js → default-EXRzdZUY.js} +1 -1
  213. package/dist/{delete-BDOtztW_.js → delete-Bmn2_TiV.js} +1 -1
  214. package/dist/{delete-Dbo9goyQ.js → delete-DS6P_fun.js} +1 -1
  215. package/dist/{disable-VvU6oDku.js → disable-CnCxTC3X.js} +1 -1
  216. package/dist/{discover-hpHsnxqU.js → discover-pKrMDvpW.js} +1 -1
  217. package/dist/{docs-CYMICGEv.js → docs-sFUXzJbk.js} +1 -1
  218. package/dist/{enable-BmvNVDHO.js → enable-BWvDv7dP.js} +1 -1
  219. package/dist/flow/builtin/review.d.ts +1 -1
  220. package/dist/flow/index.d.ts +1 -1
  221. package/dist/{flow-4Rr-2NUz.js → flow-CuUq-MDm.js} +1 -1
  222. package/dist/{http-BYMXT_p6.js → http-Cg_wYcZT.js} +1 -1
  223. package/dist/{index-CVjkwYeS.d.ts → index-vd37q3fn.d.ts} +1 -1
  224. package/dist/{init-kZdO2PF5.js → init-Dgj6V-aS.js} +1 -1
  225. package/dist/integrations-DsFX2KCq.js +1 -0
  226. package/dist/{list-D3LCULQt.js → list-B6lwbCEp.js} +1 -1
  227. package/dist/{list-uS9iEE0F.js → list-BDpYPbJF.js} +1 -1
  228. package/dist/{list-CbN2giPy.js → list-BE3xmX_4.js} +1 -1
  229. package/dist/{list-P2Ztf1bQ.js → list-BVIAyAAE.js} +1 -1
  230. package/dist/{list-CLqNS8_q.js → list-Bggy3HZY.js} +1 -1
  231. package/dist/{list-ChFFjT_a.js → list-CLtqMYPK.js} +2 -2
  232. package/dist/{list-D2eSpGoo.js → list-CaFQOnfI.js} +1 -1
  233. package/dist/{list-D0NK3Iqu.js → list-DkO78ZEF.js} +1 -1
  234. package/dist/{local-XNsjb-UM.js → local-ccKBhpQc.js} +1 -1
  235. package/dist/{login-BoOBMH4y.js → login-BCdXHQ7z.js} +1 -1
  236. package/dist/{login-CCA0uLsW.js → login-CpHx_RCq.js} +1 -1
  237. package/dist/{logout-Cv0cm9F8.js → logout-zSQBDPCK.js} +1 -1
  238. package/dist/{maintenance-B_79IJ_E.js → maintenance-DuIspk-y.js} +1 -1
  239. package/dist/{mcp-C13n4A3y.js → mcp-O8VTfzdL.js} +1 -1
  240. package/dist/{model-0sxp5GdI.js → model-Bzpwl_95.js} +1 -1
  241. package/dist/{push-IpLeKMp-.js → push-vt81gcxD.js} +1 -1
  242. package/dist/{reconnect-CR3RaXX0.js → reconnect-BfghDbl1.js} +1 -1
  243. package/dist/{refresh-D0YjtXBD.js → refresh-yXJ13FAf.js} +1 -1
  244. package/dist/{remove-B01SXfEq.js → remove-5iAM2aTO.js} +1 -1
  245. package/dist/{remove-D65xtbw5.js → remove-BZCA-gdU.js} +1 -1
  246. package/dist/{remove-D1UOd48O.js → remove-BcewhH1U.js} +1 -1
  247. package/dist/{remove-C9eahMDh.js → remove-BwhcR6ig.js} +1 -1
  248. package/dist/{rename-Qwr_XDxD.js → rename-lyssPQfD.js} +1 -1
  249. package/dist/{result-70jciKDJ.js → result-Bg557zR6.js} +1 -1
  250. package/dist/{result-DXL9N9Ip.js → result-jeiRJTzA.js} +1 -1
  251. package/dist/{resume-xqhwHn3l.js → resume-fnx4FUQF.js} +1 -1
  252. package/dist/{review-vlPAshsb.js → review-CAHDqPq8.js} +1 -1
  253. package/dist/{review-D-U_2KyT.d.ts → review-CJS59vO-.d.ts} +1 -1
  254. package/dist/{rotate-key-CfeZ6Rg7.js → rotate-key-Dpx_WmuU.js} +1 -1
  255. package/dist/{run-VOuS-hHe.js → run-CLy9a2MO.js} +1 -1
  256. package/dist/{run-CoTg7SkY.js → run-DU4G8gNw.js} +1 -1
  257. package/dist/{run-CvdayZfK.js → run-D_pl9GF_.js} +1 -1
  258. package/dist/runner-zT5Oyrfr.js +1 -0
  259. package/dist/{runners-UNKPlmYE.js → runners-CNhxPjg8.js} +1 -1
  260. package/dist/schema.d.ts +1 -1
  261. package/dist/{sdk-4Vjo5Q6R.d.ts → sdk-CWerLcF5.d.ts} +19 -19
  262. package/dist/sdk.d.ts +4 -4
  263. package/dist/sdk.js +1 -1
  264. package/dist/{serve-HNXk3HMY.js → serve-FG2LgXxM.js} +2 -2
  265. package/dist/{serve-ByWMT5Gm.js → serve-UE1fcf4t.js} +1 -1
  266. package/dist/{serve-BoTW4P2G.js → serve-w-9qRCP1.js} +2 -2
  267. package/dist/{serve-BQsv2KZs.js → serve-wQgyxwdY.js} +1 -1
  268. package/dist/{server-B1x8gx33.js → server-Bw_YmgCf.js} +1 -1
  269. package/dist/{setup-host-DExG-bWZ.js → setup-host-BsbDs4lJ.js} +1 -1
  270. package/dist/{show-BeacgzZ0.js → show-Cajmf606.js} +1 -1
  271. package/dist/{show-D3OC0c35.js → show-D0qTuXRU.js} +1 -1
  272. package/dist/{status-ZN0HYtLa.js → status-PO1YXbt4.js} +1 -1
  273. package/dist/{steer-DwSC8AO4.js → steer-i6w87g_t.js} +1 -1
  274. package/dist/{stop-CEEiI1RA.js → stop-CJ0PHvKp.js} +1 -1
  275. package/dist/{stop-DTzpTbg1.js → stop-CkvoZEAH.js} +1 -1
  276. package/dist/{task-4gw9OZun.js → task-DTN_fIGC.js} +1 -1
  277. package/dist/task-DXHKWB_J.js +5 -0
  278. package/dist/{test-BnGF24Hg.js → test-BTkKFbnx.js} +1 -1
  279. package/dist/{tools-ar-D3jOh.js → tools-B-2oi2wI.js} +1 -1
  280. package/dist/{types-BktBEKW5.d.ts → types-C1tWi5lP.d.ts} +5 -5
  281. package/dist/{unalias-9AwJnbpE.js → unalias-Cqx7i_L0.js} +1 -1
  282. package/dist/{update-DoJEPBvm.js → update-MNyeVXyy.js} +1 -1
  283. package/dist/{upgrade-DRPBwDYe.js → upgrade-CGSkY0FY.js} +2 -2
  284. package/dist/{usage-CItBLFFE.js → usage-sx-FR0bz.js} +1 -1
  285. package/dist/{watch-BMuVZorc.js → watch-IL2eEgwD.js} +1 -1
  286. package/dist/{watch-Bl_pCGfq.js → watch-qfr7aSfo.js} +1 -1
  287. package/dist/{worker-BFGETvid.js → worker-BBZ36xL0.js} +1 -1
  288. package/dist/{worker-BiJ7jiOr.js → worker-D2csFtoH.js} +1 -1
  289. package/dist/{workflow-CcC-xbfp.js → workflow-BKxG9OUk.js} +1 -1
  290. package/package.json +1 -1
  291. package/dist/agent-C1HI4JlI.js +0 -3
  292. package/dist/auth-Cx4ePjWG.js +0 -1
  293. package/dist/credentials-BOAy2_-6.js +0 -1
  294. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/sign-out.1ee9b7f1343376e9.js +0 -13
  295. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/agent-menu.79e38c6e4139b9de.js +0 -12
  296. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/loading.2fa9e225a5c42496.js +0 -29
  297. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/range-bar.884e58b044238e98.js +0 -60
  298. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/loading-card.df3717186948c93f.js +0 -64
  299. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/badge.3d9163a51e6f6d6e.js +0 -43
  300. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/confirm.fe133a074c2743af.js +0 -26
  301. package/dist/dash/standalone/static/assets/chunks/action-df9907c7a10bf826.js +0 -1
  302. package/dist/dash/standalone/static/assets/chunks/agent-pills-106a518bef96408e.js +0 -1
  303. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-d1aa82950d30d829.js +0 -1
  304. package/dist/dash/standalone/static/assets/chunks/agent-toggle-44667051d8be2040.js +0 -1
  305. package/dist/dash/standalone/static/assets/chunks/agents-grid-69fabb48962a282a.js +0 -1
  306. package/dist/dash/standalone/static/assets/chunks/back-e02e04679467c05b.js +0 -1
  307. package/dist/dash/standalone/static/assets/chunks/badge-b302b4d707908367.js +0 -1
  308. package/dist/dash/standalone/static/assets/chunks/card-31a2cdcfeda5254f.js +0 -1
  309. package/dist/dash/standalone/static/assets/chunks/combo-fd495e7fa91b69ed.js +0 -1
  310. package/dist/dash/standalone/static/assets/chunks/composer-10f0a825a16e1fc7.js +0 -1
  311. package/dist/dash/standalone/static/assets/chunks/composer-8c1198d45f700738.js +0 -1
  312. package/dist/dash/standalone/static/assets/chunks/confirm-7b6112578a1c4877.js +0 -1
  313. package/dist/dash/standalone/static/assets/chunks/connect-apps-bd95a6cbdc89a438.js +0 -1
  314. package/dist/dash/standalone/static/assets/chunks/connections-list-5bbf7321d9bfd08f.js +0 -1
  315. package/dist/dash/standalone/static/assets/chunks/copy-f057128db8aefd1b.js +0 -1
  316. package/dist/dash/standalone/static/assets/chunks/create-link-6f6e6b87e46f67c8.js +0 -1
  317. package/dist/dash/standalone/static/assets/chunks/credentials-list-8fc72c0331289ac6.js +0 -2
  318. package/dist/dash/standalone/static/assets/chunks/custom-range-d06cd17fcc05183d.js +0 -1
  319. package/dist/dash/standalone/static/assets/chunks/editor-b5a9659f85edea17.js +0 -7
  320. package/dist/dash/standalone/static/assets/chunks/engines-list-c10ca5e7410b790f.js +0 -1
  321. package/dist/dash/standalone/static/assets/chunks/filter-966a9aae3b0b6d77.js +0 -1
  322. package/dist/dash/standalone/static/assets/chunks/instructions-c9e1097c4e1b352a.js +0 -2
  323. package/dist/dash/standalone/static/assets/chunks/instructions-e969d4439f6676c9.js +0 -1
  324. package/dist/dash/standalone/static/assets/chunks/list-5db1dd782965a5fc.js +0 -1
  325. package/dist/dash/standalone/static/assets/chunks/models-list-b6237067c9a39f97.js +0 -1
  326. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-c4f75d37645035b8.js +0 -1
  327. package/dist/dash/standalone/static/assets/chunks/paged-c44eccacea100110.js +0 -1
  328. package/dist/dash/standalone/static/assets/chunks/platform-actions-6004e96f54953935.js +0 -1
  329. package/dist/dash/standalone/static/assets/chunks/platform-actions-d8dd016336a3d768.js +0 -1
  330. package/dist/dash/standalone/static/assets/chunks/runners-list-0b288b2b79de8968.js +0 -1
  331. package/dist/dash/standalone/static/assets/chunks/secrets-list-64650cb827e93322.js +0 -1
  332. package/dist/dash/standalone/static/assets/chunks/segmented-5423dcc766dc7abc.js +0 -1
  333. package/dist/dash/standalone/static/assets/chunks/select-53722330d2e3f1c6.js +0 -1
  334. package/dist/dash/standalone/static/assets/chunks/shared-init-35a0e9007eeca198.js +0 -2
  335. package/dist/dash/standalone/static/assets/chunks/shared-init-37175329f2865f15-2.js +0 -1
  336. package/dist/dash/standalone/static/assets/chunks/shared-init-a7f2e71a718bc285.js +0 -5
  337. package/dist/dash/standalone/static/assets/chunks/shared-init-b8184e0e554d5aa4.js +0 -1
  338. package/dist/dash/standalone/static/assets/chunks/shared-init-e0aa7cbf9ac680b5.js +0 -1
  339. package/dist/dash/standalone/static/assets/chunks/side-toggle-34ee3bbe5ac64a60.js +0 -1
  340. package/dist/dash/standalone/static/assets/chunks/tail-7dece33a58f72850.js +0 -1
  341. package/dist/dash/standalone/static/assets/chunks/task-actions-b36dc5fcd9b2b2c5.js +0 -1
  342. package/dist/dash/standalone/static/assets/chunks/tasks-list-7c70210e7121b95a.js +0 -1
  343. package/dist/dash/standalone/static/assets/chunks/versions-list-26475f0d05e2d434.js +0 -1
  344. package/dist/dash/standalone/static/assets/connect-b73a327c12fa5c63.css +0 -1
  345. package/dist/dash/standalone/static/assets/create-param-id-d679f8832eafd7e8.css +0 -1
  346. package/dist/dash/standalone/static/assets/dash-param-org-14abc8f62d04dc4c.css +0 -1
  347. package/dist/dash/standalone/static/assets/dash-param-org-account-aba6d7e7f99c97cb.css +0 -1
  348. package/dist/dash/standalone/static/assets/dash-param-org-agents-570ddee6de22492e.css +0 -1
  349. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-9fa9b19084b3cd2f.css +0 -1
  350. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-0e7e591f05cbddf5.css +0 -1
  351. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-f16fb90321952887.css +0 -1
  352. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-5cf30b084239d643.css +0 -1
  353. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-1c84b31df8c64b88.css +0 -1
  354. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-7da323ffa5be29aa.css +0 -1
  355. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-4900a42b805e90cb.css +0 -1
  356. package/dist/dash/standalone/static/assets/dash-param-org-operator-2f4e497a01a78f29.css +0 -1
  357. package/dist/dash/standalone/static/assets/dash-param-org-settings-0ea983332482dbc6.css +0 -1
  358. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-e1c1f81610bb925f.css +0 -1
  359. package/dist/dash/standalone/static/assets/dash-param-org-setup-6824fce3862dbb43.css +0 -1
  360. package/dist/dash/standalone/static/assets/dash-param-org-tasks-f914c28afa705d66.css +0 -1
  361. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-65c8bb06f94ff868.css +0 -1
  362. package/dist/dash/standalone/static/assets/dash-param-org-usage-5dbb2aa369c46eed.css +0 -1
  363. package/dist/dash/standalone/static/assets/global-eecd2b20d5e4b08d.css +0 -1
  364. package/dist/dash/standalone/static/assets/login-ca4c0cd7d65b3269.css +0 -1
  365. package/dist/dash/standalone/static/assets/pnext-client-0bcd0cbf2549bdf2.js +0 -1
  366. package/dist/dash/standalone/static/assets/pnext-client-22414b6c8a870c92.js +0 -1
  367. package/dist/dash/standalone/static/assets/pnext-client-2a02ab5209cae1ea.js +0 -1
  368. package/dist/dash/standalone/static/assets/pnext-client-46d843cfdabf3e71.js +0 -1
  369. package/dist/dash/standalone/static/assets/pnext-client-5a50a2a4da7e870e.js +0 -1
  370. package/dist/dash/standalone/static/assets/pnext-client-5b6ea850cead1482.js +0 -1
  371. package/dist/dash/standalone/static/assets/pnext-client-5b94497ba23568a8.js +0 -1
  372. package/dist/dash/standalone/static/assets/pnext-client-6686f1714e481293.js +0 -1
  373. package/dist/dash/standalone/static/assets/pnext-client-67155accb837a12a.js +0 -1
  374. package/dist/dash/standalone/static/assets/pnext-client-7db5d810ee904f4b.js +0 -1
  375. package/dist/dash/standalone/static/assets/pnext-client-8d779b89650f4b7a.js +0 -1
  376. package/dist/dash/standalone/static/assets/pnext-client-9d7a7a634c9be6ac.js +0 -1
  377. package/dist/dash/standalone/static/assets/pnext-client-9edebc462604c881.js +0 -1
  378. package/dist/dash/standalone/static/assets/pnext-client-aa5a424e38b430a5.js +0 -1
  379. package/dist/dash/standalone/static/assets/pnext-client-b983cd476c808b15.js +0 -1
  380. package/dist/dash/standalone/static/assets/pnext-client-bdf1cb75a3de35ea.js +0 -1
  381. package/dist/dash/standalone/static/assets/pnext-client-c5177dd613b27b84.js +0 -1
  382. package/dist/dash/standalone/static/assets/pnext-client-d998d7077d159f68.js +0 -1
  383. package/dist/dash/standalone/static/assets/pnext-client-f01c6d0c6beb582b.js +0 -1
  384. package/dist/dash/standalone/static/assets/pnext-client-fd4c0f3ecbcc461c.js +0 -1
  385. package/dist/integrations-35T26qmP.js +0 -1
  386. package/dist/runner-D0TLZrrO.js +0 -1
  387. package/dist/task-CB-j4EO8.js +0 -5
  388. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.d2e3bc878dcb47da.css.pnext-asset.js → editor.c496247a81ed832c.css.pnext-asset.js} +0 -0
  389. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.3827c440c6421a06.css.pnext-asset.js → layout.a4efa8d807fe5416.css.pnext-asset.js} +0 -0
  390. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.1236d6680ec02696.css.pnext-asset.js → credentials-list.98e0b34932a6ee4c.css.pnext-asset.js} +0 -0
  391. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.360b393e5938c60b.css.pnext-asset.js → composer.79c015348f861749.css.pnext-asset.js} +0 -0
  392. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.1da88d087e3b5302.css.pnext-asset.js → range-bar.476c059123ef6c23.css.pnext-asset.js} +0 -0
  393. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.76731787d2a1aa3b.css.pnext-asset.js → globals.dccea8b03fa4b6d2.css.pnext-asset.js} +0 -0
  394. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.57e5198339e9ca28.css.pnext-asset.js → page.586a41a7ab9988e0.css.pnext-asset.js} +0 -0
  395. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{@/comps/ui/toast.a4c3e977997216cf.css.pnext-asset.js → drawer.0b0220d1edabce29.css.pnext-asset.js} +0 -0
  396. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.e8201d78154045bc.css.pnext-asset.js → task-toasts.d13d9f628e530552.css.pnext-asset.js} +0 -0
  397. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.d18497f656702a16.css.pnext-asset.js → button.d7f4433f4e7faa80.css.pnext-asset.js} +0 -0
  398. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.991f1efa061e71d6.css.pnext-asset.js → copy.fb3240de6c9479cd.css.pnext-asset.js} +0 -0
  399. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.e20fbd035f24ed01.css.pnext-asset.js → filter.b53f21acc3e2cfef.css.pnext-asset.js} +0 -0
  400. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.1d42c8d0493e2221.css.pnext-asset.js → menu.25b184f68cba7b46.css.pnext-asset.js} +0 -0
  401. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.32a95ad31c0436ad.css.pnext-asset.js → select.419208bb34700af2.css.pnext-asset.js} +0 -0
  402. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.40284b41c03c5dcb.css.pnext-asset.js → toolbar.19e1ce5224a23acf.css.pnext-asset.js} +0 -0
@@ -2,11 +2,12 @@
2
2
  import "./modal.9db07d368dcf5981.css.pnext-asset.js";
3
3
  import { toChildArray } from "../../../../../../../node_modules/preact/dist/preact.mjs";
4
4
  import { useEffect, useId, useRef } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
5
- import { iX } from "./icons.868385119bf2de28.js";
5
+ import { Button, IconButton } from "./button.983daea9e687fc5d.js";
6
+ import { iX } from "./icons.a34176f37808cd66.js";
6
7
  import { Icon } from "./icon.0874ca2f58f7db14.js";
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
8
9
  /** A modal with a title, a body and its actions after a cancel button; Escape, Cancel or a backdrop click closes it, never while busy. */
9
- export function Modal({ open = true, class: className, tone, title, icon, dismiss, busy, cancel = "Cancel", focus = "cancel", actions, onSubmit, onClose, children }) {
10
+ export function Modal({ open = true, class: className, tone, title, icon, dismiss, busy, cancel = "Cancel", cancelDanger, focus = "cancel", actions, onSubmit, onClose, children }) {
10
11
  const dialog = useRef(null);
11
12
  const id = useId();
12
13
  useEffect(() => {
@@ -41,20 +42,18 @@ export function Modal({ open = true, class: className, tone, title, icon, dismis
41
42
  id,
42
43
  children: title
43
44
  }),
44
- dismiss ? /* @__PURE__ */ _jsx("button", {
45
- type: "button",
46
- class: "icon-btn",
47
- "aria-label": "Close",
48
- onClick: close,
49
- children: /* @__PURE__ */ _jsx(Icon, { d: iX })
45
+ dismiss ? /* @__PURE__ */ _jsx(IconButton, {
46
+ icon: iX,
47
+ label: "Close",
48
+ onClick: close
50
49
  }) : null
51
50
  ] }),
52
51
  children,
53
52
  /* @__PURE__ */ _jsxs("div", {
54
53
  class: "actions",
55
- children: [/* @__PURE__ */ _jsx("button", {
56
- type: "button",
57
- class: alone ? "btn" : "btn ghost",
54
+ children: [/* @__PURE__ */ _jsx(Button, {
55
+ variant: alone ? "primary" : "ghost",
56
+ danger: !alone && cancelDanger,
58
57
  disabled: busy,
59
58
  autofocus: focus === "cancel",
60
59
  onClick: close,
@@ -1,7 +1,18 @@
1
1
  import "./segmented.0bd8652fdbc05eb0.css.pnext-asset.js";
2
- import { jsx as _jsx } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
2
+ import { Link } from "../../../../../../../node_modules/@wular/pnext/src/api/link.tsx";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
3
4
  /** One-click choices in a row, a radio group to the keyboard: arrows move and pick, Enter submits the form. */
4
- export function Segmented({ label, options, value, onChange, class: cls, disabled }) {
5
+ export function Segmented({ label, options, value, onChange, link, class: cls, disabled, children }) {
6
+ if (!onChange) return /* @__PURE__ */ _jsxs("div", {
7
+ class: cls ? `seg-btns ${cls}` : "seg-btns",
8
+ role: "group",
9
+ "aria-label": label,
10
+ children: [options.map(([key, text]) => link ? /* @__PURE__ */ _jsx(Link, {
11
+ ...link(key),
12
+ "aria-current": key === value ? "page" : undefined,
13
+ children: text
14
+ }, key) : /* @__PURE__ */ _jsx("a", { children: text }, key)), children]
15
+ });
5
16
  const at = Math.max(0, options.findIndex(([key]) => key === value));
6
17
  return /* @__PURE__ */ _jsx("div", {
7
18
  class: cls ? `seg-btns ${cls}` : "seg-btns",
@@ -1,8 +1,9 @@
1
- import "./select.32a95ad31c0436ad.css.pnext-asset.js";
1
+ import "./select.419208bb34700af2.css.pnext-asset.js";
2
2
  import { Fragment } from "../../../../../../../node_modules/preact/dist/preact.mjs";
3
3
  import { useId, useLayoutEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
4
- import { iCheck, iDown, iPlus } from "./icons.868385119bf2de28.js";
4
+ import { iDown, iPlus } from "./icons.a34176f37808cd66.js";
5
5
  import { Icon } from "./icon.0874ca2f58f7db14.js";
6
+ import { MenuLabel, MenuOption, MenuPanel } from "./menu-items.a8e580a0c90631ff.js";
6
7
  import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
7
8
  const PAGE = 10;
8
9
  /** A select in the menu style, with keyboard, type-ahead and touch; `name` posts its value. */
@@ -166,63 +167,58 @@ export function Select({ label, options, value, defaultValue, onChange, onFocus,
166
167
  name,
167
168
  value: current
168
169
  }) : null,
169
- open ? /* @__PURE__ */ _jsxs("div", {
170
- ref: list,
171
- id: `${id}-list`,
172
- class: "pop select-pop",
173
- popover: "manual",
174
- role: "listbox",
175
- "aria-label": label,
176
- style: place || "visibility:hidden",
177
- onMouseDown: (event) => event.preventDefault(),
178
- children: [options.map(([key, text], index) => /* @__PURE__ */ _jsxs(Fragment, { children: [headings?.[key] ? /* @__PURE__ */ _jsx("p", {
179
- class: "pop-label",
180
- children: headings[key]
181
- }) : null, /* @__PURE__ */ _jsxs("div", {
170
+ open ? /* @__PURE__ */ _jsxs(SelectList, {
171
+ id,
172
+ label,
173
+ listRef: list,
174
+ place,
175
+ children: [options.map(([key, text], index) => /* @__PURE__ */ _jsxs(Fragment, { children: [headings?.[key] ? /* @__PURE__ */ _jsx(MenuLabel, { children: headings[key] }) : null, /* @__PURE__ */ _jsx(MenuOption, {
182
176
  id: `${id}-${index}`,
183
177
  "data-index": index,
184
- role: "option",
185
- "aria-selected": index === selected,
186
- class: index === active ? "pop-item on" : "pop-item",
178
+ active: index === active,
179
+ selected: index === selected,
180
+ check: true,
181
+ icon: icons?.[key],
182
+ sub: subs?.[key] ? /* @__PURE__ */ _jsx("bdi", {
183
+ dir: "ltr",
184
+ children: subs[key]
185
+ }) : null,
187
186
  onPointerMove: () => index !== active && setActive(index),
188
187
  // Picks without letting a wrapping label re-open the list.
189
188
  onClick: (event) => {
190
189
  event.preventDefault();
191
190
  pick(index);
192
191
  },
193
- children: [
194
- icons?.[key] ?? null,
195
- /* @__PURE__ */ _jsxs("span", {
196
- class: "grow",
197
- children: [text, subs?.[key] ? /* @__PURE__ */ _jsx("small", {
198
- class: "pop-path",
199
- children: /* @__PURE__ */ _jsx("bdi", {
200
- dir: "ltr",
201
- children: subs[key]
202
- })
203
- }) : null]
204
- }),
205
- /* @__PURE__ */ _jsx(Icon, { d: iCheck })
206
- ]
207
- })] }, key)), action ? /* @__PURE__ */ _jsxs("div", {
192
+ children: text
193
+ })] }, key)), action ? /* @__PURE__ */ _jsx(MenuOption, {
208
194
  id: `${id}-${options.length}`,
209
195
  "data-index": options.length,
210
- role: "option",
211
- "aria-selected": false,
212
- class: active === options.length ? "pop-item action on" : "pop-item action",
196
+ active: active === options.length,
197
+ selected: false,
198
+ class: "action",
199
+ icon: action.icon ?? iPlus,
213
200
  onPointerMove: () => active !== options.length && setActive(options.length),
214
201
  onClick: (event) => {
215
202
  event.preventDefault();
216
203
  pick(options.length);
217
204
  },
218
- children: [/* @__PURE__ */ _jsx(Icon, { d: action.icon ?? iPlus }), /* @__PURE__ */ _jsx("span", {
219
- class: "grow",
220
- children: action.label
221
- })]
205
+ children: action.label
222
206
  }) : null]
223
207
  }) : null
224
208
  ]
225
209
  });
226
210
  }
211
+ /** A select's list in the top layer at `place`; the field keeps focus, so the mouse never takes it. */
212
+ export const SelectList = ({ id, label, listRef, place, children }) => /* @__PURE__ */ _jsx(MenuPanel, {
213
+ panelRef: listRef,
214
+ id: `${id}-list`,
215
+ class: "select-pop",
216
+ popover: "manual",
217
+ role: "listbox",
218
+ "aria-label": label,
219
+ style: place || "visibility:hidden",
220
+ onMouseDown: (event) => event.preventDefault(),
221
+ children
222
+ });
227
223
  /** The label a filter's value shows. */
228
224
  export const labelOf = (options, value) => (options.find(([key]) => key === value) ?? options[0])[1];
@@ -1,5 +1,6 @@
1
1
  import "./tail.0a5f3c0595e68610.css.pnext-asset.js";
2
- import { Loading } from "./card.6227f43fc0ae4bd1.js";
2
+ import { Button } from "./button.983daea9e687fc5d.js";
3
+ import { Loading } from "./card.c08471eaa0bc1cec.js";
3
4
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
4
5
  /** Below the rows: what is loading, what failed, and the mark that pulls in the next page. */
5
6
  export function Tail({ sentinel, more, busy, error, retry, noun }) {
@@ -11,9 +12,9 @@ export function Tail({ sentinel, more, busy, error, retry, noun }) {
11
12
  children: error ? /* @__PURE__ */ _jsxs(_Fragment, { children: [
12
13
  error,
13
14
  " ",
14
- /* @__PURE__ */ _jsx("button", {
15
- type: "button",
16
- class: "btn ghost sm",
15
+ /* @__PURE__ */ _jsx(Button, {
16
+ variant: "ghost",
17
+ size: "sm",
17
18
  onClick: retry,
18
19
  children: "Retry"
19
20
  })
@@ -1,6 +1,6 @@
1
- import "./toolbar.40284b41c03c5dcb.css.pnext-asset.js";
1
+ import "./toolbar.19e1ce5224a23acf.css.pnext-asset.js";
2
2
  import { useEffect, useRef, useState } from "../../../../../../../node_modules/preact/hooks/dist/hooks.mjs";
3
- import { iSearch } from "./icons.868385119bf2de28.js";
3
+ import { iSearch } from "./icons.a34176f37808cd66.js";
4
4
  import { readQuery, writeQuery } from "../../utils/paged.18f5872fc5aebe96.js";
5
5
  import { Icon } from "./icon.0874ca2f58f7db14.js";
6
6
  import { Sentinel } from "./sentinel.17cffebfc3103b9f.js";
@@ -40,15 +40,20 @@ export function useFilters(initial) {
40
40
  query: queryOf(applied)
41
41
  };
42
42
  }
43
- export function Search({ value, label, onInput }) {
43
+ /** A search field; `disabled` shows it inert, for a loading page. */
44
+ export function Search({ value, label, onInput, disabled, ...rest }) {
44
45
  return /* @__PURE__ */ _jsxs("label", {
45
46
  class: "search",
47
+ "aria-hidden": disabled || undefined,
46
48
  children: [/* @__PURE__ */ _jsx(Icon, { d: iSearch }), /* @__PURE__ */ _jsx("input", {
49
+ ...rest,
47
50
  type: "search",
48
51
  value,
49
52
  placeholder: label,
50
53
  "aria-label": label,
51
- onInput: (event) => onInput(event.currentTarget.value)
54
+ disabled,
55
+ tabIndex: disabled ? -1 : undefined,
56
+ onInput: (event) => onInput?.(event.currentTarget.value)
52
57
  })]
53
58
  });
54
59
  }
@@ -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.4282affa47415a36.js";
4
+ import { toastError } from "../comps/frame/task-toasts.63f673632770924d.js";
5
5
  import { reasonText } from "./format.6a7d1beaf4d09d9c.js";
6
6
  const FAILED = "Something went wrong";
7
7
  /** A failure no action ran, as the same toast. */
@@ -0,0 +1 @@
1
+ import{g as e}from"./format-b19b8eec331414f4.js";import{$1d as o}from"./shared-init-02aaa49ed4606a76.js";import{$2a as s}from"./shared-init-02aaa49ed4606a76.js";import{$2h as r}from"./shared-init-e8b9eb1e537215ed-2.js";var i="Something went wrong",b=n=>o(i,e(n));function k(n={}){let a=s(),[u,t]=r();return{pending:u,run:async(f,c,p={})=>{let{toast:m=i,refresh:g,leaves:l}={...n,...p};t(f);try{await c()}catch(d){return t(void 0),o(m,e(d)),!1}return l||t(void 0),g&&a.refresh(),!0}}}export{b as a,k as b};
@@ -0,0 +1 @@
1
+ import{$2C as b}from"./shared-init-02aaa49ed4606a76.js";import{$0l as h,$0n as m,$0o as f,$0p as i}from"./shared-init-02aaa49ed4606a76.js";import{$1a as e,$1b as l,$1r as a}from"./shared-init-03e620f936463465.js";import{$2c as u,$2n as g}from"./shared-init-e8b9eb1e537215ed-2.js";var k=(r,o)=>r.replace(/\bid="([^"]+)"/g,`id="$1${o}"`).replace(/url\(#([^)]+)\)/g,`url(#$1${o})`).replace(/href="#([^"]+)"/g,`href="#$1${o}"`);function y({brand:r}){let o=g().replace(/[^a-zA-Z0-9_-]/g,"");return r.svg?e("span",{class:"brand-icon","aria-hidden":"true",dangerouslySetInnerHTML:{__html:k(r.svg,`-${o}`)}}):e("svg",{class:"brand-icon",width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{color:r.dark?`light-dark(${r.color}, ${r.dark})`:r.color},children:e("path",{d:r.icon})})}function B({id:r,info:o,state:s}){let n=o?.name??r;return e("span",{class:`pf ${s}`,children:[o?e(y,{brand:o.brand}):null,n]})}function S({platforms:r,catalog:o,agent:s}){let n=r.length>=m?f:r.length,c=({id:t,state:I},d)=>{let p=e(B,{id:t,info:o.find(L=>L.id===t),state:I});return s?e(b,{class:d,href:"/dash/[org]/agents/[slug]/platforms",params:{slug:s},children:p},t):e("span",{class:d,children:p},t)};return e("span",{class:"pfs",children:[r.slice(0,n).map(t=>c(t)),r.length>n?e(h,{label:`+${r.length-n}`,children:r.map(t=>c(t,"pf-row"))}):null]})}var R={builtin:"built-in",upload:"dashboard",repo:"repository",home:"local"};function w(){return e(i,{tone:"warn",title:"Disabled in this workspace",children:"disabled"})}function E({agent:r}){return e(u,{children:[r.source==="repo"&&r.repo?r.sourceUrl?e(i,{class:"link-pill",href:r.sourceUrl,external:!0,title:`Repository agent, opens ${r.repo}`,children:[e(l,{d:a}),r.repo]}):e(i,{class:"link-pill",title:"Repository agent",children:[e(l,{d:a}),r.repo]}):e(i,{tone:r.source==="builtin"?"acc":void 0,title:r.local&&r.source==="repo"?"Repo agent, a folder in this repository":r.source==="home"?"Local agent, a folder on this machine":r.source!=="upload"?"Ships with Coder":r.local?"Local agent, a folder on this machine":"Dashboard agent, made and edited here",children:r.local&&r.source==="upload"?"local":R[r.source]??r.source}),r.local?r.commit&&e(i,{title:"Last commit of the agent's folder",children:r.commit.slice(0,7)}):e(i,{children:["v",r.currentVersion]}),r.settings?.disabled?e(w,{}):null]})}export{y as a,S as b,w as c,E as d};
@@ -0,0 +1 @@
1
+ "use client";import{a as re}from"./agent-pills-e75e6ac80d515ffc.js";import{a as ce}from"./agent-toggle-b2f2c22e63dedc1f.js";import{$0a as ie}from"./shared-init-6f8c76316a2cd9da.js";import{b as oe,d as b,e as ae,f as q,g as B,h as le}from"./model-options-3a57918eaa4a2a82.js";import{a as se}from"./confirm-1cb4d8df3974f34a.js";import{a as v}from"./field-657227821326b5b3.js";import{b as j}from"./action-977f2355e308d7d0.js";import"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$2B as te,$2a as Z,$2u as ne,$2x as h}from"./shared-init-02aaa49ed4606a76.js";import{$0r as ee}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as H}from"./shared-init-03e620f936463465.js";import{$1L as x,$1a as e,$1e as O}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as L,$2h as p,$2k as X,$2l as Y}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";var ye=["low","medium","high"],we=["read-only","workspace-write","auto"],M=["observe","comment","write"],de=n=>Array.isArray(n)?n.map(String):n&&typeof n=="object"?Object.keys(n):[];function V({name:n,label:y,hint:w,value:d,options:f,blank:k}){let R=d&&!f.includes(d)?[...f,d]:f;return e(v,{label:y,hint:w,group:!0,children:e(h,{name:n,label:y,defaultValue:d??"",options:[["",k],...R.map(u=>[u,u])]})})}function Be({agent:n,catalog:y,models:w,defaults:d,runners:f,connections:k}){let R=Z(),u=te(),[g,U]=p("run"),_=j({refresh:!0}),G=j({leaves:!0}),me=!!_.pending,[Q,z]=p(""),[D,pe]=p(""),[S,ue]=p(),[fe,F]=p(!1),J=Y(null),l=n.settings??{},[$,ge]=p(q(l.engine,l.model)),[I,he]=p(l.connections?"some":""),A=n.definition?.integrations??{},E=Object.keys(A).sort(),T=n.definition,C=T?.engine??d.engine,K=n.source!=="builtin";X(()=>{let t=D.trim().toLowerCase(),a=[];J.current.querySelectorAll(".vpanel").forEach(r=>{let i=!1;r.querySelectorAll(".field").forEach(s=>{let o=[...s.querySelectorAll("input")].map(P=>P.value).join(" "),c=s.closest(".vplatform")?.querySelector("h3")?.textContent??"",m=!t||`${c} ${s.textContent} ${o}`.toLowerCase().includes(t);s.hidden=!m,i||=m}),r.querySelectorAll(".vplatform").forEach(s=>{s.hidden=!s.querySelector(".field:not([hidden])")}),i&&a.push(r.dataset.panel)}),ue(t?a:void 0),t&&a.length&&!a.includes(g)&&U(a[0])},[D]);let ve=()=>void G.run("delete",async()=>{await H.agents.remove(n.id),R.push("/dash/[org]/agents",{params:{org:u}})}).then(t=>t||F(!1)),N=(t,a)=>e("button",{type:"button","aria-current":g===t?"true":void 0,class:S&&!S.includes(t)?"miss":void 0,onClick:()=>U(t),children:a});return e("form",{ref:J,class:"vsettings card frame",onSubmit:async t=>{t.preventDefault();let a=new FormData(t.currentTarget),r=o=>String(a.get(o)??"").trim(),i={};for(let o of["effort","permissions","runner"])r(o)&&(i[o]=r(o));let s=B($);s.engine&&(i.engine=s.engine),s.model&&(i.model=s.model),I&&(i.connections=a.getAll("connection").map(String));for(let o of E){let c=l.integrations?.[o]??{},m={};Array.isArray(c.allowedTools)?m.allowedTools=c.allowedTools:r(`tools:${o}`)&&(m.allowedTools=r(`tools:${o}`));let P=de(A[o]?.events),W=a.getAll(`event:${o}`).map(String);P.length&&W.length<P.length&&(m.allowedEvents=W),Object.keys(m).length&&((i.integrations??={})[o]=m)}n.settings?.disabled&&(i.disabled=!0),z(""),await _.run("save",()=>H.agents.settings(n.id,i))&&z("Saved. New tasks use these settings.")},children:[e("nav",{class:"tabs vertical","aria-label":"Settings sections",children:[e("p",{class:"tabs-label",children:"Runtime"}),N("run","How it runs"),E.length?N("platforms","Platforms"):null,e("p",{class:"tabs-label",children:"Agent"}),N("manage","Manage")]}),e("div",{class:"vbody",children:[e("div",{class:"vsearch",children:[e(ne,{value:D,label:"Search settings",onInput:pe}),S&&!S.length?e("span",{class:"muted",children:"No setting matches."}):null]}),e("section",{class:"vpanel","data-panel":"run",hidden:g!=="run",children:[e("h2",{children:"How it runs"}),e("p",{class:"muted",children:"Anything left on Default follows the agent's own definition."}),e("div",{class:"fields",children:[e(v,{label:"Model",hint:"picking a model picks its engine",group:!0,children:e(h,{label:"Model",value:$,options:[...ae(w,b([oe[C]??C,T?.model??d.engines[C]?.model].filter(Boolean).join(" \xB7 "))),...!l.engine&&l.model?[[q(void 0,l.model),l.model]]:[]],headings:le(w),onChange:ge})}),e(V,{name:"effort",label:"Effort",value:l.effort,options:ye,blank:b(T?.effort??d.engines[B($).engine??C]?.effort)}),e(V,{name:"permissions",label:"Permissions",hint:"what the runner may change in the checkout",value:l.permissions,options:we,blank:b(T?.permissions??"read-only")}),f.length>1?e(v,{label:"Runs on",group:!0,children:e(h,{name:"runner",label:"Runs on",defaultValue:l.runner??"",options:f})}):null,e(v,{label:"Connections",hint:"which workspace connections its tasks can use",group:!0,children:e(h,{label:"Connections",value:I,options:[["","Every workspace connection"],["some","Only the ones picked"]],onChange:he})}),I?e("div",{class:"field picked",children:[e("span",{children:["Picked connections ",e("small",{children:"tasks can use only these"})]}),k.length?e("div",{class:"checks",children:k.map(t=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:"connection",value:t.id,defaultChecked:l.connections?.includes(t.id)}),t.name]},t.id))}):e("span",{class:"muted",children:["This workspace has no connections yet."," ",e(O,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:u,tab:"connections"},children:"Add one in Settings"})]})]}):null]})]}),E.length?e("section",{class:"vpanel","data-panel":"platforms",hidden:g!=="platforms",children:[e("h2",{children:"Platforms"}),e("p",{class:"muted",children:["Overrides for this workspace: turn events off or lower access."," ",ie(n)?e(L,{children:["To add an event or a platform,"," ",e(O,{href:"/dash/[org]/agents/[slug]/edit",params:{org:u,slug:n.id},search:{section:"platforms"},children:["edit ",n.name]}),"."]}):n.source==="repo"?e(L,{children:[n.name," comes from ",n.repo??"a repository","; add an event or a platform in its"," ",n.sourceUrl?e("a",{href:n.sourceUrl,target:"_blank",rel:"noreferrer",children:"agent.json"}):"agent.json"," ","there."]}):e(L,{children:[n.name," is built in, so its events and platforms ship with Coder. To listen anywhere else,"," ",e(O,{href:"/dash/[org]/agents/new",params:{org:u},children:"create your own agent"}),"."]})]}),E.map(t=>{let a=l.integrations?.[t]??{},r=de(A[t]?.events),i=a.allowedEvents,s=A[t]?.tools,o=y.find(c=>c.id===t);return e("div",{class:"vplatform",children:[e("h3",{children:[o?e(re,{brand:o.brand}):null,o?.name??t]}),Array.isArray(a.allowedTools)?e("div",{class:"field",children:[e("span",{children:"Platform access"}),e(ee,{values:a.allowedTools})]}):e(V,{name:`tools:${t}`,label:"Platform access",hint:`observe reads, comment also replies, write also pushes and merges; at most ${typeof s=="string"?s:s?"its tools":"observe"}, as the definition grants`,value:typeof a.allowedTools=="string"?a.allowedTools:void 0,options:typeof s=="string"?M.slice(0,M.indexOf(s)+1):s?M:M.slice(0,1),blank:b(typeof s=="string"?s:s?"custom":"observe")}),r.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:r.map(c=>e("label",{class:"check",children:[e("input",{type:"checkbox",name:`event:${t}`,value:c,defaultChecked:!i||i.includes(c)}),c]},c))})]}):null]},t)})]}):null,e("section",{class:"vpanel","data-panel":"manage",hidden:g!=="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(ce,{agent:n})]}),e("div",{class:"field row-action",children:[e("span",{children:["Delete agent",e("small",{children:K?"removes it and every version; its tasks and platform apps stay":`${n.name} is built in and cannot be deleted; disable it above instead`})]}),e(x,{variant:"secondary",danger:!0,disabled:!K,onClick:()=>F(!0),children:"Delete agent"})]})]}),g==="manage"?null:e("div",{class:"form-actions save",children:[Q?e("span",{class:"flash",role:"status",children:Q}):null,e(x,{type:"submit",loading:me,children:"Save"})]})]}),fe?e(se,{open:!0,title:`Delete ${n.name}?`,body:"It stops answering on every platform. This cannot be undone.",confirmLabel:"Delete agent",busy:!!G.pending,onClose:()=>F(!1),onConfirm:ve}):null]})}export{Be as AgentSettingsForm};
@@ -0,0 +1 @@
1
+ import{b}from"./action-977f2355e308d7d0.js";import{$0c as r}from"./shared-init-03e620f936463465.js";import{$1L as c,$1a as s}from"./shared-init-03e620f936463465.js";import{$2h as g}from"./shared-init-e8b9eb1e537215ed-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};
@@ -0,0 +1 @@
1
+ "use client";import{a as R}from"./tail-ebdefca4d5c23266.js";import{a as k,b as N,d as P}from"./agent-pills-e75e6ac80d515ffc.js";import{f as c}from"./format-b19b8eec331414f4.js";import{$2B as a,$2s as A,$2t as w,$2u as v,$2v as C,$2w as I}from"./shared-init-02aaa49ed4606a76.js";import{$0c as y,$0f as b}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as d}from"./shared-init-03e620f936463465.js";import{$1M as h,$1a as t,$1e as f,$1f as u}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as g}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";function q(){return t(h,{href:"/dash/[org]/agents/new",params:{org:a()},leftIcon:u,children:"New agent"})}function O({agent:r,catalog:s}){let o=a();return t("li",{class:"agent-card",children:[t("div",{class:"bc-head",children:[t("span",{class:"mark",children:c(r.name)}),t("div",{class:"grow",children:[t("h3",{children:t(f,{class:"cover",href:"/dash/[org]/agents/[slug]",params:{org:o,slug:r.id},children:r.name})}),t("span",{class:"pills",children:t(P,{agent:r})})]})]}),t("div",{class:"lead-clamp",children:t("span",{children:r.description??"No description yet."})}),r.platforms.length?t(N,{platforms:r.platforms,catalog:s,agent:r.id}):t("span",{class:"pfs muted",children:"No handles yet"})]})}var D=[["","All agents"],["dashboard","Dashboard agents"],["repository","Repository agents"],["builtin","Built-in"]];function j({first:r,limit:s,filters:o,catalog:i,head:L,children:B}){let{values:l,set:m,query:K}=w(o),n=b({name:"agents",fetchPage:e=>d.agents.list({cursor:e,limit:s,...l}),query:K,first:r,initial:A(o)});return t(g,{children:[t(C,{head:L,action:t(q,{}),children:[t(v,{value:l.q,label:"Search agents",onInput:e=>m("q",e,250)}),t(I,{name:"agents",facets:[{key:"platform",label:"Platform",options:i.map(e=>[e.id,e.name]),icon:e=>{let p=i.find(S=>S.id===e);return p?t(k,{brand:p.brand}):void 0}},{key:"type",label:"Source",options:D}],values:l,onChange:m})]}),B,n.rows.length?t("ul",{class:"agent-grid","aria-busy":n.stale,children:n.rows.map(e=>t(O,{agent:e,catalog:i},e.id))}):n.stale?null:t(y,{title:"No agents match",children:"Try another search or filter."}),t(R,{noun:"agents",...n})]})}export{j as AgentsGrid,D as KINDS};
@@ -0,0 +1 @@
1
+ import{$2B as a,$2z as c}from"./shared-init-02aaa49ed4606a76.js";import{$1M as i,$1a as r}from"./shared-init-03e620f936463465.js";import{$2j as m}from"./shared-init-e8b9eb1e537215ed-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};
@@ -0,0 +1 @@
1
+ import{$2n as C,$2y as H}from"./shared-init-02aaa49ed4606a76.js";import{$1a as i}from"./shared-init-03e620f936463465.js";import{$2c as E,$2h as l,$2k as m,$2l as g,$2n as x}from"./shared-init-e8b9eb1e537215ed-2.js";var R=50;function F({label:M,name:S,class:D,options:v,placeholder:I,value:f,onChange:b,onOpen:w}){let[O,s]=l(!1),[T,a]=l(!1),[n,c]=l(0),[$,A]=l(""),k=g(null),u=g(null),p=x(),y=T?f.trim().toLowerCase():"",r=(y?v.filter(e=>e.toLowerCase().includes(y)):v).slice(0,R),o=O&&r.length>0,L=e=>{let t=r[e];t&&b(t),s(!1),a(!1)};return m(()=>{if(!o)return;u.current?.showPopover();let e=()=>{let t=k.current?.getBoundingClientRect(),d=u.current;if(!t||!d)return;let h=innerHeight-t.bottom-12,P=h<Math.min(d.scrollHeight,240)&&t.top>h;A(`left:${Math.round(Math.min(t.left,innerWidth-d.offsetWidth-8))}px;min-width:${Math.round(t.width)}px;`+(P?`bottom:${Math.round(innerHeight-t.top+4)}px;max-height:${Math.round(Math.min(360,t.top-12))}px`:`top:${Math.round(t.bottom+4)}px;max-height:${Math.round(Math.min(360,h))}px`))};return e(),addEventListener("resize",e),addEventListener("scroll",e,!0),()=>{removeEventListener("resize",e),removeEventListener("scroll",e,!0)}},[o,r.length]),m(()=>{o&&u.current?.querySelector(`[data-index="${n}"]`)?.scrollIntoView({block:"nearest"})},[o,n,$]),i(E,{children:[i("input",{ref:k,name:S,class:D,role:"combobox","aria-label":M,"aria-autocomplete":"list","aria-expanded":o,"aria-controls":`${p}-list`,"aria-activedescendant":o?`${p}-${n}`:void 0,autocomplete:"off",placeholder:I,value:f,onInput:e=>{b(e.currentTarget.value),a(!0),c(0),s(!0)},onFocus:()=>{a(!1),s(!0),w?.()},onClick:()=>{s(!0),w?.()},onBlur:()=>{s(!1),a(!1)},onKeyDown:e=>{if(o){if(e.key==="ArrowDown")c((n+1)%r.length);else if(e.key==="ArrowUp")c((n-1+r.length)%r.length);else if(e.key==="Enter")L(n);else if(e.key==="Escape")s(!1);else return;e.preventDefault()}}}),o?i(H,{id:p,label:M,listRef:u,place:$,children:r.map((e,t)=>i(C,{id:`${p}-${t}`,"data-index":t,active:t===n,selected:e===f,check:!0,onPointerMove:()=>t!==n&&c(t),onClick:()=>L(t),children:e},e))}):null]})}export{F as a};
@@ -0,0 +1 @@
1
+ import{$1a as pe,$1b as Ye,$1c as et,$1d as tt,$1f as nt}from"./shared-init-6f8c76316a2cd9da.js";import{j as Qe}from"./task-6ae2bb4f1b384140.js";import{a as Xe}from"./connect-repositories-995d55b3f166337d.js";import{a as Ze,b as ue,d as de,f as V,g as _e}from"./model-options-3a57918eaa4a2a82.js";import{a as ot}from"./notice-cd32ca98bbc10844.js";import{a as rt}from"./back-1d1b062f0e1b29b7.js";import{a as D,b as Ve}from"./action-977f2355e308d7d0.js";import{a as De,g as A}from"./format-b19b8eec331414f4.js";import{$1e as Je}from"./shared-init-02aaa49ed4606a76.js";import{$2B as Ge,$2a as qe,$2l as ze,$2m as J,$2n as Ke,$2o as S,$2p as We,$2q as Ue,$2r as ce,$2x as q}from"./shared-init-02aaa49ed4606a76.js";import{$0d as je}from"./shared-init-02aaa49ed4606a76.js";import{$0c as g}from"./shared-init-03e620f936463465.js";import{$1B as Fe,$1E as Ie,$1K as Be,$1L as le,$1N as He,$1a as t,$1b as G,$1k as Te,$1t as Pe,$1z as ae}from"./shared-init-03e620f936463465.js";import{$2c as h,$2h as f,$2j as H,$2k as Ne,$2l as M,$2n as Ae}from"./shared-init-e8b9eb1e537215ed-2.js";var Mt=[["","Default"],["low","Low"],["medium","Medium"],["high","High"]],Ct=[["","Default"],["read-only","Read-only"],["workspace-write","Write"],["auto","Auto"]],X="coder:draft",Z="+connect",st="+refresh",fe="+other",me="+pick",ge="+clone",Lt=/^\/(review|flow)(?:\s+(\S+))?\s*([\s\S]*)$/,Rt=(l,s,i)=>[["",l],...[...new Set([s,...i])].filter(Boolean).map(c=>[c,c])],it=(l,s,i)=>{let c=[...l.recent,...s].map(d=>d.path);return[["","No folder"],...[...new Set([...c,i])].filter(d=>d&&d!==l.current.path).map(d=>[d,Qe(d)]),l.picker?[me,"Choose\u2026"]:[fe,"Type a path\u2026"],[ge,"Repository\u2026"]]};function $t(l,s){let i=[["",[["",`Default \xB7 ${[ue[s.engine]??s.engine,s.engines[s.engine]?.model].filter(Boolean).join(" ")}`]]]];for(let c of Ze)l[c]?.length&&i.push([ue[c]??c,[[V(c,""),de(s.engines[c]?.model)],...l[c].map(d=>[V(c,d),d])]]);return i}var at=(l,s)=>{let i=l.find(([c])=>c&&c===s)?.[1];return[["",de(i?.toLowerCase())],...l.slice(1)]};function Ot(l){let s=l.currentTarget,i=document.querySelector(`[popovertarget="${s.id}"]`)?.getBoundingClientRect();if(l.newState!=="open"||!i)return;let c=Math.round(i.bottom+6);s.style.top=`${c}px`,s.style.right=`${Math.round(document.documentElement.clientWidth-i.right)}px`,s.style.maxHeight=`${Math.max(160,window.innerHeight-c-16)}px`}function xt(l){return Object.fromEntries(l.split(/\s+/).filter(Boolean).map(s=>{let i=s.indexOf("="),c=i<0?"true":s.slice(i+1);try{return[i<0?s:s.slice(0,i),JSON.parse(c)]}catch{return[s.slice(0,i),c]}}))}function St({id:l,entries:s,active:i,selected:c,onActive:d}){return t(h,{children:s.flatMap((m,b)=>[m.head?t(S,{role:"presentation",children:m.head},`h:${m.key}`):null,t(Ke,{id:`${l}-${b}`,active:b===i,selected:c===void 0?b===i:m.key===c,check:c!==void 0,end:m.hint?t("small",{children:m.hint}):null,onMouseDown:y=>y.preventDefault(),onPointerMove:()=>b!==i&&d(b),onClick:m.pick,children:m.label},m.key)])})}var Nt=(l,s,i,c)=>{let d={ArrowDown:1,ArrowUp:-1}[l.key];return!d||!i?!1:(l.preventDefault(),c((s+d+i)%i),!0)};function At({reason:l,label:s}){return t(ot,{tone:"warning",slim:!0,children:[t(G,{d:Ie}),t("span",{class:"grow",children:l||"Tasks need a model credential to run."}),t(rt,{variant:"outline",size:"sm",label:s,children:"Add credential"})]})}function Dt({initial:l,data:s,defaults:i,missing:c,connectLabel:d,tz:m}){let b=qe(),y=Ge(),[r,he]=f(()=>et({...Ye,...l},s)),[u,_]=f(s),[j,Q]=f(),[Y,be]=f(!1),[we,lt]=f(),[ct,ut]=f(),[C,ee]=f(""),[dt,L]=f(!1),[pt,z]=f(0),[te,ft]=f([]),[R,T]=f(""),[N,ye]=f(!1),ke=M(null),w=M(null),ve=M(null),Ee=M(null),k=Ae();H(()=>void(R&&Ee.current?.focus()),[R]),H(()=>{let e=localStorage.getItem(X);e&&w.current&&!w.current.value&&(w.current.value=e),ee(w.current?.value??""),w.current?.focus(),L(!0)},[]);let Me=C.startsWith("/");H(()=>{let e=r.repo;!Me||!e||j?.repo===e||(Q({repo:e}),g.pulls.list(e).then(n=>Q({repo:e,items:n})).catch(n=>{Q({repo:e,items:[]}),D(n)}),g.flows.list(e).then(n=>_(a=>({...a,flows:n.map(o=>o.name)}))).catch(()=>{}))},[Me,r.repo]);let ne=M(!!s.repos),Ce=()=>{ne.current||(ne.current=!0,g.repositories.list().catch(e=>(console.error("coder dashboard: repositories",e),[])).then(e=>_(n=>({...n,repos:e.map(a=>a.repo)}))))},Le=Ve(),Re=!!Le.pending,mt=()=>{ne.current=!0,Le.run("refresh",async()=>{let e=await g.repositories.refresh();_(n=>({...n,repos:e.map(a=>a.repo)}))})},$e=!r.repo&&/^\/review\s/.test(C);H(()=>void($e&&Ce()),[$e]);let P=(e,n)=>{if(n===fe)return T("path");if(n===ge)return T("url");if(n===me)return void ht();if(n===st)return Re?void 0:mt();if(n===Z)return void Xe(`/dash/${y}/tasks`).catch(D);$({[e]:n}),(e==="repo"||e==="cwd")&&w.current?.focus({preventScroll:!0})},$=e=>{let n={...r,...e};he(n),document.cookie=`compose=${encodeURIComponent(JSON.stringify(n))}; path=/; max-age=31536000; samesite=lax`},oe=e=>{if(!e.ok)return D(e.detail);T(""),ft(n=>[...n.filter(a=>a.path!==e.folder.path),e.folder]),P("cwd",e.folder.path===u.folders?.current.path?"":e.folder.path)},gt=async e=>{e.trim()&&oe(await g.folders.check(e.trim()).catch(n=>({ok:!1,detail:A(n)})))},ht=async()=>{document.body.style.cursor="progress";let e=await g.folders.pick().catch(n=>({ok:!1,detail:A(n)}));document.body.style.cursor="",(e.ok||e.detail)&&oe(e)},bt=async e=>{if(!e.trim())return;ye(!0),document.body.style.cursor="progress";let n=await g.folders.clone(e.trim()).catch(a=>({ok:!1,detail:A(a)}));document.body.style.cursor="",ye(!1),oe(n)},re=e=>{let n=w.current;n.value=e,localStorage.setItem(X,e),ee(e),z(0),L(!1),n.focus(),n.setSelectionRange(e.length,e.length)},K=async e=>{let n=w.current?.value.trim()??"";if(Y||N||u.agentsOff||!(n||e))return;let[,a,o="",O=""]=Lt.exec(n)??[];if(!e&&a&&!(a==="flow"?o:/^#?\d+$/.test(o)))return void L(!1);let v=e??(a==="review"?Number(o.replace("#","")):void 0);if(v&&!r.repo)return D("Pick a repository first.");let{agent:I,engine:U,model:B,effort:x,permissions:se,runner:yt}=r,[kt,vt]=u.folders?["",r.cwd]:[r.repo,""],ie=Object.fromEntries(Object.entries({repo:kt,cwd:vt,engine:U,model:B,effort:x,permissions:se,runner:yt}).filter(([,E])=>E));be(!0);try{let E=v?await g.review({...ie,repo:r.repo,pr:v}):a==="flow"?await g.flows.run(o,{...ie,agent:I,args:xt(O)}):await g.tasks.create({...ie,agent:I,prompt:n});(!e||a)&&localStorage.removeItem(X),Je(E.task.id,"queued",n||`Review of #${v}`),b.push("/dash/[org]/tasks/[id]",{params:{org:y,id:E.task.id}})}catch(E){be(!1),E.status===409?lt(A(E)):D(E)}},p=(()=>{let e=/^\/(\S*)$/.exec(C)?.[1]?.toLowerCase();if(e!==void 0)return{label:"Commands",entries:[{key:"review",label:"/review",hint:"Review a pull request",pick:()=>re("/review ")},...u.flows.map(o=>({key:`flow ${o}`,label:`/flow ${o}`,hint:`Run the ${o} flow`,pick:()=>re(`/flow ${o} `)}))].filter(o=>o.key.includes(e)),note:"No command matches."};let n=/^\/flow\s+(\S*)$/.exec(C)?.[1];if(n!==void 0)return{label:"Flows",entries:u.flows.filter(o=>o.includes(n)).map(o=>({key:o,label:o,hint:`Run the ${o} flow`,pick:()=>o===n?void K():re(`/flow ${o} `)})),note:"No flow matches."};let a=/^\/review\s+#?(\S*)$/.exec(C)?.[1];if(a!==void 0)return r.repo?j?.items?{label:`Pull requests in ${r.repo}`,entries:[...j.items.filter(o=>String(o.number).startsWith(a)||o.title.toLowerCase().includes(a.toLowerCase())).sort((o,O)=>+(String(O.number)===a)-+(String(o.number)===a)).map(o=>({key:`#${o.number}`,label:`#${o.number} ${o.title}`,hint:[o.author,o.createdAt?De(Date.parse(o.createdAt),m):""].filter(Boolean).join(" \xB7 "),pick:()=>void K(o.number)})),...a?[]:[{key:"",label:r.repo,hint:"Pick another repository",pick:()=>$({repo:""})}]],note:j.items.length?"No open pull request matches.":"No open pull requests."}:{label:`Pull requests in ${r.repo}`,entries:[],note:"loading"}:{label:"Pick a repository",entries:[...(u.repos??[]).filter(o=>o.includes(a)).map(o=>({key:o,label:o,pick:()=>P("repo",o)})),{key:Z,label:d,pick:()=>P("repo",Z)}]}})(),F=!!(p&&!dt),W=p?Math.min(pt,Math.max(0,p.entries.length-1)):0;Ne(()=>{let e=ve.current;if(!e)return;if(!F)return void(e.matches(":popover-open")&&e.hidePopover());let n=()=>{let a=ke.current.getBoundingClientRect();e.style.top=`${Math.round(a.bottom+6)}px`,e.style.left=`${Math.round(a.left)}px`,e.style.width=`${Math.round(Math.min(a.width,460))}px`};return n(),e.matches(":popover-open")||e.showPopover(),addEventListener("scroll",n,!0),addEventListener("resize",n),()=>{removeEventListener("scroll",n,!0),removeEventListener("resize",n)}},[F,C]);let wt=r.engine||i.engine,Oe=i.engines[wt]??{},xe=u.agents.some(([e])=>e===r.agent)?u.agents:[...u.agents,[r.agent,r.agent]],Se=[r.agent!==u.defaultAgent&&r.agent,r.engine!==i.engine&&r.engine,...["model","effort","permissions"].map(e=>r[e]!==Oe[e]&&r[e]),r.runner&&(u.runners.find(([e])=>e===r.runner)?.[1]??r.runner)].filter(Boolean).join(" \xB7 ");return t(h,{children:[t("form",{ref:ke,class:"composer",onSubmit:e=>{e.preventDefault(),K()},children:[t("textarea",{ref:w,name:"prompt",rows:1,role:"combobox","aria-label":"What should the agent do?","aria-autocomplete":"list","aria-expanded":F,"aria-controls":`${k}-slash`,"aria-activedescendant":F&&p?.entries.length?`${k}-slash-${W}`:void 0,placeholder:pe,autofocus:!0,onFocus:()=>L(!1),onBlur:()=>L(!0),onInput:e=>{let n=e.currentTarget.value;localStorage.setItem(X,n),ee(n),z(0),L(!1)},onKeyDown:e=>{if(!e.isComposing){if(F&&p){if(Nt(e,W,p.entries.length,z))return;if(e.key==="Escape")return e.preventDefault(),L(!0);if(p.entries.length&&(e.key==="Enter"&&!e.shiftKey||e.key==="Tab"))return e.preventDefault(),p.entries[W].pick()}e.key!=="Enter"||e.shiftKey||(e.preventDefault(),K())}}}),t("div",{class:"composer-line",children:[u.folders?R?t(h,{children:[t("input",{class:"folder-path","aria-label":R==="url"?"Repository URL":"Folder path",ref:Ee,placeholder:R==="url"?"https://github.com/owner/repo":"Absolute path or ~/\u2026",readOnly:N,"aria-busy":N,onKeyDown:e=>{if(N)return e.preventDefault();if(e.key==="Escape")return e.preventDefault(),T("");e.key!=="Enter"||e.isComposing||(e.preventDefault(),(R==="url"?bt:gt)(e.currentTarget.value))},onBlur:e=>!N&&!e.currentTarget.value.trim()&&T("")}),N?t("span",{class:"folder-busy",children:"Cloning\u2026"}):null]}):t("span",{class:"folder",title:r.cwd||u.folders.current.path,children:t(q,{label:"Folder",value:r.cwd,options:it(u.folders,te,r.cwd),subs:Object.fromEntries(it(u.folders,te,r.cwd).flatMap(([e])=>e&&e!==fe&&e!==me&&e!==ge?[[e,te.find(n=>n.path===e)?.url??e]]:[])),onChange:e=>P("cwd",e)})}):t(q,{label:"Repository",value:r.repo,options:[...Rt("No repository",r.repo,u.repos??[]),[st,Re?"Refreshing repositories\u2026":"Refresh repositories"],[Z,d]],onChange:e=>P("repo",e),onFocus:Ce}),t("button",{type:"button",class:"quiet",popovertarget:`${k}-settings`,"aria-label":"Run options",title:"Model, effort, permissions and more",children:[t(G,{d:Be}),Se?t("span",{children:Se}):null]}),t(le,{type:"submit",size:"sm",class:"send",leftIcon:Fe,disabled:!C.trim()||u.agentsOff,loading:Y,"aria-label":Y?"Starting task":"Start task",title:"Start task (Enter)"})]}),u.agentsOff?t("small",{class:"folder-hint",children:"Every agent here is disabled. Enable one in its settings to start tasks."}):null,R==="url"?t("small",{class:"folder-hint",children:"Uses this machine's git logins"}):null,t(ce,{id:`${k}-settings`,class:"composer-settings",popover:"auto",onBeforeToggle:Ot,children:[t(S,{children:"Model"}),t("div",{role:"group","aria-label":"Model",class:"pop-radios",children:[$t(u.models,i).map(([e,n])=>t(h,{children:[e?t("p",{class:"pop-group",children:e}):null,n.map(([a,o])=>{let O=a===V(r.engine,r.model),v=_e(a),I=at(Mt,i.engines[v.engine||i.engine]?.effort),U=O&&r.effort?I.find(([x])=>x===r.effort)?.[1]:void 0,B=ct===a;return t(h,{children:[t(Ue,{children:[t(J,{on:O,onPick:()=>{$({...v,effort:""}),document.getElementById(`${k}-settings`)?.hidePopover()},end:U?t("small",{children:U.toLowerCase()}):null,children:o}),t("button",{type:"button",class:"pop-chev","data-keep":!0,"aria-label":`Effort for ${o}`,"aria-expanded":B,onClick:()=>ut(B?void 0:a),children:t(G,{d:Te})})]}),B?t("div",{role:"group","aria-label":`Effort for ${o}`,class:"pop-sub",children:I.map(([x,se])=>t(J,{on:O&&r.effort===x,onPick:()=>{$({...v,effort:x}),document.getElementById(`${k}-settings`)?.hidePopover()},children:se},x))}):null]},a)})]},e)),t(ze,{class:"add-models",href:"/dash/[org]/settings/[tab]",params:{org:y,tab:"models"},icon:ae,children:"Add models"})]}),t(S,{children:"Permissions"}),t("div",{role:"group","aria-label":"Permissions",children:at(Ct,Oe.permissions??"auto").map(([e,n])=>t(J,{on:r.permissions===e,onPick:()=>$({permissions:e}),children:n},e))}),xe.length>1?t(h,{children:[t(S,{children:"Agent"}),t(q,{label:"Agent",value:r.agent,options:xe,onChange:e=>$({agent:e})})]}):null,u.runners.length>1?t(h,{children:[t(S,{children:"Runs on"}),t(q,{label:"Runs on",options:u.runners,value:r.runner,onChange:e=>$({runner:e})})]}):null]}),t(ce,{panelRef:ve,id:`${k}-slash`,class:"composer-slash",popover:"manual",role:"listbox","aria-label":p?.label??"Commands",children:p?t(h,{children:[t(S,{children:p.label}),t(St,{id:`${k}-slash`,entries:p.entries,active:W,onActive:z}),p.note==="loading"?t(je,{label:"Loading pull requests",inline:!0}):p.note&&!p.entries.length?t(We,{children:p.note}):null]}):null})]}),we===void 0||c?null:t(At,{reason:we})]})}function Tt(){return t("div",{class:"composer","aria-hidden":"true",children:[t("textarea",{rows:1,disabled:!0,tabIndex:-1,placeholder:pe}),t("div",{class:"composer-line"})]})}function an({agent:l}){let s=M(null),[i,c]=f(),[d,m]=f(""),[b,y]=f(!1),r=M();return t(h,{children:[t(le,{class:"new-task",leftIcon:ae,onClick:()=>{y(!0),s.current?.showModal(),r.current??=nt(g).then(c,u=>m(A(u)))},children:"New task"}),t("dialog",{ref:s,class:"compose-dialog","aria-label":l?`New task for ${l}`:"New task",onClose:()=>y(!1),onClick:u=>u.target===u.currentTarget&&s.current?.close(),children:[t("header",{children:[t("h2",{children:"New task"}),l?t("span",{class:"sub",children:l}):null,t(He,{icon:Pe,label:"Close",onClick:()=>s.current?.close()})]}),b?i?t(Dt,{...i,initial:{...tt(document.cookie),...l?{agent:l}:{}},tz:Intl.DateTimeFormat().resolvedOptions().timeZone}):d?t("p",{class:"flash err",role:"alert",children:d}):t(Tt,{}):null]})]})}export{At as a,Dt as b,Tt as c,an as d};
@@ -0,0 +1 @@
1
+ "use client";import{a,b,c,d}from"./composer-6bf94d1087a6e6a6.js";import"./shared-init-6f8c76316a2cd9da.js";import"./task-6ae2bb4f1b384140.js";import"./defaults-dcc0eccad4e8585b.js";import"./shared-init-6f8c76316a2cd9da.js";import"./connect-repositories-995d55b3f166337d.js";import"./model-options-3a57918eaa4a2a82.js";import"./notice-cd32ca98bbc10844.js";import"./back-1d1b062f0e1b29b7.js";import"./action-977f2355e308d7d0.js";import"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import"./shared-init-03e620f936463465.js";import"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";export{b as Composer,c as LoadingComposer,a as NeedsCredential,d as NewTaskButton};
@@ -0,0 +1 @@
1
+ import{$3a as r}from"./shared-init-02aaa49ed4606a76.js";import{$1L as i,$1a as o,$1v as e}from"./shared-init-03e620f936463465.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};
@@ -0,0 +1 @@
1
+ "use client";import{a as c}from"./notice-cd32ca98bbc10844.js";import{b as l}from"./action-977f2355e308d7d0.js";import"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import{$2B as a}from"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as i}from"./shared-init-03e620f936463465.js";import{$1L as s,$1a as o,$1b as e,$1z as r}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";function C({apps:d}){let m=a(),t=l({toast:"Not installed",leaves:!0}),g=({id:n,agent:p})=>void t.run(n,async()=>{let u=`/dash/${m}/agents/${encodeURIComponent(p)}/platforms`;location.href=(await i.apps.install(n,u)).url});return o(c,{children:[o(e,{d:r}),o("span",{class:"grow",children:"Add the built-in agent to your repositories and channels."}),d.map(n=>o(s,{variant:"outline",size:"sm",disabled:!!t.pending,loading:t.pending===n.id,onClick:()=>g(n),children:n.label},n.id))]})}export{C as ConnectApps};
@@ -1 +1 @@
1
- import{$2c as i}from"./shared-init-a7f2e71a718bc285.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-03e620f936463465.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};
@@ -0,0 +1 @@
1
+ "use client";import{a as O}from"./agent-pills-e75e6ac80d515ffc.js";import{a as me}from"./segmented-24da438244eedc8f.js";import{a as pe}from"./notice-cd32ca98bbc10844.js";import{f as fe}from"./list-a0cc9bdb05fc71d4.js";import"./confirm-1cb4d8df3974f34a.js";import{a as k}from"./field-657227821326b5b3.js";import{a as ue,b as $}from"./action-977f2355e308d7d0.js";import{g as Z}from"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$2B as de,$2k as ce,$2u as le,$2x as M}from"./shared-init-02aaa49ed4606a76.js";import{$0a as oe,$0b as ae,$0c as re,$0d as se,$0e as ie,$0p as F}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as I}from"./shared-init-03e620f936463465.js";import{$1E as ne,$1L as R,$1M as te,$1a as e,$1b as ee}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as B,$2h as m,$2j as X,$2l as L}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";var Oe=o=>(o.match(/"[^"]*"|'[^']*'|(?:\{[^}]+\}|[^\s])+/g)??[]).map(s=>s.replace(/^(["'])(.*)\1$/,"$2")),N=o=>/^https?:\/\//.test(o.trim()),ge=o=>o.url??[o.command,...(o.args??[]).map(s=>s.replace(/\{((?:runtime|package):[^}]+)\}/g,(r,i)=>`{${o.argumentInputs?.find(c=>c.name===i)?.label??i}}`))].join(" ").trim(),he=o=>o.split("/")[0].split(".").reverse().join("."),ve=o=>[...o?.headers??[],...o?.env??[]].filter(s=>s.secret),ye=o=>o.map(s=>s.name).join(", "),Ne=[["platform","Platform"],["mcp","MCP server"]],De={platform:"Sign in with OAuth, and tasks use the account through Coder\u2019s own tools.",mcp:"Search known servers, or paste a URL or command."},ze=["observe","Read only"],be=["write","Read and write"],He=[["me","Just me"],["","Workspace"]],ke={ok:{tone:"ok",label:"connected"},authorize:{tone:"warn",label:"not signed in"},reconnect:{tone:"warn",label:"reconnect needed"}};function Ke({row:o,catalog:s}){let r=s.find(c=>c.id===o.provider),i=r?r.name:o.env?o.env:o.url?URL.canParse(o.url)?new URL(o.url).host:o.url:o.command;return e("span",{class:"reach",children:[r?e(O,{brand:r.brand}):null,[i,o.account].filter(Boolean).join(" \xB7 ")]})}function q({kind:o,list:s}){return e(B,{children:s.map(r=>e(k,{label:e("span",{class:"mono",children:r.label??r.name}),hint:r.description??(r.required?"required":"optional"),children:e("input",{name:`${o}:${r.name}`,placeholder:r.placeholder,defaultValue:o==="arg"?r.placeholder:void 0,autocomplete:"off",required:r.required})},r.name))})}function qe({local:o,admin:s,value:r,onChange:i}){return o||!s?null:e(k,{label:"Scope",group:!0,children:e(M,{label:"Scope",options:He,value:r,onChange:i})})}function Ce({value:o,onChange:s,write:r}){return e(k,{label:"Access",group:!0,children:e(M,{label:"Access",options:r?[be]:[ze,be],value:o,onChange:s})})}function we({local:o,admin:s,onAdded:r}){let i=$({leaves:!0}),[c,a]=m(s||o?"":"me"),p=(f,u)=>void i.run("add",async()=>{let{authorize:g,...v}=await I.connections.add({...f,...c?{owner:"me"}:{}}).catch(t=>{throw u?.(t),t});if(g)return location.assign(g);r(v)}),d=e(qe,{local:o,admin:s,value:c,onChange:a});return{busy:!!i.pending,add:p,who:d}}function je({catalog:o,rows:s,...r}){let i=de(),c=o.filter(l=>l.personal),[a,p]=m(c[0]?.id??""),[d,f]=m("observe"),{busy:u,add:g,who:v}=we(r),t=c.find(l=>l.id===a),y=s.find(l=>l.provider===a&&l.mine);return e("form",{class:"add-form",method:"post",onSubmit:l=>{l.preventDefault(),t?.connectable&&g({name:t.name,provider:t.id,access:d})},children:[e("div",{class:"add-grid",children:[e(k,{label:"Platform",group:!0,children:e(M,{label:"Platform",options:c.map(l=>[l.id,l.name]),icons:Object.fromEntries(c.map(l=>[l.id,e(O,{brand:l.brand})])),value:a,onChange:p})}),e(Ce,{value:d,onChange:f}),v]}),t&&!t.connectable?e(pe,{tone:"warning",slim:!0,children:[e(ee,{d:ne}),e("span",{class:"grow",children:["This server has no shared ",t.name," app yet.",r.operator?null:" Ask whoever runs this server to add one."]}),r.operator?e(te,{variant:"outline",size:"sm",href:"/dash/[org]/operator",params:{org:i},children:"Set it up"}):null]}):null,e("div",{class:"add-foot",children:[e("p",{class:"muted grow",children:t?y&&t.connectable?`Connected as ${y.account??"you"}.`:null:"No platform here offers sign-in yet."}),e(R,{type:"submit",disabled:!t?.connectable,loading:u,children:[t?e(O,{brand:t.brand}):null,"Sign in to ",t?.name??"a platform"]})]})]})}function Ue(o){let[s,r]=m(""),[i,c]=m(),[a,p]=m(),[d,f]=m(""),[u,g]=m(""),[v,t]=m(!1),[y,l]=m("observe"),{busy:Ae,add:Ie,who:Re}=we(o),j=L(),D=L(null),C=!u.trim()||N(u),Fe=!C||v||ve(a).length>0,U=C?y:"write",P=ve(a),S=P.find(n=>n.required)??P[0],z=P.filter(n=>n!==S),H=z.some(n=>n.required),Se=[...a?.argumentInputs??[],...a?.env??[],...a?.headers??[]].some(n=>!n.secret),K=n=>{if(!n.trim()){I.mcp.search("").then(w=>w.length&&c(h=>h??{q:n,items:w}),()=>{});return}c({q:n}),I.mcp.search(n.trim()).then(ie(performance.now())).then(w=>c(h=>h?.q===n?{q:n,items:w}:h)).catch(w=>c(h=>h?.q===n?{q:n,error:Z(w)}:h))},Te=n=>{r(n),clearTimeout(j.current),(!n.trim()||N(n)||/\s/.test(n.trim()))&&c(void 0),!(N(n)||/\s/.test(n.trim()))&&(j.current=setTimeout(()=>K(n),250))},Ee=n=>{p(n),c(void 0),r(n.title),f(n.title),g(ge(n)),t(!1),requestAnimationFrame(()=>D.current?.querySelector("input[name^='arg:'], input[name^='env:'], input[name^='header:'], input[name=key]")?.focus())},Pe=n=>{let w=[...new FormData(n)].map(([b,A])=>[b,String(A).trim()]),h=b=>w.find(([A])=>A===b)?.[1]??"",_=b=>Object.fromEntries(w.filter(([A,T])=>A.startsWith(b)&&T).map(([A,T])=>[A.slice(b.length),T])),E=u.trim();if(!d.trim()||!E||H)return;let Be=a?.command?ge(a):void 0,Le=a&&E===Be?[a.command,...a.args??[]]:Oe(E),[Me,...W]=Le.map(b=>b.replace(/\{([^}]+)\}/g,(A,T)=>{let J=a?.argumentInputs?.find(Q=>Q.name===T||Q.label===T);return J?h(`arg:${J.name}`):A})),V=_("env:"),G=_("header:"),Y=C?{url:E,...a?.url===E?{type:a.type}:{},...Object.keys(G).length?{headers:G}:{}}:{command:Me,...W.length?{args:W}:{},...Object.keys(V).length?{env:V}:{}};a?.description&&(Y.description=a.description);let x=h("key");Ie({name:d.trim(),provider:"mcp",access:U,endpoint:Y,...x?{auth:"key",key:x,keyIn:C?{header:h("header")}:{env:h("env")}}:C?{}:{auth:"none"}},b=>{b.needs==="key"&&(t(!0),requestAnimationFrame(()=>D.current?.querySelector("input[name=key]")?.focus()))})};return e("form",{ref:D,class:"add-form",method:"post",onSubmit:n=>{n.preventDefault(),Pe(n.currentTarget)},children:[e("div",{class:"registry",onKeyDown:n=>{n.key==="Enter"&&n.preventDefault(),n.key==="Escape"&&c(void 0)},onFocusIn:()=>{!i&&!N(s)&&K(s)},onFocusOut:n=>{n.currentTarget.contains(n.relatedTarget)||c(void 0)},children:[e(le,{value:s,label:"Search known MCP servers",onInput:Te}),i?e("div",{class:"registry-pop","aria-live":"polite","aria-busy":!i.items&&!i.error,children:i.error?e("div",{class:"registry-note err",role:"alert",children:[e("span",{children:i.error}),e(R,{variant:"ghost",size:"sm",onMouseDown:n=>n.preventDefault(),onClick:()=>K(i.q),children:"Retry"})]}):i.items?i.items.length?i.items.map(n=>e(ce,{onClick:()=>Ee(n),title:e(B,{children:[e("b",{children:n.title}),n.verified?e("span",{title:`The MCP registry checked that the publisher owns ${he(n.name)}`,children:e(F,{tone:"ok",children:["by ",he(n.name)]})}):null,n.curated?e("span",{title:"In GitHub's reviewed list of MCP servers",children:e(F,{children:"GitHub list"})}):null,e(F,{children:n.type})]}),sub:n.description||n.name},n.name)):e("p",{class:"registry-note",children:"No known server matches. Paste its URL or command below."}):e("div",{class:"registry-note",children:e(se,{label:"Searching known servers",inline:!0,dots:!0})})}):null]}),a?.description?e("p",{class:"muted registry-picked",children:a.description}):null,e("div",{class:"add-grid",children:[e(k,{label:"Name",children:e("input",{name:"name",value:d,onInput:n=>f(n.currentTarget.value),placeholder:"Acme docs",autocomplete:"off",required:!0})}),e(k,{label:"URL or command",children:e("input",{name:"target",class:"mono",value:u,onInput:n=>g(n.currentTarget.value),placeholder:"https://mcp.acme.dev/mcp",autocomplete:"off",spellcheck:!1,required:!0})})]}),Se?e("div",{class:"add-grid",children:[e(q,{kind:"arg",list:a?.argumentInputs??[]}),e(q,{kind:"env",list:(a?.env??[]).filter(n=>!n.secret)}),e(q,{kind:"header",list:(a?.headers??[]).filter(n=>!n.secret)})]}):null,z.length?e("p",{class:"muted",role:"note",children:H?`This server needs ${ye(P.filter(n=>n.required))}, and a connection holds one key. Add it in the server's own config instead.`:`A connection holds one key, sent as ${S.name}. Add ${ye(z)} in the server's own config if you use them.`}):null,e("div",{class:"add-grid",children:[e(Ce,{value:U,onChange:l,write:!C}),Re]}),Fe?e("div",{class:"add-grid",children:[e(k,{label:"API key",hint:C?void 0:"optional",children:e("input",{name:"key",type:"password",placeholder:"acme_live_4f9a\u2026",autocomplete:"off",required:!!C},a?.name)}),C?e(k,{label:"Header",children:e("input",{name:"header",class:"mono",defaultValue:S?.name??"Authorization",placeholder:"Authorization",autocomplete:"off",required:!0},`header:${S?.name}`)}):e(k,{label:"Environment variable",children:e("input",{name:"env",class:"mono",defaultValue:S?.name,placeholder:"ACME_API_KEY",autocomplete:"off"},`env:${S?.name}`)})]}):null,e("div",{class:"add-foot",children:e(R,{type:"submit",disabled:H,loading:Ae,children:"Add connection"})})]})}function _e({catalog:o,rows:s,local:r,admin:i,operator:c,empty:a,onAdded:p}){let[d,f]=m(o.some(t=>t.personal)?"platform":"mcp"),[u,g]=m(0),v={local:r,admin:i,operator:c,onAdded:t=>{p(t),g(u+1)}};return e(ae,{opened:a,title:"Add a connection",note:"A platform account, or any MCP server",children:[e("div",{class:"conn-add",children:[e(me,{label:"What to connect",options:Ne,value:d,onChange:f}),e("p",{class:"muted",children:De[d]})]}),d==="platform"?e(je,{...v,catalog:o,rows:s},u):e(Ue,{...v},u)]})}function We({row:o,onSaved:s,onClose:r}){let i=$({leaves:!0}),c=!!i.pending,a=L(null);return X(()=>a.current?.focus(),[]),e("form",{class:"add-row conn-key",method:"post",onSubmit:p=>{p.preventDefault();let d=String(new FormData(p.currentTarget).get("key")??"").trim();d&&i.run("save",async()=>s(await I.connections.update(o.id,{key:d})))},children:[e("input",{name:"key",type:"password","aria-label":`New key for ${o.name}`,placeholder:`New key for ${o.name}, then Enter`,ref:a,autocomplete:"off",required:!0}),e(R,{type:"submit",loading:c,children:"Save key"}),e(R,{variant:"ghost",disabled:c,onClick:r,children:"Cancel"})]})}function gn({first:o,catalog:s,local:r,admin:i,operator:c}){let[a,p]=m(o.filter(t=>t.provider!=="env")),[d,f]=m(),u=$({leaves:!0}),g=t=>p(y=>y.some(l=>l.id===t.id)?y.map(l=>l.id===t.id?t:l):[...y,t]),v=t=>{if(t.auth==="key")return f(t);u.run(t.id,async()=>location.assign((await I.connections.authorize(t.id)).url))};return e(B,{children:[e(_e,{catalog:s,rows:a,local:r,admin:i,operator:c,empty:!o.some(t=>t.provider!=="env"),onAdded:g}),e(oe,{title:"Connections",count:a.length,children:[a.length?e("div",{class:"table-scroll",children:e("table",{class:"rows settings conns",children:e("tbody",{children:a.map(t=>e(fe,{title:t.name,badges:e("span",{class:"conn-badges",children:[e(F,{children:t.owner?t.mine?"yours":"member":"workspace"}),t.provider==="env"?null:e(F,{children:t.access==="write"?"read and write":"read only"}),e(F,{tone:ke[t.status].tone,children:ke[t.status].label})]}),sub:e(Ke,{row:t,catalog:s}),actions:t.status==="ok"?null:e(R,{variant:"outline",size:"sm",loading:u.pending===t.id,onClick:()=>v(t),children:"Reconnect"}),remove:{title:`Remove ${t.name}?`,body:"Tasks stop using it, and its key or sign-in is deleted.",onRemove:()=>I.connections.remove(t.id).then(()=>p(y=>y.filter(l=>l.id!==t.id)),ue)}},t.id))})})}):e(re,{title:"No connections yet",children:"Add one above so tasks can use another service, like an issue tracker or a database."}),d?e(We,{row:d,onSaved:t=>{g(t),f(void 0)},onClose:()=>f(void 0)}):null]})]})}export{gn as ConnectionsList};
@@ -0,0 +1 @@
1
+ import{$1J as l,$1N as c,$1a as e,$1u as r}from"./shared-init-03e620f936463465.js";import{$2h as n}from"./shared-init-e8b9eb1e537215ed-2.js";function p({value:o,label:i="Copy"}){let[t,d]=n(!1);return e(c,{icon:t?r:l,label:t?"Copied":i,class:t?"copied":void 0,onClick:()=>void navigator.clipboard.writeText(o).then(()=>d(!0))})}function g({value:o,label:i="Copy command",link:t}){return e("div",{class:"copy-line",children:[t?e("a",{href:o,target:"_blank",rel:"noreferrer",children:e("code",{children:o})}):e("code",{children:o}),e(p,{value:o,label:i})]})}export{p as a,g as b};
@@ -0,0 +1 @@
1
+ "use client";import{b as u,d as g}from"./platform-actions-40824017c7b5b910.js";import"./copy-c938369a1bfe75fd.js";import"./segmented-24da438244eedc8f.js";import"./confirm-1cb4d8df3974f34a.js";import"./field-657227821326b5b3.js";import{a as l}from"./action-977f2355e308d7d0.js";import"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$0d as f}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as c}from"./shared-init-03e620f936463465.js";import{$1L as m,$1a as e}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2h as t,$2j as p}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";function v({integration:r,state:i,info:o}){let[d,C]=t(!1),[b,a]=t(!0),[n,h]=t(),s=()=>c.apps.start(r,i);return p(()=>{u(o?.create,i,s).then(h).catch(y=>{C(!0),l(y)})},[]),d?null:n?b?e(g,{integration:r,step:n,start:s,unreachable:o?.unreachable,onClose:()=>a(!1)}):e(m,{onClick:()=>a(!0),children:n.submit}):e(f,{label:`Opening ${o?.name??r}`})}export{v as CreateLink};
@@ -0,0 +1 @@
1
+ "use client";import{a as de}from"./combo-126d5709a0b3a5bd.js";import{a as se}from"./copy-c938369a1bfe75fd.js";import{a as ae}from"./segmented-24da438244eedc8f.js";import{e as re}from"./list-a0cc9bdb05fc71d4.js";import"./confirm-1cb4d8df3974f34a.js";import{a as $,b as T}from"./action-977f2355e308d7d0.js";import{g as F}from"./format-b19b8eec331414f4.js";import{$3a as ie}from"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$2B as oe,$2a as ee,$2k as W,$2x as te}from"./shared-init-02aaa49ed4606a76.js";import{$0a as H,$0d as R,$0k as ne,$0p as L}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as k,$0e as U}from"./shared-init-03e620f936463465.js";import{$1L as O,$1N as Z,$1a as e,$1b as G,$1u as V,$1y as q,$1z as X}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as S,$2h as v,$2j as M,$2l as x}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";var le=[{id:"claude",name:"Claude",key:"ANTHROPIC_API_KEY",hint:"Anthropic API key",signIn:"Claude"},{id:"codex",name:"Codex",key:"OPENAI_API_KEY",hint:"OpenAI API key",signIn:"ChatGPT"},{id:"custom",name:"Custom",key:"OPENAI_API_KEY",hint:"API key"}],pe=["OPENAI_API_KEY","OPENROUTER_API_KEY","AI_GATEWAY_API_KEY","GROQ_API_KEY","TOGETHER_API_KEY","ANTHROPIC_API_KEY"],fe=[["personal","Just me"],["workspace","Workspace"]],he={signin:"Sign in",key:"API key",token:"Setup token"},ve=new Set(["owner","admin"]);function ye({row:t,busy:s,onAct:m,onSignIn:b,canManage:a}){let c=t.label.endsWith("-subscription"),g=[t.account?.email,t.account?.plan].filter(Boolean).join(" \xB7 "),u=c&&b,o=re(a?{label:c?"Sign out":"Remove",title:c?`Sign out of ${t.label}?`:`Remove ${t.label}?`,body:"Tasks that use it stop running.",onRemove:()=>m("remove")}:void 0);return e("tr",{children:[e("td",{children:[e("span",{class:"row-title",children:[e("b",{children:t.label}),e(L,{children:t.scope}),t.isDefault?e(L,{tone:"acc",children:"default"}):null]}),e("span",{class:"sub mono",children:g?`${g} \xB7 ${t.masked}`:t.masked})]}),e("td",{class:"acts",children:[t.isDefault||!a?null:e(O,{variant:"ghost",size:"sm",loading:s==="default",onClick:()=>void m("default"),children:"Make default"}),u||o.item?e(ne,{button:"icon",label:"Actions",summary:e(G,{d:q}),children:[u?e(S,{children:[e(W,{title:"Sign in again",onClick:u}),e(W,{title:"Switch account",onClick:u})]}):null,o.item]}):null,o.dialog]})]})}function be({engine:t,token:s,admin:m,autoFocus:b,onSaved:a}){let[c,g]=v(""),u=x(null),[o,d]=v(t.key),[y,C]=v("personal"),E=T({leaves:!0}),A=!!E.pending;M(()=>{b&&u.current?.focus()},[]);let _=()=>{A||!c.trim()||!o.trim()||E.run("save",async()=>{await k.credentials.add({engine:t.id,env:{[s?"CLAUDE_CODE_OAUTH_TOKEN":o.trim()]:c.trim()},...y==="workspace"&&!s?{workspace:!0}:{}}),a()})};return e("form",{class:"cred-add",method:"post",onSubmit:P=>{P.preventDefault(),_()},children:[t.id==="custom"?e(S,{children:e(de,{label:"Environment variable",name:"custom-var",class:"mono cred-var",options:pe,placeholder:"OPENAI_API_KEY",value:o,onChange:d})}):null,e("input",{type:"password",autocomplete:"off",name:`${t.id}-${s?"token":"key"}`,"aria-label":s?"Your claude setup-token":t.hint,placeholder:s?"Paste a claude setup-token, then Enter":`${t.hint}, then Enter`,ref:u,"aria-busy":A,value:c,onInput:P=>g(P.currentTarget.value)}),m?e(te,{label:"Who can use this key",options:fe,value:s?"personal":y,onChange:C,disabled:s}):null,e("button",{hidden:!0})]})}function Ie({login:t,engine:s,onChange:m,onDone:b,onError:a,onCancel:c}){let[g,u]=v(),[o,d]=v();U(t.id&&t.state!=="done"&&t.state!=="failed"?p=>k.credentials.loginStatus(t.id).then(i=>{if(!p.aborted){if(i.state==="done")return b();if(i.state==="failed")return a(i.error??"Sign-in failed. Try again.");t.state==="verifying"&&i.state==="open"&&i.url===o||m(i)}}).catch(i=>{if(p.aborted)return;let w=i.status;if(w===void 0||w>=500)return console.error("coder dashboard: sign-in status",i);a(F(i))}):void 0,800,[t.id]);let y=p=>{d(t.url),m({...t,state:"verifying"}),k.credentials.loginCode(t.id,p).catch(i=>a(F(i)))},C=!!t.url,E=t.state==="verifying",A=!!t.url&&g===t.url,_=!!o&&t.state==="open"&&t.url!==o,P=`Open ${s.signIn} sign-in`;return e(ie,{class:"sign-in",title:`Sign in with ${s.signIn}`,cancelDanger:!0,focus:"actions",onClose:c,actions:e(O,{href:t.url,external:!0,variant:A?"outline":"primary",loading:!C,autoFocus:!0,onClick:()=>u(t.url),children:A?"Open again":P}),children:[e("p",{class:"muted",children:"Coder signs in on a private machine and keeps the sign-in for your tasks."}),e("ol",{class:"steps-list sign-steps",role:"status",children:[e("li",{children:C?"The sign-in machine is ready.":e(R,{label:"Starting the sign-in machine\u2026",inline:!0})}),t.engine==="codex"?e(S,{children:[e("li",{children:["Open the sign-in page and enter this code.",t.code?e("span",{class:"code-box",children:[t.code,e(se,{value:t.code,label:"Copy code"})]}):null]}),e("li",{children:C?e(R,{label:"Waiting for your approval on the sign-in page\u2026",inline:!0}):"Approve it there."})]}):e(S,{children:[e("li",{children:["Open the ",s.signIn," sign-in and approve it."]}),e("li",{children:[_?e("span",{class:"rejected",role:"alert",children:"That code did not work. Open the sign-in again and paste the new code."}):"Paste the code it shows.",e("input",{class:"mono",autocomplete:"off","aria-label":`Code from the ${s.signIn} sign-in page`,placeholder:"Paste the code from the sign-in page",disabled:t.state!=="open",onPaste:p=>{let i=p.clipboardData?.getData("text").trim();i&&(p.preventDefault(),p.currentTarget.value=i,y(i))},onKeyDown:p=>{let i=p.currentTarget.value.trim();p.key==="Enter"&&i&&y(i)}},t.url),E?e(R,{label:"Checking the code\u2026",inline:!0}):null]})]})]})]})}function Ge({status:t}){let[s,m]=v(t),b=T(),[a,c]=v(),g=b.pending??(a?`${a.engine}:login`:"");U(a?async o=>{let d=await k.engines.status();o.aborted||(m(d),(d[a.engine]?.signedIn||Date.now()>a.until)&&c(void 0))}:void 0,2e3,[a]);let u=(o,d)=>void b.run(`${o}:${d}`,async()=>{m(await k.engines[d](o)),d==="login"&&c({engine:o,until:Date.now()+5*6e4})});return e(S,{children:[le.filter(o=>o.id!=="custom").map(o=>{let d=s[o.id],y=g===`${o.id}:login`;return e(H,{title:o.name,children:e("div",{class:"cred-new",children:[d?.signedIn?e("span",{class:"signed grow",children:[e(G,{d:V}),"Signed in to ",o.name]}):y?e("span",{class:"grow muted",children:["Finish signing in in the window ",o.name," opened."]}):e("span",{class:"grow muted",children:"Not signed in on this machine."}),d?.signedIn?e(O,{variant:"secondary",danger:!0,size:"sm",loading:g===`${o.id}:logout`,onClick:()=>u(o.id,"logout"),children:"Sign out"}):e(O,{variant:"secondary",size:"sm",loading:y,disabled:!!g,onClick:()=>u(o.id,"login"),children:"Sign in"}),y?e(O,{variant:"ghost",size:"sm",onClick:()=>c(void 0),children:"Cancel"}):null]})},o.id)}),e("p",{class:"muted",children:"On the local server, custom models read their key variable from this machine's environment."})]})}function He({rows:t,me:s,focus:m}){let b=ee(),a=oe(),[c,g]=v(""),[u,o]=v({}),[d,y]=v({}),C=!s.user,E=C||ve.has(s.organization?.role??""),A=s.server?.subscriptions,_=T({refresh:!0,leaves:!0}),[P,p]=v(t),i=P===t?_.pending??"":"",w=`coder-logins:${a}`,z=()=>{try{return JSON.parse(sessionStorage.getItem(w)??"{}")}catch{return{}}},I=(n,r)=>{o(h=>({...h,[n]:r}));try{let h={...z(),[n]:r?.id||void 0};sessionStorage.setItem(w,JSON.stringify(h))}catch{}},N=x(new Set);M(()=>{for(let[n,r]of Object.entries(z()))k.credentials.loginStatus(r).then(h=>{if(!N.current.has(n)){if(h.state==="done")return D(n);if(h.state==="failed")return I(n),$(h.error??"Sign-in failed. Try again.");I(n,h)}}).catch(()=>{N.current.has(n)||I(n)})},[]);let D=n=>{n&&I(n),g(""),b.refresh()},j=n=>{N.current.add(n),I(n,{id:"",engine:n,state:"starting"}),k.credentials.login(n).then(r=>I(n,r)).catch(r=>{I(n),$(r)})},ce=(n,r)=>i?Promise.resolve():(p(t),_.run(`${n.scope}/${n.label}/${r}`,()=>k.credentials[r==="default"?"setDefault":"remove"](n.label,{workspace:n.scope==="workspace"})));return e(S,{children:le.map(n=>{let r=t.filter(l=>l.engine===n.id),h=n.id!=="custom"&&!C&&!!A?.[n.id],K=[...h?["signin"]:[],"key",...n.id==="claude"&&!h?["token"]:[]],B=d[n.id]??K[0],ue=!r.length||c===n.id,f=n.id==="custom"?void 0:u[n.id],J=r.length>0&&n.id!=="custom",Q=!f&&r.length>0&&c!==n.id;return e(H,{title:n.name,count:r.length||void 0,actions:J||Q?e(S,{children:[J?e(L,{tone:"ok",children:"ready"}):null,Q?e(Z,{icon:X,label:`Add a ${n.name} credential`,onClick:()=>g(n.id)}):null]}):null,children:e("div",{id:`engine-${n.id}`,class:"cred-engine",children:[n.id==="custom"?e("p",{class:"muted cred-note",children:["Custom keys back ",e("a",{href:`/dash/${a}/settings/models`,children:"custom models"}),". A model uses OPENAI_API_KEY unless it names another variable."]}):null,r.length?e("table",{class:"rows creds",children:e("tbody",{children:r.map(l=>{let Y=`${l.scope}/${l.label}/`;return e(ye,{row:l,busy:i.startsWith(Y)?i.slice(Y.length):"",canManage:l.scope==="personal"||E,onAct:me=>ce(l,me),...h&&l.scope==="personal"?{onSignIn:()=>j(n.id)}:{}},Y)})})}):null,ue||f?e("div",{class:"cred-new",children:[K.length>1?e(ae,{label:`How to add ${n.name}`,disabled:!!f,options:K.map(l=>[l,he[l]]),value:B,onChange:l=>y({...d,[n.id]:l})}):null,f||B==="signin"?e("div",{class:"cred-login grow end",children:[e(O,{autoFocus:m===n.id,disabled:!!f,onClick:()=>j(n.id),children:["Sign in with ",n.signIn]}),f?e(Ie,{login:f,engine:n,onChange:l=>I(f.engine,l),onDone:()=>D(f.engine),onError:l=>{I(f.engine),$(l)},onCancel:()=>{I(f.engine),f.id&&k.credentials.cancelLogin(f.id).catch($)}}):null]}):e(be,{engine:n,token:B==="token",admin:E,autoFocus:m===n.id||!!d[n.id],onSaved:()=>D()},B)]}):null]})},n.id)})})}export{He as CredentialsList,Ge as EngineLogins};
@@ -0,0 +1 @@
1
+ import{a as e}from"./field-657227821326b5b3.js";import{$2a as l,$2e as p,$2g as f}from"./shared-init-02aaa49ed4606a76.js";import{$0k as c}from"./shared-init-02aaa49ed4606a76.js";import{$1L as u,$1a as t,$1b as s,$1j as i}from"./shared-init-03e620f936463465.js";import{$2c as n}from"./shared-init-e8b9eb1e537215ed-2.js";function x({page:o,from:d,to:g,today:m,on:h}){let y=l();return t(c,{class:h?"custom on":"custom",align:"left",summary:t(n,{children:["Custom",t(s,{d:i})]}),children:t("form",{class:"date-pop",onSubmit:r=>{r.preventDefault();let a=new FormData(r.currentTarget),[S,T]=[String(a.get("from")),String(a.get("to"))].sort();r.currentTarget.closest("[popover]")?.hidePopover(),y.push(o.href,{params:p(o).params,search:f(o.search,{from:String(S),to:String(T)}),scroll:!1})},children:[t(e,{label:"From",children:t("input",{type:"date",name:"from",defaultValue:d,max:m,required:!0})}),t(e,{label:"To",children:t("input",{type:"date",name:"to",defaultValue:g,max:m,required:!0})}),t(u,{type:"submit",size:"sm","data-keep":!0,children:"Apply"})]})})}export{x as a};
@@ -0,0 +1,7 @@
1
+ "use client";import{b as et}from"./instructions-a08bb02650dedb8d.js";import{a as Qe,b as Ye,c as Je,d as Xe}from"./agent-pills-e75e6ac80d515ffc.js";import{a as $}from"./segmented-24da438244eedc8f.js";import{a as Ze}from"./agent-toggle-b2f2c22e63dedc1f.js";import{a as We}from"./connect-repositories-995d55b3f166337d.js";import{b as re,d as ae,e as Ke,f as ze,g as Ge,h as Ue}from"./model-options-3a57918eaa4a2a82.js";import{a as Ve}from"./notice-cd32ca98bbc10844.js";import{a as E}from"./field-657227821326b5b3.js";import{a as G,b as U}from"./action-977f2355e308d7d0.js";import{f as q}from"./format-b19b8eec331414f4.js";import{$1c as _e,$1d as ie}from"./shared-init-02aaa49ed4606a76.js";import{$2A as He,$2B as z,$2a as W,$2h as Oe,$2j as Be,$2k as se,$2p as je,$2u as K,$2x as qe,$2z as oe}from"./shared-init-02aaa49ed4606a76.js";import{$0b as De,$0d as te,$0e as ne,$0l as $e,$0p as D,$0q as xe,$0r as Me,$0s as Fe}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as B}from"./shared-init-03e620f936463465.js";import{$1C as Le,$1L as A,$1M as Ne,$1a as e,$1b as H,$1e as Ae,$1j as Ee,$1r as _,$1w as Te,$1z as ee}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as R,$2h as k,$2j as j,$2l as Re}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";var V=2,tt=({name:n,platform:o})=>e("li",{children:[e("b",{children:["@",n]})," on ",o]},`${o} ${n}`);function nt({agent:n,actions:o,back:u}){return e(R,{children:[e(Be,{}),e("header",{class:"hero",children:[e("span",{class:"hero-mark",children:q(n.name)}),e("div",{class:"grow",children:[u,e("div",{class:"title-row",children:[e("h1",{children:n.name}),e(Xe,{agent:n}),n.settings?.disabled?e(Ze,{agent:n,link:!0}):null]}),e("p",{class:"lead",children:n.description??"No description yet."})]}),o||n.handles?.length?e("div",{class:"hero-side",children:[o?e("div",{class:"actions",children:o}):null,n.handles?.length?e("ul",{class:"handles",title:"Mention it on its platforms by these names",children:[n.handles.slice(0,V).map(tt),n.handles.length>V?e("li",{children:e($e,{label:`+${n.handles.length-V} more`,children:e("ul",{class:"handles",children:n.handles.slice(V).map(tt)})})}):null]}):null]}):null]})]})}function st({port:n}){return e(De,{title:"Receive platform events",note:`Expose port ${n} so platforms can reach this server`,open:"Show",children:e("div",{class:"guide",children:[e("p",{children:["Platforms reach this server through a public address. Expose port ",n," with one of these."]}),e("ul",{class:"steps-list",children:[e("li",{children:e("code",{children:["ngrok http ",n]})}),e("li",{children:e("code",{children:["cloudflared tunnel --url http://localhost:",n]})}),e("li",{children:"VS Code's Ports panel, with the port's visibility set to Public"})]}),e("p",{children:["Then restart with ",e("code",{children:"PUBLIC_URL=<tunnel URL> coder server serve"}),". The tunnel serves only webhooks and app setup, never this dashboard."]})]})})}var ot=/^[\w.-]+\/[\w.-]+$/,Rt=n=>/^[0-9a-f]{12,}$/i.test(n)?n.slice(0,7):n;function At({preview:n,onDone:o}){let[u,p]=k(new Set),f=U({leaves:!0});if(n.failed)return null;if(!n.agents)return e(te,{label:`Reading ${n.repo}`,h:180});if(!n.agents.length)return e("p",{class:"muted",children:[n.repo," has no agents yet. Add a folder per agent under ",e("code",{children:".coder/agents"}),", with an ",e("code",{children:"agent.json"})," and a ",e("code",{children:"system.md"}),"."]});let r=n.agents.filter(i=>!i.taken&&!u.has(i.id)).map(i=>i.id);return e("form",{class:"import-agents",onSubmit:async i=>{i.preventDefault(),r.length&&await f.run("import",async()=>o((await B.agents.import(n.repo,void 0,r)).imported))},children:[e("ul",{class:"picks-list",children:n.agents.map(i=>e("li",{children:e("label",{class:"check",children:[e("input",{type:"checkbox",checked:!i.taken&&!u.has(i.id),disabled:i.taken,onChange:b=>{let m=new Set(u);b.currentTarget.checked?m.delete(i.id):m.add(i.id),p(m)}}),e("span",{children:[e("b",{children:i.name})," ",e(Fe,{value:i.id}),i.version?e(D,{children:["v",i.version,i.commit?` \xB7 ${Rt(i.commit)}`:""]}):null,e("small",{children:i.taken?"An agent with this id already exists here.":i.description??"No description."}),i.warnings?.map(b=>e("small",{role:"status",children:b},b))]})]})},i.id))}),e("p",{class:"muted",children:["Each push to ",n.repo," that changes an agent publishes its new version here."]}),e("div",{class:"form-actions end",children:e(A,{type:"submit",disabled:!!f.pending||!r.length,children:["Import ",r.length===1?"1 agent":`${r.length} agents`]})})]})}function it({connected:n,connectLabel:o,tunnel:u,port:p}){let f=W(),r=z(),[i,b]=k(),[m,M]=k(""),[S,P]=k(),w=Re("");j(()=>{n&&B.repositories.list().then(ne(performance.now())).then(c=>b(c.map(L=>L.repo))).catch(c=>{b([]),G(c)})},[]);let g=c=>{w.current=c,P({repo:c}),B.agents.preview(c).then(ne(performance.now())).then(({agents:L})=>w.current===c&&P({repo:c,agents:L})).catch(L=>{w.current===c&&(P({repo:c,failed:!0}),G(L))})},N=c=>c.length===1?f.push("/dash/[org]/agents/[slug]",{params:{org:r,slug:c[0]}}):f.push("/dash/[org]/agents",{params:{org:r}}),Q=m.trim().toLowerCase(),s=(i??[]).filter(c=>c.toLowerCase().includes(Q)),y=ot.test(m.trim())&&!i?.includes(m.trim())?m.trim():"";return e("div",{class:"import",children:[e("div",{class:"import-repos",children:[n?e(K,{value:m,label:"Search repositories or type owner/repo",onInput:M}):e(R,{children:[e(Ve,{children:[e(H,{d:_}),e("span",{class:"grow",children:"Connect to list your repositories here."}),e(A,{variant:"outline",size:"sm",onClick:()=>void We(`/dash/${r}/agents/new?template=import`).catch(G),children:o})]}),e("form",{class:"with-btn",onSubmit:c=>{c.preventDefault(),ot.test(m.trim())&&g(m.trim())},children:[e("input",{class:"mono","aria-label":"Repository",placeholder:"owner/repo",autocomplete:"off",value:m,onInput:c=>M(c.currentTarget.value)}),e(A,{type:"submit",variant:"outline",children:"Look up"})]})]}),n?e("div",{class:"repo-list scroll-box",role:"list",children:i?e(R,{children:[y?e(se,{"aria-pressed":S?.repo===y,icon:_,title:y,onClick:()=>g(y)}):null,s.map(c=>e(se,{"aria-pressed":S?.repo===c,icon:_,title:c,onClick:()=>g(c)},c)),!s.length&&!y?e(je,{children:"No repository matches. Type owner/repo to use another."}):null]}):e(te,{label:"Loading repositories",h:240})}):null,!n&&u?e(st,{port:p}):null]}),e("div",{class:"import-preview",children:S?e(R,{children:[e("h3",{children:["Agents in ",S.repo]}),e(At,{preview:S,onDone:N},S.repo)]}):e("p",{class:"muted",children:"Pick a repository to see the agents in its .coder/agents folder."})})]})}var rt=[["Brisk","Calm","Clever","Keen","Nimble","Quiet","Steady","Swift","Tidy","Bright","Patient","Lucky"],["Heron","Otter","Falcon","Lynx","Badger","Relay","Beacon","Compass","Lantern","Pilot","Sparrow","Harbor"]],at=n=>n[Math.floor(Math.random()*n.length)],lt=()=>`${at(rt[0])} ${at(rt[1])}`;var ct=[["read-only","Read only"],["workspace-write","Edit files"],["auto","Auto"]],Et={"read-only":"reads the repository and changes nothing","workspace-write":"edits files inside the repository",auto:"edits files, reaches the network, and asks when it needs more"},Tt=[["low","Low"],["medium","Medium"],["high","High"]],x=["observe","comment","write"],dt={observe:["Observe","reads the platform only"],comment:["Comment","also replies and reacts"],write:["Write","also changes code there, like opening pull requests"]},Lt=[["blank","Blank","start from nothing"],["helper","Slack helper","answers questions in chat"],["reviewer","GitHub reviewer","reviews pull requests"]],Nt=6,Ot=`Review each pull request for bugs, risky changes and missing tests.
2
+ Comment on the lines that matter and keep it short.
3
+ When mentioned, answer questions about the code and cite file paths.`,Bt=`Answer the team's questions in the thread.
4
+ Read the code before you answer, cite file paths, and say when you are unsure.
5
+ If asked to change code, describe the change and stop.`,Dt=n=>Array.isArray(n)?n.map(String):n&&typeof n=="object"?Object.keys(n):[],mt=n=>n.toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40);function $t(n,o,u){let p=n?.definition,f={name:n?.name??o,id:n?.id??mt(o),description:n?.description??p?.description??"",platforms:[],events:{},match:{},tools:{},permissions:p?.permissions??"read-only",systemPrompt:n?.systemPrompt??"",engine:p?.engine??"",model:p?.model??"",effort:p?.effort??""};for(let[r,i]of Object.entries(p?.integrations??{}))if(u.some(b=>b.id===r)){if(f.platforms.push(r),f.events[r]=Dt(i.events),f.match[r]={},i.events&&!Array.isArray(i.events))for(let[b,m]of Object.entries(i.events))m&&typeof m=="object"&&"match"in m&&(f.match[r][b]=String(m.match));f.tools[r]=i.tools}return f}var ut=n=>Object.entries(n?.events??{}).filter(([,o])=>!o.noisy).map(([o])=>o);function pt(n,o){let u=p=>{let f=o.filter(p).map(r=>r.id);return{platforms:f,events:Object.fromEntries(f.map(r=>[r,ut(o.find(i=>i.id===r))])),tools:Object.fromEntries(f.map(r=>[r,"comment"])),match:{}}};return n==="reviewer"?{...u(p=>"pull_request"in p.events),description:"Reviews pull requests and answers questions about the code.",systemPrompt:Ot}:n==="helper"?{...u(p=>p.id==="slack"),description:"Answers the team's questions in chat.",systemPrompt:Bt}:{platforms:[],events:{},tools:{},match:{},description:"",systemPrompt:""}}function xt(n,o,u){let p=n?.events&&!Array.isArray(n.events)?n.events:{},f=Object.fromEntries(o.map(r=>{let i=p[r],b=u[r]?.trim(),m=i&&typeof i=="object"?{...i}:{};return b?m.match=b:delete m.match,Object.keys(m).length?[r,m]:[r,i===void 0||typeof i=="object"?!0:i]}));return Object.values(f).every(r=>r===!0)?o:f}var Mt=(n=[],o=[])=>n.length===o.length&&n.every(u=>o.includes(u));function Ft(n){if(!n)return[];let o=x.filter((u,p)=>!p||!Mt(n.presets[u],n.presets[x[p-1]]));return o.length>1?o:[]}var jt=(n,o)=>n.filter(u=>x.indexOf(u)<=x.indexOf(o)).at(-1)??"";function is({catalog:n,agent:o,suggested:u="",section:p,models:f,defaults:r={engine:"",engines:{},builtin:{}},template:i,connected:b=!1,connectLabel:m="Connect",tunnel:M=!1,port:S=""}){let P=W(),w=z(),g=!o,[N,Q]=k(i??"blank"),[s,y]=k(()=>({...$t(o,u,n),...g?pt(i??"blank",n):{}})),[c,L]=k(!1),[le,ft]=k("write"),[ce,ht]=k(""),de=U({toast:g?"Agent not created":"Not published",leaves:!0}),gt=!!de.pending,O=(t,a)=>y(d=>({...d,[t]:a})),Y=(t,a=s.tools[t])=>Array.isArray(a)?"custom":a??"observe",J=s.platforms.length?Y(s.platforms[0]):"comment",vt=s.platforms.every(t=>Y(t)===J),pe=s.platforms.map(t=>[t,Ft(n.find(a=>a.id===t))]).filter(([,t])=>t.length),X=x.filter(t=>pe.some(([,a])=>a.includes(t))),me=new Set(pe.map(([t])=>Y(t))),ue=me.size===1?jt(X,[...me][0]):"",fe=(t,a)=>Object.entries(r.builtin[t]??{}).find(([,d])=>d===a)?.[0]??a,F=s.engine||r.engine,Z=r.engines[F]??{},bt=[re[r.engine]??r.engine,fe(r.engine,r.engines[r.engine]?.model)].filter(Boolean).join(" \xB7 "),he=ct.find(([t])=>t===s.permissions)?.[1].toLowerCase(),yt=g?"you can change these later in its settings":(s.engine||s.model||s.effort?[re[F]??F,s.model||fe(F,Z.model),s.effort||Z.effort,he]:["Default models",he]).filter(Boolean).join(" \xB7 ");j(()=>{if(!p)return;let t=document.getElementById(`agent-${p}`);t?.scrollIntoView({block:"start"}),t?.querySelector("input, textarea, button")?.focus({preventScroll:!0})},[]);let ge=t=>{Q(t),t!=="import"&&y(a=>({...a,...pt(t,n)}))},ve=t=>y(a=>({...a,name:t,...g&&!c?{id:mt(t)}:{}})),wt=(t,a)=>y(d=>{let v=Object.keys(n.find(l=>l.id===t)?.events??{});return{...d,platforms:a?n.map(l=>l.id).filter(l=>l===t||d.platforms.includes(l)):d.platforms.filter(l=>l!==t),events:a&&!d.events[t]?.length?{...d.events,[t]:ut(n.find(l=>l.id===t))}:d.events,tools:a&&!d.tools[t]?{...d.tools,[t]:vt&&J!=="custom"?J:"comment"}:d.tools}}),kt=(t,a,d)=>y(v=>{let l=v.events[t]??[],h=d?v.match:{...v.match,[t]:{...v.match[t],[a]:""}};return{...v,events:{...v.events,[t]:d?[...new Set([...l,a])]:l.filter(C=>C!==a)},match:h}}),Ct=(t,a,d)=>y(v=>({...v,match:{...v.match,[t]:{...v.match[t],[a]:d}}})),It=async()=>{let t=s.platforms.find(h=>!s.events[h]?.length);if(t)return ie("Not published",`Pick at least one event on ${t}, or turn ${t} off.`);let a={};for(let h of s.platforms)a[h]={events:xt(o?.definition?.integrations?.[h],s.events[h]??[],s.match[h]??{}),tools:s.tools[h]};let d={...o?.definition,integrations:a,permissions:s.permissions};for(let h of["name","description","engine","model","effort"]){let C=s[h].trim();C?d[h]=C:delete d[h]}let v=g?s.id:o.id,l=s.name.trim();await de.run("publish",async()=>{let h=o?.files,{apps:C=[]}=await B.agents.put(v,{definition:d,...h?{files:h}:{},systemPrompt:s.systemPrompt.trim()?s.systemPrompt:`You are ${l||v}.
6
+ `,...l?{name:l}:{},...s.description.trim()?{description:s.description.trim()}:{}});for(let I of C){let Pe=n.find(Pt=>Pt.id===I.integration)?.name??I.integration;I.updated&&_e(`${Pe} app updated`,`${I.name} now matches the agent.`,"success"),I.error&&ie(`${Pe} app not updated`,I.error)}let Se=C.filter(I=>I.drift).map(I=>I.id);Se.length?P.push("/dash/[org]/agents/[slug]/platforms",{params:{org:w,slug:v},search:{update:Se.join(",")}}):g&&s.platforms.length?P.push("/dash/[org]/agents/[slug]/platforms",{params:{org:w,slug:v}}):P.push("/dash/[org]/agents/[slug]",{params:{org:w,slug:v}})})},be=e(R,{children:[g?e(A,{variant:"outline","aria-pressed":N==="import",onClick:()=>ge("import"),children:"Import from repo"}):null,g?null:e(Ne,{variant:"ghost",href:"/dash/[org]/agents/[slug]",params:{org:w,slug:o.id},children:"Cancel"}),e(A,{type:"submit",leftIcon:g?ee:Te,disabled:!s.name.trim()||N==="import",loading:gt,children:g?"Create agent":"Publish new version"})]}),ye=g?e(He,{...Oe.newAgent,back:e(oe,{href:"/dash/[org]/agents",params:{org:w},label:"Agents"}),actions:be}):e(nt,{agent:o,back:e(oe,{href:"/dash/[org]/agents/[slug]",params:{org:w,slug:o.id},label:o.name}),actions:be}),we=g?e("div",{class:"templates",role:"radiogroup","aria-label":"Start from",children:Lt.map(([t,a,d])=>e("button",{type:"button",role:"radio","aria-checked":N===t,class:"tile",onClick:()=>ge(t),children:[e("b",{children:a}),e("small",{children:d})]},t))}):null;if(N==="import"&&g)return e("div",{class:"agent-new",children:[ye,we,e(it,{connected:b,connectLabel:m,tunnel:M,port:S})]});let St=ce.trim().toLowerCase(),ke=n.filter(t=>`${t.id} ${t.description}`.toLowerCase().includes(St)),Ce=t=>!!t.featured||s.platforms.includes(t.id),Ie=[...ke.filter(Ce),...ke.filter(t=>!Ce(t))];return e("form",{class:"agent-new",onSubmit:t=>{t.preventDefault(),It()},children:[ye,we,e("div",{class:"agent-form",children:[e("div",{class:"agent-main",children:[e("section",{id:"agent-name",class:"form-part",children:[e("h2",{children:"Name and description"}),e("div",{class:"fields",children:[e(E,{label:"Name",hint:"its handle on every platform",children:e("span",{class:"with-btn",children:[e("input",{name:"name",required:!0,value:s.name,onInput:t=>ve(t.currentTarget.value)}),g?e(A,{variant:"outline",leftIcon:Le,title:"Suggest another name",onClick:()=>ve(lt()),children:"Suggest"}):null]})}),g?e(E,{label:"Id",hint:"the folder and command name",children:e("input",{class:"mono",name:"id",required:!0,pattern:"[a-z0-9][a-z0-9_\\-]*",autocomplete:"off",value:s.id,onInput:t=>{L(!0),O("id",t.currentTarget.value)}})}):e("div",{class:"field",children:[e("span",{children:["Id ",e("small",{children:"fixed once created"})]}),e("p",{class:"fixed mono",children:o.id})]})]}),e(E,{label:"Description",hint:"optional, shown in lists and added to the prompt",children:e("input",{name:"description",maxLength:240,placeholder:"Answers engineering questions about acme/app.",value:s.description,onInput:t=>O("description",t.currentTarget.value)})})]}),e("section",{id:"agent-instructions",class:"form-part",children:[e("div",{class:"part-head",children:[e("h2",{children:"Instructions"}),e($,{label:"Instructions view",options:[["write","Write"],["preview","Preview"]],value:le,onChange:ft})]}),le==="write"?e("textarea",{name:"systemPrompt",rows:10,"aria-label":"Instructions",placeholder:`Markdown. The system prompt every task starts from.
7
+ You answer questions about acme/app from its source. Cite file paths.`,value:s.systemPrompt,onInput:t=>O("systemPrompt",t.currentTarget.value)}):e("div",{class:"body md md-preview",children:s.systemPrompt.trim()?et(s.systemPrompt):e("p",{class:"muted",children:"Nothing written yet."})})]}),e("section",{id:"agent-platforms",class:"form-part",children:[e("div",{class:"part-head",onKeyDown:t=>t.key==="Enter"&&t.preventDefault(),children:[e("h2",{children:"Handles"}),n.length>Nt?e(K,{value:ce,label:"Search platforms",onInput:ht}):null]}),e("p",{class:"muted",children:["Each platform becomes the agent's handle there: its own app, set up on the next page, where ",e("span",{class:"semi",children:"@mentions"})," and events start tasks. The dashboard, the CLI and the SDK can always start it."]}),e("p",{class:"muted",children:[e("b",{children:"Connections"})," are separate and shared by all agents: add as many as tasks need, like an API key, an MCP server or a member's own account, in"," ",e(Ae,{class:"link",href:"/dash/[org]/settings/[tab]",params:{org:w,tab:"connections"},children:"Settings"}),"."]}),e("ul",{class:"listen",children:[Ie.map(t=>{let a=s.platforms.includes(t.id),d=s.events[t.id]??[],v=Object.entries(t.events);return e("li",{class:a?"on":void 0,children:[e("label",{class:"listen-row",children:[e("span",{class:"pf-mark","aria-hidden":"true",children:e(Qe,{brand:t.brand})}),e("span",{class:"grow",children:[e("b",{children:t.name}),e("small",{title:t.description,children:t.description})]}),e("input",{type:"checkbox",role:"switch",class:"switch",name:"platform",value:t.id,checked:a,onChange:l=>wt(t.id,l.currentTarget.checked)})]}),a?e("div",{class:"events",children:[e(Me,{label:`What wakes it on ${t.id}`,children:v.map(([l,h])=>{let C=d.includes(l);return e(xe,{"aria-pressed":C,title:h.description,onClick:()=>kt(t.id,l,!C),children:l.replace(/_/g," ")},l)})}),v.filter(([l,h])=>h.noisy&&d.includes(l)).map(([l])=>e("label",{class:"match",children:[e("span",{children:l.replace(/_/g," ")}),e("input",{class:"mono",name:`match:${t.id}:${l}`,placeholder:"only when the text matches, like ^help\\b","aria-label":`Text filter for ${l} on ${t.id}`,value:s.match[t.id]?.[l]??"",onInput:h=>Ct(t.id,l,h.currentTarget.value)})]},l))]}):null]},t.id)}),Ie.length?null:e("li",{class:"listen-none muted",children:"No platform matches."})]}),X.length?e(E,{label:"Platform access",hint:dt[ue]?.[1]??"differs between platforms",group:!0,children:e($,{label:"Platform access",options:X.map(t=>[t,dt[t][0]]),value:ue,onChange:t=>O("tools",Object.fromEntries(s.platforms.map(a=>[a,t])))})}):null]}),e("details",{id:"agent-run",class:"form-part run",open:p==="run",children:[e("summary",{children:[e("h2",{children:"Run settings"}),e("span",{class:"grow muted",children:yt}),e(H,{d:Ee})]}),e("div",{class:"run-body",children:[e("div",{class:"fields",children:[e(E,{label:"Engine and model",hint:"what runs each task",group:!0,children:e(qe,{label:"Model",value:ze(s.engine,s.model),options:Ke(f,ae(bt)),headings:Ue(f),action:{label:"Add models",icon:ee,onPick:()=>P.push("/dash/[org]/settings/[tab]",{params:{org:w,tab:"models"}})},onChange:t=>y(a=>({...a,...Ge(t)}))})}),e(E,{label:"Effort",hint:"how hard the model thinks",group:!0,children:e($,{label:"Effort",options:[["",ae(Z.effort)],...Tt],value:s.effort,onChange:t=>O("effort",t)})})]}),e(E,{label:"Repository access",hint:Et[s.permissions],group:!0,children:e($,{label:"Repository access",options:ct,value:s.permissions,onChange:t=>O("permissions",t)})})]})]})]}),e("aside",{class:"agent-side","aria-label":"Preview",children:[e("span",{class:"side-label",children:"Preview"}),e("div",{class:"agent-card preview",children:[e("div",{class:"bc-head",children:[e("span",{class:"mark",children:q(s.name)}),e("div",{class:"grow",children:[e("h3",{children:s.name.trim()||"Unnamed agent"}),e("span",{class:"pills",children:[e(D,{children:"dashboard"}),o?.local?null:e(D,{children:["v",g?1:o.currentVersion+1]}),o?.settings?.disabled?e(Je,{}):null]})]})]}),e("div",{class:"lead-clamp",children:e("span",{children:s.description.trim()||"No description yet."})}),s.platforms.length?e(Ye,{platforms:s.platforms.map(t=>({id:t,state:"none"})),catalog:n}):e("span",{class:"pfs muted",children:"No handles yet"})]})]})]})]})}export{is as AgentEditor};
@@ -0,0 +1 @@
1
+ "use client";import{a as c,b as p,d as S}from"./model-options-3a57918eaa4a2a82.js";import{a as b,b as k,c as N,d as C,f as u,g}from"./list-a0cc9bdb05fc71d4.js";import"./confirm-1cb4d8df3974f34a.js";import"./action-977f2355e308d7d0.js";import"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$2k as f,$2x as w}from"./shared-init-02aaa49ed4606a76.js";import{$0p as d}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import"./shared-init-03e620f936463465.js";import{$1L as m,$1a as t}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as a,$2h as E}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";function P({first:s,defaults:R}){let[B,h]=E(""),n=b(s.config),o=n.value.chain??s.effective.chain??c,l=n.value.approvals?.allowedNetworkHosts??[],I=[...o.filter(e=>c.includes(e)),...c.filter(e=>!o.includes(e))],L=(e,i)=>(s.config.engines?.[e]?.[i]?void 0:s.effective.engines?.[e]?.[i])??R[e]?.[i],v=(e,i,M)=>t("label",{children:[i,t(w,{label:`${p[e]} ${i}`,value:n.value.engines?.[e]?.[i]??"",options:[["",S(L(e,i)??(i==="permissions"?"auto":void 0))],...M.map(r=>[r,r])],onChange:r=>void n.patch({engines:{[e]:{[i]:r||null}}})})]});return t(a,{children:[t(g,{title:"Engines",count:o.length,children:I.map(e=>t(u,{title:p[e],badges:t(a,{children:[o[0]===e?t(d,{tone:"acc",children:"default"}):null,o.includes(e)?null:t(d,{children:"off"})]}),sub:t("span",{class:"inline-picks",children:[v(e,"effort",k),v(e,"permissions",N)]}),actions:o[0]===e?null:t(m,{variant:"secondary",size:"sm",loading:B===e,onClick:()=>{h(e),n.patch({chain:[e,...o.filter(i=>i!==e)]}).finally(()=>h(""))},children:"Make default"}),menu:o.includes(e)?o.length>1?t(f,{title:"Disable",onClick:()=>void n.patch({chain:o.filter(i=>i!==e)})}):void 0:t(f,{title:"Enable",onClick:()=>void n.patch({chain:[...o,e]})})},e))}),t(g,{title:"Allowed network hosts",count:l.length,add:t(C,{fields:[["host","Host, like registry.npmjs.org"]],onAdd:({host:e})=>n.patch({approvals:{allowedNetworkHosts:[...new Set([...l,e])]}})}),children:l.map(e=>t(u,{title:e,remove:{title:`Remove ${e}?`,body:"Tasks lose access to it.",onRemove:()=>n.patch({approvals:{allowedNetworkHosts:l.filter(i=>i!==e)}})}},e))})]})}export{P as EnginesList};
@@ -1 +1 @@
1
- import{$1a as n}from"./shared-init-a7f2e71a718bc285.js";function m({label:l,hint:e,group:o,children:a}){return n(o?"div":"label",{class:"field",children:[n("span",{children:[l,e?n("small",{children:e}):null]}),a]})}export{m as a};
1
+ import{$1a as n}from"./shared-init-03e620f936463465.js";function m({label:l,hint:e,group:o,children:a}){return n(o?"div":"label",{class:"field",children:[n("span",{children:[l,e?n("small",{children:e}):null]}),a]})}export{m as a};
@@ -0,0 +1,2 @@
1
+ import{$1L as x,$1a as o}from"./shared-init-03e620f936463465.js";import{$2b as g,$2h as f,$2k as C,$2l as b}from"./shared-init-e8b9eb1e537215ed-2.js";function v({lines:c=10,class:e,children:t}){let n=b(null),[p,h]=f(!1),[l,u]=f(!1);return C(()=>{let s=n.current,i=()=>h(l||s.scrollHeight>s.clientHeight+1);i();let r=new ResizeObserver(i);return r.observe(s),()=>r.disconnect()},[t,l]),o("div",{class:`collapse${p?" long":""}${l?" open":""}`,style:`--lines:${c}`,children:[o("div",{class:e?`collapse-box ${e}`:"collapse-box",ref:n,children:t}),p?o(x,{variant:"ghost",size:"sm",class:"more-toggle","aria-expanded":l,onClick:()=>u(!l),children:l?"Show less":"Show more"}):null]})}var S=/`([^`\n]+)`|\*\*(.+?)\*\*|__(.+?)__|\*(\S(?:.*?\S)?)\*|(?<!\w)_(\S(?:.*?\S)?)_(?!\w)|\[([^\]\n]+)\]\(([^)\s]+)\)/g,_=/^(?:https?:|mailto:)/i,$=/^\s*(```|~~~)/,w=/^(#{1,6})\s+(.*?)(?:\s+#+)?\s*$/,E=/^\s*(?:([-*+])|\d+[.)])\s+(.*)$/,I=/^\s*(?:#{1,6}\s|```|~~~|[-*+]\s|\d+[.)]\s)/;function d(c){let e=[],t=0;for(let n of c.matchAll(S)){let[p,h,l,u,s,i,r,a]=n;n.index>t&&e.push(c.slice(t,n.index)),h?e.push(o("code",{children:h})):l||u?e.push(o("strong",{children:d(l||u)})):s||i?e.push(o("em",{children:d(s||i)})):_.test(a)?e.push(o("a",{class:"link",href:a,target:"_blank",rel:"noopener noreferrer",children:d(r)})):e.push(...d(r)),t=n.index+p.length}return t<c.length&&e.push(c.slice(t)),e}function k(c){let e=c.split(/\r?\n/),t=[];for(let n=0;n<e.length;){let p=e[n],h=$.exec(p),l=w.exec(p),u=E.exec(p);if(h){let s=e.findIndex((r,a)=>a>n&&r.trim().startsWith(h[1])),i=s<0?e.length:s;t.push(o("pre",{children:o("code",{children:e.slice(n+1,i).join(`
2
+ `)})})),n=i+1}else if(l)t.push(g(`h${Math.min(l[1].length+2,6)}`,null,d(l[2]))),n++;else if(u){let s=!u[1],i=[];for(let r;(r=E.exec(e[n]??""))&&!r[1]===s;n++)i.push(o("li",{children:d(r[2])}));t.push(s?o("ol",{children:i}):o("ul",{children:i}))}else if(!p.trim())n++;else{let s=[];for(;e[n]?.trim()&&(!s.length||!I.test(e[n]));n++)s.length&&s.push(o("br",{})),s.push(...d(e[n]));t.push(o("p",{children:s}))}}return t}function G({text:c}){return o(v,{class:"body md",children:k(c)})}export{v as a,k as b,G as c};
@@ -0,0 +1 @@
1
+ "use client";import{b as a,c as b}from"./instructions-a08bb02650dedb8d.js";import"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";export{b as Instructions,a as markdown};
@@ -0,0 +1 @@
1
+ import{a as h}from"./confirm-1cb4d8df3974f34a.js";import{a as v}from"./action-977f2355e308d7d0.js";import{$2k as g}from"./shared-init-02aaa49ed4606a76.js";import{$0a as y,$0k as C}from"./shared-init-02aaa49ed4606a76.js";import{$0c as f}from"./shared-init-03e620f936463465.js";import{$1L as b,$1a as o,$1b as d,$1y as p}from"./shared-init-03e620f936463465.js";import{$2h as u,$2l as c}from"./shared-init-e8b9eb1e537215ed-2.js";function R(n,r){if(!r||typeof r!="object"||Array.isArray(r))return r;let t=n&&typeof n=="object"&&!Array.isArray(n)?{...n}:{};for(let[e,i]of Object.entries(r))i===null?delete t[e]:t[e]=R(t[e],i);return t}function L(n){let[r,t]=u(n),e=c(0),i=c(n);return{value:r,patch:s=>{let m=++e.current;return t(a=>R(a,s)),f.config.patch(s).then(a=>(i.current=a,m===e.current&&t(a),!0),a=>(m===e.current&&(t(i.current),v(a)),!1))}}}var q=["low","medium","high"],N=["read-only","workspace-write","auto"];function V({fields:n,onAdd:r}){return o("form",{class:"add-row",method:"post",onSubmit:async t=>{t.preventDefault();let e=t.currentTarget,i=Object.fromEntries([...new FormData(e)].map(([l,s])=>[l,String(s).trim()]));Object.values(i).some(l=>!l)||await r(i)&&e.reset()},children:[n.map(([t,e])=>o("input",{name:t,placeholder:e,"aria-label":e,autocomplete:"off"},t)),o(b,{type:"submit",children:"Add"})]})}function A(n){let[r,t]=u(!1),[e,i]=u(!1);if(!n)return{};let{title:l,body:s,label:m="Remove",onRemove:a}=n;return{item:o(g,{title:m,danger:!0,onClick:()=>t(!0)}),dialog:r?o(h,{open:!0,title:l,body:s,confirmLabel:m,busy:e,onClose:()=>t(!1),onConfirm:()=>{i(!0),a().finally(()=>{i(!1),t(!1)})}}):null}}function z({title:n,badges:r,sub:t,actions:e,menu:i,remove:l}){let s=A(l);return o("tr",{children:[o("td",{children:[o("span",{class:"row-title",children:[o("b",{children:n}),r]}),t?o("span",{class:"sub mono",children:t}):null]}),o("td",{class:"acts",children:[e,i||s.item?o(C,{button:"icon",label:"Actions",summary:o(d,{d:p}),children:[i,s.item]}):null,s.dialog]})]})}function G({title:n,count:r,children:t,add:e}){return o(y,{title:n,count:r,children:[o("div",{class:"table-scroll",children:o("table",{class:"rows settings",children:o("tbody",{children:t})})}),e]})}export{L as a,q as b,N as c,V as d,A as e,z as f,G as g};
@@ -0,0 +1 @@
1
+ "use client";import{a as X}from"./combo-126d5709a0b3a5bd.js";import{a as $,b as z,d as V,i as Y}from"./model-options-3a57918eaa4a2a82.js";import{a as Z,f as J,g as W}from"./list-a0cc9bdb05fc71d4.js";import"./confirm-1cb4d8df3974f34a.js";import{a as u}from"./field-657227821326b5b3.js";import{b as G}from"./action-977f2355e308d7d0.js";import{g as x}from"./format-b19b8eec331414f4.js";import"./shared-init-02aaa49ed4606a76.js";import"./shared-init-02aaa49ed4606a76.js";import{$2k as q,$2x as T}from"./shared-init-02aaa49ed4606a76.js";import{$0b as D,$0d as H,$0p as B}from"./shared-init-02aaa49ed4606a76.js";import"./wular-pnext-e8b9eb1e537215ed-0.js";import{$0c as P}from"./shared-init-03e620f936463465.js";import{$1L as I,$1a as e}from"./shared-init-03e620f936463465.js";import"./shared-init-e8b9eb1e537215ed-2.js";import{$2c as K,$2h as i,$2l as _}from"./shared-init-e8b9eb1e537215ed-2.js";import"./shared-init-e8b9eb1e537215ed-2.js";var ne=[["custom","Custom endpoint"],["claude","Claude"],["codex","Codex"]],le={claude:"sonnet",codex:"sol"},se=[["low","Low"],["medium","Medium"],["high","High"]],ae=[["personal","Just me"],["workspace","Workspace"]],L=Y,Q={id:"other",name:"Other",baseUrl:"",envKey:"",needsKey:!0},ee=h=>h.split("/").pop().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),re=(h,m)=>h.find(C=>!(C in m));function ie({builtin:h,credentials:m,admin:C,taken:U,efforts:p,onAdd:a}){let[b,v]=i("custom"),f=b==="custom"?"custom":"alias",d=e(u,{label:"Engine",group:!0,children:e(T,{label:"Engine",options:ne,value:b,onChange:v})}),[y,g]=i(""),[w,A]=i(!1),[S,o]=i(0),t=h[b]??{},n=t[le[b]]??Object.values(t)[0];return e(D,{title:"Add a model",note:"A short name for an engine model, or an OpenAI-compatible endpoint",children:e("form",{class:"add-form",method:"post",onSubmit:async c=>{c.preventDefault();let E=c.currentTarget,l=Object.fromEntries([...new FormData(E)].map(([R,O])=>[R,String(O).trim()]));if(f==="custom"&&!l.name&&(l.name=ee(l.model??"")),!l.name||!l.model||f==="custom"&&!l.baseUrl)return;A(!0);let k=f==="alias"?await a(()=>P.models.alias(l.name,[b,l.model,y].filter(Boolean).join(":"))):await a(async()=>{let R=l.envKey||"OPENAI_API_KEY";return l.key&&await P.credentials.add({env:{[R]:l.key},engine:"custom",label:L.find(O=>O.id===l.provider)?.name,workspace:l.scope==="workspace"}),P.models.add({name:l.name,baseUrl:l.baseUrl,model:l.model,envKey:R})});A(!1),k&&(E.reset(),o(S+1))},children:f==="alias"?e("div",{class:"add-grid",children:[d,e(u,{label:"Name",children:e("input",{name:"name",placeholder:re(["fast","deep","quick"],U),autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})}),e(u,{label:"Model id",children:e("input",{name:"model",placeholder:n??"model id",autocomplete:"off"})}),e(u,{label:"Effort",hint:"optional",group:!0,children:e(T,{label:"Effort",options:[["",V(p[b])],...se],value:y,onChange:g})}),e(I,{type:"submit",loading:w,children:"Add"})]}):e(de,{engine:d,credentials:m,admin:C,taken:U,busy:w},S)})})}function de({engine:h,credentials:m,admin:C,taken:U,busy:p}){let[a,b]=i(L[0]??Q),[v,f]=i(a.baseUrl),[d,y]=i(a.envKey),[g,w]=i(""),[A,S]=i("personal"),[o,t]=i(null),n=_(0),[c,E]=i(""),l=s=>!!s&&!!m?.some(r=>r.env.includes(s)),[k,R]=i(!1),O=_(),j=(s,r,M)=>{let te=++n.current;if(!s.trim())return t(null);R(!0),P.models.probe({baseUrl:s.trim(),...r.trim()?{envKey:r.trim()}:{},...M.trim()?{key:M.trim()}:{}}).catch(F=>({reachable:!1,modelListed:null,models:null,detail:x(F)})).then(F=>{te===n.current&&(R(!1),t(F.models?{...F,models:[...F.models].sort()}:F))})},N=(s,r,M)=>{clearTimeout(O.current),O.current=setTimeout(()=>j(s,r,M),250)},oe=o?o.reachable?o.models?`${o.models.length} listed`:"reachable, no model list":/HTTP 40[13]/.test(o.detail)?"key rejected":o.detail:void 0;return e(K,{children:[e("div",{class:"add-grid",children:[h,e(u,{label:"Provider",group:!0,children:e(T,{label:"Provider",name:"provider",options:L.map(s=>[s.id,s.name]),value:a.id,onChange:s=>{let r=L.find(M=>M.id===s)??Q;b(r),f(r.baseUrl),y(r.envKey),t(null),(g.trim()||l(r.envKey)||!r.needsKey)&&j(r.baseUrl,r.envKey,g)}})}),e(u,{label:"Model name",hint:"optional",children:e("input",{name:"name",placeholder:ee(c)||"short name like kimi",autocomplete:"off",pattern:"[a-z0-9][a-z0-9\\-]*"})})]}),e("div",{class:"add-grid",children:[a.needsKey&&m?e(u,{label:"API key",hint:e(K,{children:[l(d)?`optional, your saved ${d}`:`saved as ${d}`,a.keyUrl?e(K,{children:[", ",e("a",{class:"link",href:a.keyUrl,target:"_blank",rel:"noopener noreferrer",children:"get a key"})]}):null]}),children:e("input",{name:"key",type:"password",autocomplete:"off",placeholder:l(d)?"Optional":`${a.name} API key`,value:g,onInput:s=>{w(s.currentTarget.value),N(v,d,s.currentTarget.value)}})}):null,e(u,{label:"Model id",group:!0,hint:k?e(H,{label:"Fetching models",inline:!0,dots:!0}):oe,children:e(X,{label:"Model id",onOpen:()=>{!o&&!k&&j(v,d,g)},name:"model",options:o?.models??[],placeholder:o?.models?.[0]??"qwen3-coder",value:c,onChange:E})}),a.needsKey&&m&&C?e(u,{label:"Scope",group:!0,children:e(T,{label:"Scope",name:"scope",options:ae,value:A,onChange:S})}):null]}),e("div",{class:"add-foot",children:[e("details",{class:"add-more",open:a.id==="other"||void 0,children:[e("summary",{children:"Advanced"}),e("div",{class:"add-grid",children:[e(u,{label:"Base URL",children:e("input",{name:"baseUrl",type:"url",placeholder:"http://localhost:11434/v1",autocomplete:"off",value:v,onInput:s=>{f(s.currentTarget.value),N(s.currentTarget.value,d,g)}})}),e(u,{label:"Key variable",children:e("input",{name:"envKey",class:"mono",placeholder:"OPENAI_API_KEY",autocomplete:"off",pattern:"[A-Za-z_][A-Za-z0-9_]*",value:d,onInput:s=>y(s.currentTarget.value)})})]})]}),e(I,{type:"submit",loading:p,children:"Add model"})]})]})}function Pe({first:h,config:m,credentials:C,admin:U}){let[p,a]=i(h),b=G(),v=Z(m.config),f=o=>b.run("send",async()=>{let t=await o();a(n=>({...n,models:t.models??{}}))}),d=o=>v.value.engines?.[o]?.model??m.effective.engines?.[o]?.model,y=o=>p.models[o]?.disabled===!0,g=v.value.chain??m.effective.chain??$,w=Object.entries(p.models).filter(([,o])=>o.provider||o.baseUrl),A=[...Object.entries(p.builtin).flatMap(([o,t])=>Object.entries(t).filter(([n])=>!w.some(([c])=>c===n)).map(([n,c])=>({name:n,engine:o,target:c,entry:p.models[n],removable:!1}))),...w.map(([o,t])=>({name:o,engine:t.provider??"custom",target:t.baseUrl?`${t.model} \xB7 ${t.baseUrl}`:`${t.model}${t.effort?` \xB7 ${t.effort}`:""}`,entry:t,removable:!0}))],S=[...new Set([...g,...$])].map(o=>[o,A.filter(t=>t.engine===o)]).filter(([,o])=>o.length);return e(K,{children:[e(ie,{builtin:p.builtin,credentials:C,admin:U,taken:{...p.models,...Object.assign({},...Object.values(p.builtin))},efforts:Object.fromEntries($.map(o=>[o,v.value.engines?.[o]?.effort??m.effective.engines?.[o]?.effort])),onAdd:f}),S.map(([o,t])=>e(W,{title:z[o]??o,count:t.length,children:t.map(({name:n,target:c,entry:E,removable:l})=>{let k=[n,c].includes(d(o)??"");return e(J,{title:n,badges:e(K,{children:[k&&g[0]===o?e(B,{tone:"acc",children:"default for new tasks"}):null,k&&g[0]!==o?e(B,{children:["default for ",z[o]??o]}):null,E?.disabled?e(B,{children:"off"}):null]}),sub:c===n?void 0:`\u2192 ${c}`,actions:k||E?.disabled?null:e(I,{variant:"ghost",size:"sm",onClick:()=>void v.patch({engines:{[o]:{model:n}}}),children:"Make default"}),menu:e(q,{title:y(n)?"Enable":"Disable",onClick:()=>void f(()=>P.models[y(n)?"enable":"disable"](n))}),remove:l?{title:`Remove ${n}?`,body:"Tasks that ask for it stop running.",onRemove:()=>f(()=>P.models.remove(n))}:void 0},n)})},o))]})}export{Pe as ModelsList};
@@ -1 +1 @@
1
- import{$1a as o}from"./shared-init-a7f2e71a718bc285.js";function t({tone:n,slim:e,children:i}){return o("div",{class:["notice",e&&"slim",n].filter(Boolean).join(" "),role:"status",children:i})}export{t as a};
1
+ import{$1a as o}from"./shared-init-03e620f936463465.js";function t({tone:n,slim:e,children:i}){return o("div",{class:["notice",e&&"slim",n].filter(Boolean).join(" "),role:"status",children:i})}export{t as a};