@wular/coder 0.4.12 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/README.md +3 -3
  2. package/dist/actions-CkMAM1Km.js +3 -0
  3. package/dist/agent-Bi5nbUhA.js +1 -0
  4. package/dist/app-server-BTpa5GBV.js +6 -0
  5. package/dist/approvals-CRwkc9vB.js +5 -0
  6. package/dist/apps-B6mUToTa.js +18 -0
  7. package/dist/args-CJsHYWbt.js +66 -0
  8. package/dist/async-CNhQ4wyZ.js +3 -0
  9. package/dist/auth-oCvlHitk.js +1 -0
  10. package/dist/builtin/coder/agent.json +6 -7
  11. package/dist/builtin/coder/system.md +5 -6
  12. package/dist/chat-4AiZEqKh.js +13 -0
  13. package/dist/{chat-bwKd3y6V.js → chat-Bfu9XKRa.js} +1 -1
  14. package/dist/cli.js +16 -11
  15. package/dist/{client-C4QCT6cG.js → client-nBo9Mhsr.js} +4 -4
  16. package/dist/cmd-Cu3OquA_.js +122 -0
  17. package/dist/config-D_RuO6gX.js +5 -0
  18. package/dist/connection-BXjn7gCC.js +1 -0
  19. package/dist/connections-Cswv7r8Z.js +2 -0
  20. package/dist/context-CFrDYenS.js +6 -0
  21. package/dist/crypto-Ittsv-m4.js +1 -0
  22. package/dist/dash/standalone/server/build-index.json +1 -1
  23. package/dist/dash/standalone/server/manifest.json +1686 -1428
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/event-json.856d33f567e58d0e.js +30 -0
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/http.e78b470f4ecf125b.js +58 -0
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.0de14cb4e30bd70d.js → index.54c45900f2153d34.js} +57 -77
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.60308a11f7001eb7.js → view.e20379d8f741754a.js} +78 -48
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/types.5bf5a41cedb54154.js +37 -0
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.be791a5eaf328738.js → load.252f972b42c690e2.js} +18 -11
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.70913bd4075da914.js → page.11efd0e175db9053.js} +24 -4
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.e348ec45e9ed951b.js → loading.56c14183236be231.js} +2 -2
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.61aab176baeefebd.js → notify.59ae138dc182d7c3.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.815371ed0d5dd4fa.js → page.e9386951cedea737.js} +9 -9
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.1d6af804f9ec043d.js → sign-out.713d3ec10951fde5.js} +4 -4
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.2ed0e66d131fc148.js → agent-menu.5c780867b82081b1.js} +3 -3
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.f43bcc1148ce3650.js → agents-grid.f989d6f2d9ece6e4.js} +9 -9
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.fac1132ad9c4248e.js → loading.0130f8533d8f1b1e.js} +4 -4
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.0f88720e52db99a2.js +48 -0
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.a795379254982121.js → layout.8d2f0997462fc958.js} +90 -33
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.388aeaf0c2edf8f8.js → loading.90bf37c903ce6f0d.js} +1 -1
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.a2cb6d1f1714259a.js → page.bc93891522c8120d.js} +22 -88
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.4da9e2ba3fea937f.js → loading.d56ef50b0694f975.js} +2 -2
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.996172c951739b35.js → page.cf5cf9afe38ab0e4.js} +51 -111
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.8e7ca54dd1821e98.js → platform-actions.c44c7df7841719f2.js} +235 -109
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-state.6b6132518ca61635.js +21 -0
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-step.6e90cbfe308f28a0.js +82 -0
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.aa9e157d141481d7.js → agent-settings-form.61de585104c2be10.js} +44 -66
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.ad1a4c9b000d269a.js → loading.2800c65e45a4a1d9.js} +1 -1
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.44d886e60ae04303.js → page.4d06f759984a63b3.js} +11 -11
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.521c9e7b8d77f557.js → loading.ea2925eab1d2e594.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.828cfb8112404792.js → page.fb069bf82b727d27.js} +1 -1
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.8f998a9c511e1fb3.js → loading.3a615597ca648452.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.45e18b6dc3019af4.js → page.0a472a0e269b8c01.js} +6 -6
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.c8d76988c734dda2.js → versions-list.7ef7dfd5d8f5de43.js} +3 -3
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.b1367e864b4fb406.js → loading.007326a04f05d46c.js} +5 -5
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.dd11f2618e08becd.js → page.a26aa7bc6ab655f0.js} +10 -10
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/app-cards.361918fe58349aa1.js +142 -0
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/loading.f0d91d48e2b79e50.js +14 -0
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/page.3f60cf67517d0d31.js +99 -0
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.f987c12bcbc5c850.js → agent-pills.1012e04bfbc7bffd.js} +5 -5
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.1579dc8acbaacf92.js → agent-toggle.ffbf9a8b8b2fbde7.js} +3 -3
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.ad5cc342db794e5d.js → hero.0ae015a4fbe6321e.js} +6 -6
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.85b1cd986a9edbb5.js → instructions.1b8c9189961c5a4f.js} +13 -4
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.43b4b28f194ea842.js → connect-repositories.9abe365f0098d358.js} +1 -1
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.776856fe1ed1a642.js → editor.6548f8f757578f90.js} +164 -116
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.eafa5b41a2ed571f.js → import-picker.577b1d84c7ab84e1.js} +11 -11
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.ee001af7a96e3972.js → loading.9b65a8c1cdc8346f.js} +5 -5
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.7d84ef2b178b34d2.js → page.2b326d00ccef5544.js} +9 -8
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.393cf7429eea189e.js → layout.45a09107b19f0a7e.js} +89 -26
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.f8d679f2d06b0ebc.js +155 -0
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.980adfb7c5714752.js → page.5aa3ddc669366703.js} +37 -10
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.24a1987405ed7b17.js → page.5a5188f0fc75dcd2.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/advanced-list.73cdadb2968a39d2.js +63 -0
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connection-add.353ec01fbb814f78.js +526 -0
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.cf4061ae909272c3.js +439 -0
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.683476f62a9ecde7.js → credentials-list.fc4cff0289267551.js} +120 -103
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.b43dd3d97c536c2a.js → credentials.db01de2581ac65f3.js} +9 -9
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.e7d6a422f6a869ea.js +201 -0
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.7ca95dcb4fb3362b.js → loading.71ca4f6c99a8a9d5.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.acb92b39cab1d11c.js +635 -0
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.dfed4ae6ffc74434.js → page.95fe939e36e5be55.js} +67 -41
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.3afa989490bbe77c.js → runners-list.5764eac3307d67cc.js} +42 -37
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.0d175ee815b22cd7.js → secrets-list.d316bb157f747f6c.js} +19 -17
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/chain-hint.65c4cc04c78e8bfd.js +18 -0
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.3e8289f888fa444c.js → layout.4eb70f2de8674f93.js} +7 -7
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.dc630cb6e2cbf83a.js +150 -0
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-pick.a143e77f5ed5f9d3.js +160 -0
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.06feaa5fbb06f1e6.js → page.70cad0e981c33fa5.js} +1 -1
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.bbc7ced8dd5491eb.js → settings-head.004ced21e02ffa48.js} +5 -5
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.29eee1a0b1852168.js → tunnel-guide.1bc6bff9d8019098.js} +1 -1
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.ff95e4b6977d0474.js → create-link.18bd2b92cd23b73f.js} +5 -5
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.894c73f9abee3ce1.js → outcome-dialog.a74e686aaed0c584.js} +3 -3
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-toast.95f7be49430248eb.js +24 -0
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome.cbbc8cd1bbbee01b.js → outcome.22a83d756e4020a7.js} +3 -6
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.f06fda0df59beeb5.js → page.e39ee9236664d043.js} +8 -8
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.3c79cf14feff12bf.js → activity.441e82ab00344fb2.js} +12 -6
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.47cbb34ea8d2e33f.js → loading.779ecdd9c9d2ff09.js} +6 -6
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.abed2a8424ef3da0.js → page.24e121ea6eb578ba.js} +16 -9
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.4a4052a38db4bad3.js +408 -0
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-missing.33ec27a4a5eafefe.js +27 -0
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.dc294bb94b7437e1.js → task-view.0cd3ec2655f44cc7.js} +53 -44
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.309a194fc7fa34be.js → composer-data.73225456d60d63e3.js} +4 -6
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.5072aacdce127689.js → composer.ee326fbf5e526fb1.js} +114 -121
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/pending-approvals.7607998094780fdd.js +40 -0
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/status.d2c05c397780b833.js +25 -0
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.0a1b5878dccd3b37.js → task.a25847399a4dfb30.js} +14 -18
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.1162926f7498c732.js → tasks-list.e486cbd16ea3e963.js} +62 -39
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.1d687c986db53a73.js → tasks-section.01510523d1556d59.js} +16 -10
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.d5d8cb5033823c9c.js → page.ede64f82388f9480.js} +5 -5
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2e21c7f891966c15.js → custom-range.fe91164d7a311356.js} +3 -3
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.261b6651df2d3966.js → day-chart.20faaaf57c81ad9e.js} +1 -1
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.97d277dbab9c15cf.js → loading.5b973a8bb29197d5.js} +3 -3
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.fb21ebe90d49dac1.js → page.0499098badd3f5f8.js} +7 -7
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.2197d8f43216d104.js → range-bar.0b9038e9df707843.js} +5 -5
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.18fc469e781e2305.js → top-agents.93c916167299ffb6.js} +2 -2
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.185dbc99875e208a.js → layout.94ea3908b03bede6.js} +2 -2
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.a82be2fd23e9ac67.js → page.4827d64c71c0690a.js} +2 -2
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.d3e61538dbc8ec39.js → drawer.1a08ff611df7fe38.js} +2 -2
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.1f4217895ff1e835.js → foreign-link.1d4f63a0379cbd1d.js} +3 -3
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.cc76fc9708142525.js → loading-card.77bea8c5870b5d3c.js} +5 -5
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.85f15db7b648d48c.js → page-head.2eb1e0213eb50349.js} +5 -4
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e2915852cf82c86b.js → stream.e3800e736f832124.js} +2 -2
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.0ed8ccaae81b9d53.js → task-toasts.3b7eeee29fc327de.js} +29 -19
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.85100ed66d6f9200.js → theme-choices.fc86071c1b634176.js} +2 -2
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.180765bdadf6d602.js → back.7aa0ae82dbec38cd.js} +3 -3
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.572ad93c7707ab27.js → org.853d173b55368728.js} +1 -1
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.489faf1a259479f7.js → side-toggle.be7d2a7529557435.js} +2 -2
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.c0bc352791a95fd6.js → badge.9f63fd615cf0ee22.js} +2 -2
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.ce9e6cdb08ca86db.js → button.b62fa52e18fa338b.js} +2 -2
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.9f0d45b73bc78b4f.js → card.c0030eafd76587e3.js} +21 -9
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.93e4d1b20c2873ed.js → collapse.eb578fdf42029754.js} +1 -1
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.54270c0251466fda.js → combo.e4e08287494081a3.js} +2 -2
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.c1281f9b12854210.js → confirm.e21b7f5e486dafb8.js} +3 -3
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.bd6fc1577a393965.js → copy.043e0695c08c72f9.js} +2 -2
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.3a452a262f040973.js → filter.0730dccad6332327.js} +6 -6
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.e36c72f54750663a.js → icons.f769275420d072ce.js} +4 -0
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.1d082ac4dae8f3d4.js → menu-items.759a1b1f7c5ee365.js} +2 -2
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.ee45bace979944b6.js → menu.7f558c7c6f6345d5.js} +3 -3
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.25d53e5b41b9c4e5.js → modal.08ac85d31f4c76c1.js} +8 -7
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.a533234c7c831be4.css.pnext-asset.js +0 -0
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.a08dc08338d080e9.js → segmented.633abe26ff760e37.js} +1 -1
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/segmented.c6f30b839fd27f35.css.pnext-asset.js +0 -0
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.2eb33e5bea28d804.js → select.0ee9e8f04ddd8b47.js} +9 -6
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.17cffebfc3103b9f.js → sentinel.0ddf515b8f09ef9f.js} +1 -1
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.d17e2bfcbeb9df31.css.pnext-asset.js +0 -0
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tabs.025b532d6cc51736.css.pnext-asset.js +0 -0
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.66b2e54963f6901b.js → tabs.1600a0b563a5c7dd.js} +1 -1
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.04132db0c5033d4f.js → tail.7eb303330802ac18.js} +2 -2
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.cdbd0357f2c5e1fe.css.pnext-asset.js +0 -0
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.24036899654de6df.js → toolbar.ff8367c641d28c1e.js} +3 -3
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.b9a5c37272250e82.js → action.f22057e7dfac40fe.js} +1 -1
  152. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.a3928fa2dcd27b75.js → client.c8d7efefb6194d7d.js} +1 -1
  153. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/routes/http.394704f4f12ada08.js +165 -0
  154. package/dist/dash/standalone/server/modules-server-server-react-server/src/utils/crypto.24a6439ff8d10d3d.js +11 -0
  155. package/dist/dash/standalone/static/assets/chunks/advanced-list-850a950afe4f6996.js +1 -0
  156. package/dist/dash/standalone/static/assets/chunks/agent-pills-9f6fa120182db948.js +2 -0
  157. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +1 -0
  158. package/dist/dash/standalone/static/assets/chunks/agent-toggle-521136f20a71400d.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/agents-grid-bcd13cd7a46224a6.js +1 -0
  160. package/dist/dash/standalone/static/assets/chunks/{back-fa9d6e37f9828093.js → back-2d67134b122334f4.js} +1 -1
  161. package/dist/dash/standalone/static/assets/chunks/chain-hint-53675e299a865420.js +1 -0
  162. package/dist/dash/standalone/static/assets/chunks/{combo-86f3e11d1f6f6cee.js → combo-cb2c62fe580a8903.js} +1 -1
  163. package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +1 -0
  164. package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +1 -0
  165. package/dist/dash/standalone/static/assets/chunks/composer-data-890f71bade4f0616.js +1 -0
  166. package/dist/dash/standalone/static/assets/chunks/{confirm-c29a1db0130638d2.js → confirm-d6b2c5b1deccd1e8.js} +1 -1
  167. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-0de82daaf654b1d3.js → connect-repositories-226bf70aa81c29d8.js} +1 -1
  168. package/dist/dash/standalone/static/assets/chunks/connections-list-a33d6637e2d52fcf.js +1 -0
  169. package/dist/dash/standalone/static/assets/chunks/{copy-445c11202f136275.js → copy-294c6052b3b69424.js} +1 -1
  170. package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +1 -0
  171. package/dist/dash/standalone/static/assets/chunks/credentials-list-90fc1c6d202e1461.js +1 -0
  172. package/dist/dash/standalone/static/assets/chunks/custom-range-efa1b6a71ba84597.js +1 -0
  173. package/dist/dash/standalone/static/assets/chunks/editor-53a3e1a893644fff.js +6 -0
  174. package/dist/dash/standalone/static/assets/chunks/{field-b82a0f895266791c.js → field-4d374d5ed3f43d7e.js} +1 -1
  175. package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +1 -0
  176. package/dist/dash/standalone/static/assets/chunks/instructions-d3dc01b2f90820db.js +2 -0
  177. package/dist/dash/standalone/static/assets/chunks/list-16247e39898cd20e.js +1 -0
  178. package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +1 -0
  179. package/dist/dash/standalone/static/assets/chunks/models-list-6d93523660503dfb.js +1 -0
  180. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-5cf575a5e6921a5d.js → outcome-dialog-755fc581cbc2836e.js} +1 -1
  181. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +1 -0
  182. package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +1 -0
  183. package/dist/dash/standalone/static/assets/chunks/platform-actions-08e9b3816dcd62b1.js +1 -0
  184. package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +1 -0
  185. package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +1 -0
  186. package/dist/dash/standalone/static/assets/chunks/platform-step-5881a8be1e761e00.js +1 -0
  187. package/dist/dash/standalone/static/assets/chunks/runners-list-dd759d408c643a29.js +1 -0
  188. package/dist/dash/standalone/static/assets/chunks/{runtime-6e12333f12903a62-1.js → runtime-9b28886f3cbe0ed3-1.js} +1 -1
  189. package/dist/dash/standalone/static/assets/chunks/secrets-list-be1f634a1b077baa.js +1 -0
  190. package/dist/dash/standalone/static/assets/chunks/segmented-f646bfa8aa0aa449.js +1 -0
  191. package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +9 -0
  192. package/dist/dash/standalone/static/assets/chunks/shared-init-953965859f7bf6b9.js +1 -0
  193. package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +1 -0
  194. package/dist/dash/standalone/static/assets/chunks/shared-init-b42d2c06c25d1e2b.js +1 -0
  195. package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +1 -0
  196. package/dist/dash/standalone/static/assets/chunks/{tail-b1c46587301ef397.js → tail-d13c4cc0cf11ffd1.js} +1 -1
  197. package/dist/dash/standalone/static/assets/chunks/task-423e6a3f2527f534.js +1 -0
  198. package/dist/dash/standalone/static/assets/chunks/task-actions-5917357eac6504ca.js +3 -0
  199. package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +3 -0
  200. package/dist/dash/standalone/static/assets/chunks/tasks-list-2c5ce592e00fda45.js +1 -0
  201. package/dist/dash/standalone/static/assets/chunks/versions-list-177ae397ad64dcea.js +1 -0
  202. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-6e12333f12903a62-0.js → wular-pnext-9b28886f3cbe0ed3-0.js} +1 -1
  203. package/dist/dash/standalone/static/assets/create-param-id-2c72f3e32e7f8b8d.css +1 -0
  204. package/dist/dash/standalone/static/assets/dash-param-org-a7f30a8c5a6fa651.css +1 -0
  205. package/dist/dash/standalone/static/assets/dash-param-org-account-76fffb9337b633f2.css +1 -0
  206. package/dist/dash/standalone/static/assets/dash-param-org-agents-cc5d59edfc3cf0b1.css +1 -0
  207. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-170499c849114150.css +1 -0
  208. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-00243b34eb094b95.css +1 -0
  209. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-199a9991de1bf2d9.css +1 -0
  210. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +1 -0
  211. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-param-app-a6d559f0e26bd01b.css +1 -0
  212. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css +1 -0
  213. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css +1 -0
  214. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css +1 -0
  215. package/dist/dash/standalone/static/assets/dash-param-org-operator-8d5ef55834d8deba.css +1 -0
  216. package/dist/dash/standalone/static/assets/dash-param-org-settings-7138821f5422d087.css +1 -0
  217. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-586fec34f285e9cb.css +1 -0
  218. package/dist/dash/standalone/static/assets/dash-param-org-setup-67679c1f84f352cf.css +1 -0
  219. package/dist/dash/standalone/static/assets/dash-param-org-tasks-8a44e171984d32a1.css +1 -0
  220. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css +1 -0
  221. package/dist/dash/standalone/static/assets/dash-param-org-usage-c534db20ce538fd2.css +1 -0
  222. package/dist/dash/standalone/static/assets/global-df2c26ad15039e8a.css +1 -0
  223. package/dist/dash/standalone/static/assets/{login-9760b85feae40270.css → login-148795638d6ff5d4.css} +1 -1
  224. package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +1 -0
  225. package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +1 -0
  226. package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +1 -0
  227. package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +1 -0
  228. package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +1 -0
  229. package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +1 -0
  230. package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +1 -0
  231. package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +1 -0
  232. package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +1 -0
  233. package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +1 -0
  234. package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +1 -0
  235. package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +1 -0
  236. package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +1 -0
  237. package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +1 -0
  238. package/dist/dash/standalone/static/assets/pnext-client-7ecbd7a0cbe4e231.js +1 -0
  239. package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +1 -0
  240. package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +1 -0
  241. package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +1 -0
  242. package/dist/dash/standalone/static/assets/pnext-client-ed31510d4615a5a5.js +1 -0
  243. package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +1 -0
  244. package/dist/definition-4on4SG5J.js +1 -0
  245. package/dist/discover-DvzAbQvU.js +1 -0
  246. package/dist/dispatch-BaW2X6Sc.js +12 -0
  247. package/dist/{dist-DAnSqY1s.js → dist-B5qUdWUG.js} +35 -35
  248. package/dist/{dist-B2jiMMxZ.js → dist-Clxdruuu.js} +3 -3
  249. package/dist/{dist-ClCNj65n.js → dist-CymLGfHl.js} +4 -4
  250. package/dist/{adapter-CVd5klMH.js → dist-DX0JzVC6.js} +990 -990
  251. package/dist/{adapter-CU9H4g6c.js → dist-DfD9WmV8.js} +39 -39
  252. package/dist/dist-node-B8VIVzUc.js +20 -0
  253. package/dist/docs-CbgaMPvq.js +2 -0
  254. package/dist/drive-Tk6JvQK5.js +1 -0
  255. package/dist/drizzle-orm-CYU7WOQS.js +2 -0
  256. package/dist/emit-BgeqsCkC.js +11 -0
  257. package/dist/env-_AxrvBXP.js +1 -0
  258. package/dist/errors-DK_trCff.js +1 -0
  259. package/dist/exec-CAaYFJD1.js +3 -0
  260. package/dist/executor-Chc0zawh.js +11 -0
  261. package/dist/flow/builtin/review/index.d.ts +2 -2
  262. package/dist/flow/builtin/review/index.js +9 -9
  263. package/dist/flow/index.d.ts +1 -1
  264. package/dist/flow/index.js +1 -1
  265. package/dist/github-actions-2RjyRseX.js +36 -0
  266. package/dist/hook-COWDSO4a.js +1 -0
  267. package/dist/http-615JJgHo.js +5 -0
  268. package/dist/http-DRk8cDjf.js +1 -0
  269. package/dist/{index-BdkdNI1v.d.ts → index-ezhbF5wC.d.ts} +369 -413
  270. package/dist/integrations-BVmsk64f.js +9 -0
  271. package/dist/lib/broker.js +2 -2
  272. package/dist/load-PqaDHiHX.js +2 -0
  273. package/dist/local-BMGcCk8N.js +1 -0
  274. package/dist/local-BzZuOwgI.js +5 -0
  275. package/dist/login-BDKTNynK.js +8 -0
  276. package/dist/maintenance-d43Ml540.js +1 -0
  277. package/dist/mcp-BGam3G_B.js +1 -0
  278. package/dist/mcp-BGx48pyR.js +25 -0
  279. package/dist/mcp-BNz_l5TV2.js +1 -0
  280. package/dist/metadata-D_bBfr3H.js +1 -0
  281. package/dist/models-D1NXi6ni.js +1 -0
  282. package/dist/output-BKeyLbvt.js +5 -0
  283. package/dist/permission-BkYxjiFR.js +1 -0
  284. package/dist/prompt-CpwbsEWM.js +4 -0
  285. package/dist/refresh-yfEi5SQs.js +1 -0
  286. package/dist/remote-BbXx6S9P.js +1 -0
  287. package/dist/remote-rArUa01V.js +2 -0
  288. package/dist/runner-DG9jrX5H.js +1 -0
  289. package/dist/runner.json +1 -1
  290. package/dist/runner.tgz +0 -0
  291. package/dist/schema.d.ts +2 -2
  292. package/dist/schema.js +2 -3
  293. package/dist/sdk.d.ts +3264 -1601
  294. package/dist/sdk.js +1 -1
  295. package/dist/serve-B-5rDiZm.js +1 -0
  296. package/dist/serve-CvnrGAj7.js +12 -0
  297. package/dist/serve-DoYbHm_k.js +5 -0
  298. package/dist/session-Dtje9y-r.js +1 -0
  299. package/dist/sessions-DIz9fyRN.js +1 -0
  300. package/dist/shared--aE4olIO.js +1 -0
  301. package/dist/sign-in-wWkyaq5X.js +3 -0
  302. package/dist/state-Br-Fuaxg.js +6 -0
  303. package/dist/store-CzQLgCzt.js +352 -0
  304. package/dist/task-CFt85vTy.js +1 -0
  305. package/dist/task-N0qhnKpK.js +7 -0
  306. package/dist/tool-search-BkdgVolu.js +6 -0
  307. package/dist/tools-DNgEptor.js +1 -0
  308. package/dist/tools-oQvFAnh5.js +1 -0
  309. package/dist/tools-search-D1zArRyJ.js +1 -0
  310. package/dist/turn-Cc-v-eSy.js +3 -0
  311. package/dist/types-DHBqXFE2.js +1 -0
  312. package/dist/update-check-UyRob3yy.js +1 -0
  313. package/dist/view-D-rbQ1Kz.js +4 -0
  314. package/dist/views-3TxH367C.js +2 -0
  315. package/dist/worker-BMuKKiIa.js +1 -0
  316. package/dist/worker-CIHY9L42.js +7 -0
  317. package/dist/zod-_-snqfdO.js +1 -0
  318. package/dist/zod.js +65 -1
  319. package/docs/agents/coder.md +5 -12
  320. package/docs/agents/index.md +53 -82
  321. package/docs/approvals.md +47 -0
  322. package/docs/cli/agent.md +40 -19
  323. package/docs/cli/auth.md +1 -1
  324. package/docs/cli/connection.md +27 -26
  325. package/docs/cli/flow.md +9 -9
  326. package/docs/cli/index.md +17 -15
  327. package/docs/cli/model.md +23 -21
  328. package/docs/cli/runner.md +1 -1
  329. package/docs/cli/server.md +2 -2
  330. package/docs/cli/task.md +50 -50
  331. package/docs/config.md +37 -75
  332. package/docs/connections.md +80 -0
  333. package/docs/dash.md +23 -19
  334. package/docs/flows.md +46 -213
  335. package/docs/models.md +48 -77
  336. package/docs/review.md +20 -17
  337. package/docs/runners.md +49 -0
  338. package/docs/sdk.md +49 -73
  339. package/docs/self-host.md +79 -81
  340. package/package.json +4 -5
  341. package/plugins/agents/skills/coder/SKILL.md +3 -3
  342. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  343. package/plugins/claude/skills/dispatch/SKILL.md +3 -3
  344. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  345. package/plugins/cursor/README.md +3 -3
  346. package/plugins/cursor/skills/coder/SKILL.md +3 -3
  347. package/dist/actions-BT7_eKXm.js +0 -10
  348. package/dist/adapter-BT8ECcRG.js +0 -1
  349. package/dist/agent-BA6xr8QY.js +0 -8
  350. package/dist/apps-D-v5sQJk.js +0 -367
  351. package/dist/args-CbO_Ck9Z.js +0 -11
  352. package/dist/async-XNO3nqum.js +0 -3
  353. package/dist/auth-DuXnSNf9.js +0 -1
  354. package/dist/base64url-CsVsW4Id.js +0 -1
  355. package/dist/chat-CgQdDRhs.js +0 -13
  356. package/dist/cmd-DX5ByXo3.js +0 -119
  357. package/dist/connection-DNxi2btM.js +0 -1
  358. package/dist/context-65bOofts.js +0 -7
  359. package/dist/conversation-DT-35cEt.js +0 -1
  360. package/dist/core-DwsAMCnL.js +0 -65
  361. package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +0 -1
  362. package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +0 -1
  363. package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +0 -2
  364. package/dist/dash/standalone/node_modules/contextjsx/package.json +0 -70
  365. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.dac8eb211c500271.js +0 -141
  366. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/defaults.1b615366c56838a1.js +0 -57
  367. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/sign-in.661b3a4139af5bd7.js +0 -11
  368. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/page.0fbfdba5254f7ae5.js +0 -26
  369. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.f3af8cc8540719d7.js +0 -36
  370. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.c6efd5432c1a4a75.js +0 -65
  371. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.a244f3199e7cf09c.js +0 -144
  372. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.21ec9dc73ce68656.js +0 -642
  373. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/engines-list.9e116751bd34e2cc.js +0 -73
  374. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.083f5c665df04b1b.js +0 -156
  375. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.537f63f8e5dd085d.js +0 -410
  376. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.a96c11d11674f598.js +0 -100
  377. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.587da79d68ab8d14.js +0 -151
  378. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/status.16190fdd5fd7daad.js +0 -16
  379. package/dist/dash/standalone/static/assets/chunks/action-71685b2d5ad9f359.js +0 -1
  380. package/dist/dash/standalone/static/assets/chunks/agent-pills-15da36c2cb81991b.js +0 -2
  381. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-6e6a87d6e673daa8.js +0 -1
  382. package/dist/dash/standalone/static/assets/chunks/agent-toggle-ca98586e3b4ce9ae.js +0 -1
  383. package/dist/dash/standalone/static/assets/chunks/agents-grid-29c399e46b4e9e2b.js +0 -1
  384. package/dist/dash/standalone/static/assets/chunks/composer-85e0ec7163ae18b7.js +0 -1
  385. package/dist/dash/standalone/static/assets/chunks/composer-910bb87127972f62.js +0 -1
  386. package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +0 -1
  387. package/dist/dash/standalone/static/assets/chunks/connect-apps-b73490e04ae6398d.js +0 -1
  388. package/dist/dash/standalone/static/assets/chunks/connections-list-c50f58b4b28d10bb.js +0 -1
  389. package/dist/dash/standalone/static/assets/chunks/create-link-6d64a2d5f9ce6de0.js +0 -1
  390. package/dist/dash/standalone/static/assets/chunks/credentials-list-bee95799b2319b3b.js +0 -1
  391. package/dist/dash/standalone/static/assets/chunks/custom-range-a0630599f907b30e.js +0 -1
  392. package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +0 -1
  393. package/dist/dash/standalone/static/assets/chunks/editor-b9951819f21b2e43.js +0 -6
  394. package/dist/dash/standalone/static/assets/chunks/engines-list-2720c3e8fa12b2f7.js +0 -1
  395. package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +0 -1
  396. package/dist/dash/standalone/static/assets/chunks/instructions-affaaeff366b1725.js +0 -2
  397. package/dist/dash/standalone/static/assets/chunks/instructions-fd7402ac5aa8b50e.js +0 -1
  398. package/dist/dash/standalone/static/assets/chunks/list-d918f79562d497eb.js +0 -1
  399. package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +0 -1
  400. package/dist/dash/standalone/static/assets/chunks/models-list-12bc7aceaa52f5b0.js +0 -1
  401. package/dist/dash/standalone/static/assets/chunks/notice-57db7a1f05b7308c.js +0 -1
  402. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-b219595be320108a.js +0 -1
  403. package/dist/dash/standalone/static/assets/chunks/platform-actions-1d27d2ba7eee9ff1.js +0 -1
  404. package/dist/dash/standalone/static/assets/chunks/platform-actions-dba96dcb0f6513db.js +0 -1
  405. package/dist/dash/standalone/static/assets/chunks/runners-list-36f8c5ecfcf8e9ae.js +0 -1
  406. package/dist/dash/standalone/static/assets/chunks/secrets-list-d7dbafd24dd18481.js +0 -1
  407. package/dist/dash/standalone/static/assets/chunks/segmented-8f809ebe712e92a7.js +0 -1
  408. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +0 -1
  409. package/dist/dash/standalone/static/assets/chunks/shared-init-cc13a835f3508618.js +0 -2
  410. package/dist/dash/standalone/static/assets/chunks/shared-init-f475017dd5811e33.js +0 -5
  411. package/dist/dash/standalone/static/assets/chunks/side-toggle-0aa237eba3dfe9c1.js +0 -1
  412. package/dist/dash/standalone/static/assets/chunks/task-681061023bdf0a49.js +0 -5
  413. package/dist/dash/standalone/static/assets/chunks/task-actions-c9e46e81604e85c5.js +0 -1
  414. package/dist/dash/standalone/static/assets/chunks/task-view-134186a544917ceb.js +0 -5
  415. package/dist/dash/standalone/static/assets/chunks/tasks-list-352a3222d878de0f.js +0 -1
  416. package/dist/dash/standalone/static/assets/chunks/versions-list-21cb854e6a7108a7.js +0 -1
  417. package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +0 -1
  418. package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +0 -1
  419. package/dist/dash/standalone/static/assets/dash-param-org-account-9471bec93c444232.css +0 -1
  420. package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +0 -1
  421. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +0 -1
  422. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +0 -1
  423. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +0 -1
  424. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +0 -1
  425. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +0 -1
  426. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +0 -1
  427. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +0 -1
  428. package/dist/dash/standalone/static/assets/dash-param-org-bcfa3de29341d5ba.css +0 -1
  429. package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +0 -1
  430. package/dist/dash/standalone/static/assets/dash-param-org-settings-6d6902345d88a687.css +0 -1
  431. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +0 -1
  432. package/dist/dash/standalone/static/assets/dash-param-org-setup-173efecd7b990c2e.css +0 -1
  433. package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +0 -1
  434. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +0 -1
  435. package/dist/dash/standalone/static/assets/dash-param-org-usage-517b2a7ae462ac57.css +0 -1
  436. package/dist/dash/standalone/static/assets/global-87e1762113874559.css +0 -1
  437. package/dist/dash/standalone/static/assets/pnext-client-05df74b071ddb0b3.js +0 -1
  438. package/dist/dash/standalone/static/assets/pnext-client-2c19cca257f78ae6.js +0 -1
  439. package/dist/dash/standalone/static/assets/pnext-client-2db05dfa62642a65.js +0 -1
  440. package/dist/dash/standalone/static/assets/pnext-client-36b0d6085a073880.js +0 -1
  441. package/dist/dash/standalone/static/assets/pnext-client-576c06599e241231.js +0 -1
  442. package/dist/dash/standalone/static/assets/pnext-client-6aa0f19a30d58d63.js +0 -1
  443. package/dist/dash/standalone/static/assets/pnext-client-6b30b71f452f2f07.js +0 -1
  444. package/dist/dash/standalone/static/assets/pnext-client-6ccb4d4fff812db3.js +0 -1
  445. package/dist/dash/standalone/static/assets/pnext-client-74eb465defba421e.js +0 -1
  446. package/dist/dash/standalone/static/assets/pnext-client-8c692d12b2fd90d6.js +0 -1
  447. package/dist/dash/standalone/static/assets/pnext-client-92e17d39063a9ced.js +0 -1
  448. package/dist/dash/standalone/static/assets/pnext-client-93246aea268c2682.js +0 -1
  449. package/dist/dash/standalone/static/assets/pnext-client-9954dcbc0c579e0d.js +0 -1
  450. package/dist/dash/standalone/static/assets/pnext-client-c0dfa1cdde9a9855.js +0 -1
  451. package/dist/dash/standalone/static/assets/pnext-client-c28d38d4aafd4af6.js +0 -1
  452. package/dist/dash/standalone/static/assets/pnext-client-c2c30dcb6dc31d60.js +0 -1
  453. package/dist/dash/standalone/static/assets/pnext-client-dbf741073e11eac0.js +0 -1
  454. package/dist/dash/standalone/static/assets/pnext-client-e29194a27280333f.js +0 -1
  455. package/dist/dash/standalone/static/assets/pnext-client-f8a7e692b27caad9.js +0 -1
  456. package/dist/dash/standalone/static/assets/pnext-client-fc5b8cfcba2a9f63.js +0 -1
  457. package/dist/discover-CPZdprlQ.js +0 -1
  458. package/dist/dist-node-Bv1kCqyi.js +0 -20
  459. package/dist/docs-x-l7gjFE.js +0 -2
  460. package/dist/drive-Y-ZlgiUW.js +0 -1
  461. package/dist/env-B9JG6gwo.js +0 -1
  462. package/dist/errors-XBA-Ls4n.js +0 -10
  463. package/dist/exec-iFssTO5V.js +0 -3
  464. package/dist/executor-Dt2FFT-y.js +0 -11
  465. package/dist/http-BZfjbiov.js +0 -1
  466. package/dist/integrations-DyInAa5g.js +0 -2
  467. package/dist/load-zhcrwSRF.js +0 -2
  468. package/dist/local-D55UkW93.js +0 -5
  469. package/dist/log-view-CL3_S0IQ.js +0 -3
  470. package/dist/maintenance-BfxcatXH.js +0 -1
  471. package/dist/match-Bq4sDuCy.js +0 -1
  472. package/dist/mcp-Bta09QCU.js +0 -13
  473. package/dist/mcp-CUITALl1.js +0 -1
  474. package/dist/models-C1O2DrXx.js +0 -1
  475. package/dist/output-D95NoAA9.js +0 -16
  476. package/dist/prompt-onpyIyXK.js +0 -8
  477. package/dist/prompts-B8pKhMcu.js +0 -4
  478. package/dist/refresh-D-0K9fo3.js +0 -1
  479. package/dist/remote-CDm0YUU3.js +0 -3
  480. package/dist/runner-CTFTuaz_.js +0 -1
  481. package/dist/runners-CYTicTb7.js +0 -36
  482. package/dist/serve-Bzs_lEg-.js +0 -1
  483. package/dist/serve-CWtLyyTz.js +0 -12
  484. package/dist/serve-DE6A-rBk.js +0 -4
  485. package/dist/slack-Bo5l13Rs.js +0 -5
  486. package/dist/task-BU1JEK9X.js +0 -7
  487. package/dist/task-CPzBITsp.js +0 -1
  488. package/dist/tools-BMaKWTa6.js +0 -1
  489. package/dist/tools-CM4UCsId.js +0 -1
  490. package/dist/turn-DMvPfhb5.js +0 -3
  491. package/dist/types-D_xnfP7m.js +0 -1
  492. package/dist/views-DEdKqLm_.js +0 -5
  493. package/dist/wire-JMNPv8f6.js +0 -1
  494. package/dist/worker-BuP_Lem1.js +0 -9
  495. package/dist/worker-C1tuzq5n.js +0 -1
  496. package/dist/zod-BoqHoRCH.js +0 -1
  497. package/docs/mcp.md +0 -54
  498. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.0a735590a5412ea6.js → errors.200335e62a9d9564.js} +0 -0
  499. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.061f6006f2685f5e.css.pnext-asset.js → page.abe7a6d16eb15c41.css.pnext-asset.js} +0 -0
  500. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.c811938ae8a8f1df.css.pnext-asset.js → page.1c7947d6f79d6447.css.pnext-asset.js} +0 -0
  501. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{settings/agent-settings-form.ca926c58d15044aa.css.pnext-asset.js → platforms/platform-step.a722e3b8539a0f85.css.pnext-asset.js} +0 -0
  502. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/hero.1bef5dca89b5942c.css.pnext-asset.js → [slug]/(tabs)/settings/agent-settings-form.bf5430862c505c55.css.pnext-asset.js} +0 -0
  503. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/instructions.446bccc375f30eeb.css.pnext-asset.js → [slug]/platforms/[app]/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.db05694ed4113dab.css.pnext-asset.js} +0 -0
  504. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{editor/editor.c496247a81ed832c.css.pnext-asset.js → [slug]/platforms/[app]/app-cards.d2f5c8d620066e05.css.pnext-asset.js} +0 -0
  505. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.a4efa8d807fe5416.css.pnext-asset.js → agents/agent/hero.243d85cac1f22df2.css.pnext-asset.js} +0 -0
  506. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js → agents/agent/instructions.4c31196fcbf9846c.css.pnext-asset.js} +0 -0
  507. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js → agents/editor/editor.6b9a1d5c0a490153.css.pnext-asset.js} +0 -0
  508. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/credentials-list.f7c27f170ec1e868.css.pnext-asset.js → layout.52abe52dcfa736d7.css.pnext-asset.js} +0 -0
  509. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.9927d602ebe9e7fc.css.pnext-asset.js → advanced-list.819e410e4178b328.css.pnext-asset.js} +0 -0
  510. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.8cbee173a5aff98d.css.pnext-asset.js → connections-list.87962937438296f1.css.pnext-asset.js} +0 -0
  511. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.53c7ea80b6fb734c.css.pnext-asset.js → credentials-list.973f91751525bcb6.css.pnext-asset.js} +0 -0
  512. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/[id]/task-view.57990cfd2bdf5c11.css.pnext-asset.js → settings/[tab]/list.69d1b62c4066015b.css.pnext-asset.js} +0 -0
  513. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/composer.5b8687662e1629fa.css.pnext-asset.js → settings/[tab]/models-list.efd3f5781314c1d9.css.pnext-asset.js} +0 -0
  514. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/list/tasks-list.abbbc9ace4d866e5.css.pnext-asset.js → settings/[tab]/runners-list.df35d33aba0c8b07.css.pnext-asset.js} +0 -0
  515. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.c8fd2b8b01e7077b.css.pnext-asset.js → dash/[org]/settings/model-pick.74fababc0cc0bba7.css.pnext-asset.js} +0 -0
  516. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{responsive.ebc5f7d77b4b86a0.css.pnext-asset.js → dash/[org]/tasks/[id]/task-view.aae9fa481b9015d1.css.pnext-asset.js} +0 -0
  517. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/page-head.364ec93a8e7857b3.css.pnext-asset.js → app/dash/[org]/tasks/composer.33d49ad218253703.css.pnext-asset.js} +0 -0
  518. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/task-toasts.d13d9f628e530552.css.pnext-asset.js → app/dash/[org]/tasks/list/pending-approvals.07e59a9cae7ccf29.css.pnext-asset.js} +0 -0
  519. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/badge.0cb1513f8b077560.css.pnext-asset.js → app/dash/[org]/tasks/list/tasks-list.f3737549b4696cc8.css.pnext-asset.js} +0 -0
  520. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/button.d7f4433f4e7faa80.css.pnext-asset.js → app/globals.3b53a3feaa1d72e1.css.pnext-asset.js} +0 -0
  521. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js → app/responsive.2979ffa0161a5afd.css.pnext-asset.js} +0 -0
  522. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/filter.b53f21acc3e2cfef.css.pnext-asset.js → frame/page-head.9fcc49ddf7119d75.css.pnext-asset.js} +0 -0
  523. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/menu.25b184f68cba7b46.css.pnext-asset.js → frame/task-toasts.682322f6f729b33e.css.pnext-asset.js} +0 -0
  524. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.9db07d368dcf5981.css.pnext-asset.js → badge.8e2a9842b28f44a6.css.pnext-asset.js} +0 -0
  525. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.0bd8652fdbc05eb0.css.pnext-asset.js → button.2b18ba19ae01e2bb.css.pnext-asset.js} +0 -0
  526. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.1e3ec9bd6008d811.css.pnext-asset.js → card.4ab7ad42a0770726.css.pnext-asset.js} +0 -0
  527. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.ca13e40ff54128d0.css.pnext-asset.js → filter.6fdff1e7355aaa0e.css.pnext-asset.js} +0 -0
  528. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.19e1ce5224a23acf.css.pnext-asset.js → menu.cd96fa0495fe0fde.css.pnext-asset.js} +0 -0
@@ -0,0 +1,30 @@
1
+ export const unxml = (text) => text.replace(/&(amp|lt|gt);/g, (_, name) => ({
2
+ amp: "&",
3
+ lt: "<",
4
+ gt: ">"
5
+ })[name]);
6
+ /** Read event JSON, optionally alongside a turn's history or other text. */
7
+ export function eventJsons(prompt = "", embedded = false) {
8
+ const event = /<event>\n([^]*?)\n<\/event>/g;
9
+ if (!embedded && (!prompt.trimStart().startsWith("<event>") || prompt.replace(event, "").trim())) return;
10
+ const events = [];
11
+ for (const [, body] of prompt.matchAll(event)) {
12
+ try {
13
+ const json = JSON.parse(unxml(body));
14
+ if (!json || typeof json !== "object" || Array.isArray(json)) {
15
+ if (!embedded) return;
16
+ continue;
17
+ }
18
+ events.push(json);
19
+ } catch (error) {
20
+ console.error("coder: unreadable event prompt", error);
21
+ if (!embedded) return;
22
+ }
23
+ }
24
+ return events.length ? events : undefined;
25
+ }
26
+ /** Any event in a turn or its live steers can require a reply. */
27
+ export function replyRequired(prompt, fallback, steers = []) {
28
+ const asks = [prompt ?? "", ...steers].flatMap((text) => (eventJsons(text, true) ?? []).flatMap((json) => typeof json.mustReply === "boolean" ? [json.mustReply] : []));
29
+ return asks.length ? asks.includes(true) : fallback;
30
+ }
@@ -0,0 +1,58 @@
1
+ /** Server URLs and Server-Sent Events parsing, free of dependencies so the dashboard imports it. */
2
+ import { CoderError } from "../core/errors.200335e62a9d9564.js";
3
+ export function isLoopbackServer(server) {
4
+ try {
5
+ const host = new URL(server).hostname.toLowerCase();
6
+ return host === "localhost" || host === "[::1]" || /^127(?:\.\d{1,3}){3}$/.test(host);
7
+ } catch {
8
+ return false;
9
+ }
10
+ }
11
+ /** A cloud task's server socket, served by its runner; none outside a cloud task. */
12
+ export function taskSocket() {
13
+ const server = process.env.CODER_SERVER;
14
+ return process.env.CODER_MCP_MODE === "cloud" && server?.startsWith("unix:") ? server.slice("unix:".length) : undefined;
15
+ }
16
+ export function validateUrl(raw) {
17
+ let url;
18
+ try {
19
+ url = new URL(raw);
20
+ } catch {
21
+ throw new CoderError("invalid-option", "Give the server as a URL, e.g. https://agents.example.com.");
22
+ }
23
+ if (url.protocol !== "https:" && !(url.protocol === "http:" && isLoopbackServer(url.origin))) throw new CoderError("invalid-option", "Coder servers require HTTPS unless they are loopback.", { hint: "Use https://, or http://localhost for a local server." });
24
+ if (url.username || url.password || url.search || url.hash) throw new CoderError("invalid-option", "The server must be an origin without credentials, query, or fragment.");
25
+ return url.toString().replace(/\/+$/, "");
26
+ }
27
+ export const queryPath = (path, options) => {
28
+ const query = new URLSearchParams();
29
+ if ("cursor" in options && typeof options.cursor === "string") query.set("cursor", options.cursor);
30
+ for (const [key, value] of Object.entries(options)) if (key !== "cursor" && value !== undefined && value !== false && value !== "") query.set(key, value === true ? "1" : Array.isArray(value) ? value.join(",") : String(value));
31
+ return `${path}?${query}`;
32
+ };
33
+ /** Server-Sent Events from a response body, one `{ event, data }` per message. */
34
+ export async function* serverEvents(body) {
35
+ const decoder = new TextDecoder();
36
+ let buffer = "";
37
+ for await (const chunk of body) {
38
+ buffer += decoder.decode(chunk, { stream: true });
39
+ let end;
40
+ while ((end = buffer.indexOf("\n\n")) >= 0) {
41
+ const block = buffer.slice(0, end);
42
+ buffer = buffer.slice(end + 2);
43
+ let event = "message";
44
+ let id;
45
+ const data = [];
46
+ for (const line of block.split("\n")) {
47
+ if (line.startsWith("event: ")) event = line.slice(7);
48
+ else if (line.startsWith("data: ")) data.push(line.slice(6));
49
+ else if (line.startsWith("id: ")) id = line.slice(4);
50
+ }
51
+ if (data.length || id) yield {
52
+ event,
53
+ data: data.join("\n"),
54
+ ...id ? { id } : {}
55
+ };
56
+ }
57
+ }
58
+ }
@@ -1,4 +1,5 @@
1
- import { CoderError } from "../core/errors.0a735590a5412ea6.js";
1
+ import { CoderError } from "../core/errors.200335e62a9d9564.js";
2
+ import { serverEvents, queryPath, validateUrl } from "./http.e78b470f4ecf125b.js";
2
3
  export class ClientError extends CoderError {
3
4
  authenticate;
4
5
  needs;
@@ -11,31 +12,6 @@ export class ClientError extends CoderError {
11
12
  this.needs = needs;
12
13
  }
13
14
  }
14
- export function isLoopbackServer(server) {
15
- try {
16
- const host = new URL(server).hostname.toLowerCase();
17
- return host === "localhost" || host === "[::1]" || /^127(?:\.\d{1,3}){3}$/.test(host);
18
- } catch {
19
- return false;
20
- }
21
- }
22
- export function validateUrl(raw) {
23
- let url;
24
- try {
25
- url = new URL(raw);
26
- } catch {
27
- throw new CoderError("invalid-option", "Give the server as a URL, e.g. https://agents.example.com.");
28
- }
29
- if (url.protocol !== "https:" && !(url.protocol === "http:" && isLoopbackServer(url.origin))) throw new CoderError("invalid-option", "Coder servers require HTTPS unless they are loopback.", { hint: "Use https://, or http://localhost for a local server." });
30
- if (url.username || url.password || url.search || url.hash) throw new CoderError("invalid-option", "The server must be an origin without credentials, query, or fragment.");
31
- return url.toString().replace(/\/+$/, "");
32
- }
33
- const queryPath = (path, options) => {
34
- const query = new URLSearchParams();
35
- if ("cursor" in options && typeof options.cursor === "string") query.set("cursor", options.cursor);
36
- for (const [key, value] of Object.entries(options)) if (key !== "cursor" && value !== undefined && value !== false && value !== "") query.set(key, value === true ? "1" : Array.isArray(value) ? value.join(",") : String(value));
37
- return `${path}?${query}`;
38
- };
39
15
  const DONE = new Set([
40
16
  "completed",
41
17
  "failed",
@@ -82,6 +58,15 @@ export class ServerClient {
82
58
  if (response.ok) throw new CoderError("server", `The server answered ${response.status} with a body that is not JSON.`);
83
59
  if (this.cookie && text) plain = text;
84
60
  }
61
+ // 202 Accepted: the change waits for a person to approve it.
62
+ if (response.status === 202 && body.pending) {
63
+ const { approval, reason, changes } = body;
64
+ throw new CoderError("approval-pending", reason, { approval: {
65
+ id: approval,
66
+ reason,
67
+ actions: changes
68
+ } });
69
+ }
85
70
  if (!response.ok) {
86
71
  const error = new ClientError(response.status, body.error ?? body.message ?? plain ?? `The server answered ${response.status}.`, response.headers.get("www-authenticate") ?? "", body.hint, body.needs === "key" ? body.needs : undefined);
87
72
  this.onError?.(error);
@@ -92,7 +77,7 @@ export class ServerClient {
92
77
  send(path, init) {
93
78
  const headers = new Headers(init.headers);
94
79
  if (init.body && !headers.has("content-type")) headers.set("content-type", "application/json");
95
- if (!this.cookie) headers.set("authorization", `Bearer ${this.token}`);
80
+ if (this.token) headers.set("authorization", `Bearer ${this.token}`);
96
81
  if (this.organization) headers.set("x-coder-organization", this.organization);
97
82
  return this.fetchImpl(`${this.url}${path}`, {
98
83
  ...init,
@@ -113,24 +98,16 @@ export class ServerClient {
113
98
  me() {
114
99
  return this.request("/me");
115
100
  }
116
- info() {
117
- return this.request("/api/auth/capabilities");
118
- }
119
- linkAccount(token) {
120
- return this.post("/connect", { token });
121
- }
122
101
  signOut() {
123
102
  return this.post("/api/auth/sign-out", {});
124
103
  }
125
104
  agents = {
126
- list: (options) => this.request(queryPath("/admin/agents", {
127
- ...options,
128
- ...options?.connect ? { connect: 1 } : {}
129
- })),
105
+ list: (options) => this.request(queryPath("/admin/agents", options ?? {})),
130
106
  get: (slug, options) => this.request(queryPath(`/admin/agents/${encodeURIComponent(slug)}`, {
131
107
  ...options?.versions === false ? { versions: 0 } : {},
132
108
  ...options?.content === false ? { content: 0 } : {},
133
- ...options?.handles ? { handles: 1 } : {}
109
+ ...options?.handles ? { handles: 1 } : {},
110
+ ...options?.installations ? { installations: 1 } : {}
134
111
  })),
135
112
  versions: (slug, options = {}) => this.request(queryPath(`/admin/agents/${encodeURIComponent(slug)}/versions`, options)),
136
113
  remove: (slug) => this.request(`/admin/agents/${encodeURIComponent(slug)}`, { method: "DELETE" }),
@@ -177,7 +154,8 @@ export class ServerClient {
177
154
  ...options,
178
155
  ...options?.archived ? { archived: 1 } : {},
179
156
  ...options?.summary ? { summary: 1 } : {},
180
- ...options?.counts ? { counts: 1 } : {}
157
+ ...options?.counts ? { counts: 1 } : {},
158
+ ...options?.approvals ? { approvals: 1 } : {}
181
159
  })),
182
160
  get: (id) => this.request(`/admin/tasks/${encodeURIComponent(id)}`),
183
161
  logs: (id, after = -1, limit) => this.request(queryPath(`/admin/tasks/${encodeURIComponent(id)}/logs`, {
@@ -202,20 +180,32 @@ export class ServerClient {
202
180
  text,
203
181
  ...options
204
182
  }),
205
- ask: (id, question) => this.post(`/admin/tasks/${encodeURIComponent(id)}/ask`, { question }),
206
- approve: (id, approvalId, decision) => this.post(`/admin/tasks/${encodeURIComponent(id)}/approve`, {
183
+ ask: (id, question, options = {}) => this.post(`/admin/tasks/${encodeURIComponent(id)}/ask`, {
184
+ question,
185
+ ...options
186
+ }),
187
+ approve: (id, approvalId, decision, options = {}) => this.post(`/admin/tasks/${encodeURIComponent(id)}/approve`, {
207
188
  approvalId,
208
- decision
189
+ decision,
190
+ ...options
209
191
  }),
192
+ /** Approve, deny or ask an admin about a change the task asked for; `scope` where the approver picks another. */
193
+ request: (id, approvalId, decision, options = {}) => this.post(`/admin/tasks/${encodeURIComponent(id)}/requests/${encodeURIComponent(approvalId)}`, {
194
+ decision,
195
+ ...options
196
+ }),
197
+ /** Changes waiting for an admin's approval. */
198
+ pendingApprovals: () => this.request("/admin/approvals/pending"),
210
199
  archive: (id) => this.post(`/admin/tasks/${encodeURIComponent(id)}/archive`),
211
200
  delete: (id) => this.request(`/admin/tasks/${encodeURIComponent(id)}`, { method: "DELETE" }),
212
201
  /** Start a task from a prompt, or a flow with `flow` and `args`. */
213
202
  create: (input) => this.post("/admin/tasks", input),
214
- /** Follow the task's event stream until it ends; `onLog` sees each log line as it lands. */
203
+ /** Follow the task's event stream until it ends or waits on an approval; `onLog` sees each log line as it lands. */
215
204
  wait: async (id, options = {}) => {
216
205
  let after = -1;
217
206
  for (;;) {
218
- const response = await this.tasks.stream(id, after);
207
+ const abort = new AbortController();
208
+ const response = await this.tasks.stream(id, after, abort.signal);
219
209
  if (!response.ok || !response.body) {
220
210
  // `get` renews an expired token before the stream is asked again.
221
211
  const status = await this.tasks.get(id);
@@ -229,8 +219,12 @@ export class ServerClient {
229
219
  const line = JSON.parse(event.data);
230
220
  after = line.seq;
231
221
  options.onLog?.(line);
232
- } else if (event.event === "end") ended = true;
222
+ } else if (event.event === "end" || event.event === "approval") {
223
+ ended = true;
224
+ break;
225
+ }
233
226
  }
227
+ // Leaving the loop cancels the body; aborting first surfaces as "This operation was aborted".
234
228
  if (ended) return this.tasks.get(id);
235
229
  }
236
230
  }
@@ -294,13 +288,21 @@ list: (agent) => this.request(queryPath("/admin/integrations", { agent })) };
294
288
  apps: () => this.request("/admin/operator/apps"),
295
289
  /** The create page for `integration`'s built-in app; `name` is what the platform shows. */
296
290
  setUp: (integration, body) => this.post(`/admin/operator/apps/${encodeURIComponent(integration)}`, body),
297
- audit: () => this.request("/admin/operator/audit")
291
+ audit: () => this.request("/admin/operator/audit"),
292
+ /** What to change on the platform for the built-in app on `integration`. */
293
+ drift: (integration) => this.request(`/admin/operator/apps/${encodeURIComponent(integration)}/drift`),
294
+ /** Pushes the built-in app on `integration`, or records its values were entered by hand. */
295
+ update: (integration) => this.post(`/admin/operator/apps/${encodeURIComponent(integration)}/update`, {})
296
+ };
297
+ installations = {
298
+ list: (agent, options = {}) => this.request(queryPath("/admin/installations", {
299
+ agent,
300
+ limit: options.limit,
301
+ ...options.active ? { active: 1 } : {}
302
+ })),
303
+ /** Uninstalls the app on its platform, then ends the installation here. */
304
+ uninstall: (id) => this.request(`/admin/installations/${encodeURIComponent(id)}`, { method: "DELETE" })
298
305
  };
299
- installations = { list: (agent, options = {}) => this.request(queryPath("/admin/installations", {
300
- agent,
301
- limit: options.limit,
302
- ...options.active ? { active: 1 } : {}
303
- })) };
304
306
  connections = {
305
307
  list: (authorization, wait) => this.request(queryPath("/admin/connections", {
306
308
  authorization,
@@ -329,6 +331,10 @@ list: (agent) => this.request(queryPath("/admin/integrations", { agent })) };
329
331
  add: (body) => this.post("/admin/models", body),
330
332
  probe: (body) => this.post("/admin/models/probe", body),
331
333
  remove: (name) => this.request(`/admin/models/${encodeURIComponent(name)}`, { method: "DELETE" }),
334
+ update: (name, body) => this.request(`/admin/models/${encodeURIComponent(name)}`, {
335
+ method: "PATCH",
336
+ body: JSON.stringify(body)
337
+ }),
332
338
  alias: (name, spec) => this.post(`/admin/models/${encodeURIComponent(name)}/alias`, { spec }),
333
339
  enable: (name) => this.post(`/admin/models/${encodeURIComponent(name)}/enable`),
334
340
  disable: (name) => this.post(`/admin/models/${encodeURIComponent(name)}/disable`)
@@ -352,29 +358,3 @@ list: (agent) => this.request(queryPath("/admin/integrations", { agent })) };
352
358
  return this.request(queryPath("/admin/usage", { installation }));
353
359
  }
354
360
  }
355
- /** Server-Sent Events from a response body, one `{ event, data }` per message. */
356
- export async function* serverEvents(body) {
357
- const decoder = new TextDecoder();
358
- let buffer = "";
359
- for await (const chunk of body) {
360
- buffer += decoder.decode(chunk, { stream: true });
361
- let end;
362
- while ((end = buffer.indexOf("\n\n")) >= 0) {
363
- const block = buffer.slice(0, end);
364
- buffer = buffer.slice(end + 2);
365
- let event = "message";
366
- let id;
367
- const data = [];
368
- for (const line of block.split("\n")) {
369
- if (line.startsWith("event: ")) event = line.slice(7);
370
- else if (line.startsWith("data: ")) data.push(line.slice(6));
371
- else if (line.startsWith("id: ")) id = line.slice(4);
372
- }
373
- if (data.length || id) yield {
374
- event,
375
- data: data.join("\n"),
376
- ...id ? { id } : {}
377
- };
378
- }
379
- }
380
- }
@@ -1,3 +1,10 @@
1
+ import { eventJsons } from "../../agent/event-json.856d33f567e58d0e.js";
2
+ /** The final message that posts nothing. */
3
+ export const EMPTY_MESSAGE = "__EMPTY__";
4
+ /** The task log line when the agent declined to reply. */
5
+ export const SKIPPED = "Skipped: the agent chose not to reply.";
6
+ /** What the platform gets when the agent declined a reply that was due. */
7
+ export const EMPTY_MESSAGE_NOTICE = "The agent returned no reply.";
1
8
  export function addTokens(a, b) {
2
9
  if (!b) return a;
3
10
  if (!a) return { ...b };
@@ -8,7 +15,12 @@ export function addTokens(a, b) {
8
15
  total: a.total + b.total
9
16
  };
10
17
  }
11
- export const isApproval = (kind) => kind.includes("approval") || kind === "sidecar-decision" || kind === "auto-review";
18
+ export const isApproval = (kind) => [
19
+ "approval-escalated",
20
+ "approval-answered",
21
+ "approval-decision",
22
+ "auto-review"
23
+ ].includes(kind);
12
24
  const ANSI = /\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
13
25
  export function stripCwd(text, cwd) {
14
26
  return cwd ? text.split(`${cwd}/`).join("").split(cwd).join(".") : text;
@@ -40,7 +52,6 @@ export class LogView {
40
52
  openCalls = [];
41
53
  // Engine invocation ids, so concurrent calls of one tool close with their own results.
42
54
  callIds = new WeakMap();
43
- approval;
44
55
  approvals = new Map();
45
56
  lastUsageTotal = 0;
46
57
  constructor(cwd, opts = {}) {
@@ -54,7 +65,7 @@ export class LogView {
54
65
  reduce(record) {
55
66
  const entry = record.entry;
56
67
  const sourceKind = entry ? String(entry.kind ?? "status") : "line";
57
- const earlier = !entry ? undefined : sourceKind === "tool-result" ? this.close(record, entry) : isApproval(sourceKind) ? this.decide(record, entry, sourceKind) : undefined;
68
+ const earlier = !entry ? undefined : sourceKind === "tool-result" ? this.close(record, entry) : sourceKind === "approval-answered" ? this.decide(record, entry) : undefined;
58
69
  if (earlier) {
59
70
  this.prevKind = sourceKind;
60
71
  return [earlier];
@@ -84,30 +95,41 @@ export class LogView {
84
95
  this.lastUsageTotal = tokens.total;
85
96
  row.kind = "usage";
86
97
  row.tokens = tokens;
87
- row.title = `ctx ${tokenCount(tokens.input + tokens.cachedInput)} · out ${tokenCount(tokens.output)}`;
88
- } else if (sourceKind === "approval-decision" && entry.decision === "escalate" || sourceKind === "approval-escalated") {
89
- const summary = stripCwd(entry.summary ? String(entry.summary) : "", this.cwd);
90
- const target = /^(?:run command: |Run command\. |Apply file changes\. |\w+: )?([\s\S]*)$/.exec(summary)[1];
91
- const method = String(entry.method ?? "");
92
- const name = method && !method.includes("/") ? method : this.openCalls.at(-1)?.tool;
93
- const word = target.startsWith("{") ? "" : target.split(/\s+/)[0];
98
+ // The engine's last request is the context; the turn's summed input overstates it (codex counts cached input twice over).
99
+ const context = typeof entry.context === "number" ? entry.context : tokens.input + tokens.cachedInput;
100
+ row.title = `ctx ${tokenCount(context)} · out ${tokenCount(tokens.output)}`;
101
+ } else if (sourceKind === "approval-escalated") {
102
+ const actions = Array.isArray(entry.actions) ? entry.actions.map(String) : [];
94
103
  const reason = stripCwd(entry.reason ? String(entry.reason) : "", this.cwd);
95
104
  row.kind = "approval";
96
- row.title = ["Approval", [name, word].filter(Boolean).join(" ")].filter(Boolean).join(" · ");
97
- row.detail = [target, reason && `Policy · ${reason}`].filter(Boolean).join("\n");
98
- row.state = sourceKind === "approval-escalated" ? "waiting" : "escalated";
99
- if (sourceKind === "approval-escalated") this.approvals.set(String(entry.approvalId), row);
100
- else this.approval = row;
101
- } else if (isApproval(sourceKind) && (entry.decision || !entry.message)) {
105
+ row.title = [
106
+ "Approval needed",
107
+ reason,
108
+ `${actions.length} action${actions.length === 1 ? "" : "s"}`
109
+ ].filter(Boolean).join(" · ");
110
+ row.detail = stripCwd(actions.map((action, index) => `${index + 1}. ${action.replaceAll("\n", "\n ")}`).join("\n"), this.cwd);
111
+ row.state = "waiting";
112
+ this.approvals.set(String(entry.approvalId), row);
113
+ } else if (sourceKind === "approval-answered") {
114
+ row.kind = "approval";
115
+ row.title = "Approval";
116
+ Object.assign(row, settle(row, record, entry));
117
+ } else if (sourceKind === "approval-decision") {
118
+ const summary = stripCwd(entry.summary ? String(entry.summary) : "", this.cwd);
119
+ const allowed = entry.decision === "accept";
120
+ row.kind = "approval";
121
+ row.title = [allowed ? "Allowed as approved" : "Refused by the reviewer", summary].filter(Boolean).join(" · ");
122
+ row.detail = stripCwd(entry.reason ? String(entry.reason) : "", this.cwd);
123
+ if (!allowed) row.tone = "error";
124
+ } else if (sourceKind === "auto-review") {
102
125
  row.kind = "approval";
103
- const label = sourceKind === "sidecar-decision" ? "sidecar" : sourceKind === "auto-review" ? "auto-review" : "approval";
104
126
  const risk = entry.riskLevel ? `(${String(entry.riskLevel)} risk)` : "";
105
127
  const summary = stripCwd(entry.summary ? String(entry.summary) : "", this.cwd);
106
128
  const target = summary.slice(summary.indexOf(": ") + 2);
107
129
  const shown = summary && target && this.lastToolText.includes(target) ? "" : summary;
108
130
  const method = shown ? "" : String(entry.method ?? "");
109
131
  row.title = `${[
110
- label,
132
+ "auto-review",
111
133
  String(entry.decision ?? ""),
112
134
  risk,
113
135
  method
@@ -124,6 +146,8 @@ export class LogView {
124
146
  } else if (sourceKind === "error" || sourceKind === "steer") {
125
147
  row.kind = sourceKind;
126
148
  row.tone = sourceKind === "error" ? "error" : "warning";
149
+ } else if (sourceKind === "warning") {
150
+ row.tone = "warning";
127
151
  } else if (sourceKind === "reasoning") {
128
152
  row.kind = "reasoning";
129
153
  row.durationMs = typeof entry.durationMs === "number" ? entry.durationMs : 0;
@@ -172,46 +196,23 @@ export class LogView {
172
196
  }
173
197
  };
174
198
  }
175
- // Sidecar verdicts and escalations follow the policy verdict before them; answers carry the approval id.
176
- decide(record, entry, kind) {
177
- const id = String(entry.approvalId ?? "");
178
- const accepted = entry.decision === "accept";
179
- if (kind === "sidecar-decision" && this.approval) {
180
- const reason = stripCwd(entry.reason ? String(entry.reason) : "", this.cwd);
181
- const row = {
182
- ...this.approval,
183
- detail: [this.approval.detail, reason && `Sidecar · ${reason}`].filter(Boolean).join("\n")
184
- };
185
- if (entry.decision === "escalate") return this.approval = row;
186
- this.approval = undefined;
187
- return settle(row, record, `${accepted ? "accepted" : "denied"} by sidecar`, accepted);
188
- }
189
- if (kind === "approval-escalated" && this.approval) {
190
- const row = {
191
- ...this.approval,
192
- state: "waiting"
193
- };
194
- this.approval = undefined;
195
- this.approvals.set(id, row);
196
- return row;
197
- }
198
- const open = this.approvals.get(id);
199
- if (!open || kind !== "approval-answered" && kind !== "approval-timeout") return undefined;
200
- this.approvals.delete(id);
201
- return kind === "approval-timeout" ? settle(open, record, "timed out", false) : settle(open, record, `${accepted ? "accepted" : "denied"} by reviewer`, accepted);
199
+ decide(record, entry) {
200
+ const open = this.approvals.get(String(entry.approvalId));
201
+ return open ? settle(open, record, entry) : undefined;
202
202
  }
203
203
  output(text) {
204
204
  return stripCwd(this.opts.keepAnsi ? text : text.replace(ANSI, ""), this.cwd);
205
205
  }
206
206
  }
207
- function settle(row, record, state, ok) {
207
+ function settle(row, record, entry) {
208
+ const ok = entry.decision === "accept";
208
209
  return {
209
210
  ...row,
210
- state,
211
+ state: `${ok ? "approved" : "denied"} ${entry.by ? `by ${String(entry.by)}` : "in Coder"}`,
211
212
  result: {
212
213
  ok,
213
214
  durationMs: Math.max(0, record.at - row.at || 0),
214
- detail: ""
215
+ detail: !ok && entry.reason ? String(entry.reason) : ""
215
216
  }
216
217
  };
217
218
  }
@@ -220,3 +221,32 @@ function tokenCount(n) {
220
221
  if (n < 1e6) return `${(n / 1e3).toFixed(n < 1e4 ? 1 : 0)}k`;
221
222
  return `${(n / 1e6).toFixed(1)}M`;
222
223
  }
224
+ /** The default task list's groups: failed first, then active, then other stopped, then completed. */
225
+ export const listRank = (status) => status === "failed" ? 0 : status === "completed" ? 3 : status === "cancelled" ? 2 : 1;
226
+ /** Whether a task waits on a person: its turn waits, or an escalation is open whatever its turn does. */
227
+ export const awaitsApproval = (status, approvals) => status === "waiting" || Boolean(approvals?.some((approval) => !approval.response));
228
+ /** Ids in byte order, as Postgres `collate "C"` compares them. */
229
+ export const byId = (a, b) => a < b ? -1 : a > b ? 1 : 0;
230
+ /** The task list order: `listRank` groups, newest start first, ties broken by id. */
231
+ export const byListKey = (a, b) => a.rank - b.rank || b.createdAt - a.createdAt || byId(b.id, a.id);
232
+ /** A platform turn's messages from its `<event>` prompt; undefined for any other prompt. */
233
+ export function eventMessages(prompt) {
234
+ return eventJsons(prompt)?.flatMap((json) => {
235
+ if (json.reactions) return json.reactions.map(({ emoji, by }) => ({
236
+ author: by.join(", "),
237
+ text: `reacted ${emoji}`,
238
+ reaction: true
239
+ }));
240
+ return (json.messages ?? (json.message ? [json.message] : [])).map(({ text, author }) => ({
241
+ // A platform that knows no name repeats the raw id, which shows as nothing.
242
+ author: [author.handle, author.name].find((name) => name && name !== author.id) ?? "",
243
+ text: text || (json.event ?? "")
244
+ }));
245
+ });
246
+ }
247
+ /** A prompt as a title: a platform prompt by its event text, else its first message. */
248
+ export function promptTitle(prompt, eventText) {
249
+ const text = prompt?.trim();
250
+ if (text && !eventMessages(text)) return text;
251
+ return eventText?.trim() || eventMessages(text)?.find((message) => !message.reaction)?.text.trim();
252
+ }
@@ -0,0 +1,37 @@
1
+ /** Built-in config every file and flag merges over; import-free so the shipped dashboard can read it. */
2
+ export const DEFAULT_CONFIG = {
3
+ // Models are tried in order; the first is the default, each next one the fallback
4
+ // when the one before fails to start (missing binary, auth, quota, rate limit).
5
+ version: 1,
6
+ chain: ["codex/sol", "claude/opus"],
7
+ reviewModel: "codex/astra/medium",
8
+ models: {},
9
+ network: { allowedHosts: [] }
10
+ };
11
+ /** RFC 7396 merge patch: objects merge, null deletes, anything else replaces; `__proto__` stays a plain key. */
12
+ export function mergePatch(target, patch) {
13
+ if (!patch || typeof patch !== "object" || Array.isArray(patch)) return patch;
14
+ const result = target && typeof target === "object" && !Array.isArray(target) ? Object.fromEntries(Object.entries(target)) : {};
15
+ for (const [key, value] of Object.entries(patch)) {
16
+ if (value === null) delete result[key];
17
+ else Object.defineProperty(result, key, {
18
+ value: mergePatch(Object.hasOwn(result, key) ? result[key] : undefined, value),
19
+ writable: true,
20
+ enumerable: true,
21
+ configurable: true
22
+ });
23
+ }
24
+ return result;
25
+ }
26
+ export const NOT_REINVOKED = "Background processes will not re-invoke you.";
27
+ export const SHELL_WAIT = "Wait on each task with `coder task result <task-id> --wait` in its own background shell, one per task, never several tasks in one call, so each approval and answer reaches you.";
28
+ /** The error a task stopped by `coder task stop` or the dashboard records. */
29
+ export const STOPPED_BY_USER = "Stopped by user.";
30
+ export const TERMINAL_STATUSES = [
31
+ "completed",
32
+ "failed",
33
+ "cancelled"
34
+ ];
35
+ export const ACTIVE_STATUSES = ["queued", "running"];
36
+ /** Logged when a resumed turn cannot load its engine conversation and starts a new one. */
37
+ export const HISTORY_LOST = "History lost, starting fresh";
@@ -1,10 +1,21 @@
1
- import { ServerClient, ClientError } from "../../../client/index.0de14cb4e30bd70d.js";
2
- import { CoderError } from "../../../core/errors.0a735590a5412ea6.js";
3
- import { DEFAULT_ENGINE } from "../../../core/defaults.1b615366c56838a1.js";
4
- import { NO_MODELS, modelsByEngine } from "../app/dash/[org]/settings/model-options.a96c11d11674f598.js";
1
+ import { ServerClient, ClientError } from "../../../client/index.54c45900f2153d34.js";
2
+ import { CoderError } from "../../../core/errors.200335e62a9d9564.js";
3
+ import { NO_MODELS } from "../app/dash/[org]/settings/model-options.dc630cb6e2cbf83a.js";
5
4
  export function encodeDefinition(definition) {
6
5
  return Buffer.from(JSON.stringify(definition), "utf8").toString("base64url");
7
6
  }
7
+ /** Where creating `agent`'s app on `integration` starts; a repo agent's app follows its apps' branch. */
8
+ export function createUrl(agent, apps, integration) {
9
+ const params = new URLSearchParams({
10
+ agent: agent.id,
11
+ def: agent.definition ? encodeDefinition(agent.definition) : ""
12
+ });
13
+ if (agent.source === "repo" && agent.repo) {
14
+ params.set("repo", agent.repo);
15
+ params.set("branch", apps.find((app) => app.branch)?.branch ?? "main");
16
+ }
17
+ return `/create/${encodeURIComponent(integration)}?${params}`;
18
+ }
8
19
  const clientKey = Symbol("coder.dashboard.client");
9
20
  /** One client per render request, with shared in-process GETs and the caller's cookie, scope and organization. */
10
21
  export function load(request) {
@@ -50,14 +61,10 @@ export function loadAgent(request, slug) {
50
61
  handles: true
51
62
  });
52
63
  }
53
- /** Each engine's models, and what an agent runs with when it sets nothing. */
64
+ /** The workspace's models, and the chain an agent runs when it sets no model. */
54
65
  export function loadRunDefaults(request) {
55
66
  return Promise.all([load(request).models.list().catch(() => NO_MODELS), load(request).config.get().catch(() => undefined)]).then(([shape, shown]) => ({
56
- models: modelsByEngine(shape),
57
- defaults: {
58
- engine: shown?.effective.chain?.[0] ?? DEFAULT_ENGINE,
59
- engines: shown?.effective.engines ?? {},
60
- builtin: shape.builtin
61
- }
67
+ shape,
68
+ defaults: { chain: shown?.effective.chain ?? [] }
62
69
  }));
63
70
  }
@@ -1,11 +1,14 @@
1
1
  import { dynamic } from "../../../../../../../../node_modules/@wular/pnext/src/api/dynamic.tsx";
2
+ import { redirect } from "../../../../../../../../node_modules/@wular/pnext/src/api/navigation.ts";
3
+ import { load } from "../../../api/load.252f972b42c690e2.js";
2
4
  import { AuthPanel } from "../../../comps/frame/auth-panel.5712a8d190b003b4.js";
3
- import { Outcome, readOutcome } from "../../dash/[org]/setup/outcome.cbbc8cd1bbbee01b.js";
5
+ import { Button, LinkButton } from "../../../comps/ui/button.b62fa52e18fa338b.js";
6
+ import { Outcome, readOutcome } from "../../dash/[org]/setup/outcome.22a83d756e4020a7.js";
4
7
  import { jsx as _jsx } from "../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
5
- const CreateLink = dynamic(() => import("../../dash/[org]/setup/create-link.ff95e4b6977d0474.js").then((m) => m.CreateLink), undefined, {
8
+ const CreateLink = dynamic(() => import("../../dash/[org]/setup/create-link.18bd2b92cd23b73f.js").then((m) => m.CreateLink), undefined, {
6
9
  "file": decodeURIComponent(new URL("../../../../../../../../../../../src/server/dash/app/dash/[org]/setup/create-link.tsx", import.meta.url).pathname),
7
10
  "exportName": "CreateLink",
8
- "id": "c-1b8b8de475"
11
+ "id": "c-da3eb23c73"
9
12
  });
10
13
  /** A signed link from `coder server app create`: its transaction alone authorizes it, with no workspace, and shows how it ended. */
11
14
  export default async function ServerAppPage({ request, params }) {
@@ -14,13 +17,30 @@ export default async function ServerAppPage({ request, params }) {
14
17
  const integration = Array.isArray(raw) ? raw[0] : raw;
15
18
  const search = new URL(request.url).searchParams;
16
19
  const outcome = readOutcome(search);
20
+ // Signed in: where the app is connected next; a link from the CLI may come without a session.
21
+ const me = outcome ? await load(request).me().catch(() => undefined) : undefined;
22
+ const org = me?.organization?.slug;
23
+ // An operator ends on the Operator page with the outcome as a dialog; the panel is for links opened without one.
24
+ if (outcome && org && me?.operator) {
25
+ const query = new URLSearchParams(search);
26
+ query.delete("tx");
27
+ redirect(`/dash/${encodeURIComponent(org)}/operator?${query}`);
28
+ }
17
29
  return /* @__PURE__ */ _jsx(AuthPanel, {
18
30
  tag: "server app",
19
31
  title: "Create app",
20
32
  lead: "This app is shared by every workspace on this server.",
21
33
  children: outcome ? /* @__PURE__ */ _jsx(Outcome, {
22
34
  outcome,
23
- catalog: []
35
+ catalog: [],
36
+ children: org ? /* @__PURE__ */ _jsx(LinkButton, {
37
+ href: "/dash/[org]/agents",
38
+ params: { org },
39
+ children: "Connect it in your workspace"
40
+ }) : /* @__PURE__ */ _jsx(Button, {
41
+ href: "/dash",
42
+ children: "Open dashboard"
43
+ })
24
44
  }) : /* @__PURE__ */ _jsx(CreateLink, {
25
45
  integration,
26
46
  state: Object.fromEntries(search)
@@ -1,5 +1,5 @@
1
- import { Loading } from "../../../../comps/ui/card.9f0d45b73bc78b4f.js";
2
- import { Page, PageHead } from "../../../../comps/frame/page-head.85f15db7b648d48c.js";
1
+ import { Loading } from "../../../../comps/ui/card.c0030eafd76587e3.js";
2
+ import { Page, PageHead } from "../../../../comps/frame/page-head.2eb1e0213eb50349.js";
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "../../../../../../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs";
4
4
  export default function AccountLoading() {
5
5
  return /* @__PURE__ */ _jsxs(Page, { children: [/* @__PURE__ */ _jsx(PageHead, {