@wular/coder 0.4.9 → 0.4.11

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 (551) hide show
  1. package/dist/actions-Cwe3IDVs.js +2 -0
  2. package/dist/adapter-Bi768A94.js +1 -0
  3. package/dist/{adapter-YCvP9H2n.js → adapter-CkL4PqXE.js} +42 -42
  4. package/dist/{adapter-B2RXnvqt.js → adapter-DYxjaefw.js} +6 -6
  5. package/dist/add-B6vPKZEr.js +1 -0
  6. package/dist/add-n6c9OINP.js +2 -0
  7. package/dist/add-v1Pv00HX.js +1 -0
  8. package/dist/{add-CvBTpxgY.js → add-wC8ByRgM.js} +2 -2
  9. package/dist/agent-6GooVMsq.js +8 -0
  10. package/dist/{agent-vYm7Geh-.js → agent-BkxXgha0.js} +1 -1
  11. package/dist/alias-A8ObWElH.js +2 -0
  12. package/dist/{app-CJPFaLIV.js → app-CaxTL1H3.js} +1 -1
  13. package/dist/approvals-h5lytkey.js +2 -0
  14. package/dist/approve-BNhg0MLi.js +2 -0
  15. package/dist/{approve-CBuGu3du.js → approve-BiHM8kSo.js} +1 -1
  16. package/dist/apps-BNe86LfS.js +367 -0
  17. package/dist/archive-CMHRsVYf.js +4 -0
  18. package/dist/{archive-C89Z4kSx.js → archive-H2B7Me8E.js} +2 -2
  19. package/dist/args-CURX44CA.js +1 -0
  20. package/dist/ask-D8TIVhPl.js +4 -0
  21. package/dist/auth-BSMPjhnz.js +1 -0
  22. package/dist/auth-D3quZAKT.js +1 -0
  23. package/dist/builtin/coder/agent.json +5 -9
  24. package/dist/chat-3AvUDOwf.js +13 -0
  25. package/dist/chat-bridge-BmqYsASZ.js +2 -0
  26. package/dist/chat-bwKd3y6V.js +1 -0
  27. package/dist/cli-BBlH53hA.js +9 -0
  28. package/dist/cli.js +1 -1
  29. package/dist/client-sqXb-y09.js +22 -0
  30. package/dist/config-K6Rrjsee.js +3 -0
  31. package/dist/connection-B-IB8tlP.js +1 -0
  32. package/dist/{connection-BtUZA2St.js → connection-BXBDeoax.js} +1 -1
  33. package/dist/conversation-DT-35cEt.js +1 -0
  34. package/dist/create-CP_JmJnh.js +1 -0
  35. package/dist/credentials-BRFajC0d.js +1 -0
  36. package/dist/dash/standalone/server/build-index.json +1 -1
  37. package/dist/dash/standalone/server/manifest.json +1321 -1307
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.8e150ef2bc6a5f4e.js → index.0de14cb4e30bd70d.js} +8 -16
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{defaults.e6ce0944639198a2.js → defaults.1b615366c56838a1.js} +27 -1
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/event-prompt.87f064ca0141e796.js +30 -0
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.871cbff2605b5cfd.js → log-view.60308a11f7001eb7.js} +10 -0
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.4f942c7f68b2e273.js → load.be791a5eaf328738.js} +15 -2
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{types.9f59e6c761d6aac4.js → types.79f9092cdb5a00d1.js} +4 -0
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.a2a16ead424b2185.js → page.0fbfdba5254f7ae5.js} +3 -3
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.90e312759b87cfa2.js → page.70913bd4075da914.js} +2 -2
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.787d09fb0b2b6b57.js → loading.e348ec45e9ed951b.js} +2 -2
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.5fc5e4346dcbfc32.js → notify.61aab176baeefebd.js} +1 -1
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.1641da62504df30a.js → page.815371ed0d5dd4fa.js} +9 -9
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.5dac3bf780c74354.js → sign-out.1d6af804f9ec043d.js} +4 -4
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.f1dacbfebc27a656.js → agent-menu.2ed0e66d131fc148.js} +3 -3
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.5da78e9a741b028a.js → agents-grid.f43bcc1148ce3650.js} +22 -13
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.722bc3e4ec1f9fad.js → connect-apps.f3af8cc8540719d7.js} +5 -5
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.2815a010098aa676.js → loading.fac1132ad9c4248e.js} +5 -5
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.b01992337eeca2dc.js → page.5f88059c03cf82b4.js} +15 -20
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.8aeb0fddffe22ad5.js → layout.b7392d534ce0410e.js} +19 -19
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.50692149df9abb28.js → loading.388aeaf0c2edf8f8.js} +1 -1
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.e2e23101c05b9548.js → page.5aae24bbfd90c434.js} +80 -30
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.31d2c13229ae9222.js → loading.4da9e2ba3fea937f.js} +2 -2
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.11c7b50d6119efe6.js → page.91c992fdd3b4a493.js} +38 -35
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.92ac7aa258e706a4.js → platform-actions.8e7ca54dd1821e98.js} +68 -41
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.fc530622fa2292a0.js → agent-settings-form.eb707a9e32718374.js} +47 -72
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.bf17bd39f41db826.js → loading.ad1a4c9b000d269a.js} +1 -1
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.6e95dfe07dfebf4b.js → page.9ec1ec08ba05da59.js} +15 -21
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.7b17368ee81275ab.js → loading.dd9088a4581b1d65.js} +2 -2
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.0bd3da9b3227b12f.js → page.71dc042821133e82.js} +1 -1
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.d2cc33cf044a92a3.js → loading.8f998a9c511e1fb3.js} +3 -3
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.91c43fbc54e37646.js → page.45e18b6dc3019af4.js} +7 -7
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.23e4131cdf71daa5.js → versions-list.c8d76988c734dda2.js} +6 -6
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.47c4c8f31b4f17cc.js → loading.b1367e864b4fb406.js} +5 -5
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.cbd2bad8fede6fef.js → page.e3179ddf20a7e55d.js} +13 -24
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.d8e785c45f5410a6.js → agent-pills.f987c12bcbc5c850.js} +13 -7
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.a6e27ac4171bfdb0.js → agent-toggle.1579dc8acbaacf92.js} +3 -3
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.96bdca9762ff3e2e.js → hero.ad5cc342db794e5d.js} +6 -6
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.ca0c09d4849bfc30.js → instructions.85b1cd986a9edbb5.js} +1 -1
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.258f6c2c5f1b1b17.js → connect-repositories.43b4b28f194ea842.js} +1 -1
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.20c42102ed262db7.js → editor.62cb8207218e6437.js} +36 -76
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.b8093a7ca97656a5.js → import-picker.eafa5b41a2ed571f.js} +15 -16
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.6012b36c10c68657.js → loading.ee001af7a96e3972.js} +6 -6
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.1ebdb0247922fc14.js → page.dffb05f2d256d81a.js} +11 -19
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.6d2242d49ae9dd35.js → layout.393cf7429eea189e.js} +13 -13
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.a56516bc0ba79187.js → operator-apps.a244f3199e7cf09c.js} +7 -7
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.af19494c89ac62c0.js → page.980adfb7c5714752.js} +8 -9
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.c720853404d94114.js → page.24a1987405ed7b17.js} +2 -2
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.9b96914a4fa4e2a9.js → connections-list.21ec9dc73ce68656.js} +36 -31
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.dbaa8f3d82445b90.js → credentials-list.683476f62a9ecde7.js} +204 -240
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.c4b01484d183549d.js → credentials.b43dd3d97c536c2a.js} +10 -11
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.5c03e83663a6a9b7.js → engines-list.9e116751bd34e2cc.js} +7 -7
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.df5ee5d74bec0f5b.js → list.083f5c665df04b1b.js} +43 -33
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.480b8f915bae18c1.js → loading.7ca95dcb4fb3362b.js} +1 -1
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.2835a48d1edeb6d1.js → models-list.537f63f8e5dd085d.js} +147 -137
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.1d53415d55e77fee.js → page.dfed4ae6ffc74434.js} +23 -23
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.bf5746f48e3f78f5.js → runners-list.3afa989490bbe77c.js} +18 -19
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.b0dedc1567efc09f.js → secrets-list.0d175ee815b22cd7.js} +23 -15
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.567d27e39d42d719.js → layout.3e8289f888fa444c.js} +5 -5
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{model-options.2eacf7f8ac0032df.js → model-options.a96c11d11674f598.js} +13 -0
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.bac05d6e87953d0e.js → page.06feaa5fbb06f1e6.js} +1 -1
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.5e2dff2550b3b73e.js → settings-head.bbc7ced8dd5491eb.js} +1 -1
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.d6fae1c5d62f2c74.js → tunnel-guide.29eee1a0b1852168.js} +1 -1
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.03989d2f7585a045.js → create-link.ff95e4b6977d0474.js} +5 -5
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.4debc1a8c644df4b.js → outcome-dialog.894c73f9abee3ce1.js} +5 -4
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.43c969f59a710781.js → page.f06fda0df59beeb5.js} +7 -7
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.3755ae6065c3fc28.js → activity.3c79cf14feff12bf.js} +22 -27
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.9efbed6531879838.js → loading.56520888d5270b88.js} +6 -9
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.7b92dcd08095b934.js → page.25b29e72df84806b.js} +7 -7
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.62422b873f98ee8e.js → task-actions.587da79d68ab8d14.js} +14 -12
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.ae0e9c9dffe0ff9f.js → task-view.f2e902c8208b2e78.js} +129 -66
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.ff108c0ef82a4d7b.js → composer-data.309a194fc7fa34be.js} +3 -3
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.fdad306647cbaa59.js → composer.b0bb1faaac8e0b6c.js} +29 -41
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.af5001e51d2f612b.js → task.a0c68180db5fb4c1.js} +26 -2
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.952f37a9486aebe7.js → tasks-list.b52a49fb5faeefd0.js} +34 -31
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.1247d4765d0e1bdc.js → tasks-section.80f9c9a42ecae854.js} +10 -10
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.cf74c55e6528c7c9.js → page.20b5c22658eae312.js} +5 -5
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2d55812ec086b540.js → custom-range.2e21c7f891966c15.js} +3 -3
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.08d378cca93d3ab1.js → day-chart.261b6651df2d3966.js} +2 -2
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.7aed78a276b08a4f.js → loading.97d277dbab9c15cf.js} +4 -5
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{metric.ada350d2b7449b39.js → metric.5ff3636065481c44.js} +1 -1
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.fed9345ebac3e1b3.js → page.fb21ebe90d49dac1.js} +11 -18
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.b1296c2378128472.js → range-bar.2197d8f43216d104.js} +4 -4
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.e215d44e00192271.js → top-agents.18fc469e781e2305.js} +6 -10
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.b7e3af142b17941b.js → layout.185dbc99875e208a.js} +11 -3
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.226544940a39fd3a.js → page.a82be2fd23e9ac67.js} +2 -7
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/zone.0515a688ee5ff6ca.js +17 -0
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.8287e5a02144e4f1.js → drawer.d3e61538dbc8ec39.js} +2 -2
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.86f0cc228353da6e.js → foreign-link.1f4217895ff1e835.js} +3 -3
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/heads.37e35439c02fc636.js +16 -0
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.0c6ac62ff3ccf38a.js → loading-card.cc76fc9708142525.js} +5 -5
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.bd54e52ac4a7a89c.js → page-head.85f15db7b648d48c.js} +4 -3
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.1cc355a530dcc5e3.js → stream.e2915852cf82c86b.js} +3 -3
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.63f673632770924d.js → task-toasts.0ed8ccaae81b9d53.js} +11 -7
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.5f59814a635caeec.js → theme-choices.85100ed66d6f9200.js} +2 -2
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.5681714d0cf45454.js → back.180765bdadf6d602.js} +3 -3
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.4d84ad0ac340fbe2.js → org.572ad93c7707ab27.js} +1 -1
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.249400957d6a7527.js → side-toggle.489faf1a259479f7.js} +2 -2
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.0851f234f300c694.js → badge.c0bc352791a95fd6.js} +1 -1
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.983daea9e687fc5d.js → button.ce9e6cdb08ca86db.js} +1 -1
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.c08471eaa0bc1cec.js → card.9f0d45b73bc78b4f.js} +9 -5
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.762eba56417214ca.js → collapse.93e4d1b20c2873ed.js} +13 -3
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.efb84f0cca771948.js → combo.54270c0251466fda.js} +3 -22
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.53edc755945b0563.js → confirm.c1281f9b12854210.js} +3 -3
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.0b23d7dc05757df5.js → copy.bd6fc1577a393965.js} +2 -2
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.1983b85dd0679af6.js → filter.3a452a262f040973.js} +6 -6
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.a34176f37808cd66.js → icons.e36c72f54750663a.js} +0 -1
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.a8e580a0c90631ff.js → menu-items.1d082ac4dae8f3d4.js} +1 -1
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.a41edd5cde1c90cf.js → menu.ee45bace979944b6.js} +2 -2
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.b5f74ebf59590fa6.js → modal.25d53e5b41b9c4e5.js} +2 -2
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.36c6f21ce6aa720f.js → select.2eb33e5bea28d804.js} +28 -23
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.a8a951c757376590.js → tail.04132db0c5033d4f.js} +4 -3
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.9621ef221a896a8e.js → toolbar.24036899654de6df.js} +2 -2
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.1a6356d5b722cafb.js → action.b9a5c37272250e82.js} +2 -2
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.d25e6dcc6704eb60.js → client.a3928fa2dcd27b75.js} +1 -1
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/follow.bfb9bcff3c1366d7.js +32 -0
  152. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{format.6a7d1beaf4d09d9c.js → format.ceeaafa10a0563f3.js} +1 -0
  153. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{paged.18f5872fc5aebe96.js → paged.0e54c3044f8ca567.js} +1 -7
  154. package/dist/dash/standalone/static/assets/chunks/action-fc8716cda7527d8c.js +1 -0
  155. package/dist/dash/standalone/static/assets/chunks/agent-pills-bd32cb89331aff7e.js +2 -0
  156. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-f5576a2c50fce094.js +1 -0
  157. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-b2f2c22e63dedc1f.js → agent-toggle-a45b95908d62f926.js} +1 -1
  158. package/dist/dash/standalone/static/assets/chunks/agents-grid-9f79b5074899c8be.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/{back-1d1b062f0e1b29b7.js → back-b0cd2b85c9d8403e.js} +1 -1
  160. package/dist/dash/standalone/static/assets/chunks/combo-1050768988cd0347.js +1 -0
  161. package/dist/dash/standalone/static/assets/chunks/composer-87f138e21d68370d.js +1 -0
  162. package/dist/dash/standalone/static/assets/chunks/composer-8f0e8b1d07e74aad.js +1 -0
  163. package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +1 -0
  164. package/dist/dash/standalone/static/assets/chunks/{confirm-1cb4d8df3974f34a.js → confirm-01d5814b1c5f7721.js} +1 -1
  165. package/dist/dash/standalone/static/assets/chunks/connect-apps-857dc9fa3f6f5bbc.js +1 -0
  166. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-995d55b3f166337d.js → connect-repositories-49098298b3a82647.js} +1 -1
  167. package/dist/dash/standalone/static/assets/chunks/connections-list-46d48443d8fc8a0d.js +1 -0
  168. package/dist/dash/standalone/static/assets/chunks/{copy-c938369a1bfe75fd.js → copy-5db9d328f8f65d82.js} +1 -1
  169. package/dist/dash/standalone/static/assets/chunks/create-link-6b6e9eeac436c4af.js +1 -0
  170. package/dist/dash/standalone/static/assets/chunks/credentials-list-3cccc85ef335cb22.js +1 -0
  171. package/dist/dash/standalone/static/assets/chunks/{custom-range-4eeb710748887f3a.js → custom-range-fdf1946aac09cfc3.js} +1 -1
  172. package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +1 -0
  173. package/dist/dash/standalone/static/assets/chunks/editor-d2460c315bb1fd32.js +6 -0
  174. package/dist/dash/standalone/static/assets/chunks/engines-list-0159c8baa0b3e711.js +1 -0
  175. package/dist/dash/standalone/static/assets/chunks/{field-657227821326b5b3.js → field-c530e261587d94df.js} +1 -1
  176. package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +1 -0
  177. package/dist/dash/standalone/static/assets/chunks/instructions-3ea5afeea1992bf2.js +2 -0
  178. package/dist/dash/standalone/static/assets/chunks/instructions-d8884576a18e6cdb.js +1 -0
  179. package/dist/dash/standalone/static/assets/chunks/list-b67ce61483dd6acb.js +1 -0
  180. package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +1 -0
  181. package/dist/dash/standalone/static/assets/chunks/models-list-98c956ba00913a73.js +1 -0
  182. package/dist/dash/standalone/static/assets/chunks/{notice-cd32ca98bbc10844.js → notice-8939183c8a889bae.js} +1 -1
  183. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-6323cb5300b6d3c9.js +1 -0
  184. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-be3fbe8c4b43d180.js +1 -0
  185. package/dist/dash/standalone/static/assets/chunks/platform-actions-aafbf038008de64f.js +1 -0
  186. package/dist/dash/standalone/static/assets/chunks/platform-actions-ed27388f722b4a4c.js +1 -0
  187. package/dist/dash/standalone/static/assets/chunks/runners-list-a13d0f8f6583c6d2.js +1 -0
  188. package/dist/dash/standalone/static/assets/chunks/{runtime-e8b9eb1e537215ed-1.js → runtime-71b727f8f5906f08-1.js} +1 -1
  189. package/dist/dash/standalone/static/assets/chunks/secrets-list-53a0c079492199c9.js +1 -0
  190. package/dist/dash/standalone/static/assets/chunks/{segmented-24da438244eedc8f.js → segmented-a3642b8169857fb1.js} +1 -1
  191. package/dist/dash/standalone/static/assets/chunks/shared-init-6cad28f8cc696d91.js +2 -0
  192. package/dist/dash/standalone/static/assets/chunks/shared-init-71b727f8f5906f08-2.js +1 -0
  193. package/dist/dash/standalone/static/assets/chunks/shared-init-94883db7bc70a5a8.js +5 -0
  194. package/dist/dash/standalone/static/assets/chunks/side-toggle-a2f67a8671a0309b.js +1 -0
  195. package/dist/dash/standalone/static/assets/chunks/tail-81b69d49bfebfd4c.js +1 -0
  196. package/dist/dash/standalone/static/assets/chunks/task-95daa40d39de664f.js +1 -0
  197. package/dist/dash/standalone/static/assets/chunks/task-actions-25c70b47b5a53cd2.js +1 -0
  198. package/dist/dash/standalone/static/assets/chunks/task-view-e5ee0ada38552918.js +5 -0
  199. package/dist/dash/standalone/static/assets/chunks/tasks-list-d58f3063ae31d9d2.js +1 -0
  200. package/dist/dash/standalone/static/assets/chunks/types-3eca2c7f47c46054.js +1 -0
  201. package/dist/dash/standalone/static/assets/chunks/{versions-list-31f31eb1923a0ded.js → versions-list-fbeed95c0b4e5f0f.js} +1 -1
  202. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-e8b9eb1e537215ed-0.js → wular-pnext-71b727f8f5906f08-0.js} +1 -1
  203. package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +1 -0
  204. package/dist/dash/standalone/static/assets/{dash-param-org-account-3f646d473e3bd795.css → dash-param-org-account-9471bec93c444232.css} +1 -1
  205. package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +1 -0
  206. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +1 -0
  207. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +1 -0
  208. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +1 -0
  209. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +1 -0
  210. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +1 -0
  211. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +1 -0
  212. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +1 -0
  213. package/dist/dash/standalone/static/assets/{dash-param-org-67f7811b1343c064.css → dash-param-org-bcfa3de29341d5ba.css} +1 -1
  214. package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +1 -0
  215. package/dist/dash/standalone/static/assets/{dash-param-org-settings-a851a659784d94b5.css → dash-param-org-settings-6d6902345d88a687.css} +1 -1
  216. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +1 -0
  217. package/dist/dash/standalone/static/assets/{dash-param-org-setup-1b708aa5bb2f83ef.css → dash-param-org-setup-173efecd7b990c2e.css} +1 -1
  218. package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +1 -0
  219. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +1 -0
  220. package/dist/dash/standalone/static/assets/{dash-param-org-operator-56742192a9aafc19.css → dash-param-org-usage-517b2a7ae462ac57.css} +1 -1
  221. package/dist/dash/standalone/static/assets/global-87e1762113874559.css +1 -0
  222. package/dist/dash/standalone/static/assets/pnext-client-037852a9f274c8c8.js +1 -0
  223. package/dist/dash/standalone/static/assets/pnext-client-10eac8df53f62104.js +1 -0
  224. package/dist/dash/standalone/static/assets/pnext-client-12635905e9754177.js +1 -0
  225. package/dist/dash/standalone/static/assets/pnext-client-12955733c71cc641.js +1 -0
  226. package/dist/dash/standalone/static/assets/pnext-client-26999113ea61d5b9.js +1 -0
  227. package/dist/dash/standalone/static/assets/pnext-client-27b6e4b7d1697094.js +1 -0
  228. package/dist/dash/standalone/static/assets/pnext-client-34fec171024dd082.js +1 -0
  229. package/dist/dash/standalone/static/assets/pnext-client-44eb6d4096f7e875.js +1 -0
  230. package/dist/dash/standalone/static/assets/pnext-client-4c558a168b95d9b1.js +1 -0
  231. package/dist/dash/standalone/static/assets/pnext-client-5d21f3dd3f4407af.js +1 -0
  232. package/dist/dash/standalone/static/assets/pnext-client-5fe04a4e1dff28a3.js +1 -0
  233. package/dist/dash/standalone/static/assets/pnext-client-88bbc009041aa776.js +1 -0
  234. package/dist/dash/standalone/static/assets/pnext-client-b36106c6b8a6cd35.js +1 -0
  235. package/dist/dash/standalone/static/assets/pnext-client-b47dda1cd4cfac04.js +1 -0
  236. package/dist/dash/standalone/static/assets/pnext-client-b556f5611fdcf545.js +1 -0
  237. package/dist/dash/standalone/static/assets/pnext-client-b8485144ca29d436.js +1 -0
  238. package/dist/dash/standalone/static/assets/pnext-client-c5c3c90b3518c5a8.js +1 -0
  239. package/dist/dash/standalone/static/assets/pnext-client-e4c659a371f4cd79.js +1 -0
  240. package/dist/dash/standalone/static/assets/pnext-client-f139547dc55d7d76.js +1 -0
  241. package/dist/dash/standalone/static/assets/pnext-client-fd280710b31af681.js +1 -0
  242. package/dist/default-Ojx5oFuw.js +1 -0
  243. package/dist/delete-D1hEPpsk.js +2 -0
  244. package/dist/{delete-DS6P_fun.js → delete-UyzcQPoG.js} +2 -2
  245. package/dist/disable-Dml_Slph.js +1 -0
  246. package/dist/{discover-pKrMDvpW.js → discover-CyIfIBGD.js} +2 -2
  247. package/dist/dispatch-CFZ9Crvg.js +8 -0
  248. package/dist/{dist-C3wD7GfG.js → dist-B2jiMMxZ.js} +2 -2
  249. package/dist/{dist-DkATuPBB.js → dist-ClCNj65n.js} +2 -2
  250. package/dist/{dist-BTornX7Y.js → dist-DAnSqY1s.js} +2 -2
  251. package/dist/{docs-sFUXzJbk.js → docs-BUHKbQjM.js} +1 -1
  252. package/dist/docs-CvjWiada.js +2 -0
  253. package/dist/drive-BqunNi9n.js +1 -0
  254. package/dist/{enable-BWvDv7dP.js → enable-xye-Nanc.js} +1 -1
  255. package/dist/env-BgE9ipvN.js +1 -0
  256. package/dist/exec-Cprez703.js +3 -0
  257. package/dist/executor-3QMa-XRY.js +11 -0
  258. package/dist/flow/builtin/review.d.ts +2 -2
  259. package/dist/flow/builtin/review.js +7 -14
  260. package/dist/flow/index.d.ts +1 -1
  261. package/dist/flow/index.js +1 -1
  262. package/dist/flow-CtillCQY.js +1 -0
  263. package/dist/history-C53URBjs.js +8 -0
  264. package/dist/http-CDZKt5ln.js +1 -0
  265. package/dist/hub-B0WCXtsP.js +2 -0
  266. package/dist/init-HdSVUozH.js +1 -0
  267. package/dist/integrations-BdLs4W6o.js +1 -0
  268. package/dist/integrations-IGnXBrPw.js +2 -0
  269. package/dist/lib/broker.js +2 -2
  270. package/dist/list-1IMeVNg3.js +1 -0
  271. package/dist/{list-CaFQOnfI.js → list-BTjIMvNs.js} +1 -1
  272. package/dist/list-BlOB32n6.js +4 -0
  273. package/dist/list-CZGTVKcS.js +4 -0
  274. package/dist/list-CquHtsmW.js +3 -0
  275. package/dist/list-CxjPT0Il.js +1 -0
  276. package/dist/{list-BDpYPbJF.js → list-DvFVuGT_.js} +1 -1
  277. package/dist/list-gFnOS9Hk.js +2 -0
  278. package/dist/load-Q9fL4VC6.js +2 -0
  279. package/dist/local-Bzdmzc1o.js +5 -0
  280. package/dist/log-view-CL3_S0IQ.js +3 -0
  281. package/dist/login-C723kHh6.js +1 -0
  282. package/dist/{login-CpHx_RCq.js → login-Dq3r6gh6.js} +1 -1
  283. package/dist/{logout-zSQBDPCK.js → logout-DEg0aTmq.js} +1 -1
  284. package/dist/{maintenance-DuIspk-y.js → maintenance-DYOstY6V.js} +1 -1
  285. package/dist/match-BwcxeAZF.js +1 -0
  286. package/dist/mcp-CKqinFkk.js +1 -0
  287. package/dist/mcp-Dsl3Xdd3.js +13 -0
  288. package/dist/mcp-server-BlP9lACI.js +1 -0
  289. package/dist/model-Bs27g5EX.js +1 -0
  290. package/dist/models-Cb0ZTKZ7.js +1 -0
  291. package/dist/prompt-PEgcMJO7.js +8 -0
  292. package/dist/prompts-Bj4Fbd_n.js +78 -0
  293. package/dist/push-DpEW4XbQ.js +1 -0
  294. package/dist/reconnect-BmP_XXDv.js +1 -0
  295. package/dist/refresh-SHNJq9Cx.js +1 -0
  296. package/dist/remote-D3JZ4MMQ.js +3 -0
  297. package/dist/remove-BZZgJq8Z.js +1 -0
  298. package/dist/remove-CId1EwPg.js +1 -0
  299. package/dist/remove-Ci87WQq0.js +1 -0
  300. package/dist/remove-DxCv9BB4.js +1 -0
  301. package/dist/rename-DJaf5SwH.js +1 -0
  302. package/dist/{result-Bg557zR6.js → result-BesDQ-b1.js} +2 -2
  303. package/dist/result-D0dpv2O_.js +18 -0
  304. package/dist/{resume-fnx4FUQF.js → resume-2Y0uC5MM.js} +2 -2
  305. package/dist/{review-CAHDqPq8.js → review-DIm9oK_W.js} +2 -2
  306. package/dist/{index-vd37q3fn.d.ts → review-Dxs-idTn.d.ts} +173 -74
  307. package/dist/{rotate-key-Dpx_WmuU.js → rotate-key-CS1G6ReH.js} +1 -1
  308. package/dist/run-BKUd6B8S.js +2 -0
  309. package/dist/run-DjTTb8oA.js +5 -0
  310. package/dist/run-UPW-7pKo.js +2 -0
  311. package/dist/runner-BLS_ReEw.js +1 -0
  312. package/dist/runner-BM_98EQl.js +1 -0
  313. package/dist/runner.json +1 -0
  314. package/dist/runner.tgz +0 -0
  315. package/dist/runners-DyLnqHKy.js +36 -0
  316. package/dist/schema-CjHmulYJ.js +8 -0
  317. package/dist/schema.d.ts +2 -2
  318. package/dist/schema.js +1 -1
  319. package/dist/{sdk-CWerLcF5.d.ts → sdk-B4Cl0Hbw.d.ts} +665 -485
  320. package/dist/sdk.d.ts +4 -5
  321. package/dist/sdk.js +1 -1
  322. package/dist/serve-BApfeXk8.js +12 -0
  323. package/dist/serve-DE1cKoGa.js +1 -0
  324. package/dist/{serve-w-9qRCP1.js → serve-lF97RlpX.js} +2 -2
  325. package/dist/serve-mXTjboT1.js +1 -0
  326. package/dist/{server-Bw_YmgCf.js → server-CUsxAflx.js} +1 -1
  327. package/dist/setup-host-tlsilI6C.js +6 -0
  328. package/dist/show-Dn7zTz-9.js +1 -0
  329. package/dist/show-uyUpeqa9.js +1 -0
  330. package/dist/slack-DhPhLuWb.js +5 -0
  331. package/dist/{status-PO1YXbt4.js → status-D_1VGn9F.js} +1 -1
  332. package/dist/steer-CMp-a7v2.js +4 -0
  333. package/dist/stop-C7YjN2sB.js +1 -0
  334. package/dist/{stop-CkvoZEAH.js → stop-D8G7AtdY.js} +2 -2
  335. package/dist/task-DJ6nruuA.js +1 -0
  336. package/dist/task-DeFLNmQH.js +1 -0
  337. package/dist/task-bkoi8_NN.js +7 -0
  338. package/dist/test-BD9rvefN.js +1 -0
  339. package/dist/tools-CdWkwI1g.js +1 -0
  340. package/dist/{types-C1tWi5lP.d.ts → types-C6NAqGqn.d.ts} +96 -42
  341. package/dist/{types-B42Oh0zF.js → types-D_xnfP7m.js} +1 -1
  342. package/dist/unalias-bL5t8Isc.js +1 -0
  343. package/dist/update-DIYW08ME.js +2 -0
  344. package/dist/upgrade-3fH6dGJw.js +2 -0
  345. package/dist/usage-Dr8F0xt0.js +1 -0
  346. package/dist/views-CE2d9x6T.js +5 -0
  347. package/dist/watch-BiyN4NxE.js +5 -0
  348. package/dist/watch-DJXu13jK.js +9 -0
  349. package/dist/wire-nJ7sEi-M.js +1 -0
  350. package/dist/worker-CHD_OiQS.js +1 -0
  351. package/dist/worker-KfrTK_Dk.js +2 -0
  352. package/dist/{workflow-BKxG9OUk.js → workflow-C21qQ4rT.js} +1 -1
  353. package/docs/agents/coder.md +7 -7
  354. package/docs/agents/index.md +17 -19
  355. package/docs/agents/prompt.md +231 -0
  356. package/docs/cli.md +2 -2
  357. package/docs/config.md +5 -3
  358. package/docs/mcp.md +2 -2
  359. package/docs/review.md +1 -1
  360. package/docs/sdk.md +1 -1
  361. package/docs/self-host.md +7 -9
  362. package/package.json +2 -1
  363. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  364. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  365. package/dist/actions-5TDwmn_z.js +0 -20
  366. package/dist/adapter-sKt1J1Cm.js +0 -1
  367. package/dist/add-BftLUw05.js +0 -1
  368. package/dist/add-CXAGrCnC.js +0 -1
  369. package/dist/add-Ck_y_nKX.js +0 -2
  370. package/dist/agent-ChnedLBv.js +0 -8
  371. package/dist/alias-BpgVDY6_.js +0 -2
  372. package/dist/approvals-CE8dXZhE.js +0 -2
  373. package/dist/approve-dWW4qt76.js +0 -2
  374. package/dist/apps-B60OpAHX.js +0 -242
  375. package/dist/archive-CmRVm4iS.js +0 -4
  376. package/dist/archive-sweep-EiiXIqjr.js +0 -1
  377. package/dist/args-CxsMr9Un.js +0 -1
  378. package/dist/ask-Bou8zg-4.js +0 -4
  379. package/dist/auth-CImjIcG5.js +0 -1
  380. package/dist/auth-CWzSsiSC.js +0 -1
  381. package/dist/chat-Bbzlea60.js +0 -1
  382. package/dist/chat-Djps0Seg.js +0 -13
  383. package/dist/chat-bridge-CvspGKBc.js +0 -2
  384. package/dist/cli-ZUdhZnuW.js +0 -9
  385. package/dist/config-CF3_A3NX.js +0 -3
  386. package/dist/config-D2FxHWwi.js +0 -14
  387. package/dist/connection-BCRJHTgp.js +0 -1
  388. package/dist/create-Z0QxarzN.js +0 -1
  389. package/dist/credentials-Dt2uP3AQ.js +0 -1
  390. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/responsive.82549d958fae8f00.css.pnext-asset.js +0 -0
  391. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/zone.dbc84f981415d8f7.js +0 -10
  392. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/heads.20414ddcb2d08bcd.js +0 -51
  393. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/card.15f7435f202831c3.css.pnext-asset.js +0 -0
  394. package/dist/dash/standalone/static/assets/chunks/action-977f2355e308d7d0.js +0 -1
  395. package/dist/dash/standalone/static/assets/chunks/agent-pills-e75e6ac80d515ffc.js +0 -1
  396. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-09f23ed893d441c7.js +0 -1
  397. package/dist/dash/standalone/static/assets/chunks/agents-grid-bb4f3e4d38b2f459.js +0 -1
  398. package/dist/dash/standalone/static/assets/chunks/combo-126d5709a0b3a5bd.js +0 -1
  399. package/dist/dash/standalone/static/assets/chunks/composer-6bf94d1087a6e6a6.js +0 -1
  400. package/dist/dash/standalone/static/assets/chunks/composer-9c1fe67a0de73997.js +0 -1
  401. package/dist/dash/standalone/static/assets/chunks/connect-apps-32c169b6e00711ff.js +0 -1
  402. package/dist/dash/standalone/static/assets/chunks/connections-list-a102e909edff14d4.js +0 -1
  403. package/dist/dash/standalone/static/assets/chunks/create-link-a147953f343355ec.js +0 -1
  404. package/dist/dash/standalone/static/assets/chunks/credentials-list-31e0fbc1ef0d003e.js +0 -1
  405. package/dist/dash/standalone/static/assets/chunks/defaults-dcc0eccad4e8585b.js +0 -1
  406. package/dist/dash/standalone/static/assets/chunks/editor-79560c0f91cfc2f6.js +0 -7
  407. package/dist/dash/standalone/static/assets/chunks/engines-list-d22f50040e6842ae.js +0 -1
  408. package/dist/dash/standalone/static/assets/chunks/format-b19b8eec331414f4.js +0 -1
  409. package/dist/dash/standalone/static/assets/chunks/instructions-a08bb02650dedb8d.js +0 -2
  410. package/dist/dash/standalone/static/assets/chunks/instructions-a1f10bc3c2866e3f.js +0 -1
  411. package/dist/dash/standalone/static/assets/chunks/list-a0cc9bdb05fc71d4.js +0 -1
  412. package/dist/dash/standalone/static/assets/chunks/model-options-3a57918eaa4a2a82.js +0 -1
  413. package/dist/dash/standalone/static/assets/chunks/models-list-63ab774de3bf3788.js +0 -1
  414. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-4ab62d613bee243a.js +0 -1
  415. package/dist/dash/standalone/static/assets/chunks/platform-actions-40824017c7b5b910.js +0 -1
  416. package/dist/dash/standalone/static/assets/chunks/platform-actions-a515643f341df568.js +0 -1
  417. package/dist/dash/standalone/static/assets/chunks/runners-list-a9f4f71695f7b376.js +0 -1
  418. package/dist/dash/standalone/static/assets/chunks/secrets-list-34e09c332363564c.js +0 -1
  419. package/dist/dash/standalone/static/assets/chunks/shared-init-02aaa49ed4606a76.js +0 -2
  420. package/dist/dash/standalone/static/assets/chunks/shared-init-03e620f936463465.js +0 -5
  421. package/dist/dash/standalone/static/assets/chunks/shared-init-6f8c76316a2cd9da.js +0 -1
  422. package/dist/dash/standalone/static/assets/chunks/shared-init-e8b9eb1e537215ed-2.js +0 -1
  423. package/dist/dash/standalone/static/assets/chunks/side-toggle-8563e6056e862225.js +0 -1
  424. package/dist/dash/standalone/static/assets/chunks/tail-ebdefca4d5c23266.js +0 -1
  425. package/dist/dash/standalone/static/assets/chunks/task-6ae2bb4f1b384140.js +0 -1
  426. package/dist/dash/standalone/static/assets/chunks/task-actions-462507b76bda4657.js +0 -1
  427. package/dist/dash/standalone/static/assets/chunks/task-view-341d79730a341007.js +0 -5
  428. package/dist/dash/standalone/static/assets/chunks/tasks-list-6037ecd098332564.js +0 -1
  429. package/dist/dash/standalone/static/assets/create-param-id-8fa3e9101430f26a.css +0 -1
  430. package/dist/dash/standalone/static/assets/dash-param-org-agents-0ddb989cab5b0fbf.css +0 -1
  431. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-504d1a906feabb6f.css +0 -1
  432. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-7cd987a1a42a3b44.css +0 -1
  433. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-fcdddf2dc26453ce.css +0 -1
  434. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-26b84d659dbca7f4.css +0 -1
  435. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-97ff652f9fe5979d.css +0 -1
  436. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-d47377c0f877c5c0.css +0 -1
  437. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-6a09580f11d669b7.css +0 -1
  438. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-06283106fffbd5c6.css +0 -1
  439. package/dist/dash/standalone/static/assets/dash-param-org-tasks-9cb2bb12389c9a04.css +0 -1
  440. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-a87fa0eaa02e4008.css +0 -1
  441. package/dist/dash/standalone/static/assets/dash-param-org-usage-786c91a7640542e6.css +0 -1
  442. package/dist/dash/standalone/static/assets/global-eee296f070a9bb95.css +0 -1
  443. package/dist/dash/standalone/static/assets/pnext-client-17c3ee29b7487596.js +0 -1
  444. package/dist/dash/standalone/static/assets/pnext-client-1eaa8deb5395345f.js +0 -1
  445. package/dist/dash/standalone/static/assets/pnext-client-29e2b964470f6587.js +0 -1
  446. package/dist/dash/standalone/static/assets/pnext-client-2a1e756934e7be1a.js +0 -1
  447. package/dist/dash/standalone/static/assets/pnext-client-31e64d49f6132b26.js +0 -1
  448. package/dist/dash/standalone/static/assets/pnext-client-3d13328ad0b1148b.js +0 -1
  449. package/dist/dash/standalone/static/assets/pnext-client-4ac29d3e9f1a91be.js +0 -1
  450. package/dist/dash/standalone/static/assets/pnext-client-7d479b3375e3c07e.js +0 -1
  451. package/dist/dash/standalone/static/assets/pnext-client-9eac45990b233b55.js +0 -1
  452. package/dist/dash/standalone/static/assets/pnext-client-a8c9c169322e7e3d.js +0 -1
  453. package/dist/dash/standalone/static/assets/pnext-client-b622d087a38b1b77.js +0 -1
  454. package/dist/dash/standalone/static/assets/pnext-client-b7fea94dfda72453.js +0 -1
  455. package/dist/dash/standalone/static/assets/pnext-client-cc8e5e6c95040688.js +0 -1
  456. package/dist/dash/standalone/static/assets/pnext-client-d16e2a42b0a274c0.js +0 -1
  457. package/dist/dash/standalone/static/assets/pnext-client-dbccfef0cbb6b18d.js +0 -1
  458. package/dist/dash/standalone/static/assets/pnext-client-e74706ae238018e5.js +0 -1
  459. package/dist/dash/standalone/static/assets/pnext-client-ebe7c9692619ea00.js +0 -1
  460. package/dist/dash/standalone/static/assets/pnext-client-ef8d348060493085.js +0 -1
  461. package/dist/dash/standalone/static/assets/pnext-client-fcdfa8b2c8824449.js +0 -1
  462. package/dist/dash/standalone/static/assets/pnext-client-ff36e2f8a0522759.js +0 -1
  463. package/dist/default-DcYwZCnl.js +0 -1
  464. package/dist/default-EXRzdZUY.js +0 -1
  465. package/dist/delete-Bmn2_TiV.js +0 -2
  466. package/dist/disable-CnCxTC3X.js +0 -1
  467. package/dist/discover-CBP4Uw0N.js +0 -1
  468. package/dist/dispatch-D3Dqxijf.js +0 -8
  469. package/dist/docs-3SW1O9iS.js +0 -2
  470. package/dist/env-C_DoQYl5.js +0 -1
  471. package/dist/exec-BsXFIdTl.js +0 -11
  472. package/dist/executor-5j-Ewzzb.js +0 -11
  473. package/dist/flow-CuUq-MDm.js +0 -1
  474. package/dist/http-Cg_wYcZT.js +0 -1
  475. package/dist/init-Dgj6V-aS.js +0 -1
  476. package/dist/integrations-D3OgJk6Y.js +0 -1
  477. package/dist/integrations-DsFX2KCq.js +0 -1
  478. package/dist/list-B6lwbCEp.js +0 -1
  479. package/dist/list-BE3xmX_4.js +0 -1
  480. package/dist/list-BVIAyAAE.js +0 -4
  481. package/dist/list-Bggy3HZY.js +0 -4
  482. package/dist/list-CLtqMYPK.js +0 -2
  483. package/dist/list-DkO78ZEF.js +0 -3
  484. package/dist/load-CRmQB1LD.js +0 -2
  485. package/dist/local-ccKBhpQc.js +0 -1
  486. package/dist/log-view-DB4nXHXO.js +0 -3
  487. package/dist/login-BCdXHQ7z.js +0 -1
  488. package/dist/match-Kt3vFTl1.js +0 -1
  489. package/dist/mcp-O8VTfzdL.js +0 -12
  490. package/dist/mcp-YhyTUMIM.js +0 -11
  491. package/dist/mcp-server-DGzme0YX.js +0 -1
  492. package/dist/model-Bzpwl_95.js +0 -1
  493. package/dist/models-CdvmuaLv.js +0 -1
  494. package/dist/prompt-C--TI1qn.js +0 -8
  495. package/dist/push-vt81gcxD.js +0 -1
  496. package/dist/reconnect-BfghDbl1.js +0 -1
  497. package/dist/refresh-yXJ13FAf.js +0 -1
  498. package/dist/remote-oQs6My_3.js +0 -1
  499. package/dist/remove-5iAM2aTO.js +0 -1
  500. package/dist/remove-BZCA-gdU.js +0 -1
  501. package/dist/remove-BcewhH1U.js +0 -1
  502. package/dist/remove-BwhcR6ig.js +0 -1
  503. package/dist/rename-lyssPQfD.js +0 -1
  504. package/dist/result-jeiRJTzA.js +0 -18
  505. package/dist/review-CJS59vO-.d.ts +0 -157
  506. package/dist/run-CLy9a2MO.js +0 -2
  507. package/dist/run-DU4G8gNw.js +0 -2
  508. package/dist/run-D_pl9GF_.js +0 -5
  509. package/dist/runner-DME7ohjt.js +0 -1
  510. package/dist/runner-zT5Oyrfr.js +0 -1
  511. package/dist/runners-CNhxPjg8.js +0 -36
  512. package/dist/schema-BSlHRFSP.js +0 -8
  513. package/dist/serve-FG2LgXxM.js +0 -9
  514. package/dist/serve-UE1fcf4t.js +0 -1
  515. package/dist/serve-wQgyxwdY.js +0 -1
  516. package/dist/setup-host-BsbDs4lJ.js +0 -6
  517. package/dist/show-Cajmf606.js +0 -1
  518. package/dist/show-D0qTuXRU.js +0 -1
  519. package/dist/slack-C_RlVDz7.js +0 -3
  520. package/dist/steer-i6w87g_t.js +0 -4
  521. package/dist/stop-CJ0PHvKp.js +0 -1
  522. package/dist/task-DTN_fIGC.js +0 -1
  523. package/dist/task-DXHKWB_J.js +0 -5
  524. package/dist/task-IoBYe7ok.js +0 -1
  525. package/dist/test-BTkKFbnx.js +0 -1
  526. package/dist/tools-B-2oi2wI.js +0 -1
  527. package/dist/unalias-Cqx7i_L0.js +0 -1
  528. package/dist/update-MNyeVXyy.js +0 -2
  529. package/dist/upgrade-CGSkY0FY.js +0 -2
  530. package/dist/usage-sx-FR0bz.js +0 -1
  531. package/dist/views-BhsnL0nr.js +0 -5
  532. package/dist/watch-IL2eEgwD.js +0 -9
  533. package/dist/watch-qfr7aSfo.js +0 -5
  534. package/dist/wire-B5rc5Av6.js +0 -1
  535. package/dist/worker-BBZ36xL0.js +0 -1
  536. package/dist/worker-D2csFtoH.js +0 -9
  537. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.5954bd9bd05e8230.js → errors.0a735590a5412ea6.js} +0 -0
  538. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.76589c15dee1732d.css.pnext-asset.js → page.cf7460a024706f75.css.pnext-asset.js} +0 -0
  539. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.3ffef848a0b0dda3.css.pnext-asset.js → page.c811938ae8a8f1df.css.pnext-asset.js} +0 -0
  540. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.2d19ea3a4d380e0d.css.pnext-asset.js → agent-settings-form.ca926c58d15044aa.css.pnext-asset.js} +0 -0
  541. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.13019680f38b0630.css.pnext-asset.js → hero.1bef5dca89b5942c.css.pnext-asset.js} +0 -0
  542. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{operator/page.9002a449f872a10e.css.pnext-asset.js → settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js} +0 -0
  543. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.f742847e4887f072.css.pnext-asset.js → credentials-list.f7c27f170ec1e868.css.pnext-asset.js} +0 -0
  544. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.98e0b34932a6ee4c.css.pnext-asset.js → list.8cbee173a5aff98d.css.pnext-asset.js} +0 -0
  545. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.e0ce46919b75ef76.css.pnext-asset.js → runners-list.53c7ea80b6fb734c.css.pnext-asset.js} +0 -0
  546. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/runners-list.a835c9a264cf8903.css.pnext-asset.js → tasks/[id]/task-view.57990cfd2bdf5c11.css.pnext-asset.js} +0 -0
  547. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{[id]/task-view.38b1b7ef3976ba71.css.pnext-asset.js → composer.5b8687662e1629fa.css.pnext-asset.js} +0 -0
  548. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.79c015348f861749.css.pnext-asset.js → list/tasks-list.abbbc9ace4d866e5.css.pnext-asset.js} +0 -0
  549. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{dash/[org]/tasks/list/tasks-list.2282a7cef8b15bd8.css.pnext-asset.js → globals.c8fd2b8b01e7077b.css.pnext-asset.js} +0 -0
  550. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{dash/[org]/usage/usage.775df2f43187c487.css.pnext-asset.js → responsive.ebc5f7d77b4b86a0.css.pnext-asset.js} +0 -0
  551. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{app/globals.dccea8b03fa4b6d2.css.pnext-asset.js → comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js} +0 -0
@@ -1 +0,0 @@
1
- .app{--side: 232px;display:grid;grid-template-columns:var(--side) minmax(0,1fr);grid-template-rows:56px 1fr;min-height:100vh}.top{grid-column:1 / -1;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 20px;background:var(--bg);border-bottom:1px solid var(--line2)}.top-l,.top-r{display:flex;align-items:center;gap:10px;min-width:0}.lockup{display:grid}.lockup small{font-weight:400;font-size:8px;line-height:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}.side{position:sticky;top:56px;z-index:12;height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px;border-right:1px solid var(--line)}.side nav{display:grid;gap:2px}.side nav a{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;color:var(--muted);border-left:2px solid transparent}.side nav a:hover{color:var(--fg);background:var(--wash)}.side nav a[aria-current]{color:var(--fg);background:var(--wash2);border-left-color:var(--deep)}.side nav .n{margin-left:auto;background:var(--accbg);color:var(--acc)}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--warn)}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--okbg)}.server>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);font-size:12px;text-align:left;cursor:pointer}.server>button:hover{background:var(--wash)}.server>button .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server .ic{color:var(--dim);width:14px}.server .pop{width:max-content;max-width:calc(100vw - 32px)}.server .kv dd{white-space:nowrap}.org,.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;background:var(--wash2);font-weight:700;font-size:12px}.avatar{width:32px;height:32px}.avatar-btn{display:grid;place-items:center;width:32px;height:32px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.pop .kv{padding:6px 10px 10px;font-size:12px}.theme .ic.sun,.theme .ic.moon,.theme .ic.sys{display:none}:root[data-theme=light] .theme .ic.sun,:root[data-theme=dark] .theme .ic.moon,:root:not([data-theme]) .theme .ic.sys{display:block}.app>.auth{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg)}@media(max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.top{padding:0 10px}.side{position:fixed;top:56px;left:0;bottom:0;height:auto;width:min(280px,84vw);z-index:30;background:var(--bg);border-right:1px solid var(--line2);transform:translate(-100%);transition:transform .2s}}.side-foot{display:grid;gap:8px}button.side-toggle{justify-self:end;color:var(--dim)}.side-min .side-toggle{justify-self:center}.app.side-min{--side: 60px}.side-min .top .lockup{display:none}.side-min .side{padding-inline:10px}.side-min .side nav a{justify-content:center;gap:0;padding:0;font-size:0}.side-min .side nav .n{display:none}.side-min .side [data-tip],.side-toggle{position:relative}.side-min .side [data-tip]:after,.side-toggle:after{content:attr(data-tip) / "";position:absolute;top:50%;left:calc(100% + 12px);z-index:30;padding:6px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;color:var(--fg);font-size:12px;letter-spacing:normal;white-space:nowrap;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:before,.side-toggle:before{content:"";position:absolute;top:50%;left:calc(100% + 8px);z-index:31;width:8px;height:8px;border-bottom:1px solid var(--line2);border-left:1px solid var(--line2);background:var(--tile);transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:0;transition:opacity .1s}.side-min .side [data-tip]:is(:hover,:focus-visible):before,.side-min .side [data-tip]:is(:hover,:focus-visible):after,.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{opacity:1}.side-toggle:is(:hover,:focus-visible):before,.side-toggle:is(:hover,:focus-visible):after{transition-delay:.7s}.side-min .menu:has(:popover-open)>[data-tip]:before,.side-min .menu:has(:popover-open)>[data-tip]:after{opacity:0}.side-min .server>button{justify-content:center;padding:10px 0}.side-min .server>button :is(.grow,.ic){display:none}@media(max-width:760px){button.side-toggle{display:none}.app.side-min{grid-template-columns:minmax(0,1fr)}}.auth{display:grid;min-height:100vh}.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px 24px 72px}.auth-frame{width:100%;max-width:440px}.auth-frame .bar{min-height:32px;font-size:10px}.auth-frame .brand{font-size:12px}.tag{margin-left:auto;padding:1px 8px;background:var(--deep);color:#fff}.auth-body{display:grid;gap:14px;padding:28px 24px 26px}.auth-body h1{font-size:22px}.auth-body .lead{margin:0 0 6px}.auth-body form{display:grid;gap:14px}.auth-links{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:24px;font-size:9px;color:var(--muted)}.auth-links a:hover{color:var(--fg)}.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.brand .coder-mark{flex:none;position:relative;top:-1px;width:16px;height:16px;fill:currentColor}th .ic{width:12px;height:12px}.pop,.more-list{position:fixed;inset:auto;margin:0;padding:6px;white-space:normal;max-height:calc(100vh - 24px);overflow-y:auto;border:1px solid var(--line2);background:var(--tile);color:inherit;box-shadow:0 12px 32px #0000002e}:where(.menu,.more)>button{padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu>.pop,.more>.more-list{inset:0;margin:auto}@supports (anchor-scope: --menu){.menu,.more{anchor-scope:--menu}:where(.menu,.more)>button{anchor-name:--menu}.menu>.pop,.more>.more-list{position-anchor:--menu;inset:anchor(bottom) auto auto anchor(left);margin:8px 0 0}.more>.more-list{position-try-fallbacks:flip-block}.menu.right>.pop,.more>.more-list{inset:anchor(bottom) anchor(right) auto auto}.menu.up>.pop{inset:auto anchor(right) anchor(top) anchor(left);margin:0 0 8px}.menu>.pop.flip{inset:auto auto anchor(top) anchor(left);margin:0 0 8px}.menu.right>.pop.flip{inset:auto anchor(right) anchor(top) auto}.menu.up>.pop.flip{inset:anchor(bottom) anchor(right) auto anchor(left);margin:8px 0 0}}.pop{z-index:40;min-width:180px}.pop:has(.pop-label,.pop-item.rich,.pop-row){min-width:260px}.menu.up>.pop{min-width:0}.pop.wide{width:min(320px,calc(100vw - 32px))}.pop hr{border:0;border-top:1px solid var(--line);margin:6px 0}.pop-label{padding:8px 10px 4px;font-size:10px;color:var(--dim);border-top:1px solid var(--line)}.pop-head+.pop-label,.pop .pop-label:first-child{border-top:0}.pop-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:none;text-align:left;cursor:pointer}.pop-item:hover{background:var(--wash)}.pop-item.danger:hover{background:var(--badbg);color:var(--bad)}.pop-item:disabled,.pop-item[aria-disabled=true]{cursor:default}.pop-item:disabled:hover,.pop-item[aria-disabled=true]:hover{background:none}.pop-item small{display:block;color:var(--muted);font-size:11.5px}.pop-item.rich{align-items:flex-start}.pop-item.rich .ic{margin-top:2px}.pop-item[role=menuitemradio]>.ic:last-child{visibility:hidden}.pop-item[role=menuitemradio][aria-checked=true]>.ic:last-child{visibility:visible;color:var(--acc)}.pop form{margin:0}.pop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;min-width:0}.pop-head b,.pop-head small{display:block;overflow:hidden;text-overflow:ellipsis}.pop-head small{color:var(--muted);font-size:11.5px}.pop-row{display:flex;align-items:center}.pop-row>.pop-item{flex:1 1 auto}.pop-row>.pop-item small{margin-right:6px;color:var(--muted);font-size:11px}.pop-note{padding:0 10px 8px;font-size:11.5px;color:var(--muted)}.more{flex:none}.more>button{padding:0 7px;border:1px solid var(--line2);color:var(--fg);font-size:11.5px;white-space:nowrap}.more:hover>button,.more:has(:popover-open)>button{border-color:var(--acc);color:var(--acc)}.more.info>button{display:inline-flex;padding:0;border:0;color:var(--muted);vertical-align:middle}.more.info .ic{width:14px;height:14px}.more.info>.more-list{max-width:280px;padding:10px 12px;gap:6px;color:var(--fg);font-size:13px;letter-spacing:normal;text-align:left}.more-list{--max: 220px;z-index:45;min-width:220px}.more-list:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.more-list:popover-open{display:grid;gap:4px}.more-list>:not(.pf-row,p){padding:4px 6px}@media(max-width:760px){.pop.wide{min-width:min(320px,calc(100vw - 32px))}}.scrim{display:none}@media(max-width:760px){.drawer .side{transform:none}.scrim{display:block;position:fixed;inset:56px 0 0;z-index:25;background:#0b0c1073;opacity:0;pointer-events:none;transition:opacity .2s}.drawer .scrim{opacity:1;pointer-events:auto}}@media(min-width:761px){button.only-m{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border:1px solid var(--deep);background:var(--deep);color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;cursor:pointer}.btn:hover{filter:brightness(1.12)}.btn.outline{background:transparent;color:var(--fg);border-color:var(--line2)}.btn.outline:hover,.btn.ghost:hover{background:var(--wash);filter:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg)}.btn.secondary{background:var(--wash2);border-color:transparent;color:var(--fg)}.btn.secondary:hover{background:var(--line2);filter:none}.btn.danger{background:light-dark(#c92a2a,#d42f2f);border-color:light-dark(#c92a2a,#d42f2f);color:#fff}.btn.secondary.danger{background:var(--badbg);border-color:transparent;color:var(--bad)}.btn.secondary.danger:is(:hover,:focus-visible){background:light-dark(rgba(224,49,49,.18),rgba(224,49,49,.3))}.btn.outline.danger{background:transparent;border-color:var(--line2);color:var(--bad)}.btn.ghost.danger{background:transparent;border-color:transparent;color:var(--fg)}.btn:is(.outline,.ghost).danger:is(:hover,:focus-visible){background:var(--badbg);color:var(--bad)}.btn.sm{height:28px;padding:0 10px;font-size:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-spin{flex:none;width:12px;height:12px;margin:2px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.btn[aria-busy=true]:not(:has(>.btn-spin)){position:relative;-webkit-text-fill-color:transparent}.btn[aria-busy=true]:not(:has(>.btn-spin)):after{content:"";position:absolute;inset:0;width:12px;height:12px;margin:auto;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.icon-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--fg);background:var(--wash)}td .btn,td .icon-btn{height:28px;margin-block:-3px -5px;vertical-align:top}td .icon-btn{width:28px}.bar-r .icon-btn{width:28px;height:28px}.toasts{position:fixed;z-index:50;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;width:min(340px,calc(100vw - 32px));height:auto;inset:16px 16px 16px auto;margin:0;padding:0;border:0;background:none;color:inherit;overflow:visible;pointer-events:none}.toast{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:14px 16px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;pointer-events:auto;cursor:pointer;animation:toast-in .15s ease-out}.toast:hover{background:linear-gradient(var(--wash),var(--wash)),var(--tile)}.toast:has(.cover:focus-visible){outline:2px solid var(--acc);outline-offset:2px}.toast-head{display:flex;align-items:center;gap:10px;margin:0}.toast-head .cover{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);text-decoration:none;outline:none}.toast-line{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.toast:is(.success,.warning,.error){border-top:3px solid var(--tone)}.toast.success{--tone: var(--ok)}.toast.warning{--tone: var(--warn)}.toast.error{--tone: var(--bad)}.toast.error .toast-line{white-space:normal}@keyframes toast-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.st{display:inline-flex;align-items:baseline;gap:7px;padding:2px 8px;font-size:10px;letter-spacing:.14em;white-space:nowrap;color:var(--muted);background:var(--wash)}.st i{align-self:center;width:7px;height:7px;border-radius:50%;background:currentColor}.st.running{color:var(--acc);background:var(--accbg)}.st.running i{width:9px;height:9px;background:none;border:1.5px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.st.waiting{color:var(--warn);background:var(--warnbg)}.st.completed{color:var(--ok);background:var(--okbg)}.st.failed{color:var(--bad);background:var(--badbg)}.st.queued i,.st.cancelled i{background:none;border:1.5px solid currentColor}.stats .st{justify-self:start}.page.narrow{max-width:760px}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.page .head,.page .hero{position:sticky;top:56px;z-index:10;margin-inline:-40px;padding:0 40px 6px;background:var(--bg);overflow-anchor:none}.page{--stuck: calc(56px + var(--head, 0px) + var(--tabs, 0px))}.page:has(.tabs:not(.vertical)){--tabs: 40px}.page *{scroll-margin-top:calc(var(--stuck) + 16px)}.back{display:inline-flex;align-items:center;gap:4px;margin-bottom:6px;font-size:12px;color:var(--muted)}.stuck>div:first-child:has(>.back,>*>.back){display:flex;align-items:center;gap:8px}.stuck .back{flex:none;margin:0}.stuck .back>span{display:none}.back:hover{color:var(--fg)}.back .ic{width:14px;height:14px}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-width:0}.title-row h1{min-width:0}.head .title-row{flex-wrap:nowrap}.head .title-row h1{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head .title-row .meta{flex:none}@media(max-width:760px){.page .head,.page .hero{margin-inline:-16px;padding-inline:16px}.head .title-row{flex-wrap:wrap}}.head .meta:empty{min-height:20px}.sentinel{display:block;height:0;margin-bottom:-20px}.page .head.stuck,.page .hero.stuck{padding-top:10px}.stuck{border-bottom:1px solid var(--line2);align-items:center;flex-wrap:nowrap}.stuck h1{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck .lead{display:none}.stuck .title-row{flex-wrap:nowrap}.stuck .meta{flex-wrap:nowrap;overflow:hidden}.stuck>div:first-child,.stuck>.grow{flex:1 1 auto;min-width:0}.stuck .actions{flex:none;flex-wrap:nowrap;width:auto;justify-content:flex-end}.stuck .hero-mark{width:28px;height:28px;font-size:13px}.stuck.hero{align-items:center;gap:12px}.hero.stuck .title-row .badge{display:none}@media(max-width:760px){.stuck .actions>:not(.flash,dialog)~:not(.flash,dialog){display:none}}.bar-r{display:flex;align-items:center;margin-block:-2px;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card.accent{border-color:var(--warn);background:var(--warnbg)}.card.danger{border-color:var(--bad)}.fold>summary{list-style:none;cursor:pointer}.fold>summary::-webkit-details-marker{display:none}.fold:not([open])>summary{border-bottom:0}.fold>summary h2{flex:0 0 auto}.fold-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.fold>summary:hover{background:var(--wash)}.fold>summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}.fold>summary .btn{pointer-events:none}.fold[open]>summary .fold-open,.fold:not([open])>summary .fold-close{display:none}.empty{display:grid;justify-items:center;gap:6px;padding:32px 16px;border:1px dashed var(--line2);text-align:center;color:var(--muted)}.empty b{color:var(--fg);font-weight:500}.card .empty{border:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 auto;min-height:var(--h, 240px);color:var(--dim);font-size:12px}.loading.inline{display:inline-flex;min-height:0}.card:has(>.loading:not([style])){flex:1 0 auto;display:flex;flex-direction:column}.loading>span{display:inline-flex;align-items:center;gap:10px;animation:loader-in 0s 60ms both}.loading .spin{flex:none;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading .dots{display:inline-flex;gap:3px}.loading .dots>b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:dots 1.2s ease-in-out infinite}.loading .dots>b:nth-child(2){animation-delay:.2s}.loading .dots>b:nth-child(3){animation-delay:.4s}@keyframes dots{0%,80%,to{opacity:.25}40%{opacity:1}}.filter-chips{display:flex;flex:1 1 0;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.filters:has(>.filter-chips)>.search{flex-grow:1000}.head.tools .filter-chips{order:-1}.head.tools .filter-chips>:first-child{margin-left:auto}.filter-chips .chip{display:inline-flex;flex:none;align-items:center;gap:4px;max-width:200px}.filter-chips .chip .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chips .chip .ic{width:12px;height:12px}.filter-more>.pop:popover-open{display:block;width:min(260px,calc(100vw - 32px));max-height:calc(100vh - 160px);overflow-y:auto;padding:6px}.filter-more .pop-label:not(:first-child){margin-top:10px}.filter-more .pop-item{width:100%;min-height:30px;font-size:12px}.field-btn{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 12px;border:1px solid var(--line2);background:var(--field);white-space:nowrap;cursor:pointer}.field-btn:focus-visible,.field-btn:has(+.pop:popover-open){outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.field-btn:disabled{color:var(--muted);cursor:default}.filter-more>.field-btn.on{color:var(--acc)}.filter-panel .pop-item>.brand-icon{width:16px;height:16px}.filter-panel [data-facet]{color:var(--muted)}.filter-panel .search{margin:4px 0 6px}.filter-panel .search input{width:100%}@media(max-width:760px){@supports (anchor-scope: --menu){.filters .menu.filter-more>.pop{inset:anchor(bottom) auto auto anchor(left)}}.head.tools .filter-chips{order:0}.head.tools .filter-chips>:first-child{margin-left:0}}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px 7px;border:1px solid var(--line2);font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.badge.acc{border-color:transparent;background:var(--accbg);color:var(--acc)}.badge.ok{border-color:transparent;background:var(--okbg);color:var(--ok)}.badge.warn{border-color:transparent;background:var(--warnbg);color:var(--warn)}.badge.solid{border-color:var(--fg);background:var(--fg);color:var(--bg)}a.badge:hover,button.badge:hover{border-color:var(--acc)}button.badge{cursor:pointer}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{line-height:18px;padding:0 6px;border:1px solid var(--line2);font-size:11.5px;color:var(--muted)}.id{font-size:11.5px;color:var(--dim)}button.chip{background:none;cursor:pointer}button.chip:hover,button.chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.head.tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 24px;min-height:36px}.head.tools>div:first-child{display:contents}.head.tools .lead{grid-row:2;grid-column:1 / -1}.head.tools>.filters{grid-row:1;grid-column:2;justify-content:flex-end}.head.tools>.filters:last-child{grid-column:2 / -1}.head.tools>.actions{grid-row:1;grid-column:3}.page{container-type:inline-size}@container (max-width: 720px){.head.tools:has(>.actions)>.filters{grid-row:auto;grid-column:1 / -1;justify-content:flex-start}.head.tools:has(>.actions) .search{max-width:none}}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search{position:relative;display:block}.tab-body .filters{position:sticky;top:calc(56px + var(--head, 0px) + var(--tabs, 0px));z-index:8;margin-block:-8px;padding-block:8px;background:var(--bg)}.filters .search{flex:1 1 240px;max-width:360px}.search .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim);pointer-events:none}label.search input[type=search]{padding-left:32px}.filters .select{flex:none}.filters .end{margin-left:auto}.vsearch .search{width:min(280px,100%)}@media(max-width:760px){.head.tools{grid-template-columns:minmax(0,1fr) auto;row-gap:12px}.head.tools>.filters{grid-row:3;grid-column:1 / -1}.head.tools>.actions{grid-column:2;width:auto}.filters .search{max-width:none;flex-basis:100%}.filters .select{flex:1 1 0}.filters .select>button{gap:4px;padding-inline:8px}.head.tools.stuck>.filters>.select{display:none}}.select{position:relative;display:inline-flex;min-width:0}.field .select{display:flex}.select>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px 7px 12px;border:1px solid var(--line2);background:var(--field);text-align:left;white-space:nowrap;cursor:pointer;touch-action:manipulation}.select>button .grow{overflow:hidden;text-overflow:ellipsis}.select>button .ic{color:var(--dim);transition:transform .15s}.select>button[aria-expanded=true] .ic{transform:rotate(180deg)}.select>button:focus-visible,.select>button[aria-expanded=true]{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}.select>button:disabled{color:var(--muted);cursor:default}.select-pop{min-width:0;max-width:min(440px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.select-pop .pop-item{white-space:nowrap}.select-pop .pop-item:hover{background:none}.select-pop .pop-item.on{background:var(--wash2)}.select-pop .pop-item>.ic{visibility:hidden}.select-pop .pop-item[aria-selected=true]>.ic{visibility:visible;color:var(--acc)}.select>button:disabled{opacity:.65;cursor:default}.select-pop .pop-item small{display:block;overflow:hidden;direction:rtl;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:var(--muted)}.select-pop .pop-item .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}.select-pop .pop-item.action{margin-top:4px;color:var(--muted)}.select-pop .pop-item.action>.ic{visibility:visible;width:14px;height:14px}.select-pop .pop-item.action.on{color:var(--fg)}.select .brand-icon,.select-pop .brand-icon{flex:none;width:14px;height:14px}dialog.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid var(--line2);background:var(--tile);color:inherit;text-align:left;white-space:normal;box-shadow:0 12px 32px #0000002e}dialog.modal:focus-visible{outline:none}dialog.modal::backdrop{background:light-dark(rgba(0,0,0,.45),rgba(0,0,0,.72))}.modal form{display:grid;gap:16px;padding:20px 24px 24px}.modal header{display:flex;align-items:center;gap:10px}.modal header:has(.icon-btn){margin-right:-10px}.modal h2{flex:1;font-size:15px;font-weight:700;overflow-wrap:anywhere}.modal .actions{justify-content:flex-end;margin-top:4px}@media(min-width:561px){.modal .actions>:first-child:not(:only-child){margin-right:auto}}dialog.confirm,dialog.outcome-dialog{width:min(500px,calc(100vw - 32px))}.confirm p,.outcome-dialog p{color:var(--muted);line-height:1.6}.confirm form{gap:8px}.confirm .actions{margin-top:12px}.outcome-dialog form{gap:10px;padding:24px 24px 20px}dialog.modal.tone{border-top:3px solid var(--tone)}dialog.modal.neutral{--tone: var(--muted)}dialog.modal.success{--tone: var(--ok)}dialog.modal.warning{--tone: var(--warn)}dialog.modal.error{--tone: var(--bad)}.modal.tone header{color:var(--tone)}.modal.tone h2{color:var(--fg)}.outcome-dialog .actions{margin-top:14px}@media(max-width:560px){.modal .actions{flex-direction:column-reverse;align-items:stretch}.modal .actions>*{margin-right:0}}.seg-btns{display:flex;border:1px solid var(--line2)}.seg-btns>a,.seg-btns>button,.seg-btns .menu>button{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-left:1px solid var(--line2);background:var(--panel);font-size:10.5px;letter-spacing:.14em;color:var(--muted);cursor:pointer}.seg-btns>button{border-top:0;border-right:0;border-bottom:0;text-transform:uppercase}.seg-btns>:first-child{border-left:0}.seg-btns>a:hover,.seg-btns>button:hover,.seg-btns .menu>button:hover{color:var(--fg)}.seg-btns [aria-current],.seg-btns [aria-checked=true],.seg-btns .on>button{background:var(--accbg);color:var(--acc)}.seg-btns>button:disabled{opacity:.45;color:var(--muted);cursor:not-allowed}.range-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.date-pop{display:grid;gap:12px;min-width:226px;padding:8px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stats>div{position:relative;display:grid;align-content:start;gap:8px;min-width:0;padding:14px 16px;border:1px solid var(--line);background:var(--panel)}.stats>div:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--acc);opacity:.7}.stats small{font-size:10px;color:var(--muted)}.stats strong{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.25}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.stats{gap:8px}.stats strong{font-size:16px}}.usage td:first-child{width:40%}.unlinked{font-weight:500;color:var(--muted)}.unlinked.gone{color:var(--dim)}.bar-in{display:block;height:3px;margin-top:8px;width:var(--w);background:var(--acc);opacity:.6}.bar-in.top{opacity:1;background:var(--c, var(--acc))}@media(max-width:760px){.usage.stacked tr{grid-template-columns:repeat(3,minmax(0,1fr))}.usage td.num{display:grid;text-align:left;font-size:12px}.usage td.num:before{content:attr(data-label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}}.chart{display:flex;align-items:flex-end;gap:4px;height:200px}.empty-chart{align-items:center;justify-content:center}.chart li{position:relative;flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.chart .col{display:flex;flex-direction:column-reverse;gap:2px;width:100%;max-width:48px;height:var(--h);min-height:1px}.chart .col i{display:block;flex:var(--f) 0 0;min-height:1px;background:var(--c, var(--s1))}.chart .col i:last-child{border-radius:4px 4px 0 0}.chart li>small{font-size:10.5px;color:var(--dim);height:16px;white-space:nowrap}.chart li:hover .col{filter:brightness(1.15)}.chart .tip{display:none;position:absolute;bottom:calc(var(--h) + 30px);left:50%;transform:translate(-50%);z-index:5;width:max-content;max-width:240px;padding:8px 10px;border:1px solid var(--line2);background:var(--tile);box-shadow:0 12px 32px #0000002e;font-size:11.5px;line-height:1.5}.chart li:hover .tip{display:grid}.chart li:first-child .tip,.chart li:nth-child(2) .tip{left:0;transform:none}.chart li:last-child .tip,.chart li:nth-last-child(2) .tip{left:auto;right:0;transform:none}.tip b{font-weight:500}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.legend span,.tip span{display:inline-flex;align-items:center;gap:6px}.legend i,.tip i{width:10px;height:10px;border-radius:2px;background:var(--c)}@media(max-width:760px){.chart{gap:2px;height:160px}}.field{display:grid;gap:6px}.field>span:first-child,.field>label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-weight:500}.field small{font-weight:400;color:var(--muted);font-size:11.5px}.field .seg-btns{width:max-content;max-width:100%}.field .seg-btns>button{height:36px}
@@ -1 +0,0 @@
1
- @font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:optional;src:url(/assets/fonts/fira-code-latin-400-normal-717ee080.woff2) format("woff2")}@font-face{font-family:Fira Code;font-style:normal;font-weight:500;font-display:optional;src:url(/assets/fonts/fira-code-latin-500-normal-530b6706.woff2) format("woff2")}@font-face{font-family:Fira Code;font-style:normal;font-weight:700;font-display:optional;src:url(/assets/fonts/fira-code-latin-700-normal-98730669.woff2) format("woff2")}:root{color-scheme:light dark;--bg: light-dark(#ffffff, #0b0c10);--panel: light-dark(#f8f7f8, #13141a);--tile: light-dark(#f4f4f5, #16171c);--fg: light-dark(#0b0c10, #f3f4f6);--muted: light-dark(#4f5664, #a9b0bd);--dim: light-dark(#7a808b, #7c828e);--line: light-dark(rgba(11, 12, 16, .08), rgba(255, 255, 255, .08));--line2: light-dark(rgba(11, 12, 16, .15), rgba(255, 255, 255, .15));--wash: light-dark(rgba(11, 12, 16, .06), rgba(255, 255, 255, .07));--wash-low: light-dark(rgba(11, 12, 16, .025), rgba(255, 255, 255, .03));--wash2: light-dark(rgba(11, 12, 16, .07), rgba(255, 255, 255, .09));--field: light-dark(#ffffff, #0a0a0a);--acc: light-dark(#0a63c4, #8fbcff);--accbg: light-dark(rgba(10, 99, 196, .1), rgba(143, 188, 255, .14));--deep: #0a63c4;--blue: #2a5da9;--ok: light-dark(#2b8a3e, #51cf66);--okbg: light-dark(rgba(47, 158, 68, .12), rgba(47, 158, 68, .18));--warn: light-dark(#b35c00, #fcc419);--warnbg: light-dark(rgba(245, 159, 0, .14), rgba(245, 159, 0, .16));--bad: light-dark(#c92a2a, #ff8787);--badbg: light-dark(rgba(224, 49, 49, .1), rgba(224, 49, 49, .18));--s1: light-dark(#2a78d6, #3987e5);--s2: light-dark(#eb6834, #d95926);--s3: light-dark(#1baf7a, #199e70);--s4: light-dark(#eda100, #c98500);--s0: light-dark(#b9bdc5, #3d414a);--mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html{font-size:14px;-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;font:400 13px/1.6 var(--mono);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.bad{color:var(--bad)}.mono{font-family:var(--mono)}.link{color:var(--acc);border-bottom:1px solid currentColor}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}code{padding:0 4px;background:var(--wash2)}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line2);background-clip:padding-box;border:3px solid transparent;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--dim);border-width:1px}::-webkit-scrollbar-corner{background:transparent}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--line2) transparent}}.bar h2,th,.stats small,.pop-label,.badge,.st,.tabs a,.tabs>button,.auth-links,.facts dt,.tabs-label,.seg-btns>a,.seg-btns .menu>button,.live,.sheet .label b,.tag{text-transform:uppercase;letter-spacing:.2em}.frame{position:relative;border:1px solid var(--line2);background:var(--panel)}.bar{display:flex;align-items:center;gap:12px;min-height:40px;padding:6px 14px;border-bottom:1px solid var(--line)}.bar h2{flex:1;display:flex;align-items:center;gap:10px;font-size:10.5px;font-weight:500}.n{padding:0 6px;font-size:10.5px;letter-spacing:.05em;color:var(--muted);background:var(--wash2)}.body{padding:16px}.body:not(dl)>*+*{margin-top:12px}@keyframes spin{to{transform:rotate(360deg)}}.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.brand{display:flex;align-items:center;gap:8px;min-width:0;font-weight:700;font-size:14px;line-height:16px;letter-spacing:.02em;white-space:nowrap}main{display:flex;flex-direction:column;min-width:0;padding:40px 40px 80px}.page,.tab-body{flex:1 0 auto;display:flex;flex-direction:column;gap:20px}.page{width:100%;max-width:1120px;margin:0 auto}.head{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.head>div:first-child{min-width:0;flex:1 1 420px}h1{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere}.lead{margin-top:8px;max-width:64ch;color:var(--muted)}.head .lead{margin-top:4px;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.flash{font-size:12px;color:var(--ok)}.flash.err{color:var(--bad)}.flash.reserved{min-height:1lh}.scroll-box{max-height:var(--max, 280px);overflow:auto}.scroll-box thead th{position:sticky;top:0;z-index:1;background:var(--panel)}.prose{white-space:pre-line;overflow-wrap:anywhere}.sub{display:block;font-size:11.5px;color:var(--muted)}.when{white-space:nowrap;color:var(--muted)}.approval{font-size:14px}.notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--line)}.notice .ic{color:var(--dim)}.notice.warning{border-color:var(--warn);background:var(--warnbg)}.notice.warning .ic{color:var(--warn)}.notice.error{border-color:var(--bad);background:var(--badbg)}.notice.error .ic{color:var(--bad)}.notice.slim{flex-wrap:nowrap;gap:10px;padding:8px 8px 8px 14px;font-size:12px}.notice.slim .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card>.notice.slim{margin:12px 16px 0}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 16px;font-size:10px;font-weight:500;color:var(--dim);border-bottom:1px solid var(--line);white-space:nowrap}th a{display:inline-flex;align-items:center;gap:4px}th a:hover,th a[aria-current]{color:var(--fg)}td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}th.num a{justify-content:flex-end}.rows tbody tr{position:relative}.rows tbody tr:hover{background:var(--wash-low)}.rows.tasks tbody tr:hover{background:var(--wash)}.cover{font-weight:500}.cover:after{content:"";position:absolute;inset:0}.row-title{display:flex;align-items:baseline;gap:8px}.acts{text-align:right;white-space:nowrap}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--line2);background:var(--field);border-radius:0}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}input[type=checkbox],input[type=radio]{accent-color:var(--deep);width:15px;height:15px;margin:0;flex:none}select:enabled,input[type=checkbox]:enabled,input[type=radio]:enabled{cursor:pointer}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.check input{margin-top:3px}.check small{display:block;color:var(--muted);font-size:11.5px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.with-btn{display:flex;gap:8px}.with-btn input{flex:1;min-width:0}.with-btn .btn{height:auto}.picks{display:flex;flex-wrap:wrap;gap:6px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.add-form{display:grid;gap:16px;padding:16px}.add-form>.seg-btns{justify-self:start}.add-grid{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.add-grid>.field{flex:1 1 180px}.add-grid>div.field{flex:none}.add-grid>.btn{height:36px}.acts .menu{display:inline-block;margin-left:4px}.guide{display:grid;gap:12px;padding:16px;color:var(--muted)}.guide code,.cmd{padding:1px 6px;background:var(--wash2);color:var(--fg);font-size:12px;overflow-wrap:anywhere}.steps-list{display:grid;gap:8px;padding-left:20px}ol.steps-list{list-style:decimal}ul.steps-list{list-style:square}pnext-suspense,pnext-hole{display:contents}@keyframes loader-in{0%{visibility:hidden}}.add-grid>.field:has(>input[name=name]){flex:0 1 220px}.add-grid>.field:has(>.select){flex:0 0 auto}@media(max-width:760px){main{padding:16px 16px 64px}h1{font-size:22px}.head .actions,.hero .actions{width:100%}.head{row-gap:12px}.head .actions{gap:4px}.head .actions>.btn{padding-inline:10px}.head .lead{white-space:normal}.fields,.fields.three,.agent-form,.import,.cred-new.split{grid-template-columns:minmax(0,1fr)}.stacked thead{display:none}.stacked tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px;border-bottom:1px solid var(--line)}.stacked td{padding:0;border:0}.stacked td:first-child{grid-column:1 / -1;min-width:0}}
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as s}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as d,$2j as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as i,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:T}=o({islands:[{id:"c-0b114804e8",Component:p},{id:"c-198fc2d7f4",Component:c},{id:"c-34bc7ee6da",options:{},load:()=>import("./chunks/editor-79560c0f91cfc2f6.js").then(R=>R.AgentEditor)},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:l},{id:"c-732253f2dd",Component:u},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:s},{id:"c-965cf8e878",Component:i},{id:"c-a8cc4e4154",Component:d},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:e},{id:"c-faf61bd04e",Component:a}]});m();t()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:T});export{_ as mountRoute,x as remountRoute,T as unmountRoute};
@@ -1 +0,0 @@
1
- import{$3a as o,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as r}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:m,remountRoute:p,unmountRoute:n}=o({islands:[{id:"c-4866974233",Component:t}]});i();r()||m();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:m,unmountRoute:n});export{m as mountRoute,p as remountRoute,n as unmountRoute};
@@ -1 +0,0 @@
1
- import{g as f}from"./chunks/format-b19b8eec331414f4.js";import{$0c as p}from"./chunks/shared-init-03e620f936463465.js";import{$1L as v,$1a as t,$1c as h}from"./chunks/shared-init-03e620f936463465.js";import{$3a as c,$3b as d}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$2h as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as u}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";function R({tag:n,title:r,lead:o,children:a}){return t("section",{class:"auth",children:t("div",{class:"auth-side",children:[t("div",{class:"auth-frame frame",children:[t("div",{class:"bar",children:[t("a",{class:"brand",href:"/",children:[t(h,{}),t("span",{class:"lockup",children:["coder ",t("small",{children:"wular"})]})]}),t("span",{class:"tag",children:n})]}),t("div",{class:"auth-body",children:[t("h1",{children:r}),o?t("p",{class:"lead",children:o}):null,a]})]}),t("nav",{class:"auth-links",children:[t("a",{href:"https://wular.ai",children:"wular.ai"}),t("a",{href:"https://coder.wular.ai",children:"hosted service"})]})]})})}function l(){let[n,r]=i(""),[o,a]=i(""),C=typeof location>"u"?"":new URLSearchParams(location.search).get("token")??"";return t(R,{tag:"connect",title:"Connect your account",lead:o||"Link this platform identity to your signed-in Coder account.",children:[o?null:t(v,{wide:!0,onClick:()=>void p.linkAccount(C).then(e=>a(`${e.platform} account ${e.platformUserId} is connected.`)).catch(e=>r(f(e))),children:"Connect"}),t("p",{class:"flash err reserved",role:"alert",children:n})]})}var{mountRoute:_,remountRoute:D,unmountRoute:w}=c({islands:[{id:"c-4866974233",Component:d}],Page:l});m();u()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:w});export{_ as mountRoute,D as remountRoute,w as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-1d1b062f0e1b29b7.js";import{a as p,b as c,c as f,d as l,e as C,f as u}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as s,$1i as a}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as m}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as d,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as t,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:R,remountRoute:P,unmountRoute:_}=t({islands:[{id:"c-05813fe703",options:{},load:()=>import("./chunks/connections-list-a102e909edff14d4.js").then(o=>o.ConnectionsList)},{id:"c-0b114804e8",Component:p},{id:"c-198fc2d7f4",Component:c},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-4c0faf7796",options:{},load:()=>import("./chunks/engines-list-d22f50040e6842ae.js").then(o=>o.EnginesList)},{id:"c-4f567968af",options:{},load:()=>import("./chunks/outcome-dialog-4ab62d613bee243a.js").then(o=>o.OutcomeDialog)},{id:"c-52d89d4c42",options:{},load:()=>import("./chunks/credentials-list-31e0fbc1ef0d003e.js").then(o=>o.EngineLogins)},{id:"c-6b5ef58ec9",Component:l},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:a},{id:"c-965cf8e878",Component:d},{id:"c-9e407065ce",options:{},load:()=>import("./chunks/credentials-list-31e0fbc1ef0d003e.js").then(o=>o.CredentialsList)},{id:"c-a365ac7ea9",options:{},load:()=>import("./chunks/runners-list-a9f4f71695f7b376.js").then(o=>o.RunnersList)},{id:"c-c4069e7b5b",options:{},load:()=>import("./chunks/models-list-63ab774de3bf3788.js").then(o=>o.ModelsList)},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:u},{id:"c-dc36447127",Component:m},{id:"c-e1c3846201",options:{},load:()=>import("./chunks/secrets-list-34e09c332363564c.js").then(o=>o.TaskSecrets)},{id:"c-e604c1e03d",Component:I},{id:"c-faf61bd04e",Component:s}]});e();i()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:_});export{R as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as i}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as m,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:u,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-0b114804e8",Component:s},{id:"c-198fc2d7f4",Component:p},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:c},{id:"c-6e7781a11d",options:{},load:()=>import("./chunks/create-link-a147953f343355ec.js").then(I=>I.CreateLink)},{id:"c-7fa121eda4",Component:l},{id:"c-9268577269",Component:d},{id:"c-965cf8e878",Component:m},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:C},{id:"c-dc36447127",Component:i},{id:"c-faf61bd04e",Component:a}]});e();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:_});export{u as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/custom-range-4eeb710748887f3a.js";import{a as R}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import"./chunks/field-657227821326b5b3.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f,b as c,c as l,d as C,e as u,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as s,$1i as p}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as a,$2j as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as r,$0l as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as n,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:b}=n({islands:[{id:"c-0b114804e8",Component:f},{id:"c-198fc2d7f4",Component:c},{id:"c-40dba596fa",Component:l},{id:"c-4866974233",Component:t},{id:"c-590cdd8a77",Component:T},{id:"c-6b5ef58ec9",Component:C},{id:"c-732253f2dd",Component:R},{id:"c-7fa121eda4",Component:u},{id:"c-9268577269",Component:p},{id:"c-965cf8e878",Component:r},{id:"c-a8cc4e4154",Component:a},{id:"c-b43fd610ad",options:{},load:()=>import("./chunks/composer-9c1fe67a0de73997.js").then(o=>o.NewTaskButton)},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(o=>o.TasksList)},{id:"c-cb5f8355b4",Component:d},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:e},{id:"c-faf61bd04e",Component:s}]});m();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:b});export{_ as mountRoute,D as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import{a as b}from"./chunks/composer-6bf94d1087a6e6a6.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/connect-repositories-995d55b3f166337d.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-cd32ca98bbc10844.js";import"./chunks/back-1d1b062f0e1b29b7.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f,b as c,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as p}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as s,$2j as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as d,$0l as m}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as n,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:_,remountRoute:D,unmountRoute:R}=n({islands:[{id:"c-0b114804e8",Component:f},{id:"c-14f01a8dee",Component:b},{id:"c-198fc2d7f4",Component:c},{id:"c-40dba596fa",Component:l},{id:"c-4866974233",Component:t},{id:"c-6b5ef58ec9",Component:u},{id:"c-732253f2dd",Component:T},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:p},{id:"c-965cf8e878",Component:d},{id:"c-a8cc4e4154",Component:s},{id:"c-b43fd610ad",options:{},load:()=>import("./chunks/composer-9c1fe67a0de73997.js").then(o=>o.NewTaskButton)},{id:"c-b7ff4ffcff",options:{},load:()=>import("./chunks/instructions-a1f10bc3c2866e3f.js").then(o=>o.Instructions)},{id:"c-bc7d9bb476",options:{load:"visible",ssr:!0},load:()=>import("./chunks/versions-list-31f31eb1923a0ded.js").then(o=>o.VersionsList)},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(o=>o.TasksList)},{id:"c-cb5f8355b4",Component:m},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:r},{id:"c-faf61bd04e",Component:a}]});e();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,D as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as h,b,c as g,d as T,e as k,f as w}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1b as t,$1h as C,$1i as N}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as p}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as u,$0l as I}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import{$1a as e}from"./chunks/shared-init-03e620f936463465.js";import{$3a as m,$3b as d}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as l}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$2h as s,$2j as c}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as f}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";function _(){let[S,r]=s(!1),[a,i]=s(!1);c(()=>{if(typeof Notification>"u")return i(!0);i(Notification.permission==="denied"),r(localStorage.getItem(t)==="1"&&Notification.permission==="granted")},[]);let E=async o=>{o.checked&&Notification.permission==="default"&&await Notification.requestPermission();let n=o.checked&&Notification.permission==="granted";n?localStorage.setItem(t,"1"):localStorage.removeItem(t),o.checked=n,r(n),i(Notification.permission==="denied")};return e("label",{class:"notify",children:[e("input",{type:"checkbox",role:"switch",class:"switch",checked:S,disabled:a,onChange:o=>void E(o.currentTarget)}),a?"Notifications are blocked in this browser":"Notify me when a task finishes"]})}var{mountRoute:R,remountRoute:V,unmountRoute:v}=m({islands:[{id:"c-0b114804e8",Component:h},{id:"c-198fc2d7f4",Component:b},{id:"c-40dba596fa",Component:g},{id:"c-4866974233",Component:d},{id:"c-63837ccaa2",Component:_},{id:"c-6b5ef58ec9",Component:T},{id:"c-7fa121eda4",Component:k},{id:"c-9268577269",Component:N},{id:"c-965cf8e878",Component:u},{id:"c-cb5f8355b4",Component:I},{id:"c-d2ee6dc174",Component:w},{id:"c-dc36447127",Component:p},{id:"c-faf61bd04e",Component:C}]});l();f()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:v});export{R as mountRoute,V as remountRoute,v as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as c,c as f,d as l,e as C,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as s}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2D as d,$2j as i}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as e,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-0b114804e8",Component:p},{id:"c-198fc2d7f4",Component:c},{id:"c-34bc7ee6da",options:{},load:()=>import("./chunks/editor-79560c0f91cfc2f6.js").then(_=>_.AgentEditor)},{id:"c-40dba596fa",Component:f},{id:"c-477b84c063",Component:d},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:l},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:s},{id:"c-965cf8e878",Component:e},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:i},{id:"c-faf61bd04e",Component:a}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a,b as d,c as s,d as p,e as f,f as c}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as i,$1i as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:l,remountRoute:h,unmountRoute:u}=o({islands:[{id:"c-0b114804e8",Component:a},{id:"c-198fc2d7f4",Component:d},{id:"c-40dba596fa",Component:s},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:p},{id:"c-7fa121eda4",Component:f},{id:"c-9268577269",Component:r},{id:"c-965cf8e878",Component:e},{id:"c-d2ee6dc174",Component:c},{id:"c-faf61bd04e",Component:i}]});m();t()||l();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:l,unmountRoute:u});export{l as mountRoute,h as remountRoute,u as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as p,b as f,c,d as l,e as C,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as d,$1i as s}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2D as a,$2j as i}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as e,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-0b114804e8",Component:p},{id:"c-198fc2d7f4",Component:f},{id:"c-40dba596fa",Component:c},{id:"c-477b84c063",Component:a},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:l},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:s},{id:"c-965cf8e878",Component:e},{id:"c-a2493212f4",options:{},load:()=>import("./chunks/task-view-341d79730a341007.js").then(_=>_.TaskView)},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:i},{id:"c-faf61bd04e",Component:d}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as T}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f,b as c,c as l,d as u,e as C,f as I}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as s,$1i as p}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as a,$2j as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as r,$0l as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as n,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:_,remountRoute:x,unmountRoute:R}=n({islands:[{id:"c-0b114804e8",Component:f},{id:"c-198fc2d7f4",Component:c},{id:"c-40dba596fa",Component:l},{id:"c-4866974233",Component:t},{id:"c-6b5ef58ec9",Component:u},{id:"c-732253f2dd",Component:T},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:p},{id:"c-965cf8e878",Component:r},{id:"c-a8cc4e4154",Component:a},{id:"c-b43fd610ad",options:{},load:()=>import("./chunks/composer-9c1fe67a0de73997.js").then(o=>o.NewTaskButton)},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(o=>o.TasksList)},{id:"c-cb5f8355b4",Component:d},{id:"c-d2ee6dc174",Component:I},{id:"c-dc36447127",Component:e},{id:"c-faf61bd04e",Component:s}]});m();i()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,x as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{f as l,g as G}from"./chunks/list-a0cc9bdb05fc71d4.js";import"./chunks/confirm-1cb4d8df3974f34a.js";import{a as u}from"./chunks/field-657227821326b5b3.js";import{a as N}from"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as M,b as P,c as U,d as z,e as X,f as x}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as D,$1i as F}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as B}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as w,$0l as O,$0p as L}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import{$0a as A,$0c as S}from"./chunks/shared-init-03e620f936463465.js";import{$1L as p,$1N as E,$1a as e,$1t as k}from"./chunks/shared-init-03e620f936463465.js";import{$3a as h,$3b as y}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as _}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$2c as b,$2h as c,$2j as I,$2l as R,$2n as v}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as T}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";function W({row:o,product:r,unreachable:i,onClose:t}){let m=R(null),f=v(),[d,g]=c(!1);I(()=>m.current.showModal(),[]);let s=()=>!d&&m.current.close(),V=n=>{let C=a=>String(n.get(a)??"").trim()||void 0;g(!0),S.operator.setUp(o.integration,{name:C("name"),owner:C("owner")}).then(({url:a})=>{location.href=a}).catch(a=>{if(a instanceof A&&a.status===401)return location.reload();g(!1),N(a)})};return e("dialog",{ref:m,class:"create-dialog","aria-labelledby":f,onClose:t,onCancel:n=>{n.preventDefault(),s()},onClick:n=>n.target===n.currentTarget&&s(),children:e("form",{onSubmit:n=>{n.preventDefault(),V(new FormData(n.currentTarget))},children:[e("header",{children:[e("h2",{id:f,children:["Set up shared ",o.name," app"]}),e(E,{icon:k,label:"Close",onClick:s})]}),i?e("p",{class:"flash err",children:[o.name," cannot reach this server yet. Set a public address first: run the server with PUBLIC_URL set to an address ",o.name," can reach."]}):null,e("p",{class:"muted",children:["One app on ",o.name," serves the built-in agent in every workspace. People see its name on consent screens, as in ",r," wants to connect."]}),e(u,{label:"App name",children:e("input",{name:"name",defaultValue:r,autocomplete:"off",required:!0})}),o.organizationApps?e(u,{label:`${o.name} organization`,hint:"owns the app; leave empty to own it on your personal account",children:e("input",{name:"owner",placeholder:"your-org",autocomplete:"off"})}):null,e("div",{class:"actions",children:[e(p,{variant:"ghost",disabled:d,onClick:s,children:"Cancel"}),e(p,{type:"submit",disabled:i,loading:d,children:["Continue on ",o.name]})]})]})})}function q({first:o}){let[r,i]=c();return e(b,{children:[e(G,{title:"Built-in apps",count:o.platforms.length,children:o.platforms.map(t=>e(l,{title:t.name,badges:t.app?e(L,{tone:"ok",children:"set up"}):null,sub:t.app?t.app.name:"Not set up. Workspaces cannot add the built-in agent here.",actions:t.app?null:e(p,{variant:"secondary",size:"sm",onClick:()=>i(t),children:"Set up"})},t.integration))}),r?e(W,{row:r,product:o.name,unreachable:o.unreachable,onClose:()=>i(void 0)}):null]})}var{mountRoute:H,remountRoute:Se,unmountRoute:Z}=h({islands:[{id:"c-0b114804e8",Component:M},{id:"c-198fc2d7f4",Component:P},{id:"c-40dba596fa",Component:U},{id:"c-4866974233",Component:y},{id:"c-6b5ef58ec9",Component:z},{id:"c-7eb2f109a4",Component:q},{id:"c-7fa121eda4",Component:X},{id:"c-9268577269",Component:F},{id:"c-965cf8e878",Component:w},{id:"c-b52212e4bf",Component:l},{id:"c-cb5f8355b4",Component:O},{id:"c-d2ee6dc174",Component:x},{id:"c-dc36447127",Component:B},{id:"c-faf61bd04e",Component:D}]});_();T()||H();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:H,unmountRoute:Z});export{H as mountRoute,Se as remountRoute,Z as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as I}from"./chunks/composer-6bf94d1087a6e6a6.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/connect-repositories-995d55b3f166337d.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-cd32ca98bbc10844.js";import"./chunks/back-1d1b062f0e1b29b7.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as p,b as f,c,d as l,e as C,f as u}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as s}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as m}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as r,$0l as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as n,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:_,remountRoute:Y,unmountRoute:R}=n({islands:[{id:"c-0b114804e8",Component:p},{id:"c-14f01a8dee",Component:I},{id:"c-198fc2d7f4",Component:f},{id:"c-3a08df6eb4",options:{},load:()=>import("./chunks/connect-apps-32c169b6e00711ff.js").then(o=>o.ConnectApps)},{id:"c-40dba596fa",Component:c},{id:"c-4866974233",Component:t},{id:"c-5d0b63f72a",options:{load:"visible",ssr:!0},load:()=>import("./chunks/agents-grid-bb4f3e4d38b2f459.js").then(o=>o.AgentsGrid)},{id:"c-6b5ef58ec9",Component:l},{id:"c-7fa121eda4",Component:C},{id:"c-9268577269",Component:s},{id:"c-965cf8e878",Component:r},{id:"c-cb5f8355b4",Component:d},{id:"c-d2ee6dc174",Component:u},{id:"c-dc36447127",Component:m},{id:"c-faf61bd04e",Component:a}]});i();e()||_();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:_,unmountRoute:R});export{_ as mountRoute,Y as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as u}from"./chunks/custom-range-4eeb710748887f3a.js";import"./chunks/field-657227821326b5b3.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as a,$1i as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as i,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:I,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-0b114804e8",Component:s},{id:"c-198fc2d7f4",Component:p},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-590cdd8a77",Component:u},{id:"c-6b5ef58ec9",Component:c},{id:"c-7fa121eda4",Component:l},{id:"c-9268577269",Component:d},{id:"c-965cf8e878",Component:i},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:C},{id:"c-dc36447127",Component:e},{id:"c-faf61bd04e",Component:a}]});m();t()||I();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:I,unmountRoute:R});export{I as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as _}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import{a as T}from"./chunks/composer-6bf94d1087a6e6a6.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/connect-repositories-995d55b3f166337d.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-cd32ca98bbc10844.js";import"./chunks/back-1d1b062f0e1b29b7.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as f,b as c,c as l,d as C,e as I,f as u}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as s,$1i as p}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as a,$2j as m}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as r,$0l as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as n,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:R,remountRoute:B,unmountRoute:b}=n({islands:[{id:"c-0b114804e8",Component:f},{id:"c-14f01a8dee",Component:T},{id:"c-198fc2d7f4",Component:c},{id:"c-40dba596fa",Component:l},{id:"c-4866974233",Component:t},{id:"c-4987ce9a4b",options:{},load:()=>import("./chunks/agent-settings-form-09f23ed893d441c7.js").then(o=>o.AgentSettingsForm)},{id:"c-6b5ef58ec9",Component:C},{id:"c-732253f2dd",Component:_},{id:"c-7fa121eda4",Component:I},{id:"c-9268577269",Component:p},{id:"c-965cf8e878",Component:r},{id:"c-a8cc4e4154",Component:a},{id:"c-b43fd610ad",options:{},load:()=>import("./chunks/composer-9c1fe67a0de73997.js").then(o=>o.NewTaskButton)},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(o=>o.TasksList)},{id:"c-cb5f8355b4",Component:d},{id:"c-d2ee6dc174",Component:u},{id:"c-dc36447127",Component:m},{id:"c-faf61bd04e",Component:s}]});i();e()||R();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:R,unmountRoute:b});export{R as mountRoute,B as remountRoute,b as unmountRoute};
@@ -1 +0,0 @@
1
- import{$3a as o,$3b as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as r}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:e,remountRoute:a,unmountRoute:m}=o({islands:[{id:"c-4866974233",Component:t},{id:"c-6e7781a11d",options:{},load:()=>import("./chunks/create-link-a147953f343355ec.js").then(n=>n.CreateLink)}]});r();i()||e();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:e,unmountRoute:m});export{e as mountRoute,a as remountRoute,m as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as d,b as p,c as f,d as c,e as l,f as u}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as s,$1i as a}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as m}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as e,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:C,remountRoute:P,unmountRoute:_}=o({islands:[{id:"c-0b114804e8",Component:d},{id:"c-198fc2d7f4",Component:p},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:c},{id:"c-7fa121eda4",Component:l},{id:"c-9268577269",Component:a},{id:"c-965cf8e878",Component:e},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(I=>I.TasksList)},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:u},{id:"c-dc36447127",Component:m},{id:"c-faf61bd04e",Component:s}]});i();t()||C();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:C,unmountRoute:_});export{C as mountRoute,P as remountRoute,_ as unmountRoute};
@@ -1 +0,0 @@
1
- import{b as I}from"./chunks/back-1d1b062f0e1b29b7.js";import{a as s,b as p,c as f,d as c,e as l,f as C}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as d,$1i as a}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2j as e}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as i,$0l as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as o,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as m}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as t}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:u,remountRoute:X,unmountRoute:R}=o({islands:[{id:"c-0b114804e8",Component:s},{id:"c-198fc2d7f4",Component:p},{id:"c-40dba596fa",Component:f},{id:"c-4866974233",Component:n},{id:"c-6b5ef58ec9",Component:c},{id:"c-7fa121eda4",Component:l},{id:"c-9268577269",Component:a},{id:"c-965cf8e878",Component:i},{id:"c-cb5f8355b4",Component:r},{id:"c-d2ee6dc174",Component:C},{id:"c-dc36447127",Component:e},{id:"c-e604c1e03d",Component:I},{id:"c-faf61bd04e",Component:d}]});m();t()||u();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:u,unmountRoute:R});export{u as mountRoute,X as remountRoute,R as unmountRoute};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunks/agent-toggle-b2f2c22e63dedc1f.js";import{a as R}from"./chunks/composer-6bf94d1087a6e6a6.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/task-6ae2bb4f1b384140.js";import"./chunks/defaults-dcc0eccad4e8585b.js";import"./chunks/shared-init-6f8c76316a2cd9da.js";import"./chunks/connect-repositories-995d55b3f166337d.js";import"./chunks/model-options-3a57918eaa4a2a82.js";import"./chunks/notice-cd32ca98bbc10844.js";import{a as _}from"./chunks/back-1d1b062f0e1b29b7.js";import"./chunks/action-977f2355e308d7d0.js";import"./chunks/format-b19b8eec331414f4.js";import{a as c,b as l,c as C,d as I,e as u,f as T}from"./chunks/side-toggle-8563e6056e862225.js";import"./chunks/shared-init-02aaa49ed4606a76.js";import{$1h as p,$1i as f}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$2C as s,$2j as d}from"./chunks/shared-init-02aaa49ed4606a76.js";import{$0k as m,$0l as a,$0m as r}from"./chunks/shared-init-02aaa49ed4606a76.js";import"./chunks/wular-pnext-e8b9eb1e537215ed-0.js";import"./chunks/shared-init-03e620f936463465.js";import"./chunks/shared-init-03e620f936463465.js";import{$3a as t,$3b as n}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$1c as e}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";import"./chunks/shared-init-e8b9eb1e537215ed-2.js";import{$0i as i}from"./chunks/shared-init-e8b9eb1e537215ed-2.js";var{mountRoute:g,remountRoute:j,unmountRoute:h}=t({islands:[{id:"c-03f11cffed",options:{},load:()=>import("./chunks/platform-actions-a515643f341df568.js").then(o=>o.PlatformActions)},{id:"c-0b114804e8",Component:c},{id:"c-14f01a8dee",Component:R},{id:"c-198fc2d7f4",Component:l},{id:"c-40dba596fa",Component:C},{id:"c-4866974233",Component:n},{id:"c-4f567968af",options:{},load:()=>import("./chunks/outcome-dialog-4ab62d613bee243a.js").then(o=>o.OutcomeDialog)},{id:"c-6b5ef58ec9",Component:I},{id:"c-721796115f",options:{},load:()=>import("./chunks/platform-actions-a515643f341df568.js").then(o=>o.InstallButton)},{id:"c-732253f2dd",Component:b},{id:"c-7962c6ea4c",options:{},load:()=>import("./chunks/platform-actions-a515643f341df568.js").then(o=>o.DriftQueue)},{id:"c-7fa121eda4",Component:u},{id:"c-9268577269",Component:f},{id:"c-965cf8e878",Component:m},{id:"c-a8cc4e4154",Component:s},{id:"c-adf9757d5d",Component:r},{id:"c-b43fd610ad",options:{},load:()=>import("./chunks/composer-9c1fe67a0de73997.js").then(o=>o.NewTaskButton)},{id:"c-bc124a2f24",Component:_},{id:"c-c527097ffa",options:{load:"visible",ssr:!0},load:()=>import("./chunks/tasks-list-6037ecd098332564.js").then(o=>o.TasksList)},{id:"c-cb5f8355b4",Component:a},{id:"c-d2ee6dc174",Component:T},{id:"c-dc36447127",Component:d},{id:"c-faf61bd04e",Component:p}]});e();i()||g();window.__PNEXT_REGISTER_ENTRY__&&window.__PNEXT_REGISTER_ENTRY__(import.meta.url,{mountRoute:g,unmountRoute:h});export{g as mountRoute,j as remountRoute,h as unmountRoute};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./cli-ZUdhZnuW.js";import{p as n}from"./output-BKeyLbvt.js";import{credentialOptions as r,missingLabel as i}from"./remove-5iAM2aTO.js";import a from"node:process";const o=e({name:`credentials default`,globalFlags:{cwd:!1},help:{usage:`coder credentials default <label> [--workspace] [--server [url]] [--json]`,flags:[[`--workspace`,`the workspace credential of that label`],t]},options:r,args:1,async run({options:e,args:[t]}){let{connect:n}=await import(`./remote-oQs6My_3.js`).then(e=>e.a);if(!t)throw i();return n(e).credentials.setDefault(t,e)},print:(e,{args:[t]})=>a.stdout.write(`Made default ${n.bold(t)}.\n`)});export{o as commandCredentialsDefault};
@@ -1 +0,0 @@
1
- import{H as e}from"./dispatch-D3Dqxijf.js";import{i as t,t as n}from"./cli-ZUdhZnuW.js";import{runnerOptions as r}from"./remove-BZCA-gdU.js";import i from"node:process";const a=t({name:`runner default`,globalFlags:{cwd:!1},args:1,help:{usage:`coder runner default <id> [--server [url]] [--json]`,summary:`Use this runner by default within its scope.`,flags:[n]},options:r,async run({options:t,args:[n]}){if(!n)throw new e(`invalid-option`,`Missing runner id.`);let{updateRunner:r}=await import(`./runner-DME7ohjt.js`).then(e=>e.a);return r(n,{default:!0},t)},print:e=>i.stdout.write(`Default runner ${e.name}.\n`)});export{a as commandRunnerDefault};
@@ -1,2 +0,0 @@
1
- import{i as e,r as t}from"./cli-ZUdhZnuW.js";import{p as n}from"./output-BKeyLbvt.js";import{i as r,n as i,s as a,t as o}from"./args-CxsMr9Un.js";import{plural as s}from"./archive-CmRVm4iS.js";import c from"node:process";const l={server:r,workspace:a,yes:i},u=e({name:`task delete`,help:{usage:`coder task delete <task-id> | coder task delete --all-archived [--server [url]]`,summary:`Delete a task's session from disk. This is permanent. Pass --all-archived to
2
- delete every archived task at once. A running task must be stopped first.`,flags:[[`--all-archived`,`delete every archived task`],t]},options:{...o,"all-archived":i,...l},args:1,run:async({options:e,args:[t]})=>{let{tasks:n}=await import(`./task-IoBYe7ok.js`).then(e=>e.t);return n.delete(t,{...e,organization:e.workspace,allArchived:e[`all-archived`]})},print(e,{options:t}){if(e.count===void 0)return void c.stdout.write(`Deleted task ${n.cyan(e.taskId)}.\n`);c.stdout.write(t.server===void 0?e.count?`Deleted ${e.count} archived task${s(e.count)}.\n`:`${n.dim(`No archived tasks to delete.`)}\n`:`Deleted ${e.count} server task${s(e.count)}.\n`)}});export{u as commandDelete};
@@ -1 +0,0 @@
1
- import{i as e}from"./cli-ZUdhZnuW.js";import{a as t}from"./models-CdvmuaLv.js";import{n}from"./add-CvBTpxgY.js";import{t as r}from"./remove-BcewhH1U.js";const i=(i,a)=>e({name:`model ${i?`disable`:`enable`}`,help:a,options:n,args:1,run:({options:e,args:[n],cwd:r})=>t(r,n,i,e),json:({name:e,file:t})=>({[i?`disabled`:`enabled`]:e,file:t}),print:({name:e,file:t})=>r(i?`disabled`:`enabled`,e,t)}),a=i(!0,{usage:`coder model disable <name> [--workspace]`,summary:`Disable a model - built-in, custom, or alias. Requests for it fail until re-enabled.`,flags:[[`--workspace`,`target <repo>/.coder/config.json instead of the user file`]]});export{a as commandModelDisable,i as toggle};
@@ -1 +0,0 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{$ as t,Et as n}from"./config-D2FxHWwi.js";import r from"node:path";import{fileURLToPath as i}from"node:url";import a from"node:fs";var o=e({builtinFlowsDir:()=>c,discoverFlows:()=>d,flowsIn:()=>l,resolveFlow:()=>p});const s=[`.ts`,`.mjs`,`.js`];function c(){let e=r.dirname(i(import.meta.url)),t=e;for(;r.basename(t)!==`dist`&&r.dirname(t)!==t;)t=r.dirname(t);return r.basename(t)===`dist`?r.join(t,`flow`,`builtin`):r.join(e,`builtin`)}function l(e,t){let n=[];try{n=a.readdirSync(e)}catch{return[]}let i=[];for(let o of n.sort()){let n=r.extname(o);if(s.includes(n)&&!o.endsWith(`.d.ts`)){i.push({name:r.basename(o,n),path:r.join(e,o),scope:t});continue}let c=s.map(t=>r.join(e,o,`index${t}`)).find(e=>a.existsSync(e));c&&i.push({name:o,path:c,scope:t})}return i}function u(e){let i=n(e),a=[],o=r.resolve(e);for(;a.push({dir:r.join(o,`.coder`,`flows`),scope:`workspace`}),o!==i&&r.dirname(o)!==o;)o=r.dirname(o);return a.push({dir:t(`flows`),scope:`global`}),a}function d(e){let t=new Set,n=[];for(let{dir:r,scope:i}of u(e))for(let e of l(r,i))t.has(e.name)||(t.add(e.name),n.push(e));for(let e of l(c(),`builtin`))t.has(e.name)||n.push(e);return n}function f(e){return e.includes(`/`)||s.includes(r.extname(e))}function p(e,t){if(f(e)){let n=r.resolve(t,e);if(a.existsSync(n))return{name:r.basename(n,r.extname(n)),path:n};throw Error(`Flow file not found: ${e}`)}let n=d(t).find(t=>t.name===e);if(!n)throw Error(`No flow named "${e}". Run \`coder flow discover\` to see available flows.`);return{name:n.name,path:n.path,scope:n.scope}}export{p as a,l as i,d as n,o as r,c as t};
@@ -1,8 +0,0 @@
1
- import{Rt as e,wi as t}from"./core-DwsAMCnL.js";import{An as n,Bn as r,Ct as i,Dt as a,Hn as o,Ht as s,I as c,It as l,Jt as u,Ln as d,Lt as f,Mt as p,N as m,Nt as h,O as g,Pt as _,Q as v,R as y,S as b,T as ee,Tn as x,Ut as S,Vn as te,Wt as ne,Xt as re,Yt as C,a as ie,c as ae,ct as w,d as oe,f as se,g as ce,ht as le,i as ue,kn as de,l as fe,mt as pe,n as me,o as he,pt as ge,q as _e,qt as ve,r as ye,rt as be,s as xe,t as Se,un as T,v as E,wn as D,y as Ce,z as we,zn as Te}from"./config-D2FxHWwi.js";import O from"node:path";import k from"node:process";import{fileURLToPath as Ee}from"node:url";import A from"node:fs";import{spawn as De,spawnSync as j}from"node:child_process";import{createHash as Oe,randomUUID as M}from"node:crypto";import N from"node:os";var P=class extends Error{code;hint;taskId;payload;approval;result;runId;status;needs;constructor(e,t,n={}){super(t),this.name=`CoderError`,this.code=e,Object.assign(this,n)}};const ke=/access token could not be refreshed/i,Ae=/model is not supported|Codex cannot run model/i;function F(e){return e instanceof Error?e.message:String(e??``)}function I(e){return ke.test(e??``)}function je(e){return Ae.test(e??``)}function Me(e,t){return!je(e)||/Codex cannot run model/.test(e??``)?null:`Codex cannot run model ${/'([^']+)' model/.exec(e??``)?.[1]??t??`this model`} on the signed-in account. Run \`codex login\` with an account that has it, or pick another alias (coder model list).`}function Ne(e=process.env){return O.join(e.CODEX_HOME||O.join(N.homedir(),`.codex`),`auth.json`)}function Pe(e){try{let t=JSON.parse(Buffer.from(String(e).split(`.`)[1]??``,`base64url`).toString(`utf8`));return String(t.sub??t.email??``)}catch{return``}}function Fe(e=process.env,t){let n=Ne(e),r;try{r=A.statSync(n).mtimeMs}catch{return``}if(t?.file===n&&t.mtimeMs===r)return t.fingerprint??``;try{let e=JSON.parse(A.readFileSync(n,`utf8`)),i=e.OPENAI_API_KEY?Oe(`sha256`).update(String(e.OPENAI_API_KEY)).digest(`hex`):``,a=[e.auth_mode??``,e.tokens?.account_id??``,Pe(e.tokens?.id_token),i].join(`|`);return t&&Object.assign(t,{file:n,mtimeMs:r,fingerprint:a}),a}catch{return t?.file===n?t.fingerprint??``:``}}const Ie=`CODER_MAILBOX`,Le=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/;function L(e){if(!e)return M();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=Oe(`sha256`).update(JSON.stringify([e.task,e.generation,e.seq])).digest(`hex`).slice(0,32);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}const Re=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function ze(e=k.env){return e.CODER_MAILBOX||void 0}function Be(e,t){let n=`${e}.${M()}.tmp`;A.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),A.renameSync(n,e)}async function Ve(e,t,n={}){let r=n.dir??ze();if(!r)throw Error(`No mailbox: not inside an agent task.`);let i=n.id??M(),a=O.join(r,`${i}.res.json`);A.existsSync(a)||Be(O.join(r,`${i}.req.json`),{kind:e,payload:t});let o=Date.now();for(;!A.existsSync(a);){if(n.timeoutMs&&Date.now()-o>=n.timeoutMs)throw Error(`Worker control timed out`);await new Promise(e=>setTimeout(e,100))}let{result:s,error:c}=JSON.parse(A.readFileSync(a,`utf8`));if(n.keepReply||A.rmSync(a,{force:!0}),c){let{code:e,message:t,...n}=c;throw new P(e,t,n)}return s}function He(e,t){A.mkdirSync(e,{recursive:!0});let n=new Set,r=async(r,i)=>{let a;try{let n=O.join(e,r);if(!A.lstatSync(n).isFile())throw Error(`mailbox request is not a regular file`);let{kind:o,payload:s}=JSON.parse(A.readFileSync(n,`utf8`)),c=O.join(e,`${i}.applying.json`);A.existsSync(c)||Be(c,{kind:o,payload:s});let l=Object.hasOwn(t,o)?t[o]:void 0;if(!l)throw Error(`unknown mailbox request "${o}"`);a={result:await l(s??{})??null}}catch(e){let t=e instanceof P?e:void 0;a={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Re.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{Be(O.join(e,`${i}.res.json`),a),A.rmSync(O.join(e,`${i}.req.json`),{force:!0}),A.rmSync(O.join(e,`${i}.applying.json`),{force:!0}),n.delete(i)}catch{}},i=setInterval(()=>{let t=[];try{t=A.readdirSync(e)}catch{return}for(let i of t){let t=Le.exec(i)?.[1];if(t){if(A.existsSync(O.join(e,`${t}.res.json`))){A.rmSync(O.join(e,i),{force:!0});continue}n.has(t)||(n.add(t),r(i,t))}}},100);return()=>clearInterval(i)}function Ue(e,t){return t.agentId?O.join(i(e,t.id),`mailbox`):null}function We(e,t){let n=`${e}.${process.pid}.${M()}.tmp`;A.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),A.renameSync(n,e)}function Ge(e){let t=e instanceof Error?e.message:String(e);return/no active turn|active turn.*(?:ended|completed)|turn.*(?:already )?(?:ended|completed)|turn.*not active/i.test(t)}function R(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function Ke(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw R(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw R(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw R(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw R(`Codex turn/steer request does not match its owning active turn.`,!1);let a=i.input;if(!Array.isArray(a)||a.length!==1||a[0]?.type!==`text`||typeof a[0]?.text!=`string`||!a[0].text.trim())throw R(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function qe(e,{threadId:t,turnId:n}){let r=A.mkdtempSync(O.join(N.tmpdir(),`coder-codex-control-`)),i=`file:${r}`,a=new Set,o=new Set,s=!1,c=!1,l=(i=!1)=>{if(!(s&&!i||c)){c=!0;try{for(let i of A.readdirSync(r).filter(e=>e.endsWith(`.request.json`))){let c=i.slice(0,-13),l=O.join(r,i),u=O.join(r,`${c}.response.json`);if(A.existsSync(u)){A.unlinkSync(l);continue}if(o.has(c))continue;let d=`${l}.${process.pid}.processing`;try{A.renameSync(l,d)}catch{continue}o.add(c);let f=(async()=>{let r;try{if(s)throw R(`Codex owner endpoint is shutting down.`,!0);let i=Ke(JSON.parse(A.readFileSync(d,`utf8`)),c,t,n);try{let t=await e.request(i.method,i.params);r={id:c,result:t}}catch(e){let t=e;r={id:c,error:{message:e instanceof Error?e.message:String(e),retryable:Ge(e),...t.rpcCode===void 0?{}:{rpcCode:t.rpcCode}}}}}catch(e){let t=e;r={id:c,error:{message:t.message,retryable:t.retryable===!0,...t.rpcCode===void 0?{}:{rpcCode:t.rpcCode}}}}try{We(u,r)}finally{o.delete(c);try{A.unlinkSync(d)}catch{}}})();a.add(f),f.then(()=>a.delete(f),()=>a.delete(f))}}catch{}finally{c=!1}}},u=setInterval(l,10);return u.unref?.(),{endpoint:i,async close(){s||(s=!0,clearInterval(u),l(!0),await Promise.allSettled([...a]),await new Promise(e=>setTimeout(e,50)),A.rmSync(r,{recursive:!0,force:!0}))}}}function Je(e){if(e?.startsWith(`file:`)&&e.length>5){let t=O.resolve(e.slice(5)),n=O.resolve(N.tmpdir());O.dirname(t)===n&&O.basename(t).startsWith(`coder-codex-control-`)&&A.rmSync(t,{recursive:!0,force:!0})}}async function Ye(e,t,n,r=3e3,i){if(!e)return{ok:!1,retryable:!0,detail:`Codex owner endpoint is not ready.`};if(!e.startsWith(`file:`)||e.length===5)return{ok:!1,retryable:!1,detail:`Unsupported Codex control endpoint: ${e}`};let a=e.slice(5);if(!A.existsSync(a))return{ok:!1,retryable:!0,detail:`Codex owner endpoint is no longer available.`};let o=L(i),s=O.join(a,`${o}.request.json`),c=O.join(a,`${o}.response.json`);try{A.existsSync(c)||We(s,{id:o,method:t,params:n,command:i})}catch(e){return{ok:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let l=Date.now();for(;Date.now()-l<r;){try{let e=JSON.parse(A.readFileSync(c,`utf8`));try{(!i||e?.error?.retryable)&&A.unlinkSync(c)}catch{}return e?.id===o?e?.error?{ok:!1,retryable:e.error.retryable===!0,detail:String(e.error.message??`Malformed Codex owner error response.`)}:`result`in e?{ok:!0,retryable:!1,result:e.result,detail:`Codex owner accepted control.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response.`}:{ok:!1,retryable:!1,detail:`Malformed Codex owner response id.`}}catch(e){if(e.code!==`ENOENT`)return{ok:!1,retryable:!1,detail:`Invalid Codex owner response: ${e instanceof Error?e.message:String(e)}`};if(!A.existsSync(a))return{ok:!1,retryable:!1,detail:`Codex owner endpoint closed after control publication; acceptance is unknown.`}}await new Promise(e=>setTimeout(e,10))}return{ok:!1,retryable:!1,detail:`Timed out waiting for Codex owner acknowledgement.`}}const Xe=`Coder Task`;function Ze(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function Qe(e){let t=Ze(e,56);return t?`${Xe}: ${t}`:Xe}function $e(e){return e?.params?.threadId??null}function et(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function tt(e){let t=new Set;for(let n of e)for(let e of n.changes??[])e.path&&t.add(e.path);return[...t]}function nt(e,t){let n=[];for(let r of e.matchAll(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/gm)){let e=t===`delete`,i=Number(e?r[1]:r[3]),a=Number((e?r[2]:r[4])??1);!Number.isFinite(i)||!Number.isFinite(a)||n.push(a<=1?`L${i}`:`L${i}-L${i+a-1}`)}return n}function rt(e){try{let t=A.readFileSync(e,`utf8`),n=t?t.split(/\r\n|\r|\n/).length-+!!t.endsWith(`
2
- `):0;return n>0?[n===1?`L1`:`L1-L${n}`]:[]}catch{return[]}}function it(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=nt(e.diff??``,r),o=a.length||r!==`add`||!t?a:rt(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?x(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?x(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function at(e,t=!1,n){return(e.changes??[]).map(e=>it(e,t,n)).join(`; `)}function ot(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function st(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=ot(t.slice(4));continue}if(t.startsWith(`+++ `)){i=ot(t.slice(4));continue}let e=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(t);if(!e)continue;let a=Number(e[1]),o=Number(e[2]??1),s=Number(e[3]),c=Number(e[4]??1),l=c===0,u=(l?r:i)||i||r||`(unknown path)`,d=l?a:s,f=l?o:c,p=f<=1?`L${d}`:`L${d}-L${d+f-1}`,m=n.get(u)??[];m.push(p),n.set(u,m)}return[...n].map(([e,n])=>`${t?x(t,e):e} ${n.join(`, `)}`).join(`; `)}function ct(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.inputTokens),r=t(e.cachedInputTokens),i=t(e.outputTokens);return{input:n,cachedInput:r,output:i,total:t(e.totalTokens)||n+r+i}}function lt(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let n of e.tokenUsageByThread.values())t.input+=n.input,t.cachedInput+=n.cachedInput,t.output+=n.output,t.total+=n.total;return t}function ut(e){return String(e??``).replace(/\s+/g,` `).trim()}function z(e){if(!e)return[];if(typeof e==`string`){let t=ut(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>z(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return z(t.text);if(`summary`in t)return z(t.summary);if(`content`in t)return z(t.content);if(`parts`in t)return z(t.parts)}return[]}function dt(e,t){let n=[];for(let r of[...e,...t]){let e=ut(r);!e||n.includes(e)||n.push(e)}return n}function B(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function ft(e,t){t&&B(e,t.message,t.phase??null,t.extra??{})}function pt(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function mt(e,t){let n=e?.extra?.kind;return!e||n!==`tool`&&n!==`tool-result`||typeof t.id!=`string`?e:{...e,extra:{...e.extra,callId:t.id}}}function V(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e)}function ht(e){let t=String(e.tool||e.name||e.kind||e.type||`tool`),n=Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null&&![`id`,`type`,`kind`,`name`,`tool`,`status`,`result`,`results`,`output`,`error`,`contentItems`,`success`,`durationMs`,`exitCode`].includes(e))),r=Object.keys(n).length?V(n):``;return{message:r?`${t} ${r}`:t,phase:`investigating`,extra:{kind:`tool`,tool:t}}}function H(e,t){switch(e.type){case`commandExecution`:return{message:pt(String(e.command??``).trim())||`command`,phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return{message:at(e,!1,t)||`edit`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:[`${e.server}/${e.tool}`,V(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`dynamicToolCall`:return{message:[[e.namespace,e.tool||`tool`].filter(Boolean).join(`/`),V(e.arguments)].filter(Boolean).join(` `),phase:`investigating`,extra:{kind:`tool`,tool:String(e.tool??``)}};case`webSearch`:{let t=e.action,n=Array.isArray(t?.queries)?t.queries.filter(e=>typeof e==`string`&&e.trim()):[],r=n.length?n.join(`; `):String(t?.query||e.query||``).trim()||V(t);return{message:r?`search: ${r}`:`search`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}}}case`agentMessage`:case`reasoning`:case`userMessage`:return null;default:return ht(e)}}function gt(e,t){switch(e.type){case`agentMessage`:{let t=String(e.text??``).trim();return t?{message:t,phase:null,extra:{kind:`assistant`}}:null}case`reasoning`:{let t=z(e.summary).join(`
3
- `);return t?{message:t,phase:null,extra:{kind:`reasoning`}}:null}case`commandExecution`:{let t=typeof e.exitCode==`number`?e.exitCode:null;return{message:String(e.aggregatedOutput??``).trim(),phase:`running`,extra:{kind:`tool-result`,tool:`command`,command:String(e.command??``).trim(),durationMs:e.durationMs,...t===null?{isError:e.status!==`completed`}:{exitCode:t}}}}case`fileChange`:return{message:at(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool-result`,tool:`edit`,isError:e.status!==`completed`}};case`mcpToolCall`:return{message:V(e.error??e.result)||`${e.server}/${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.error!=null}};case`dynamicToolCall`:return{message:V(e.contentItems)||`${e.tool} ${e.status}`,phase:`investigating`,extra:{kind:`tool-result`,tool:String(e.tool??``),durationMs:e.durationMs,isError:e.status!==`completed`||e.success===!1}};case`userMessage`:return null;default:return{message:V(e.error??e.result??e.results??e.output??e.action??e),phase:`investigating`,extra:{kind:`tool-result`,tool:H(e,t)?.extra?.tool,durationMs:e.durationMs,isError:e.status===`failed`||e.status===`declined`||e.success===!1||e.error!=null}}}}function _t(e,t={}){let n,r,i=new Promise((e,t)=>{n=e,r=t});return{threadId:e,rootThreadId:e,threadIds:new Set([e]),threadTurnIds:new Map,turnId:null,bufferedNotifications:[],completion:i,resolveCompletion:n,rejectCompletion:r,finalTurn:null,completed:!1,finalAnswerSeen:!1,pendingCollaborations:new Set,activeSubagentTurns:new Set,completionTimer:null,lastAgentMessage:``,reasoningSummary:[],reasoningStartedAt:new Map,error:null,fileChanges:[],commandExecutions:[],tokenUsageByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function U(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function W(e,t=null){e.completed||(U(e),e.completed=!0,t?(e.finalTurn=t,e.turnId||=t.id??null):e.finalTurn||={id:e.turnId??`inferred-turn`,status:`completed`},e.resolveCompletion(e))}function G(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(U(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||W(e,null))},250),e.completionTimer.unref?.())}function vt(e,t){let n=$e(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=et(t);return r===null||i===null||i===r}function yt(e,t,n,r=null){if(t.id&&e.itemIndex.set(t.id,t),t.type===`collabAgentToolCall`){(!r||r===e.threadId)&&(n===`started`||t.status===`inProgress`?e.pendingCollaborations.add(t.id):n===`completed`&&(e.pendingCollaborations.delete(t.id),G(e)));for(let n of t.receiverThreadIds??[])e.threadIds.add(n)}if(t.type===`agentMessage`){t.text&&(!r||r===e.threadId)&&(e.lastAgentMessage=t.text.trim(),n===`completed`&&t.phase===`final_answer`&&(e.finalAnswerSeen=!0,G(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=dt(e.reasoningSummary,z(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function K(e,t){switch(e.onHeartbeat?.(),t.method){case`thread/started`:e.threadIds.add(t.params.thread.id);break;case`turn/started`:e.threadIds.add(t.params.threadId),e.threadTurnIds.set(t.params.threadId,t.params.turn.id),(t.params.threadId??null)!==e.threadId&&e.activeSubagentTurns.add(t.params.threadId),B(e.onProgress,`Turn started (${t.params.turn.id}).`,`starting`,{kind:`status`,threadId:t.params.threadId??null,turnId:t.params.turn.id??null});break;case`item/started`:t.params.item?.type===`reasoning`&&t.params.item.id&&e.reasoningStartedAt.set(`${t.params.threadId}:${t.params.item.id}`,Date.now()),yt(e,t.params.item,`started`,t.params.threadId??null),ft(e.onProgress,mt(H(t.params.item,e.cwd),t.params.item));break;case`item/completed`:{let n={...e.itemIndex.get(t.params.item.id),...t.params.item};if(yt(e,n,`completed`,t.params.threadId??null),n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(x(e.cwd,t.path));let r=mt(gt(n,e.cwd),n);if(r?.extra?.kind===`tool-result`){let t=H(n,e.cwd);r.extra={...r.extra,callMessage:n.type===`fileChange`?r.message:t?.message}}if(n?.type===`reasoning`){let i=`${t.params.threadId}:${n.id}`,a=e.reasoningStartedAt.get(i);e.reasoningStartedAt.delete(i),r&&(r.extra={...r.extra,durationMs:Math.max(0,Date.now()-(a??Date.now()))})}ft(e.onProgress,r);break}case`thread/tokenUsage/updated`:{let n=ct(t.params?.tokenUsage?.total??t.params?.tokenUsage),r=$e(t);if(n&&r){e.tokenUsageByThread.set(r,n);let t=lt(e);t&&(!e.loggedTokens||t.total-e.loggedTokens>=1e3)&&(e.loggedTokens=t.total,e.onProgress?.({kind:`usage`,tokens:t}))}break}case`turn/diff/updated`:{let n=st(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,B(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=pt(String(r.command??r.type??``).trim());B(e.onProgress,`Auto-review ${n.status}. ${Ze(i,48)}${n.rationale?`. ${Ze(n.rationale,320)}`:``}`,null,{kind:`auto-review`,decision:String(n.status??``),...n.riskLevel?{riskLevel:String(n.riskLevel)}:{},...i?{summary:`run command: ${i}`}:{},...n.rationale?{reason:String(n.rationale)}:{}});break}case`error`:e.error=t.params.error,B(e.onProgress,`Codex error: ${t.params.error.message}`,`failed`,{kind:`error`});break;case`turn/completed`:if((t.params.threadId??null)!==e.threadId){e.activeSubagentTurns.delete(t.params.threadId),G(e);break}B(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),W(e,t.params.turn)}}async function bt(e,t,n,r={}){let i=_t(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){K(i,e);return}if(!vt(i,e)){a?.(e);return}K(i,e)});let o=r.onApprovalRequest;o&&e.setServerRequestHandler((e,t)=>o(e,t,i));try{let t=await n();i.turnId=t.turn?.id??null,i.turnId&&(i.threadTurnIds.set(i.threadId,i.turnId),await r.onTurnStarted?.(i.turnId));for(let e of i.bufferedNotifications)vt(i,e)?K(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&W(i,t.turn);let o=e.exitPromise?.then(()=>{throw e.exitError??Error(`codex app-server connection closed before the turn completed.`)});return await(o?Promise.race([i.completion,o]):i.completion)}finally{U(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function xt(e,t,n=[]){return e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1}}const St=`coder_read_only`;function Ct(e,t=[]){return(e??`read-only`)!==`read-only`||!t.length?null:{default_permissions:St,[`permissions.${St}`]:{extends:`:read-only`,filesystem:Object.fromEntries(t.map(e=>[e,`write`]))}}}function wt(e=[],t=[],n=!1){let r={};!n&&t.length&&(r.mcp_servers=Object.fromEntries(t.map(e=>[e,{enabled:!1}])));let i=new Set([...t,...e.map(e=>e.name)]);for(let n of e){let e=n.name;if(t.includes(e)){for(let t=1;i.has(e);t++)e=`${n.name}_coder_${t}`;i.add(e)}r[`mcp_servers.${e}`]={...n.url?{url:n.url,...n.headers?{http_headers:n.headers}:{}}:{command:n.command,args:n.args??[],...n.env?{env:n.env}:{}},...n.tools?.length?{enabled_tools:n.tools}:{}}}return r}function Tt(e){return e.split(/\r?\n/).map(e=>e.trimEnd()).filter(e=>e&&!e.startsWith(`WARNING: proceeding, even though we could not update PATH:`)).join(`
4
- `)}async function Et(e,t,n={}){let r=n.connect??S.connect,i={...n.networkAccess===void 0?{}:{networkAccess:n.networkAccess},nativeMcp:n.nativeMcp??!1},a=null;try{a=await r(e,i);let n=await t(a);return await a.close(),n}catch(n){let o=n,s=a?.transport===`broker`||!!process.env.CODER_APP_SERVER_ENDPOINT,c=a?.transport===`broker`&&o?.rpcCode===-32001||s&&(o?.code===`ENOENT`||o?.code===`ECONNREFUSED`);if(a&&=(await a.close().catch(()=>{}),null),!c)throw n;let l=await r(e,{...i,disableBroker:!0});try{return await t(l)}finally{await l.close()}}}function q(e){let t=process.env.CODEX_AUTH_JSON;if(t){let e=O.join(N.homedir(),`.codex`),n=O.join(e,`auth.json`);if(!A.existsSync(n)){A.mkdirSync(e,{recursive:!0,mode:448});try{A.writeFileSync(n,t,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let n=ne(`codex`,[`--version`],{cwd:e,env:T()});if(!n.available)return n;let r=ne(`codex`,[`app-server`,`--help`],{cwd:e,env:T()});return r.available?{available:!0,detail:`${n.detail}; app-server runtime available`}:{available:!1,detail:`${n.detail}; app-server runtime unavailable: ${r.detail}`}}async function Dt(e){let t=q(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await S.connect(e,{reuseExistingBroker:!0});let t=await n.request(`account/read`,{refreshToken:!1}),r=t?.account??null;return r?.type===`chatgpt`?{available:!0,loggedIn:!0,detail:r.email?`ChatGPT login active for ${r.email}`:`ChatGPT login active`}:r?.type===`apiKey`?{available:!0,loggedIn:!0,detail:`API key configured`}:t?.requiresOpenaiAuth===!1?{available:!0,loggedIn:!0,detail:`Active provider does not require OpenAI authentication`}:{available:!0,loggedIn:!1,detail:"Not authenticated. Run `codex login`."}}catch(e){let t=j(`codex`,[`login`,`status`],{encoding:`utf8`,env:T()}),n=`${t.stdout??``}${t.stderr??``}`.trim();return t.status===0?{available:!0,loggedIn:!0,detail:n||`Logged in`}:{available:!0,loggedIn:!1,detail:n||(e instanceof Error?e.message:String(e))}}finally{await n?.close().catch(()=>{})}}async function Ot(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await Ye(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function kt(e,{endpoint:t,threadId:n,turnId:r,text:i,command:a}){if(!n)return{steered:!1,retryable:!0,detail:`missing active threadId`};if(!r)return{steered:!1,retryable:!0,detail:`missing active turnId`};let o=i.trim();if(!o)return{steered:!1,retryable:!1,detail:`empty follow-up`};let s=await Ye(t,`turn/steer`,{threadId:n,input:[{type:`text`,text:o,text_elements:[]}],expectedTurnId:r},3e3,a);return s.ok?s.result?.turnId===r?{steered:!0,retryable:!1,detail:`Steered follow-up into ${r} on ${n}.`}:{steered:!1,retryable:!1,detail:`turn/steer returned unexpected turnId ${String(s.result?.turnId??`(missing)`)}; expected ${r}`}:{steered:!1,retryable:s.retryable,detail:s.detail}}async function At(e,t={},n={}){let r=q(e);if(!r.available)throw Error(`Codex CLI is not available: ${r.detail}`);let i=t.prompt?.trim();if(!i)throw Error(`A prompt is required.`);let a=process.env.CODER_MACHINE_SANDBOX===`1`&&(t.sandbox??`read-only`)!==`read-only`?`danger-full-access`:t.sandbox,o=Ct(a,t.writableRoots),s=o?{}:{sandbox:a??`read-only`},c={...t.configOverrides??{},...o},u=Object.keys(c).length?c:null,d=xt(a,t.networkAccess,t.writableRoots),p=async n=>{let r=null,a,o=await n.request(`config/read`,{cwd:e,includeLayers:!1}),c={...t.modelProvider?{}:{model_reasoning_summary:`auto`},...u,...wt(t.mcpServers,Object.keys(o.config?.mcp_servers??{}),t.nativeMcp),...t.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1}};if(t.resumeThreadId)B(t.onProgress,`Resuming thread ${t.resumeThreadId}.`,`starting`,{kind:`status`}),l(t.resumeThreadId)&&await f(t.resumeThreadId),a=(await n.request(`thread/resume`,{threadId:t.resumeThreadId,cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:c,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{}})).thread.id;else if(B(t.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),a=(await n.request(`thread/start`,{cwd:e,model:t.model??null,modelProvider:t.modelProvider??null,config:c,approvalPolicy:t.approvalPolicy??`never`,...s,...t.approvalsReviewer?{approvalsReviewer:t.approvalsReviewer}:{},serviceName:`coder_runtime`,ephemeral:t.ephemeral??!1})).thread.id,!(t.ephemeral??!1))try{await n.request(`thread/name/set`,{threadId:a,name:Qe(i)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}B(t.onProgress,`Thread ready (${a}).`,`starting`,{kind:`status`,threadId:a});let p;try{p=await bt(n,a,()=>n.request(`turn/start`,{threadId:a,input:[{type:`text`,text:i,text_elements:[]}],model:t.model??null,effort:t.effort??null,outputSchema:t.outputSchema??null,...d?{sandboxPolicy:d}:{}}),{cwd:e,onProgress:t.onProgress,onHeartbeat:t.onHeartbeat,onApprovalRequest:t.onApprovalRequest,onTurnStarted:t.onControlReady?async e=>{r=await qe(n,{threadId:a,turnId:e}),t.onControlReady?.(r.endpoint,a,e)}:void 0}),t.onResult?.({status:p.finalTurn?.status===`completed`?0:1,threadId:a,turnId:p.turnId,finalMessage:p.lastAgentMessage,error:p.error??null})}finally{await r?.close()}return{status:p.finalTurn?.status===`completed`?0:1,threadId:a,turnId:p.turnId,finalMessage:p.lastAgentMessage,reasoningSummary:p.reasoningSummary,turn:p.finalTurn,error:p.error??p.finalTurn?.error??null,stderr:Tt(n.stderr),fileChanges:p.fileChanges,touchedFiles:tt(p.fileChanges),tokens:lt(p),model:t.model??null,commandExecutions:p.commandExecutions}},m=async e=>{e.setNoticeHandler?.(e=>B(t.onProgress,e,`starting`,{kind:`status`}));try{let t=await p(e);return I(t.error?.message)&&await jt(e),t}catch(t){throw I(F(t))&&await jt(e),t}},h=()=>Et(e,m,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),g=!1,_=()=>(g=!0,B(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),h());try{let e=await h().catch(e=>{if(!I(F(e)))throw e;return _()}),n=!e.touchedFiles?.length&&!e.commandExecutions.length;!g&&n&&I(e.error?.message)&&(e=await _());let r=Me(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Me(F(e),t.model);throw n?Error(n):e}}async function jt(e){e.transport===`broker`&&await e.request(s,{}).catch(()=>{})}const J=`@wular/coder`,Mt=`https://registry.npmjs.org/${J}/latest`;function Nt(){return v(`update-check.json`)}function Y(e,t){let n=String(e).split(`.`).map(e=>parseInt(e,10)||0),r=String(t).split(`.`).map(e=>parseInt(e,10)||0);for(let e=0;e<3;e+=1){if((n[e]??0)>(r[e]??0))return 1;if((n[e]??0)<(r[e]??0))return-1}return 0}function Pt(){try{return JSON.parse(A.readFileSync(Nt(),`utf8`))}catch{return null}}function Ft(e){try{A.mkdirSync(v(),{recursive:!0}),A.writeFileSync(Nt(),JSON.stringify(e))}catch{}}function It(){try{A.rmSync(Nt(),{force:!0})}catch{}}function Lt(e,t){if(k.env.CODER_NO_UPDATE_CHECK||k.env.CI)return;let n=Pt();if(!n?.checkedAt||Date.now()-n.checkedAt>864e5)try{De(k.execPath,[t,`upgrade`,`refresh`],{detached:!0,stdio:`ignore`}).unref()}catch{}return n?.latest&&Y(n.latest,e)>0?n.latest:void 0}async function Rt(e){let t=Pt()?.latest??null;try{let e=new AbortController,n=setTimeout(()=>e.abort(),3e3),r=await fetch(Mt,{signal:e.signal,headers:{accept:`application/json`}});if(clearTimeout(n),r.ok){let e=await r.json();e?.version&&(t=e.version)}}catch{}Ft({checkedAt:Date.now(),latest:t,current:e})}function zt(e){let t=e;try{t=A.realpathSync(e)}catch{}let n=t.replace(/\\/g,`/`);return/\/\.bun\//.test(n)?{pm:`bun`,command:[`bun`,`add`,`-g`,`${J}@latest`]}:/\/\.pnpm\//.test(n)||/\/pnpm(-global)?\//i.test(n)||/\/Library\/pnpm\//.test(n)?{pm:`pnpm`,command:[`pnpm`,`add`,`-g`,`${J}@latest`]}:/\/\.config\/yarn\/global\//.test(n)||/\/yarn\/global\//.test(n)||/\/Yarn\/Data\/global\//.test(n)?{pm:`yarn`,command:[`yarn`,`global`,`add`,`${J}@latest`]}:{pm:`npm`,command:[`npm`,`install`,`-g`,`${J}@latest`]}}function Bt(e){j(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=j(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=j(`claude`,[`plugin`,`install`,`coder@coder-plugins`],{encoding:`utf8`}),r=t.status===0&&n.status===0;return{marketplace:e,installed:r,note:r?`Plugin installed; restart any running Claude Code session to load it.`:`Automatic install failed (${(n.stderr||t.stderr||`claude not found`).trim()}); run: claude plugin marketplace add "${e}" && claude plugin install coder@coder-plugins`}}function Vt(){return O.join(N.homedir(),`.agents`,`skills`,`coder`)}function Ht(){try{let e=A.readFileSync(O.join(Vt(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(e)?.[1]??null}catch{return null}}function Ut(e){let t=Vt();try{let n=O.join(e,`plugins`,`agents`,`skills`,`coder`);A.rmSync(t,{recursive:!0,force:!0}),A.mkdirSync(t,{recursive:!0}),A.cpSync(n,t,{recursive:!0});let r=O.join(t,`SKILL.md`),i=A.readFileSync(r,`utf8`).replace(`
5
- ---
6
- `,`\nmetadata:\n version: ${C()}\n---\n`);return A.writeFileSync(r,i),{marketplace:t,installed:!0,note:`Skill installed to ~/.agents/skills/coder; restart running sessions to load it.`}}catch(e){return{marketplace:t,installed:!1,note:`Skill install failed: ${e instanceof Error?e.message:String(e)}`}}}function Wt(e){if(e.available)return null;let t=j(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`});return t.status===0?{installed:!0,note:`codex CLI installed (runs your custom models; no login needed for them)`}:{installed:!1,note:`custom models run on the codex CLI and it is not installed; auto-install failed: ${(t.stderr||`npm not found`).trim()}. Run: npm install -g @openai/codex`}}const Gt={codex:{"gpt-6-astra":`0.154.0`,"gpt-6-sol":`0.156.1`,"gpt-6-luna":`0.156.1`,"gpt-6.1-sol":`0.159.1`},claude:{sonnet:`2.1.197`,fable:`2.1.257`,opus:`2.1.280`}};function Kt(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function qt(e,t,n){let r=t?Gt[e][t]:void 0,i=Kt(n.detail);return!r||!i||Y(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function Jt(e){if(!e.available)return null;let t=Kt(e.detail);if(!t||Y(t,`0.159.1`)>=0)return null;let n=j(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=j(`npm`,[`install`,`-g`,`@openai/codex@latest`],{encoding:`utf8`})),n.status===0?{updated:!0,from:t}:{updated:!1,from:t,note:`codex ${t} is too old for the default codex model (needs >= 0.159.1); auto-update failed: ${(n.stderr||`codex/npm not found`).trim()}. Run: codex update`}}async function Yt(e,t={},n){let r=t.hosts??[],i=r.find(e=>![`claude`,`codex`,`agents`].includes(e));if(i)throw new P(`invalid-option`,`Unknown host "${i}". Use claude, codex, or agents.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let a=e=>t[e]||r.includes(e);n?.();let o=q(e),s=Jt(o);s?.updated&&(o=q(e));let c=o.available?await Dt(e):{loggedIn:!1,detail:o.detail},l=Q(),u=l.available?cn():{loggedIn:!1,detail:l.detail},d=g();if(!A.existsSync(d)){let e=o.available?[`codex`,`claude`]:l.available?[`claude`,`codex`]:[`codex`,`claude`];m({...we,chain:e})}let f=re(),p=a(`claude`)?Bt(f):null,h=a(`agents`)||a(`codex`)?Ut(f):null,_=Ce(e),v=o.available&&c.loggedIn||l.available&&u.loggedIn;return{codex:{available:o.available,detail:o.detail,auth:c.detail,loggedIn:c.loggedIn},...s?{codexUpdate:s}:{},claude:{available:l.available,detail:l.detail,auth:u.detail,loggedIn:u.loggedIn},configFile:d,runtime:Ee(new URL(`../bin/coder.mjs`,import.meta.url)),...p?{claudePlugin:p}:{},...h?{agentsSkill:h}:{},config:_,ready:v}}async function Xt(e={},t){let n=!e.pluginsOnly,r=!e.cliOnly,i=re(),a=O.join(i,`plugins/claude/.claude-plugin/plugin.json`),o={cli:C(),claude:u(a)},s={};if(n){let n=zt(ve),[r,...i]=e.pm===`npm`?[`npm`,`install`,`-g`,`@wular/coder@latest`]:e.pm===`pnpm`?[`pnpm`,`add`,`-g`,`@wular/coder@latest`]:e.pm===`yarn`?[`yarn`,`global`,`add`,`@wular/coder@latest`]:e.pm===`bun`?[`bun`,`add`,`-g`,`@wular/coder@latest`]:n.command,a=e.pm??n.pm;t?.(`via ${a}`);let c=j(r,i,{encoding:`utf8`});if(c.error?.code===`ENOENT`)throw new P(`invalid-option`,`${a} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${i.join(` `)}`);if(c.status!==0){let e=(c.stderr||c.stdout||``).trim();throw new P(`invalid-option`,`CLI update failed (${a}).${e?`\n${e}`:``}\nRun manually: ${r} ${i.join(` `)}`)}It();let l=C();s.cli={pm:a,from:o.cli,to:l,changed:l!==o.cli}}if(r){if(e.claude||!e.codex&&Q().available){let e=Bt(i);s.claudePlugin={installed:e.installed,note:e.note,from:o.claude,to:u(a)}}if(A.existsSync(Vt())){let e=Ht(),t=Ut(i);s.agentsSkill={installed:t.installed,note:t.note,from:e,to:Ht()}}}return s}const Zt=new Set([`Write`,`Edit`,`MultiEdit`,`NotebookEdit`]),X=new Map,Qt=`CODER_CLAUDE_VERSION`;function $t(e){let t=e=>e&&typeof e==`object`&&(typeof e.data==`string`||typeof e.blob==`string`||Object.values(e).some(t)),n=e=>typeof e==`string`?e:t(e)||[`image`,`document`,`audio`,`video`,`file`].includes(e?.type)?`[${e?.type??`binary`}]`:typeof e?.text==`string`?e.text:e==null?``:JSON.stringify(e);return Array.isArray(e)?e.map(n).join(``):n(e)}function en(e){if(!e)return 0;let t=e.split(/\r\n|\r|\n/);return t.at(-1)===``&&t.pop(),Math.max(1,t.length)}function tn(e,t,n=!1){if(!t)return[];let r;try{r=A.readFileSync(e,`utf8`)}catch{return[]}let i=[],a=0;for(;a<=r.length;){let e=r.indexOf(t,a);if(e<0)break;let o=en(r.slice(0,e))+1,s=Math.max(1,en(t));if(i.push(s===1?`L${o}`:`L${o}-L${o+s-1}`),!n)break;a=e+Math.max(t.length,1)}return i.length>4?[...i.slice(0,4),`+${i.length-4} matches`]:i}function nn(e){let t=(typeof e==`string`?e:JSON.stringify(e)??String(e)).replace(/\s+/g,` `).trim();return t.length>80?`${t.slice(0,80)}…`:t}function rn(e,t,n){let r=String(t.file_path??t.notebook_path??t.path??``),i=r?O.isAbsolute(r)?r:O.resolve(n,r):``,a=r?x(n,i)||r:`(unknown path)`,o=t.path?` in ${x(n,String(t.path))}`:``;if(e===`Write`){let e=en(String(t.content??``));return`Write ${a} ${e?`L1-L${e}`:`(empty file)`}`}if(e===`Edit`){let e=tn(i,String(t.old_string??``),t.replace_all===!0);return`Edit ${a}${e.length?` ${e.join(`, `)}`:``}`}if(e===`MultiEdit`){let e=Array.isArray(t.edits)?t.edits:[],n=e.flatMap(e=>tn(i,String(e?.old_string??``),e?.replace_all===!0));return`MultiEdit ${a}${n.length?` ${n.join(`, `)}`:``} (${e.length} edits)`}if(e===`NotebookEdit`){let e=t.cell_id??t.cell_number;return`NotebookEdit ${a}${e==null?``:` cell ${e}`}`}if(e===`Read`){let e=Number(t.offset??0),n=Number(t.limit??0);return`Read ${a}${e&&n?` L${e}-L${e+n-1}`:e?` from L${e}`:``}`}if(e===`Bash`)return`Bash ${String(t.command??``).trim()||`(no command)`}`;if(e===`Glob`)return`Glob ${String(t.pattern??``)}${o}`;if(e===`Grep`){let e=t.glob?` (${String(t.glob)})`:``;return`Grep ${String(t.pattern??``)}${o}${e}`}if(e===`Task`)return`Task ${t.subagent_type?`${String(t.subagent_type)}: `:``}${nn(t.description??t.prompt??``)}`;if(e===`WebFetch`)return`WebFetch ${String(t.url??``)}`;if(e===`WebSearch`)return`WebSearch ${String(t.query??``)}`;if(e===`TodoWrite`){let e=Array.isArray(t.todos)?t.todos:[];return`TodoWrite ${e.length} item${e.length===1?``:`s`}`}let s=Object.entries(t??{}).map(([e,t])=>`${e}=${nn(t)}`).join(` `);return s?`${e} ${s}`:e}function an(e){if(!e||typeof e!=`object`)return null;let t=e=>typeof e==`number`&&Number.isFinite(e)?e:0,n=t(e.input_tokens),r=t(e.cache_read_input_tokens)+t(e.cache_creation_input_tokens),i=t(e.output_tokens);return{input:n,cachedInput:r,output:i,total:n+r+i}}function Z(e,t,n){let r=k.platform===`win32`?t[Object.keys(t).sort().find(e=>e.toLowerCase()===`path`)??`PATH`]??k.env.PATH??``:t.PATH??`/usr/bin:/bin`,i=/[\\/]/.test(e)?[``]:[...k.platform===`win32`?[n]:[],...r.split(O.delimiter)],a=k.platform===`win32`&&!O.extname(e)?[``,...(t.PATHEXT??`.EXE;.COM`).split(`;`)]:[``];for(let t of i)for(let r of a){let i=O.resolve(n,t,e+r);try{if(A.accessSync(i,A.constants.X_OK),A.statSync(i).isFile())return A.realpathSync(i)}catch{}}return O.resolve(n,e)}function on(e,t){let n=Z(`claude`,T(e),t),r=X.get(n);return{[Qt]:r===void 0?void 0:JSON.stringify({executable:n,detail:r})}}function sn(e,t,n){let r=Z(e,t,n),i=X.get(r);if(i!==void 0)return i;try{let e=JSON.parse(t[Qt]??`null`);if(e?.executable===r&&typeof e.detail==`string`)return X.set(r,e.detail),e.detail}catch{}return Q(e,t,n).detail}function Q(e=`claude`,t=k.env,n=k.cwd()){t=T(t);let r=Z(e,t,n),i=j(e,[`--version`],{encoding:`utf8`,env:t,cwd:n}),a=!i.error&&i.status===0,o=a?String(i.stdout||``).trim():`claude CLI not found on PATH (npm install -g @anthropic-ai/claude-code)`;return X.set(r,o),{available:a,detail:o}}function cn(){if(k.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(k.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=j(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`,env:T()});if(e.error||e.status!==0)return{loggedIn:!1,detail:`not logged in`};try{let t=JSON.parse(String(e.stdout||``));return t.loggedIn?{loggedIn:!0,detail:[t.email,t.subscriptionType].filter(Boolean).join(`, `)||`logged in`}:{loggedIn:!1,detail:`not logged in`}}catch{return{loggedIn:!1,detail:`unknown`}}}function ln(e,t){let n=t.permissions??`auto`,r=t.mcpServers??[],i={};n===`auto`&&t.approvalTaskId&&(i.coder={type:`stdio`,command:k.execPath,args:[ve,`task`,`mcp`,t.approvalTaskId,`--cwd`,e]});for(let e of r)i[e.name]=e.url?{type:e.type??`http`,url:e.url,...e.headers?{headers:e.headers}:{}}:{type:`stdio`,command:e.command,args:e.args??[],...e.env?{env:e.env}:{}};return i}function un(e,t,n,r,i){let a=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`],o=Kt(i);if(o&&Y(o,`2.1.94`)>=0&&a.push(`--thinking-display`,`summarized`),a.push(t.resumeSessionId?`--resume`:`--session-id`,n),t.model&&a.push(`--model`,t.model),t.effort&&a.push(`--effort`,t.effort),t.outputSchema){let{$schema:e,...n}=t.outputSchema;a.push(`--json-schema`,JSON.stringify(n))}let s=t.permissions??`auto`,c=t.additionalDirectories??[],l=s===`read-only`?t.readOnlyAllowedTools??[]:[],u=t.mcpServers??[],d=ln(e,t),f=s===`auto`&&t.approvalTaskId,p=u.flatMap(e=>e.tools?.length?e.tools.map(t=>`mcp__${e.name}__${t}`):[`mcp__${e.name}`]),m=Object.keys(d).length?[`--mcp-config`,r??O.join(t.taskRoot??e,`.claude-mcp.json`)]:t.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];t.nativeMcp||a.push(`--strict-mcp-config`,`--no-chrome`),f?(a.push(`--permission-mode`,`default`,...m,`--permission-prompt-tool`,`mcp__coder__approval_prompt`),p.length&&a.push(`--allowedTools`,...p)):l.length?a.push(...ie.filter(e=>k.env.CODER_MACHINE_SANDBOX!==`1`||e!==`Bash`),...m,`--allowedTools`,...l,...p):(a.push(...ye[s]??ye.auto,...m),p.length&&a.push(`--allowedTools`,...p));let h=t.writableDirectories??[];for(let e of[...c,...s===`read-only`?[]:h])a.push(`--add-dir`,e);let g=se(s,e,t.allowedNetworkHosts??[],c,h,k.env[ae]!==`1`),_={...g?JSON.parse(g):{},...t.nativeMcp?{}:{disableClaudeAiConnectors:!0}};return Object.keys(_).length&&a.push(`--settings`,JSON.stringify(_)),a}function dn(e,t){return Object.assign(Error(e),{retryable:t})}function fn(e,t){let n=t&&L(t),r=n&&`${n.slice(0,14)}5${n.slice(15,19)}${(Number.parseInt(n[19],16)&3|8).toString(16)}${n.slice(20)}`;return{type:`user`,...r?{uuid:r}:{},message:{role:`user`,content:[{type:`text`,text:e}]}}}function pn(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(fn(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(fn(n,r))}\n`,e=>{if(!e){t();return}let n=e.code,r=n===`EPIPE`||n===`ERR_STREAM_DESTROYED`||n===`ERR_STREAM_WRITE_AFTER_END`;i(dn(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject(dn(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}function mn(e,t){let n=`${e}.${k.pid}.${M()}.tmp`;A.writeFileSync(n,`${JSON.stringify(t)}\n`,`utf8`),A.renameSync(n,e)}async function hn(e){let t=A.mkdtempSync(O.join(N.tmpdir(),`coder-claude-steer-`)),n=`file:${t}`,r=new Set,i=new Set,a=!1,o=!1,s=(n=!1)=>{if(!(a&&!n||o)){o=!0;try{for(let n of A.readdirSync(t).filter(e=>e.endsWith(`.request.json`))){let a=n.slice(0,-13),o=O.join(t,n),s=O.join(t,`${a}.response.json`);if(A.existsSync(s)){A.unlinkSync(o);continue}if(i.has(a))continue;let c=`${o}.${k.pid}.processing`;try{A.renameSync(o,c)}catch{continue}i.add(a);let l=(async()=>{let t;try{let n=JSON.parse(A.readFileSync(c,`utf8`)),r=typeof n?.params?.text==`string`?n.params.text.trim():``;if(n?.method!==`turn/steer`||!r||n?.id!==a)t={id:a,error:{message:`Invalid Claude steer request.`,retryable:!1}};else try{await e(r,n.command),t={id:a,result:{accepted:!0}}}catch(e){let n=e;t={id:a,error:{message:n.message,retryable:n.retryable===!0}}}}catch(e){t={id:a,error:{message:`Invalid Claude steer JSON: ${e instanceof Error?e.message:String(e)}`,retryable:!1}}}try{mn(s,t)}finally{i.delete(a);try{A.unlinkSync(c)}catch{}}})();r.add(l),l.then(()=>r.delete(l),()=>r.delete(l))}}catch{}finally{o=!1}}},c=setInterval(s,10);return{endpoint:n,async close(){a=!0,clearInterval(c),s(!0),await Promise.allSettled([...r]),await new Promise(e=>setTimeout(e,50)),A.rmSync(t,{recursive:!0,force:!0})}}}async function gn(e,t,n=3e3,r){if(!e)return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is not ready.`};let i=t.trim();if(!i)return{steered:!1,retryable:!1,detail:`empty follow-up`};if(!e.startsWith(`file:`)||e.length===5)return{steered:!1,retryable:!1,detail:`Unsupported Claude steer endpoint: ${e}`};let a=e.slice(5);if(!A.existsSync(a))return{steered:!1,retryable:!0,detail:`Claude live steer endpoint is no longer available.`};let o=L(r),s=O.join(a,`${o}.request.json`),c=O.join(a,`${o}.response.json`);try{A.existsSync(c)||mn(s,{id:o,method:`turn/steer`,params:{text:i},command:r})}catch(e){return{steered:!1,retryable:e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}let l=Date.now();for(;Date.now()-l<n;){try{let e=JSON.parse(A.readFileSync(c,`utf8`));try{(!r||e?.error?.retryable)&&A.unlinkSync(c)}catch{}return e?.result?.accepted===!0?{steered:!0,retryable:!1,detail:`Claude accepted the live follow-up.`}:{steered:!1,retryable:e?.error?.retryable===!0,detail:String(e?.error?.message??`Malformed Claude steer response.`)}}catch(e){if(e.code!==`ENOENT`)return{steered:!1,retryable:!1,detail:`Invalid Claude steer response: ${e instanceof Error?e.message:String(e)}`}}await new Promise(e=>setTimeout(e,10))}return{steered:!1,retryable:!1,detail:`Timed out waiting for Claude live steer acknowledgement.`}}async function _n(e,t){let n=t.resumeSessionId??M(),r=ln(e,t),i=Object.keys(r).length?O.join(t.taskRoot??e,`.claude-mcp-${M()}.json`):void 0;i&&(A.mkdirSync(O.dirname(i),{recursive:!0}),A.writeFileSync(i,`${JSON.stringify({mcpServers:r})}\n`,{encoding:`utf8`,flag:`wx`,mode:384}));let a=T({...k.env,...t.env}),o=un(e,t,n,i,sn(t.executable??`claude`,a,e)),s=()=>{if(i)try{A.unlinkSync(i)}catch{}};return t.onProgress?.({kind:`status`,message:`claude turn started (session ${n})`,threadId:n}),new Promise((r,i)=>{let c=De(t.executable??`claude`,o,{cwd:e,stdio:[`pipe`,`pipe`,`pipe`],env:a}),l=``,u=``,d=[],f=null,p=n,m=null,h=!1,g=pn((e,t)=>c.stdin.write(e,t)),_=Date.now(),v=new Map,y=0,b=0,ee=new Set,x=n=>{if(!(!n||typeof n!=`object`)){if(s(),t.onHeartbeat?.(),n.type===`system`&&n.subtype===`init`&&n.session_id)p=n.session_id;else if(n.type===`assistant`||n.type===`user`){let r=n.type===`assistant`?an(n.message?.usage):null;if(r){y+=r.output;let e=r.input+r.cachedInput+y;(!b||e-b>=1e3)&&(b=e,t.onProgress?.({kind:`usage`,tokens:{...r,output:y,total:e},threadId:p}))}for(let r of n.message?.content??[])if(r?.type===`tool_use`||r?.type?.endsWith(`_tool_use`)){let n=String(r.name??`Tool`);if(r.id&&v.set(String(r.id),{name:n,at:Date.now()}),Zt.has(n)){let t=String(r.input?.file_path??r.input?.notebook_path??``);t&&ee.add(O.isAbsolute(t)?t:O.resolve(e,t))}t.onProgress?.({kind:`tool`,tool:n,...r.id?{callId:String(r.id)}:{},message:rn(n,r.input??{},e),threadId:p})}else if(r?.type===`tool_result`||r?.type?.endsWith(`_tool_result`)){let e=$t(r.content).trim(),n=r.is_error===!0||r.content?.type?.endsWith(`_error`)===!0,i=r.tool_use_id?v.get(String(r.tool_use_id)):void 0;r.tool_use_id&&v.delete(String(r.tool_use_id)),t.onProgress?.({kind:`tool-result`,...r.tool_use_id?{callId:String(r.tool_use_id)}:{},...i?{tool:i.name,durationMs:Date.now()-i.at}:{},...n?{isError:!0}:{},message:e||(n?`(tool failed with no output)`:`(no output)`),threadId:p})}else n.type===`assistant`&&r?.type===`text`&&typeof r.text==`string`&&r.text.trim()?t.onProgress?.({kind:`assistant`,message:r.text.trim(),threadId:p}):n.type===`assistant`&&r?.type===`thinking`&&typeof r.thinking==`string`&&r.thinking.trim()&&t.onProgress?.({kind:`reasoning`,message:r.thinking.trim(),durationMs:Math.max(0,Date.now()-_),threadId:p})}else n.type===`result`&&(f=n,t.onResult?.({status:+!!n.is_error,threadId:n.session_id??p,finalMessage:n.structured_output===void 0?String(n.result??``).trim():JSON.stringify(n.structured_output),error:n.is_error?{message:String(n.result??``)}:null}),n.session_id&&(p=n.session_id),g.stopAccepting(),c.stdin.end());_=Date.now()}};c.stdout.on(`data`,e=>{l+=e;let t;for(;(t=l.indexOf(`
7
- `))>=0;){let e=l.slice(0,t).trim();if(l=l.slice(t+1),e)try{x(JSON.parse(e))}catch(e){d.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),c.stderr.on(`data`,e=>{u+=e});let S=()=>{g.stopAccepting(),c.kill(`SIGTERM`),s();let e=m?.endpoint;e?.startsWith(`file:`)&&A.rmSync(e.slice(5),{recursive:!0,force:!0}),k.exit(143)};k.on(`SIGTERM`,S),(async()=>{t.onSteerReady&&(m=await hn((e,t)=>g.sendSteer(e,t))),await g.sendInitial(t.prompt,t.command),m&&t.onSteerReady?.(m.endpoint)})().catch(e=>{h||(h=!0,g.stopAccepting(),c.kill(`SIGTERM`),s(),k.removeListener(`SIGTERM`,S),m?.close(),i(e))}),c.on(`error`,e=>{h||(h=!0,g.stopAccepting(),k.removeListener(`SIGTERM`,S),s(),m?.close(),i(Error(`claude spawn failed: ${e.message}`)))}),c.on(`close`,async e=>{if(h)return;h=!0,g.stopAccepting(),k.removeListener(`SIGTERM`,S),s(),await m?.close();let n=l.trim();if(n)try{x(JSON.parse(n))}catch(e){d.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let i=f?.structured_output===void 0?(f?.result??``).trim():JSON.stringify(f.structured_output),a=e!==0||f?.is_error===!0||f==null||d.length>0;r({status:+!!a,threadId:f?.session_id??p,turnId:null,finalMessage:i,touchedFiles:[...ee],tokens:an(f?.usage),model:f?.modelUsage&&Object.keys(f.modelUsage).join(`+`)||t.model||null,error:a?{message:d[0]||i||u.trim()||`claude exited ${e}`}:null})})})}const vn=new Set(`commit.checkout.switch.restore.stash.reset.rebase.merge.push.pull.cherry-pick.revert.clean.am.apply.tag.branch.worktree.filter-branch.filter-repo.gc.prune.reflog.remote.submodule.config`.split(`.`)),yn=[/\bsudo\b/,/\brm\s+(-[a-zA-Z]*r[a-zA-Z]*f|-[a-zA-Z]*f[a-zA-Z]*r)\b.*\s(\/\*?|~\/?|\$HOME\/?)(\s|$)/,/\b(shutdown|reboot|halt|poweroff)\b/,/\bmkfs\b|\bdiskutil\s+erase/i,/\b(chmod|chown)\b.*-R.*\s\/(\s|$)/,/\bkill(all)?\s+-9\s+1\b/,/curl[^|;&]*\|\s*(ba|z|da)?sh\b/,/wget[^|;&]*\|\s*(ba|z|da)?sh\b/,/\blaunchctl\b|\bsystemctl\b/,/\bdefaults\s+write\b/,/>\s*\/dev\/(sd|disk)/],bn=new Set([`status`,`log`,`diff`,`show`,`blame`,`rev-parse`,`ls-files`,`ls-tree`,`cat-file`,`describe`,`shortlog`,`grep`,`branch`,`stash`]);function xn(e){return e.match(/^\s*(?:ba|z|da)?sh\s+(?:-[a-zA-Z]+\s+)*(?:-c\s+)?(["'])([\s\S]*)\1\s*$/)?.[2]??e}function Sn(e){return e.trim().split(/\s+/).filter(Boolean)}function Cn(e){let t=e.find((e,t)=>t>0&&!e.startsWith(`-`));if(!t)return{decision:`accept`,reason:`bare git`};if(t===`branch`&&e.some(e=>/^-(d|D|m|M|c|C|f|u)|^--(delete|move|copy|force|set-upstream)/.test(e)))return{decision:`decline`,reason:`git branch write operation (git is read-only for Coder)`};if(t===`stash`){let t=e.find((e,t)=>t>1&&!e.startsWith(`-`));return t===`list`||t===`show`?{decision:`accept`,reason:`git stash ${t} is read-only`}:{decision:`decline`,reason:`git stash write operation (git is read-only for Coder)`}}return bn.has(t)?{decision:`accept`,reason:`git ${t} is read-only`}:vn.has(t)?{decision:`decline`,reason:`git ${t} is a write operation (git is read-only for Coder)`}:{decision:`escalate`,reason:`unrecognized git subcommand: ${t}`}}function wn(e,t={}){let n=xn(String(e??``));if(!n.trim())return{decision:`escalate`,reason:`empty command`};for(let e of yn)if(e.test(n))return{decision:`decline`,reason:`matches hard-deny pattern ${e}`};if(/\$\(|`|<\(/.test(n))return{decision:`escalate`,reason:`contains command substitution`};let r=n.split(/&&|\|\||;|\||\r?\n/).map(e=>e.trim()).filter(Boolean);if(r.length>1){let e={decision:`accept`,reason:`all segments safe`};for(let n of r){let r=wn(n,t);if(r.decision===`decline`)return r;r.decision===`escalate`&&(e=r)}return e}let i=Sn(n),a=O.basename(i[0]??``);if(a===`git`)return Cn(i);let o=t.networkHost;return o?(t.allowedNetworkHosts??[]).some(e=>o===e||o.endsWith(`.${e}`))?{decision:`accept`,reason:`network host ${o} is allowlisted`}:{decision:`escalate`,reason:`network access to ${o}`}:{decision:`escalate`,reason:`command needs approval: ${a||`(unknown)`}`}}function Tn(e,t){if(!e.length)return{decision:`escalate`,reason:`file change with no resolvable paths`};for(let n of e){let e=O.resolve(t,n),r=O.relative(t,e);if(r.startsWith(`..`)||O.isAbsolute(r))return{decision:`escalate`,reason:`path outside workspace: ${n}`};if(r===`.git`||r.startsWith(`.git${O.sep}`))return{decision:`decline`,reason:`direct .git modification: ${n}`}}return{decision:`accept`,reason:`all paths inside workspace`}}function En(e){return O.join(e,`approvals`)}function Dn(e){let t=En(e);return A.existsSync(t)?A.readdirSync(t).filter(e=>e.endsWith(`.request.json`)).flatMap(e=>{let n=e.replace(/\.request\.json$/,``),r=D(O.join(t,e));if(!r)return[];let i=D(O.join(t,`${n}.response.json`));return[{...r,id:n,response:i}]}).sort((e,t)=>String(e.createdAt??``).localeCompare(String(t.createdAt??``))):[]}function On(e,t,n){let r=En(e),i=O.join(r,`${t}.request.json`);if(!A.existsSync(i))throw Error(`No pending approval "${t}" for this task.`);A.writeFileSync(O.join(r,`${t}.response.json`),`${JSON.stringify({decision:n,answeredAt:new Date().toISOString()},null,2)}\n`,`utf8`)}async function $(e,t,{timeoutMs:n,onEvent:r}){let i=En(e);A.mkdirSync(i,{recursive:!0});let a=`apr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`;A.writeFileSync(O.join(i,`${a}.request.json`),`${JSON.stringify({...t,createdAt:new Date().toISOString()},null,2)}\n`,`utf8`),r?.({kind:`approval-escalated`,approvalId:a,summary:t.summary,message:`Approval needed (${a}): ${t.summary}. Answer with: coder task approve ${O.basename(e)} ${a} [--deny]`});let o=O.join(i,`${a}.response.json`),s=Date.now()+n;for(;Date.now()<s;){if(A.existsSync(o))try{let e=JSON.parse(A.readFileSync(o,`utf8`)).decision===`accept`?`accept`:`decline`;return r?.({kind:`approval-answered`,approvalId:a,decision:e}),e}catch{}await new Promise(e=>setTimeout(e,400))}return r?.({kind:`approval-timeout`,approvalId:a,message:`Approval ${a} timed out; declining.`}),`decline`}function kn(e,t={}){return $(e,{method:`simulate`,summary:`simulated approval probe (--simulate-approval)`},{timeoutMs:t.timeoutMs??12e4,onEvent:t.onEvent??null})}function An({workspaceRoot:e,taskDir:t,mode:n=`auto`,escalationTimeoutMs:r=12e4,allowedNetworkHosts:i=[],onEvent:a=null}){return async(o,s,c)=>{if(o===`item/commandExecution/requestApproval`){let l=c?.itemIndex?.get(s.itemId??``),u=s.command??l?.command??``,d=s.cwd??l?.cwd??e,f=`Run command. ${u||`Unknown command`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:f}),{decision:`decline`};let p=wn(u,{networkHost:s.networkApprovalContext?.host??null,allowedNetworkHosts:i});return a?.({kind:`approval-decision`,method:o,decision:p.decision,reason:p.reason,summary:f}),p.decision===`escalate`?{decision:await $(t,{method:o,summary:f,command:u,cwd:d,params:s},{timeoutMs:r,onEvent:a})}:{decision:p.decision}}if(o===`item/fileChange/requestApproval`){let i=(c?.itemIndex?.get(s.itemId??``)?.changes??[]).map(e=>e.path).filter(e=>!!e),l=`Apply file changes. ${i.join(`, `)||`Unknown paths`}${s.reason?`. ${s.reason}`:``}`;if(n===`deny`)return a?.({kind:`approval-decision`,method:o,decision:`decline`,reason:`deny mode`,summary:l}),{decision:`decline`};let u=Tn(i,e);return a?.({kind:`approval-decision`,method:o,decision:u.decision,reason:u.reason,summary:l}),u.decision===`escalate`?{decision:await $(t,{method:o,summary:l,paths:i,params:s},{timeoutMs:r,onEvent:a})}:{decision:u.decision}}throw a?.({kind:`approval-unsupported`,method:o}),Error(`Coder does not handle server request ${o}; treating as denied.`)}}const jn=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|ENOENT/i;function Mn(e){return jn.test(e)&&!je(e)}var Nn=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Pn(e,t){let n=e.engine,r=!!n,i=e.model,a=e.effort,o=e=>{let n=e?t.models?.[e]:void 0;return n&&ce(n)?n:void 0},s=e=>{let n=e?t.models?.[e]:void 0;return n&&E(n)?n:void 0};if(o(i)){let e;try{e=b(i,t)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),i=e.model??void 0,a=a??e.effort??void 0)}if(!n&&i&&(i in me?n=`claude`:i in xe?n=`codex`:s(i)?n=`custom`:/^(?:claude-|opus|sonnet|haiku|fable)/i.test(i)&&(n=`claude`)),n=n??t.chain[0]??`codex`,n!==`codex`&&n!==`claude`&&n!==`custom`){let e=n in xe||n in me||n in(t.models??{})?` "${n}" is a model; use --model ${n}.`:``;throw new P(`invalid-option`,`Invalid --engine "${n}". Use codex, claude, or custom.${e}`)}let c=t.engines[n]??{},l=i??c.model??null,u=a??c.effort??null;if(o(l)){let e;try{e=b(l,t)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}e&&(r||(n=e.engine),l=e.model,u=a??e.effort??u)}let d=e.permissions??c.permissions??`auto`;try{oe(t,l)}catch(e){throw new P(`invalid-option`,e instanceof Error?e.message:String(e))}if(n===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>E(e)).map(([e])=>e);if(!l&&e.length===1&&(l=e[0]),!l||!s(l))throw new P(`invalid-option`,l?`No custom model named "${l}". Configured: ${e.join(`, `)||`none`}.`:`No custom model to run: pass --model <name> or set engines.custom.model.`,{hint:`Add one: coder model add <name> --base-url <url> --model <id>`})}let f=n===`claude`;if(!(d in fe))throw new P(`invalid-option`,`Invalid --permissions "${d}". Use one of: ${Object.keys(fe).join(`, `)}`);if(!f&&u&&!he.has(u))throw new P(`invalid-option`,`Invalid codex --effort "${u}". Use one of: ${[...he].join(`, `)}`);if(f&&u&&!Se.has(u))throw new P(`invalid-option`,`Invalid claude --effort "${u}". Use one of: ${[...Se].join(`, `)}`);return{engine:n,model:l,effort:u,permissions:d}}const Fn=te({name:o().check(e(1)),command:d(o().check(e(1))),args:d(n(o())),env:d(Te(o(),o())),url:d(o().check(e(1))),type:d(de([`stdio`,`http`,`sse`])),headers:d(Te(o(),o())),tools:d(n(o()))}).check(r(e=>!!e.command!=!!e.url,`one of command or url`)),In=n(Fn);function Ln(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?zn(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new P(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n,...n.repository?{repository:!0}:{}}})}function Rn(e,t={},n={},r={}){typeof e==`string`&&!e.trim()&&(e=void 0);let i=typeof e==`string`?Ln(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t,...t.repository?{repository:!0}:{}})),a=[],o=i.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),s=new Set,c=[];for(let e of i){if(!e.connection||e.resolved){e.connection&&s.add(e.connection),e.repository&&a.push(...y(e.name,e)),c.push(e);continue}let t=Object.hasOwn(r,e.connection)?r[e.connection]:void 0;if(!t){a.push(`MCP server "${e.name}" skipped because connection "${e.connection}" was not granted to this task.`);continue}if(s.has(e.connection))continue;s.add(e.connection);let n=e.tools?.length?e.tools.filter(e=>!t.tools?.length||t.tools.includes(e)):t.tools;if(e.tools?.length&&!n?.length){a.push(`MCP server "${e.name}" skipped because its tools are not granted by connection "${e.connection}".`);continue}c.push({...t,name:e.name,connection:e.connection,resolved:!0,...n?{tools:n}:{}})}for(let[e,t]of Object.entries(r)){if(s.has(e))continue;let n=c.findIndex(e=>e.name===t.name);n>=0&&c.splice(n,1),c.push({...t,resolved:!0})}return{mcp:c,...o.length?{mcpBindings:o}:{},nativeMcp:typeof e==`string`&&e.trim()===`all`,...a.length?{warnings:a}:{}}}function zn(e){let n;try{n=JSON.parse(e)}catch(e){throw new P(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let r=In.safeParse(n);if(!r.success)throw new P(`invalid-option`,`Invalid --mcp value: ${t(r.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return r.data}function Bn(e,t=k.env,n,r={}){let i=r.cloud??t.CODER_MCP_MODE===`cloud`,a=r.connectionEnv??JSON.parse(t.CODER_MCP_CONNECTION_ENV??`{}`),o=r.onWarning??(e=>k.stderr.write(`coder: ${e}\n`));return(e??[]).flatMap(e=>{let r=e.repository&&!e.resolved;if(r){for(let t of y(e.name,e))o(t);if(!i&&!c(e))return o(`MCP server "${e.name}" skipped pending local approval. Run coder connection approve ${e.name} in its repository.`),[]}let s=new Set,l=new Set,u=n=>e.resolved?n.replace(/^\$\{(CODER_CONNECTION_[A-F0-9]{24})\}$/,(e,n)=>t[n]??``):n.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g,(e,n,o)=>r&&i?a[n]===null?(l.add(n),``):Object.hasOwn(a,n)?a[n]:(s.add(n),``):t[n]??o??``),d=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,u(t)])),f=r&&!!e.url,p={...e,...e.command?{command:u(e.command)}:{},...e.args?{args:e.args.map(u)}:{},...e.url?{url:f?e.url:u(e.url)}:{},...e.env?{env:d(e.env)}:{},...e.headers?{headers:f?e.headers:d(e.headers)}:{}};if(l.size)return o(`MCP server "${e.name}" skipped because connection variables ${[...l].join(`, `)} are ambiguous.`),[];if(s.size&&o(`MCP server "${e.name}" has unresolved connection variables ${[...s].join(`, `)}; expanded to empty.`),!n||!p.command)return[p];let m=(p.command.includes(O.sep)?[O.resolve(n,p.command)]:(p.env?.PATH??t.PATH??`/usr/bin:/bin`).split(O.delimiter).map(e=>O.resolve(n,e,p.command))).find(e=>{try{return A.accessSync(e,A.constants.X_OK),A.statSync(e).isFile()}catch{return!1}});if(!m)throw new P(`invalid-option`,`MCP server "${e.name}" command cannot be resolved.`);return p.command=A.realpathSync(m),p.args=p.args?.map(e=>{if(e.startsWith(`-`)||O.isAbsolute(e))return e;let t=O.resolve(n,e),r=A.existsSync(t)&&A.statSync(t).isFile();return!r&&!e.startsWith(`./`)&&!e.startsWith(`../`)?e:r?A.realpathSync(t):t}),[p]})}function Vn(e,t=[]){let n=[...new Set(t.map(t=>O.resolve(e,t)))];for(let e of n)if(!A.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new P(`invalid-option`,`--add-dir ${e} is not a directory.`);return n}function Hn(e,t){return e===`read-only`&&ue.test(t??``)}const Un=[`read-only`,`workspace-write`,`auto`];function Wn(e,t,n){if(!t)return n.permissions;if(Un.indexOf(t)>Un.indexOf(n.permissions))throw new P(`invalid-option`,`task "${e??`task`}" asks for ${t} but agent "${n.agent}" is ${n.permissions}: lower the task's permissions or raise the agent's`);return t}function Gn(e,t,n={}){let r=i(e,t),a=A.openSync(O.join(r,`worker.log`),`a`),o={...k.env,...n},s=De(k.execPath,[ve,`task`,`worker`,t,`--cwd`,e],{cwd:e,detached:!0,stdio:[`ignore`,a,a],env:{...o,...on(o,e),CODER_WORKER:`1`}});s.unref(),A.closeSync(a),p(e,t,{pid:s.pid??null})}async function Kn(e,t,n,r,a){let o=n.cwd,s=t.engine===`claude`?Q(`claude`,{...k.env,...n.connectionEnv},o):q(o),c=t.model?e.models?.[t.model]:void 0;if(!s.available&&c&&E(c)){let e=Wt(s);n.onNote?.(e.note),s=q(o)}if(!s.available)throw new Nn(t.engine,s.detail);let l=c?null:t.engine===`claude`?qt(`claude`,t.model,s):qt(`codex`,ee(t.model),s);l&&n.onNote?.(l);let u=n.addDirs??[],d=n.taskId??be(),f=p(o,d,{status:`queued`,...n.taskId?{dispatchId:M()}:{},kind:`task`,name:r.name??null,system:n.system??null,engine:t.engine,prompt:n.prompt,...n.outputSchema?{outputSchema:n.outputSchema}:{},model:t.model,effort:t.effort,permissions:t.permissions,resumeThreadId:null,cwd:o,background:!n.wait,...r.simulateApproval?{simulateApproval:!0}:{},...n.flowRunId?{flowRunId:n.flowRunId}:{},...n.agentId?{agentId:n.agentId}:{},...n.source?{source:n.source}:{},...n.author?{author:n.author}:{},...n.repo?{repo:n.repo}:{},...n.mcp?.length?{mcp:n.mcp}:{},...n.mcpBindings?{mcpBindings:n.mcpBindings}:{},...n.connections?{connections:n.connections}:{},...n.connectionSource?{connectionSource:n.connectionSource}:{},nativeMcp:n.nativeMcp??!1,...u.length?{addDirs:u}:{}});for(let e of new Set(n.mcpWarnings??[]))_e(o,d,{kind:`warning`,message:e});if(Gn(o,d,n.connectionEnv),!a)return{taskId:d,task:w(o,d)??f,engine:t.engine,startupCheck:`pending`};let m=2**53-1,h=new Set([`status`,`usage`]),g=()=>ge(o,d,m).filter(e=>{let{phase:t,kind:n}=e;return t!==`starting`&&!h.has(String(n??``))}).length,_=Date.now()+15e3,v=f,y=null,b=null;for(;Date.now()<(b??_)&&(v=w(o,d)??v,v.status!==`failed`&&v.status!==`completed`);){if(v.threadId&&y===null&&(y=g(),b=Date.now()+5e3),y!==null&&g()>y){v=w(o,d)??v;break}await new Promise(e=>setTimeout(e,150))}if(v.status===`failed`){let e=O.join(i(o,d),`result.json`),n=D(e)?.error?.message??``,r=ge(o,d,5).map(e=>e.message??``).join(`
8
- `),a=n||r;throw Hn(t.permissions,a)?new P(`read-only-unavailable`,a):Mn(a)?new Nn(t.engine,a):new P(`startup-failed`,a,{taskId:d})}return{taskId:d,task:v,engine:t.engine,startupCheck:v.threadId?`passed`:`pending`}}function qn(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,permissions:n,instructions:`Mention the engine failure to the user, including any limit reset time. If your harness has a native subagent facility, spawn one subagent with fallback.task verbatim, prefixed with: "NEVER run git write operations (commit, checkout, stash, reset, push, etc.); leave changes uncommitted." If fallback.permissions is "read-only", append: "Investigate and report without modifying anything." If it is "workspace-write", append: "Never touch anything outside the workspace." Relay its output when it completes. If your harness has no native subagent facility, report the failure and stop; do not implement the task yourself.`,note:`Every coder engine failed to start. Spawn your own native subagent and forward the task verbatim; tell it to never run git write operations (commit, checkout, stash, reset, push, ...) and to honor the permissions.`,...r?{system:r}:{},task:i}}}async function Jn(e,t={}){if(k.env.CODER_WORKER&&!t.fromMailbox)throw new P(`nested-dispatch`,`Nested dispatch is disabled inside a worker; do the work directly.`);if(e.outputSchema!==void 0&&(!e.outputSchema||typeof e.outputSchema!=`object`||Array.isArray(e.outputSchema)))throw new P(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new P(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:Vn(e.cwd,e.addDirs)};let n=Ce(e.cwd),r=Rn(e.mcp,n.mcp),i={...e,mcp:r.mcp,mcpBindings:e.mcpBindings??r.mcpBindings,mcpWarnings:[...e.mcpWarnings??[],...r.warnings??[]],nativeMcp:e.nativeMcp??r.nativeMcp},a={engine:e.engine,model:e.model,effort:e.effort,permissions:e.permissions},o={name:e.name,simulateApproval:e.simulateApproval};for(;;){let r=Pn(a,n);try{return await Kn(n,r,i,o,t.waitForStartup!==!1)}catch(t){if(!(t instanceof Nn))throw t;let i=n.chain[n.chain.indexOf(t.engine)+1];if(!i){let n=qn(t.engine,t.detail,r.permissions,e.system,e.prompt);throw new P(`chain-exhausted`,n.error,{payload:n})}e.onFallback?.({engine:t.engine,detail:t.detail,next:i}),a={engine:i,permissions:e.permissions},o={name:void 0,simulateApproval:void 0}}}}function Yn(e,t){if(t.status!==`failed`)return;let n=t.result;if(!n||!Mn(n.error?.message??``)||!(!n.touchedFiles?.length&&!n.fileChanges?.length&&!n.commandExecutions?.length))return;let r=Ce(e).chain;return r[r.indexOf(t.task.engine)+1]}function Xn(e,t){return D(O.join(i(e,t),`result.json`))}function Zn(e,t,n=0){if(n===0)return[];let r=ge(e,t,2**53-1);return n===`all`?r:a(r,n)}function Qn(e,t,n={}){let r=w(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:h.includes(r.status)?null:Xn(e,t),steps:Zn(e,t,n.tail),turns:pe(e,t),task:r}}async function $n(e,t,n={}){let r=w(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await er(e,r);if(i.reason===`approval`){let e=i.approval;throw new P(`approval-pending`,`Approval needed for task ${t}: ${e.summary}`,{taskId:t,approval:e})}n.onSettle?.();let a=i.task;return{taskId:t,status:a.status,result:Xn(e,t),steps:Zn(e,t,n.tail),turns:pe(e,t),task:a}}async function er(e,t,n=400){let r=t;for(;;){if(_.includes(r.status))return{task:r,reason:`terminal`};let t=Dn(i(e,r.id)).filter(e=>!e.response);if(t[0]){let e=t[0].params;return{task:r,reason:`approval`,approval:{id:t[0].id,summary:String(t[0].summary??``),cwd:typeof t[0].cwd==`string`?t[0].cwd:null,networkHost:e?.networkApprovalContext?.host??null}}}await new Promise(e=>setTimeout(e,n)),r=le(e,w(e,r.id)??r)}}export{Ot as A,Fe as B,gn as C,Lt as D,Xt as E,Ue as F,P as H,Ve as I,ze as L,kt as M,Je as N,Rt as O,Ie as P,L as R,_n as S,Yt as T,F as V,wn as _,Mn as a,Dn as b,Bn as c,Gn as d,Yn as f,An as g,On as h,Hn as i,At as j,q as k,Pn as l,$n as m,Wn as n,Xn as o,er as p,Jn as r,Qn as s,qn as t,Rn as u,Tn as v,Wt as w,kn as x,$ as y,He as z};
@@ -1,2 +0,0 @@
1
- import{Xt as e}from"./config-D2FxHWwi.js";import{H as t}from"./dispatch-D3Dqxijf.js";import n from"node:path";import r from"node:fs";const i=[{name:`readme`,file:`README.md`,description:`What Coder is and how to get started.`},{name:`skill`,file:`plugins/agents/skills/coder/SKILL.md`,description:`How a host agent should drive Coder.`}];function a(e){let t=n.join(e,`docs`),a=[];try{a=r.readdirSync(t,{withFileTypes:!0})}catch{a=[]}let c=(t,r)=>({name:t,file:r,description:s(n.join(e,r))}),l=[...new Set(a.filter(e=>e.isDirectory()?o(n.join(t,e.name)):e.name.endsWith(`.md`)).map(e=>e.isDirectory()?e.name:n.basename(e.name,`.md`)))].sort(),u=[];for(let e of l){let i=n.join(t,e);if(!a.some(t=>t.isDirectory()&&t.name===e)){u.push(c(e,n.join(`docs`,`${e}.md`)));continue}u.push(c(e,n.join(`docs`,e,`index.md`)));let o=r.readdirSync(i).filter(e=>e.endsWith(`.md`)&&e!==`index.md`).sort();for(let t of o){let r=n.basename(t,`.md`);u.push(c(`${e}/${r}`,n.join(`docs`,e,t)))}}let d=i.map(e=>({name:e.name,file:e.file,description:e.description}));return[...u,...d]}function o(e){return r.existsSync(n.join(e,`index.md`))}function s(e){let t=``;try{t=r.readFileSync(e,`utf8`)}catch{return``}let n=t.split(`
2
- `),i=``,a=``,o=!1;for(let e of n){let t=e.trim();if(t.startsWith("```")){o=!o;continue}if(!(o||t===``)){if(t.startsWith(`#`)){i||=t.replace(/^#+\s*/,``);continue}a=t;break}}return c(a)||i}function c(e){if(!e)return``;let t=e.match(/^.*?[.!?](?=\s|$)/);return(t?t[0]:e).trim()}function l(i,o={}){let s=e(),c=a(s);if(!i)return{topics:c.map(e=>({name:e.name,description:e.description}))};let l=i.toLowerCase(),u=c.find(e=>{let t=e.name.toLowerCase();return t===l||t.replace(`/`,`-`)===l});if(u?.name===`skill`&&o.claude&&(u={...u,file:`plugins/claude/skills/dispatch/SKILL.md`}),!u)throw new t(`invalid-option`,`Unknown docs topic "${i}". Available: ${c.map(e=>e.name).join(`, `)}`,{hint:`List topics: coder docs`});let d=n.join(s,u.file),f;try{f=r.readFileSync(d,`utf8`)}catch{throw new t(`invalid-option`,`Could not read docs for "${u.name}" (${u.file}).`)}return{name:u.name,content:f}}export{l as t};
@@ -1 +0,0 @@
1
- import{Wi as e,Xt as t,Zt as n,dn as r,qi as i}from"./core-DwsAMCnL.js";import{Bn as a,Dn as o,Fn as s,Gt as c,Hn as l,In as u,Ln as d,Mn as f,On as p,Rn as m,Un as h,Vn as g,kn as _}from"./config-D2FxHWwi.js";import{H as v}from"./dispatch-D3Dqxijf.js";import y from"node:path";import b from"node:process";import x from"node:os";var S=i({ISSUES_URL:()=>T,loadServerConfig:()=>M,requireBunServer:()=>P,rerunUnderBun:()=>F});const C=e=>p(o().check(f(),n()),e),w=m(d(l()),h(e=>e===`1`)),T=`https://github.com/muzam1l/coder/issues/new`,E=(e,n)=>l().check(t(e=>e.replace(/\/$/,``)),a(e=>URL.canParse(e),{error:`must be a URL`,abort:!0}),a(t=>e(new URL(t)),n)),D=e=>m(h(e=>e||void 0),e),O=m(l(),h((t,n)=>{try{let e=JSON.parse(t);if(e&&!Array.isArray(e)&&typeof e==`object`)return e}catch{}return n.issues.push({code:`custom`,message:`must be a JSON object`,input:t}),e})),k=u({AUTH_WULAR_URL:p(E(e=>e.protocol===`https:`||e.hostname===`localhost`,`must use HTTPS unless it is localhost`),`https://auth.wular.ai`)}),A=u({SERVER_LIMITS:D(d(m(O,g({principalPerMinute:d(s().check(f(),n())),authPerMinute:d(s().check(f(),n())),registerPerMinute:d(s().check(f(),n())),ipPerMinute:d(s().check(f(),n())),pairingPerMinute:d(s().check(f(),n())),concurrentTasks:d(s().check(f(),n()))})))),RUNNER:d(_([`local`,`local-docker`,`vercel-sandbox`,`github-actions`,`http`])),RUNNER_CONFIG:D(p(O,{})),WORK_DIR:d(l()),SERVER_ENCRYPTION_KEY:d(l()),SERVER_ENCRYPTION_KEY_PREVIOUS:d(l()),ADMIN_TOKEN:d(l()),PUBLIC_URL:D(d(E(e=>e.pathname===`/`&&!e.search&&!e.hash,`must be an origin, with no path, query or fragment`))),SERVER_NAME:d(l().check(r())),ISSUES_URL:D(d(E(()=>!0,`must be a URL`))),VERCEL_PROJECT_PRODUCTION_URL:d(l()),VERCEL_URL:d(l()),VERCEL:d(l()),DATABASE_URL:d(l()),POSTGRES_URL:d(l()),DATABASE_POOL_MAX:d(o().check(f(),n())),DATABASE_IDLE_TIMEOUT:d(o().check(f(),n())),MAX_TASKS:d(o().check(f(),n())),MAX_QUEUED:C(1e3),TASK_STALL:C(3e5),TASK_ATTEMPTS:C(2),TASK_TIMEOUT:C(18e5),CLAUDE_SUBSCRIPTIONS:w,CODEX_SUBSCRIPTIONS:w,SERVER_INTEGRATIONS:D(d(l())),SERVER_OPERATORS:D(d(l()))});function j(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0];throw new v(`invalid-option`,`Invalid server configuration:${String(r.path[0])} ${r.message}`)}function M(e=b.env,t=`node`){let n=j(A,e),r=n.DATABASE_URL??n.POSTGRES_URL,i=r?`postgres`:`memory`;if(i===`postgres`&&!n.SERVER_ENCRYPTION_KEY)throw new v(`invalid-option`,`SERVER_ENCRYPTION_KEY is required with DATABASE_URL`);let a=t===`vercel`?n.VERCEL_PROJECT_PRODUCTION_URL??n.VERCEL_URL:void 0,o=n.PUBLIC_URL??(a?`https://${a}`:void 0),s=i===`postgres`?j(k,e).AUTH_WULAR_URL:void 0;return{runner:n.RUNNER??(t===`vercel`||n.VERCEL?`vercel-sandbox`:`local`),store:i,workDir:n.WORK_DIR??y.join(x.tmpdir(),`coder`),...n.SERVER_ENCRYPTION_KEY?{encryptionKey:n.SERVER_ENCRYPTION_KEY}:{},...n.SERVER_ENCRYPTION_KEY_PREVIOUS?{previousEncryptionKey:n.SERVER_ENCRYPTION_KEY_PREVIOUS}:{},...n.ADMIN_TOKEN?{adminToken:n.ADMIN_TOKEN}:{},...o?{publicUrl:o}:{},...n.SERVER_NAME?{name:n.SERVER_NAME}:{},issuesUrl:n.ISSUES_URL??`https://github.com/muzam1l/coder/issues/new`,...r?{databaseUrl:r,databasePool:{max:n.DATABASE_POOL_MAX??(t===`vercel`||n.VERCEL?2:10),idleTimeout:n.DATABASE_IDLE_TIMEOUT??(t===`vercel`||n.VERCEL?30:240)}}:{},runnerConfig:n.RUNNER_CONFIG,maxTasks:n.MAX_TASKS,limits:n.SERVER_LIMITS,maxQueued:n.MAX_QUEUED,taskTimeoutMs:n.TASK_TIMEOUT,taskStallMs:n.TASK_STALL,taskAttempts:n.TASK_ATTEMPTS,...n.CLAUDE_SUBSCRIPTIONS||n.CODEX_SUBSCRIPTIONS?{subscriptions:{claude:n.CLAUDE_SUBSCRIPTIONS,codex:n.CODEX_SUBSCRIPTIONS}}:{},...s?{auth:{wular:{url:s}}}:{},...n.SERVER_INTEGRATIONS?{integrations:n.SERVER_INTEGRATIONS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{},...n.SERVER_OPERATORS?{operators:n.SERVER_OPERATORS.split(`,`).map(e=>e.trim()).filter(Boolean)}:{}}}function N(){return new v(`invalid-option`,`The Coder server needs Bun; the CLI itself runs on Node.`,{hint:[b.platform===`win32`?`Install Bun: powershell -c "irm bun.sh/install.ps1 | iex"`:`Install Bun: curl -fsSL https://bun.sh/install | bash`,`Or with npm: npm install -g bun`,`Then run the command again. More: https://bun.sh/docs/installation`]})}function P(){if(typeof Bun>`u`)throw N()}async function F(){if(typeof Bun<`u`)return;let e=b.platform===`win32`?[`bun.exe`,`bun.cmd`,`bun`]:[`bun`];for(let t of e){let e=await c(t);if(e.error?.code!==`ENOENT`&&e.error?.code!==`EINVAL`){if(e.error)throw e.error;if(e.signal){let t=x.constants.signals[e.signal];b.exit(typeof t==`number`?128+t:1)}b.exit(e.status??1)}}throw N()}export{M as n,P as r,S as t};
@@ -1,11 +0,0 @@
1
- import{qi as e}from"./core-DwsAMCnL.js";import{ct as t,fn as n,nn as r,pn as i,y as a}from"./config-D2FxHWwi.js";import{F as o,H as s,c,f as l,l as u,m as d,n as f,r as p,u as m,z as h}from"./dispatch-D3Dqxijf.js";import{a as g,f as _,h as v,l as y}from"./load-CRmQB1LD.js";import{t as b}from"./integrations-D3OgJk6Y.js";import{a as x}from"./discover-CBP4Uw0N.js";import{c as S}from"./actions-5TDwmn_z.js";import{n as C}from"./executor-5j-Ewzzb.js";import{REVIEW_PLATFORM as w,postReview as T,resolveReviewTarget as E}from"./flow/builtin/review.js";import{a as D,i as O,o as k,r as A}from"./mcp-YhyTUMIM.js";import j from"node:path";import M from"node:process";import{readFileSync as N,readdirSync as ee,realpathSync as P}from"node:fs";import F from"node:os";import I from"node:fs/promises";var L=e({AGENT_TASK_PREFIX:()=>R,agentInstructions:()=>Z,agentSystemPrompt:()=>X,agentTaskOptions:()=>J,builtinArgs:()=>q,builtinTaskArgs:()=>G,defaultTask:()=>$,execAgent:()=>U,postReply:()=>V,renderContext:()=>Q,startAgentMailbox:()=>ie,taskFromEvent:()=>z,threadReply:()=>B,waitForAgentTask:()=>W});const R=`agent:`;function z(e,t,n){let r=b[n.integration];return{id:`local-${n.deliveryId}-${e.id}`,source:n.integration,agent:e.id,flow:t,runner:`local`,event:n,definition:e.definition,...e.usage?{usage:e.usage}:{},tools:r?{[n.integration]:v(e,n.integration,r)}:{}}}function B(e,t,n){let r=t?.finalMessage?.trim();if(r)return{text:r,problem:!1};let i=t?.error?.message?.trim()??``;return n?{text:i,problem:!1}:{text:e.failureReply??i,problem:!0}}async function V(e,t,n,r,i=e.id,a=!1){if(!t.chat)throw Error(`The ${t.integration} event has no thread to reply in`);let[{Chat:o},{LocalChatState:s}]=await Promise.all([import(`./dist-BTornX7Y.js`).then(e=>e.a),import(`./chat-Bbzlea60.js`).then(e=>e.r)]),c=await e.adapter({fetch,appId:t.appId.slice(e.id.length+1),name:i,installationId:t.installationId,token:async()=>r,privateState:()=>new s}),l=new o({userName:i,adapters:{[e.id]:c},state:new s,logger:`error`});await l.initialize();let u=l.thread(t.chat.thread.id),d=c.postProblem;a&&d?await d.call(c,t.chat.thread.id,n):c.reply&&t.chat.message?.id?await u.reply(t.chat.message.id,n):await u.post(n)}function H(e,t){return Object.fromEntries(Object.keys(e.tools).map(n=>[n,t[D(n)]??(n===e.event?.integration?t.APP_TOKEN:void 0)]))}async function U(e){let{cwd:t,flow:n}=e,i=a(t),o=await g(t,b),s=e.task;!s&&e.taskFile&&(s={...JSON.parse(await I.readFile(j.resolve(t,e.taskFile),`utf8`)),flow:n});let c=o.find(t=>t.id===e.agent);if(!c&&s&&(c={id:s.agent,name:s.definition.name??s.agent,definition:_(s.agent,s.definition),...s.usage?{usage:s.usage}:{},...s.files?{files:s.files}:{},builtin:!1}),!c)throw Error(`No agent named "${e.agent}".`);s??=await K(t,c,n,e);let l=s.event,d=l&&b[l.integration];if(l&&!d)throw Error(`Unknown integration "${l.integration}".`);let f=r(e.connections??{},e.connectionEnv),h=r(Object.fromEntries(O(s,e.toolEnvironment?.tokens??H(s,M.env)).map(e=>[`native:${e.name}`,{...e,resolved:!0}])));if(n==="default"){let r=$(c,s),a=e.noteFile?void 0:await I.mkdtemp(j.join(F.tmpdir(),`coder-note-`)),o=e.noteFile??j.join(a,`note`);e.noteFile||await I.writeFile(o,s.context?.note??``);let g=u(y(c),i),_=m(s.mcp?.join(`,`),i.mcp,c.definition.mcp,f.mcp),v=[...Object.values(h.mcp),A(o),..._.mcp],b=e.resumeTaskId?{taskId:e.resumeTaskId}:await p({taskId:e.taskId,mcp:v,mcpBindings:_.mcpBindings,mcpWarnings:_.warnings,nativeMcp:_.nativeMcp,connectionEnv:{...f.env,...h.env},connections:s.connections,cwd:t,agentId:s.agent,...s.author?{author:s.author}:{},...l?.repo?{repo:`${l.repo.owner}/${l.repo.name}`}:{},...e.source?{source:e.source}:{name:`${R}${s.id}`},engine:g.engine,model:g.model??void 0,effort:g.effort??void 0,permissions:s.permissions??g.permissions,system:r.system,prompt:r.prompt,outputSchema:s.context?.outputSchema,wait:!0});await e.onTask?.(b.taskId);let x=await W(t,b.taskId,e.onApproval),{text:S,problem:C}=B(s,x.result,x.status===`cancelled`),w=(await I.readFile(o,`utf8`).catch(()=>``)).trim();a&&await I.rm(a,{recursive:!0,force:!0});let T=e.post!==!1&&!!d&&!!S;return T&&await V(d,l,S,e.postToken??M.env.APP_TOKEN,s.author,C),{ok:x.status===`completed`,flow:n,reply:S,posted:T,taskId:b.taskId,tokens:x.result?.tokens??void 0,...w===(s.context?.note??``).trim()?{}:{note:w}}}let v=x(n,t),S=v.scope===`builtin`?{...await G(s,c,e.post!==!1),cwd:t,...s.args}:s.args??l,w=await C(v.path,{cwd:t,...e.taskId?{runId:e.taskId}:{},args:S,ceiling:{agent:c.id,permissions:s.permissions??u(y(c),i).permissions},...e.postToken?{integrationToken:e.postToken}:{},connections:{mcp:{...f.mcp,...h.mcp},env:{...f.env,...h.env},ids:s.connections??[]}},{...e.onTask?{onTaskStart:t=>e.onTask(t.taskId)}:{},...e.onStart?{onStart:e.onStart}:{}});return{ok:!0,flow:n,runId:w.runId,result:w.result,tokens:w.tokens}}async function W(e,t,n,r=d,i=()=>new Promise(e=>setTimeout(e,100))){let a;for(;;)try{return await r(e,t)}catch(e){if(!(e instanceof s)||e.code!==`approval-pending`||!n)throw e;e.approval?.id!==a&&(a=e.approval?.id,await n(e.approval)),await i()}}async function G(e,t,n=!0){if(!e.event)throw Error(`built-in flows need a GitHub pull request event`);return{...await q(e.event,t,e.context,e.author,n),...y(t),...e.permissions?{permissions:e.permissions}:{}}}async function K(e,t,n,r){if(r.taskFile){let t=JSON.parse(await I.readFile(j.resolve(e,r.taskFile),`utf8`));return{...t,flow:n,tools:t.tools??{}}}if(!r.eventFile)throw Error(`Missing --task or --event file.`);return z(t,n,JSON.parse(await I.readFile(j.resolve(e,r.eventFile),`utf8`)))}function q(e,t,n,r,i=!0){let a=b[e.integration]?.repos?.pullRequest(e);if(!a)throw Error(`built-in flows need a pull request event`);return{pr:a,post:i,...r?{author:r}:{}}}async function J(e,t,r,o,c){let l=await g(e,b),u=l.find(e=>e.id===t);if(!u)throw new s(`invalid-option`,`No agent named "${t}".`,{hint:`Agents here: ${l.map(e=>e.id).join(`, `)}`});let{definition:d,usage:f}=u,p=o===void 0?await n(i(f?.connections,c)):void 0,h=d.mcp??{},_=m(r,a(e).mcp,h,o??p?.mcp);return{engine:f?.engine??d.engine,model:f?.model??d.model,effort:f?.effort??d.effort,permissions:f?.permissions??d.permissions,system:Z(u)||void 0,..._,mcpWarnings:_.warnings,connections:f?.connections,...p?{connected:p}:{}}}const Y=48e3;function X(e){let t=[`You are an agent named "{name}" acting on behalf of a software team. You receive one request, a platform event or a task, and must produce the reply that goes back to its thread verbatim. Be direct and specific, use the attached tools to read context before answering, never invent facts about the repository, and stay within the actions your tools allow. Reply in plain markdown with no preamble.`.replace(`{name}`,e.definition.name??e.id)];e.definition.description&&t.push(`Your role: ${e.definition.description}`);let n=Z(e);return n&&t.push(`## Agent instructions\n\n${n}`),t.join(`
2
-
3
- `)}function Z(e){if(!e.dir)return te(e.files??{});let t;try{t=ee(e.dir).filter(e=>e.endsWith(`.md`))}catch{return``}t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${N(j.join(e.dir,r),`utf8`).trim()}\n`;if(n+=t.slice(0,Y-n.length),n.length===Y)break}return n.trimEnd()}function te(e){let t=Object.keys(e).filter(e=>e.endsWith(`.md`));t.sort((e,t)=>e===`system.md`?-1:t===`system.md`?1:e.localeCompare(t));let n=``;for(let r of t){let t=`### ${r}\n\n${e[r].trim()}\n`;if(n+=t.slice(0,Y-n.length),n.length===Y)break}return n.trimEnd()}function ne(e){let t=[`**Integration:** ${e.integration}`,`**Type:** ${e.type}`,`**Actor:** ${e.actor.login??e.actor.id}`];return e.repo&&t.push(`**Repo:** ${e.repo.owner}/${e.repo.name}`),e.chat&&t.push(`**Thread:** ${e.chat.thread.id}${e.chat.thread.isDM?` (direct message)`:``}`),[t.join(`
4
- `),e.promptContext,e.text].filter(Boolean).join(`
5
-
6
- `)}function Q(e){if(!e)return``;let t=[];return e.messages?.length&&t.push(`## Recent thread\n\n${e.messages.map(e=>`- ${e.user}: ${e.text}`).join(`
7
- `)}`),e.note&&t.push(`## Note from earlier in this thread\n\n${e.note}`),e.instructions&&t.push(`## Repository instructions\n\n${e.instructions}`),e.user&&t.push(`## Who asked\n\n${e.user.name} (${e.user.email}), a member of this Coder server.`),t.join(`
8
-
9
- `)}function re({event:e,prompt:t}){return t===void 0?e?ne(e):``:e?.repo?`**Repo:** ${e.repo.owner}/${e.repo.name}\n\n${t}`:t}function $(e,t){let n=Q(t.context),r=t.prompt===void 0&&t.event?b[t.event.integration]?.hint:void 0,i=re(t);return{system:[X(e),r?`## Platform\n\n${r}`:``].filter(Boolean).join(`
10
-
11
- `),prompt:n?`${i}\n\n${n}`:i}}function ie(e,n){let i=o(e,n);if(!i)return()=>{};let a={agent:n.agentId,permissions:n.permissions??`auto`},u=P(e),m=new Map((n.mcp??[]).map(e=>[e.name,e])),g=n.connectionSource??(n.connections?`server`:void 0),_=e=>{if(!e.command)return e;let[t]=c([e],M.env,u);if(!t)throw Error(`MCP server "${e.name}" is not approved.`);return{...e,command:t.command,args:t.args}},v=e=>{try{return P(e)}catch{return null}},y=[e,...n.addDirs??[]].flatMap(e=>v(j.resolve(e))??[]),b=e=>y.some(t=>e===t||e.startsWith(t+j.sep)),x=new Map,C=new Set,D=()=>{let e=k(c(n.mcp),w);return e?{token:e}:{}};return h(i,{async dispatch(e){let t=e.name??`task`;if(e.mcp!==void 0&&(typeof e.mcp!=`string`||/^[\[{]/.test(e.mcp.trim())))throw new s(`invalid-option`,`Mailbox MCP selections must be server names.`);let r=(e.mcp??``).split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let t=e===`all`?void 0:m.get(e);if(!t)throw new s(`invalid-option`,`MCP server "${e}" is not authorized for agent "${a.agent}".`);return _(t)});for(let e of n.connections??[]){let t=[...m.values()].find(t=>t.connection===e||!t.connection&&t.name===e);t&&!r.some(e=>e.name===t.name)&&r.push(_(t))}let i=j.resolve(String(e.cwd??u));if(v(i)!==v(u)&&r.some(e=>e.command))throw new s(`invalid-option`,`Inherited stdio MCP servers do not allow a cwd override.`);let o=[i,...(e.addDirs??[]).map(e=>j.resolve(i,e))],c=o.find(e=>!v(e));if(c)throw new s(`invalid-option`,`task "${t}" asks for ${c}, which does not exist`);let[l,...d]=o.map(e=>v(e)),h=[l,...d].find(e=>!b(e));if(h)throw new s(`invalid-option`,`task "${t}" asks for ${h}, outside the workspace of agent "${a.agent}"`);let y=await p({prompt:String(e.prompt??``),outputSchema:e.outputSchema,cwd:l,engine:e.engine,model:e.model,effort:e.effort,mcp:r,connections:n.connections,connectionSource:g,permissions:f(t,e.permissions,a),name:e.name,system:e.system,addDirs:d,flowRunId:e.flowRunId,wait:!0},{fromMailbox:!0});return x.set(y.taskId,l),{taskId:y.taskId}},async steer(e){let i=x.get(e.taskId);if(!i)throw new s(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let o=t(i,e.taskId);if(!o)throw new s(`invalid-option`,`No task "${e.taskId}".`);return S(i,o,String(e.text??``),{...g===`server`?{resolveConnections:async e=>({...r(Object.fromEntries(c(n.mcp,M.env,u).flatMap(t=>{let n=t.connection??t.name;return e.includes(n)?[[n,_(t)]]:[]}))),warnings:[]})}:{},model:e.model,effort:e.effort,permissions:e.permissions?f(o.name,e.permissions,a):void 0})},async wait(e){let t=x.get(e.taskId);if(!t)throw new s(`invalid-option`,`No task "${e.taskId}" started by this flow.`);let n=await d(t,e.taskId);return{status:n.status,result:n.result,model:n.task.model??null,next:l(t,n)??null}},review(t){if(t.op===`resolveTarget`){let{repo:r,...i}=t.input??{};if(!n.repo&&!/^\d+$/.test(String(i.pr)))throw new s(`invalid-option`,`review target must be a pull request number in this task's repository`);let a=E({...i,cwd:e,...n.repo?{repo:n.repo}:{},...n.author?{author:n.author}:{}},D());return a.pr&&C.add(`${a.pr.repo}#${a.pr.number}`),a}if(t.op!==`post`)throw new s(`invalid-option`,`unknown review action "${t.op}"`);if(!C.has(`${t.input?.repo}#${t.input?.pr}`))throw new s(`invalid-option`,`review post: pull request was not resolved by this task`);return T({...t.input,cwd:e},D())}})}export{z as a,L as i,J as n,B as o,U as r,R as t};