@wular/coder 0.4.12 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/README.md +3 -3
  2. package/dist/actions-CkMAM1Km.js +3 -0
  3. package/dist/agent-Bi5nbUhA.js +1 -0
  4. package/dist/app-server-BTpa5GBV.js +6 -0
  5. package/dist/approvals-CRwkc9vB.js +5 -0
  6. package/dist/apps-B6mUToTa.js +18 -0
  7. package/dist/args-CJsHYWbt.js +66 -0
  8. package/dist/async-CNhQ4wyZ.js +3 -0
  9. package/dist/auth-oCvlHitk.js +1 -0
  10. package/dist/builtin/coder/agent.json +6 -7
  11. package/dist/builtin/coder/system.md +5 -6
  12. package/dist/chat-4AiZEqKh.js +13 -0
  13. package/dist/{chat-bwKd3y6V.js → chat-Bfu9XKRa.js} +1 -1
  14. package/dist/cli.js +16 -11
  15. package/dist/{client-C4QCT6cG.js → client-nBo9Mhsr.js} +4 -4
  16. package/dist/cmd-Cu3OquA_.js +122 -0
  17. package/dist/config-D_RuO6gX.js +5 -0
  18. package/dist/connection-BXjn7gCC.js +1 -0
  19. package/dist/connections-Cswv7r8Z.js +2 -0
  20. package/dist/context-CFrDYenS.js +6 -0
  21. package/dist/crypto-Ittsv-m4.js +1 -0
  22. package/dist/dash/standalone/server/build-index.json +1 -1
  23. package/dist/dash/standalone/server/manifest.json +1686 -1428
  24. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/event-json.856d33f567e58d0e.js +30 -0
  25. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/http.e78b470f4ecf125b.js +58 -0
  26. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.0de14cb4e30bd70d.js → index.54c45900f2153d34.js} +57 -77
  27. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/task/{log-view.60308a11f7001eb7.js → view.e20379d8f741754a.js} +78 -48
  28. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/types.5bf5a41cedb54154.js +37 -0
  29. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.be791a5eaf328738.js → load.252f972b42c690e2.js} +18 -11
  30. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.70913bd4075da914.js → page.11efd0e175db9053.js} +24 -4
  31. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{loading.e348ec45e9ed951b.js → loading.56c14183236be231.js} +2 -2
  32. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.61aab176baeefebd.js → notify.59ae138dc182d7c3.js} +1 -1
  33. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.815371ed0d5dd4fa.js → page.e9386951cedea737.js} +9 -9
  34. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.1d6af804f9ec043d.js → sign-out.713d3ec10951fde5.js} +4 -4
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agent-menu.2ed0e66d131fc148.js → agent-menu.5c780867b82081b1.js} +3 -3
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.f43bcc1148ce3650.js → agents-grid.f989d6f2d9ece6e4.js} +9 -9
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{loading.fac1132ad9c4248e.js → loading.0130f8533d8f1b1e.js} +4 -4
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.0f88720e52db99a2.js +48 -0
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.a795379254982121.js → layout.8d2f0997462fc958.js} +90 -33
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{loading.388aeaf0c2edf8f8.js → loading.90bf37c903ce6f0d.js} +1 -1
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.a2cb6d1f1714259a.js → page.bc93891522c8120d.js} +22 -88
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{loading.4da9e2ba3fea937f.js → loading.d56ef50b0694f975.js} +2 -2
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.996172c951739b35.js → page.cf5cf9afe38ab0e4.js} +51 -111
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.8e7ca54dd1821e98.js → platform-actions.c44c7df7841719f2.js} +235 -109
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-state.6b6132518ca61635.js +21 -0
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/platform-step.6e90cbfe308f28a0.js +82 -0
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.aa9e157d141481d7.js → agent-settings-form.61de585104c2be10.js} +44 -66
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{loading.ad1a4c9b000d269a.js → loading.2800c65e45a4a1d9.js} +1 -1
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.44d886e60ae04303.js → page.4d06f759984a63b3.js} +11 -11
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.521c9e7b8d77f557.js → loading.ea2925eab1d2e594.js} +1 -1
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.828cfb8112404792.js → page.fb069bf82b727d27.js} +1 -1
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{loading.8f998a9c511e1fb3.js → loading.3a615597ca648452.js} +4 -4
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.45e18b6dc3019af4.js → page.0a472a0e269b8c01.js} +6 -6
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.c8d76988c734dda2.js → versions-list.7ef7dfd5d8f5de43.js} +3 -3
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.b1367e864b4fb406.js → loading.007326a04f05d46c.js} +5 -5
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.dd11f2618e08becd.js → page.a26aa7bc6ab655f0.js} +10 -10
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/app-cards.361918fe58349aa1.js +142 -0
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/loading.f0d91d48e2b79e50.js +14 -0
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/platforms/[app]/page.3f60cf67517d0d31.js +99 -0
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-pills.f987c12bcbc5c850.js → agent-pills.1012e04bfbc7bffd.js} +5 -5
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.1579dc8acbaacf92.js → agent-toggle.ffbf9a8b8b2fbde7.js} +3 -3
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.ad5cc342db794e5d.js → hero.0ae015a4fbe6321e.js} +6 -6
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{instructions.85b1cd986a9edbb5.js → instructions.1b8c9189961c5a4f.js} +13 -4
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.43b4b28f194ea842.js → connect-repositories.9abe365f0098d358.js} +1 -1
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.776856fe1ed1a642.js → editor.6548f8f757578f90.js} +164 -116
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.eafa5b41a2ed571f.js → import-picker.577b1d84c7ab84e1.js} +11 -11
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{loading.ee001af7a96e3972.js → loading.9b65a8c1cdc8346f.js} +5 -5
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.7d84ef2b178b34d2.js → page.2b326d00ccef5544.js} +9 -8
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.393cf7429eea189e.js → layout.45a09107b19f0a7e.js} +89 -26
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.f8d679f2d06b0ebc.js +155 -0
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.980adfb7c5714752.js → page.5aa3ddc669366703.js} +37 -10
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.24a1987405ed7b17.js → page.5a5188f0fc75dcd2.js} +1 -1
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/advanced-list.73cdadb2968a39d2.js +63 -0
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connection-add.353ec01fbb814f78.js +526 -0
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.cf4061ae909272c3.js +439 -0
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.683476f62a9ecde7.js → credentials-list.fc4cff0289267551.js} +120 -103
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.b43dd3d97c536c2a.js → credentials.db01de2581ac65f3.js} +9 -9
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.e7d6a422f6a869ea.js +201 -0
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{loading.7ca95dcb4fb3362b.js → loading.71ca4f6c99a8a9d5.js} +1 -1
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.acb92b39cab1d11c.js +635 -0
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.dfed4ae6ffc74434.js → page.95fe939e36e5be55.js} +67 -41
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.3afa989490bbe77c.js → runners-list.5764eac3307d67cc.js} +42 -37
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.0d175ee815b22cd7.js → secrets-list.d316bb157f747f6c.js} +19 -17
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/chain-hint.65c4cc04c78e8bfd.js +18 -0
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.3e8289f888fa444c.js → layout.4eb70f2de8674f93.js} +7 -7
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.dc630cb6e2cbf83a.js +150 -0
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-pick.a143e77f5ed5f9d3.js +160 -0
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.06feaa5fbb06f1e6.js → page.70cad0e981c33fa5.js} +1 -1
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{settings-head.bbc7ced8dd5491eb.js → settings-head.004ced21e02ffa48.js} +5 -5
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{tunnel-guide.29eee1a0b1852168.js → tunnel-guide.1bc6bff9d8019098.js} +1 -1
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.ff95e4b6977d0474.js → create-link.18bd2b92cd23b73f.js} +5 -5
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome-dialog.894c73f9abee3ce1.js → outcome-dialog.a74e686aaed0c584.js} +3 -3
  93. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/outcome-toast.95f7be49430248eb.js +24 -0
  94. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{outcome.cbbc8cd1bbbee01b.js → outcome.22a83d756e4020a7.js} +3 -6
  95. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.f06fda0df59beeb5.js → page.e39ee9236664d043.js} +8 -8
  96. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.3c79cf14feff12bf.js → activity.441e82ab00344fb2.js} +12 -6
  97. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{loading.47cbb34ea8d2e33f.js → loading.779ecdd9c9d2ff09.js} +6 -6
  98. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.abed2a8424ef3da0.js → page.24e121ea6eb578ba.js} +16 -9
  99. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.4a4052a38db4bad3.js +408 -0
  100. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-missing.33ec27a4a5eafefe.js +27 -0
  101. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.dc294bb94b7437e1.js → task-view.0cd3ec2655f44cc7.js} +53 -44
  102. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer-data.309a194fc7fa34be.js → composer-data.73225456d60d63e3.js} +4 -6
  103. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.5072aacdce127689.js → composer.ee326fbf5e526fb1.js} +114 -121
  104. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/pending-approvals.7607998094780fdd.js +40 -0
  105. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/status.d2c05c397780b833.js +25 -0
  106. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{task.0a1b5878dccd3b37.js → task.a25847399a4dfb30.js} +14 -18
  107. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.1162926f7498c732.js → tasks-list.e486cbd16ea3e963.js} +62 -39
  108. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.1d687c986db53a73.js → tasks-section.01510523d1556d59.js} +16 -10
  109. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.d5d8cb5033823c9c.js → page.ede64f82388f9480.js} +5 -5
  110. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{custom-range.2e21c7f891966c15.js → custom-range.fe91164d7a311356.js} +3 -3
  111. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{day-chart.261b6651df2d3966.js → day-chart.20faaaf57c81ad9e.js} +1 -1
  112. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{loading.97d277dbab9c15cf.js → loading.5b973a8bb29197d5.js} +3 -3
  113. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.fb21ebe90d49dac1.js → page.0499098badd3f5f8.js} +7 -7
  114. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{range-bar.2197d8f43216d104.js → range-bar.0b9038e9df707843.js} +5 -5
  115. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{top-agents.18fc469e781e2305.js → top-agents.93c916167299ffb6.js} +2 -2
  116. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{layout.185dbc99875e208a.js → layout.94ea3908b03bede6.js} +2 -2
  117. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/login/{page.a82be2fd23e9ac67.js → page.4827d64c71c0690a.js} +2 -2
  118. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{drawer.d3e61538dbc8ec39.js → drawer.1a08ff611df7fe38.js} +2 -2
  119. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{foreign-link.1f4217895ff1e835.js → foreign-link.1d4f63a0379cbd1d.js} +3 -3
  120. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{loading-card.cc76fc9708142525.js → loading-card.77bea8c5870b5d3c.js} +5 -5
  121. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{page-head.85f15db7b648d48c.js → page-head.2eb1e0213eb50349.js} +5 -4
  122. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.e2915852cf82c86b.js → stream.e3800e736f832124.js} +2 -2
  123. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.0ed8ccaae81b9d53.js → task-toasts.3b7eeee29fc327de.js} +29 -19
  124. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{theme-choices.85100ed66d6f9200.js → theme-choices.fc86071c1b634176.js} +2 -2
  125. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{back.180765bdadf6d602.js → back.7aa0ae82dbec38cd.js} +3 -3
  126. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{org.572ad93c7707ab27.js → org.853d173b55368728.js} +1 -1
  127. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/nav/{side-toggle.489faf1a259479f7.js → side-toggle.be7d2a7529557435.js} +2 -2
  128. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{badge.c0bc352791a95fd6.js → badge.9f63fd615cf0ee22.js} +2 -2
  129. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{button.ce9e6cdb08ca86db.js → button.b62fa52e18fa338b.js} +2 -2
  130. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{card.9f0d45b73bc78b4f.js → card.c0030eafd76587e3.js} +21 -9
  131. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{collapse.93e4d1b20c2873ed.js → collapse.eb578fdf42029754.js} +1 -1
  132. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{combo.54270c0251466fda.js → combo.e4e08287494081a3.js} +2 -2
  133. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{confirm.c1281f9b12854210.js → confirm.e21b7f5e486dafb8.js} +3 -3
  134. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{copy.bd6fc1577a393965.js → copy.043e0695c08c72f9.js} +2 -2
  135. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{filter.3a452a262f040973.js → filter.0730dccad6332327.js} +6 -6
  136. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{icons.e36c72f54750663a.js → icons.f769275420d072ce.js} +4 -0
  137. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu-items.1d082ac4dae8f3d4.js → menu-items.759a1b1f7c5ee365.js} +2 -2
  138. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{menu.ee45bace979944b6.js → menu.7f558c7c6f6345d5.js} +3 -3
  139. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.25d53e5b41b9c4e5.js → modal.08ac85d31f4c76c1.js} +8 -7
  140. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/modal.a533234c7c831be4.css.pnext-asset.js +0 -0
  141. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.a08dc08338d080e9.js → segmented.633abe26ff760e37.js} +1 -1
  142. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/segmented.c6f30b839fd27f35.css.pnext-asset.js +0 -0
  143. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{select.2eb33e5bea28d804.js → select.0ee9e8f04ddd8b47.js} +9 -6
  144. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.17cffebfc3103b9f.js → sentinel.0ddf515b8f09ef9f.js} +1 -1
  145. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/sentinel.d17e2bfcbeb9df31.css.pnext-asset.js +0 -0
  146. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/tabs.025b532d6cc51736.css.pnext-asset.js +0 -0
  147. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.66b2e54963f6901b.js → tabs.1600a0b563a5c7dd.js} +1 -1
  148. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tail.04132db0c5033d4f.js → tail.7eb303330802ac18.js} +2 -2
  149. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/toolbar.cdbd0357f2c5e1fe.css.pnext-asset.js +0 -0
  150. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.24036899654de6df.js → toolbar.ff8367c641d28c1e.js} +3 -3
  151. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.b9a5c37272250e82.js → action.f22057e7dfac40fe.js} +1 -1
  152. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.a3928fa2dcd27b75.js → client.c8d7efefb6194d7d.js} +1 -1
  153. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/routes/http.394704f4f12ada08.js +165 -0
  154. package/dist/dash/standalone/server/modules-server-server-react-server/src/utils/crypto.24a6439ff8d10d3d.js +11 -0
  155. package/dist/dash/standalone/static/assets/chunks/advanced-list-850a950afe4f6996.js +1 -0
  156. package/dist/dash/standalone/static/assets/chunks/agent-pills-9f6fa120182db948.js +2 -0
  157. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-a8ee12513a02b1c5.js +1 -0
  158. package/dist/dash/standalone/static/assets/chunks/agent-toggle-521136f20a71400d.js +1 -0
  159. package/dist/dash/standalone/static/assets/chunks/agents-grid-bcd13cd7a46224a6.js +1 -0
  160. package/dist/dash/standalone/static/assets/chunks/{back-fa9d6e37f9828093.js → back-2d67134b122334f4.js} +1 -1
  161. package/dist/dash/standalone/static/assets/chunks/chain-hint-53675e299a865420.js +1 -0
  162. package/dist/dash/standalone/static/assets/chunks/{combo-86f3e11d1f6f6cee.js → combo-cb2c62fe580a8903.js} +1 -1
  163. package/dist/dash/standalone/static/assets/chunks/composer-4a46a458495ce3ba.js +1 -0
  164. package/dist/dash/standalone/static/assets/chunks/composer-92553de43276510b.js +1 -0
  165. package/dist/dash/standalone/static/assets/chunks/composer-data-890f71bade4f0616.js +1 -0
  166. package/dist/dash/standalone/static/assets/chunks/{confirm-c29a1db0130638d2.js → confirm-d6b2c5b1deccd1e8.js} +1 -1
  167. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-0de82daaf654b1d3.js → connect-repositories-226bf70aa81c29d8.js} +1 -1
  168. package/dist/dash/standalone/static/assets/chunks/connections-list-a33d6637e2d52fcf.js +1 -0
  169. package/dist/dash/standalone/static/assets/chunks/{copy-445c11202f136275.js → copy-294c6052b3b69424.js} +1 -1
  170. package/dist/dash/standalone/static/assets/chunks/create-link-b2480a7601967e94.js +1 -0
  171. package/dist/dash/standalone/static/assets/chunks/credentials-list-90fc1c6d202e1461.js +1 -0
  172. package/dist/dash/standalone/static/assets/chunks/custom-range-efa1b6a71ba84597.js +1 -0
  173. package/dist/dash/standalone/static/assets/chunks/editor-53a3e1a893644fff.js +6 -0
  174. package/dist/dash/standalone/static/assets/chunks/{field-b82a0f895266791c.js → field-4d374d5ed3f43d7e.js} +1 -1
  175. package/dist/dash/standalone/static/assets/chunks/instructions-734d21dfb8f6393e.js +1 -0
  176. package/dist/dash/standalone/static/assets/chunks/instructions-d3dc01b2f90820db.js +2 -0
  177. package/dist/dash/standalone/static/assets/chunks/list-16247e39898cd20e.js +1 -0
  178. package/dist/dash/standalone/static/assets/chunks/model-options-d29e934a3de20ab4.js +1 -0
  179. package/dist/dash/standalone/static/assets/chunks/models-list-6d93523660503dfb.js +1 -0
  180. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-5cf575a5e6921a5d.js → outcome-dialog-755fc581cbc2836e.js} +1 -1
  181. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-77e13c848000a3dc.js +1 -0
  182. package/dist/dash/standalone/static/assets/chunks/outcome-toast-9d5e9713c23882f5.js +1 -0
  183. package/dist/dash/standalone/static/assets/chunks/platform-actions-08e9b3816dcd62b1.js +1 -0
  184. package/dist/dash/standalone/static/assets/chunks/platform-actions-832904f5694ef902.js +1 -0
  185. package/dist/dash/standalone/static/assets/chunks/platform-step-29469fd4eaddc42a.js +1 -0
  186. package/dist/dash/standalone/static/assets/chunks/platform-step-5881a8be1e761e00.js +1 -0
  187. package/dist/dash/standalone/static/assets/chunks/runners-list-dd759d408c643a29.js +1 -0
  188. package/dist/dash/standalone/static/assets/chunks/{runtime-6e12333f12903a62-1.js → runtime-9b28886f3cbe0ed3-1.js} +1 -1
  189. package/dist/dash/standalone/static/assets/chunks/secrets-list-be1f634a1b077baa.js +1 -0
  190. package/dist/dash/standalone/static/assets/chunks/segmented-f646bfa8aa0aa449.js +1 -0
  191. package/dist/dash/standalone/static/assets/chunks/shared-init-926144b364908b3c.js +9 -0
  192. package/dist/dash/standalone/static/assets/chunks/shared-init-953965859f7bf6b9.js +1 -0
  193. package/dist/dash/standalone/static/assets/chunks/shared-init-9b28886f3cbe0ed3-2.js +1 -0
  194. package/dist/dash/standalone/static/assets/chunks/shared-init-b42d2c06c25d1e2b.js +1 -0
  195. package/dist/dash/standalone/static/assets/chunks/side-toggle-8c21d39a1e284887.js +1 -0
  196. package/dist/dash/standalone/static/assets/chunks/{tail-b1c46587301ef397.js → tail-d13c4cc0cf11ffd1.js} +1 -1
  197. package/dist/dash/standalone/static/assets/chunks/task-423e6a3f2527f534.js +1 -0
  198. package/dist/dash/standalone/static/assets/chunks/task-actions-5917357eac6504ca.js +3 -0
  199. package/dist/dash/standalone/static/assets/chunks/task-view-c6ee43d2ddb6db90.js +3 -0
  200. package/dist/dash/standalone/static/assets/chunks/tasks-list-2c5ce592e00fda45.js +1 -0
  201. package/dist/dash/standalone/static/assets/chunks/versions-list-177ae397ad64dcea.js +1 -0
  202. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-6e12333f12903a62-0.js → wular-pnext-9b28886f3cbe0ed3-0.js} +1 -1
  203. package/dist/dash/standalone/static/assets/create-param-id-2c72f3e32e7f8b8d.css +1 -0
  204. package/dist/dash/standalone/static/assets/dash-param-org-a7f30a8c5a6fa651.css +1 -0
  205. package/dist/dash/standalone/static/assets/dash-param-org-account-76fffb9337b633f2.css +1 -0
  206. package/dist/dash/standalone/static/assets/dash-param-org-agents-cc5d59edfc3cf0b1.css +1 -0
  207. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-170499c849114150.css +1 -0
  208. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-00243b34eb094b95.css +1 -0
  209. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-199a9991de1bf2d9.css +1 -0
  210. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-25ae07e0b3f5b252.css +1 -0
  211. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-param-app-a6d559f0e26bd01b.css +1 -0
  212. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-9f8faa8f7d714699.css +1 -0
  213. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-129adcdc293ceac8.css +1 -0
  214. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-0e037c66e3977f33.css +1 -0
  215. package/dist/dash/standalone/static/assets/dash-param-org-operator-8d5ef55834d8deba.css +1 -0
  216. package/dist/dash/standalone/static/assets/dash-param-org-settings-7138821f5422d087.css +1 -0
  217. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-586fec34f285e9cb.css +1 -0
  218. package/dist/dash/standalone/static/assets/dash-param-org-setup-67679c1f84f352cf.css +1 -0
  219. package/dist/dash/standalone/static/assets/dash-param-org-tasks-8a44e171984d32a1.css +1 -0
  220. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-b9d3a7a1bd1dd666.css +1 -0
  221. package/dist/dash/standalone/static/assets/dash-param-org-usage-c534db20ce538fd2.css +1 -0
  222. package/dist/dash/standalone/static/assets/global-df2c26ad15039e8a.css +1 -0
  223. package/dist/dash/standalone/static/assets/{login-9760b85feae40270.css → login-148795638d6ff5d4.css} +1 -1
  224. package/dist/dash/standalone/static/assets/pnext-client-095026242a079175.js +1 -0
  225. package/dist/dash/standalone/static/assets/pnext-client-1dfeb8c3ef155f87.js +1 -0
  226. package/dist/dash/standalone/static/assets/pnext-client-2358423351524403.js +1 -0
  227. package/dist/dash/standalone/static/assets/pnext-client-28a6557216627768.js +1 -0
  228. package/dist/dash/standalone/static/assets/pnext-client-31a4ee73945fee19.js +1 -0
  229. package/dist/dash/standalone/static/assets/pnext-client-3dfdc76bb8712b82.js +1 -0
  230. package/dist/dash/standalone/static/assets/pnext-client-4355ac87961d78c1.js +1 -0
  231. package/dist/dash/standalone/static/assets/pnext-client-43c7a0046572e0c9.js +1 -0
  232. package/dist/dash/standalone/static/assets/pnext-client-53dc7db68d67e0b1.js +1 -0
  233. package/dist/dash/standalone/static/assets/pnext-client-5835cb35488bdf7f.js +1 -0
  234. package/dist/dash/standalone/static/assets/pnext-client-638b390bc23ab1ae.js +1 -0
  235. package/dist/dash/standalone/static/assets/pnext-client-67f832c6c51a66cd.js +1 -0
  236. package/dist/dash/standalone/static/assets/pnext-client-6fc99f0abe77c2ea.js +1 -0
  237. package/dist/dash/standalone/static/assets/pnext-client-7d99965f28ac7604.js +1 -0
  238. package/dist/dash/standalone/static/assets/pnext-client-7ecbd7a0cbe4e231.js +1 -0
  239. package/dist/dash/standalone/static/assets/pnext-client-8250bd3b86d038a3.js +1 -0
  240. package/dist/dash/standalone/static/assets/pnext-client-bfd06805a43c6dee.js +1 -0
  241. package/dist/dash/standalone/static/assets/pnext-client-ce2943f17e9d9ac3.js +1 -0
  242. package/dist/dash/standalone/static/assets/pnext-client-ed31510d4615a5a5.js +1 -0
  243. package/dist/dash/standalone/static/assets/pnext-client-f0496bf51e161ddd.js +1 -0
  244. package/dist/definition-4on4SG5J.js +1 -0
  245. package/dist/discover-DvzAbQvU.js +1 -0
  246. package/dist/dispatch-BaW2X6Sc.js +12 -0
  247. package/dist/{dist-DAnSqY1s.js → dist-B5qUdWUG.js} +35 -35
  248. package/dist/{dist-B2jiMMxZ.js → dist-Clxdruuu.js} +3 -3
  249. package/dist/{dist-ClCNj65n.js → dist-CymLGfHl.js} +4 -4
  250. package/dist/{adapter-CVd5klMH.js → dist-DX0JzVC6.js} +990 -990
  251. package/dist/{adapter-CU9H4g6c.js → dist-DfD9WmV8.js} +39 -39
  252. package/dist/dist-node-B8VIVzUc.js +20 -0
  253. package/dist/docs-CbgaMPvq.js +2 -0
  254. package/dist/drive-Tk6JvQK5.js +1 -0
  255. package/dist/drizzle-orm-CYU7WOQS.js +2 -0
  256. package/dist/emit-BgeqsCkC.js +11 -0
  257. package/dist/env-_AxrvBXP.js +1 -0
  258. package/dist/errors-DK_trCff.js +1 -0
  259. package/dist/exec-CAaYFJD1.js +3 -0
  260. package/dist/executor-Chc0zawh.js +11 -0
  261. package/dist/flow/builtin/review/index.d.ts +2 -2
  262. package/dist/flow/builtin/review/index.js +9 -9
  263. package/dist/flow/index.d.ts +1 -1
  264. package/dist/flow/index.js +1 -1
  265. package/dist/github-actions-2RjyRseX.js +36 -0
  266. package/dist/hook-COWDSO4a.js +1 -0
  267. package/dist/http-615JJgHo.js +5 -0
  268. package/dist/http-DRk8cDjf.js +1 -0
  269. package/dist/{index-BdkdNI1v.d.ts → index-ezhbF5wC.d.ts} +369 -413
  270. package/dist/integrations-BVmsk64f.js +9 -0
  271. package/dist/lib/broker.js +2 -2
  272. package/dist/load-PqaDHiHX.js +2 -0
  273. package/dist/local-BMGcCk8N.js +1 -0
  274. package/dist/local-BzZuOwgI.js +5 -0
  275. package/dist/login-BDKTNynK.js +8 -0
  276. package/dist/maintenance-d43Ml540.js +1 -0
  277. package/dist/mcp-BGam3G_B.js +1 -0
  278. package/dist/mcp-BGx48pyR.js +25 -0
  279. package/dist/mcp-BNz_l5TV2.js +1 -0
  280. package/dist/metadata-D_bBfr3H.js +1 -0
  281. package/dist/models-D1NXi6ni.js +1 -0
  282. package/dist/output-BKeyLbvt.js +5 -0
  283. package/dist/permission-BkYxjiFR.js +1 -0
  284. package/dist/prompt-CpwbsEWM.js +4 -0
  285. package/dist/refresh-yfEi5SQs.js +1 -0
  286. package/dist/remote-BbXx6S9P.js +1 -0
  287. package/dist/remote-rArUa01V.js +2 -0
  288. package/dist/runner-DG9jrX5H.js +1 -0
  289. package/dist/runner.json +1 -1
  290. package/dist/runner.tgz +0 -0
  291. package/dist/schema.d.ts +2 -2
  292. package/dist/schema.js +2 -3
  293. package/dist/sdk.d.ts +3264 -1601
  294. package/dist/sdk.js +1 -1
  295. package/dist/serve-B-5rDiZm.js +1 -0
  296. package/dist/serve-CvnrGAj7.js +12 -0
  297. package/dist/serve-DoYbHm_k.js +5 -0
  298. package/dist/session-Dtje9y-r.js +1 -0
  299. package/dist/sessions-DIz9fyRN.js +1 -0
  300. package/dist/shared--aE4olIO.js +1 -0
  301. package/dist/sign-in-wWkyaq5X.js +3 -0
  302. package/dist/state-Br-Fuaxg.js +6 -0
  303. package/dist/store-CzQLgCzt.js +352 -0
  304. package/dist/task-CFt85vTy.js +1 -0
  305. package/dist/task-N0qhnKpK.js +7 -0
  306. package/dist/tool-search-BkdgVolu.js +6 -0
  307. package/dist/tools-DNgEptor.js +1 -0
  308. package/dist/tools-oQvFAnh5.js +1 -0
  309. package/dist/tools-search-D1zArRyJ.js +1 -0
  310. package/dist/turn-Cc-v-eSy.js +3 -0
  311. package/dist/types-DHBqXFE2.js +1 -0
  312. package/dist/update-check-UyRob3yy.js +1 -0
  313. package/dist/view-D-rbQ1Kz.js +4 -0
  314. package/dist/views-3TxH367C.js +2 -0
  315. package/dist/worker-BMuKKiIa.js +1 -0
  316. package/dist/worker-CIHY9L42.js +7 -0
  317. package/dist/zod-_-snqfdO.js +1 -0
  318. package/dist/zod.js +65 -1
  319. package/docs/agents/coder.md +5 -12
  320. package/docs/agents/index.md +53 -82
  321. package/docs/approvals.md +47 -0
  322. package/docs/cli/agent.md +40 -19
  323. package/docs/cli/auth.md +1 -1
  324. package/docs/cli/connection.md +27 -26
  325. package/docs/cli/flow.md +9 -9
  326. package/docs/cli/index.md +17 -15
  327. package/docs/cli/model.md +23 -21
  328. package/docs/cli/runner.md +1 -1
  329. package/docs/cli/server.md +2 -2
  330. package/docs/cli/task.md +50 -50
  331. package/docs/config.md +37 -75
  332. package/docs/connections.md +80 -0
  333. package/docs/dash.md +23 -19
  334. package/docs/flows.md +46 -213
  335. package/docs/models.md +48 -77
  336. package/docs/review.md +20 -17
  337. package/docs/runners.md +49 -0
  338. package/docs/sdk.md +49 -73
  339. package/docs/self-host.md +79 -81
  340. package/package.json +4 -5
  341. package/plugins/agents/skills/coder/SKILL.md +3 -3
  342. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  343. package/plugins/claude/skills/dispatch/SKILL.md +3 -3
  344. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  345. package/plugins/cursor/README.md +3 -3
  346. package/plugins/cursor/skills/coder/SKILL.md +3 -3
  347. package/dist/actions-BT7_eKXm.js +0 -10
  348. package/dist/adapter-BT8ECcRG.js +0 -1
  349. package/dist/agent-BA6xr8QY.js +0 -8
  350. package/dist/apps-D-v5sQJk.js +0 -367
  351. package/dist/args-CbO_Ck9Z.js +0 -11
  352. package/dist/async-XNO3nqum.js +0 -3
  353. package/dist/auth-DuXnSNf9.js +0 -1
  354. package/dist/base64url-CsVsW4Id.js +0 -1
  355. package/dist/chat-CgQdDRhs.js +0 -13
  356. package/dist/cmd-DX5ByXo3.js +0 -119
  357. package/dist/connection-DNxi2btM.js +0 -1
  358. package/dist/context-65bOofts.js +0 -7
  359. package/dist/conversation-DT-35cEt.js +0 -1
  360. package/dist/core-DwsAMCnL.js +0 -65
  361. package/dist/dash/standalone/node_modules/contextjsx/dist/index.mjs +0 -1
  362. package/dist/dash/standalone/node_modules/contextjsx/dist/jsx-runtime.mjs +0 -1
  363. package/dist/dash/standalone/node_modules/contextjsx/dist/src-BJ0QFeB8.mjs +0 -2
  364. package/dist/dash/standalone/node_modules/contextjsx/package.json +0 -70
  365. package/dist/dash/standalone/server/modules-server-server-react-server/src/agent/context/turn.dac8eb211c500271.js +0 -141
  366. package/dist/dash/standalone/server/modules-server-server-react-server/src/core/defaults.1b615366c56838a1.js +0 -57
  367. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/auth/sign-in.661b3a4139af5bd7.js +0 -11
  368. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/page.0fbfdba5254f7ae5.js +0 -26
  369. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/connect-apps.f3af8cc8540719d7.js +0 -36
  370. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/page.c6efd5432c1a4a75.js +0 -65
  371. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/operator-apps.a244f3199e7cf09c.js +0 -144
  372. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/connections-list.21ec9dc73ce68656.js +0 -642
  373. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/engines-list.9e116751bd34e2cc.js +0 -73
  374. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/list.083f5c665df04b1b.js +0 -156
  375. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/models-list.537f63f8e5dd085d.js +0 -410
  376. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/model-options.a96c11d11674f598.js +0 -100
  377. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/task-actions.587da79d68ab8d14.js +0 -151
  378. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/status.16190fdd5fd7daad.js +0 -16
  379. package/dist/dash/standalone/static/assets/chunks/action-71685b2d5ad9f359.js +0 -1
  380. package/dist/dash/standalone/static/assets/chunks/agent-pills-15da36c2cb81991b.js +0 -2
  381. package/dist/dash/standalone/static/assets/chunks/agent-settings-form-6e6a87d6e673daa8.js +0 -1
  382. package/dist/dash/standalone/static/assets/chunks/agent-toggle-ca98586e3b4ce9ae.js +0 -1
  383. package/dist/dash/standalone/static/assets/chunks/agents-grid-29c399e46b4e9e2b.js +0 -1
  384. package/dist/dash/standalone/static/assets/chunks/composer-85e0ec7163ae18b7.js +0 -1
  385. package/dist/dash/standalone/static/assets/chunks/composer-910bb87127972f62.js +0 -1
  386. package/dist/dash/standalone/static/assets/chunks/composer-data-5fed6c271a4791ca.js +0 -1
  387. package/dist/dash/standalone/static/assets/chunks/connect-apps-b73490e04ae6398d.js +0 -1
  388. package/dist/dash/standalone/static/assets/chunks/connections-list-c50f58b4b28d10bb.js +0 -1
  389. package/dist/dash/standalone/static/assets/chunks/create-link-6d64a2d5f9ce6de0.js +0 -1
  390. package/dist/dash/standalone/static/assets/chunks/credentials-list-bee95799b2319b3b.js +0 -1
  391. package/dist/dash/standalone/static/assets/chunks/custom-range-a0630599f907b30e.js +0 -1
  392. package/dist/dash/standalone/static/assets/chunks/defaults-52f30e83d7666f7a.js +0 -1
  393. package/dist/dash/standalone/static/assets/chunks/editor-b9951819f21b2e43.js +0 -6
  394. package/dist/dash/standalone/static/assets/chunks/engines-list-2720c3e8fa12b2f7.js +0 -1
  395. package/dist/dash/standalone/static/assets/chunks/format-a27067f0186e78ac.js +0 -1
  396. package/dist/dash/standalone/static/assets/chunks/instructions-affaaeff366b1725.js +0 -2
  397. package/dist/dash/standalone/static/assets/chunks/instructions-fd7402ac5aa8b50e.js +0 -1
  398. package/dist/dash/standalone/static/assets/chunks/list-d918f79562d497eb.js +0 -1
  399. package/dist/dash/standalone/static/assets/chunks/model-options-8d2170eebe0d061d.js +0 -1
  400. package/dist/dash/standalone/static/assets/chunks/models-list-12bc7aceaa52f5b0.js +0 -1
  401. package/dist/dash/standalone/static/assets/chunks/notice-57db7a1f05b7308c.js +0 -1
  402. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-b219595be320108a.js +0 -1
  403. package/dist/dash/standalone/static/assets/chunks/platform-actions-1d27d2ba7eee9ff1.js +0 -1
  404. package/dist/dash/standalone/static/assets/chunks/platform-actions-dba96dcb0f6513db.js +0 -1
  405. package/dist/dash/standalone/static/assets/chunks/runners-list-36f8c5ecfcf8e9ae.js +0 -1
  406. package/dist/dash/standalone/static/assets/chunks/secrets-list-d7dbafd24dd18481.js +0 -1
  407. package/dist/dash/standalone/static/assets/chunks/segmented-8f809ebe712e92a7.js +0 -1
  408. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +0 -1
  409. package/dist/dash/standalone/static/assets/chunks/shared-init-cc13a835f3508618.js +0 -2
  410. package/dist/dash/standalone/static/assets/chunks/shared-init-f475017dd5811e33.js +0 -5
  411. package/dist/dash/standalone/static/assets/chunks/side-toggle-0aa237eba3dfe9c1.js +0 -1
  412. package/dist/dash/standalone/static/assets/chunks/task-681061023bdf0a49.js +0 -5
  413. package/dist/dash/standalone/static/assets/chunks/task-actions-c9e46e81604e85c5.js +0 -1
  414. package/dist/dash/standalone/static/assets/chunks/task-view-134186a544917ceb.js +0 -5
  415. package/dist/dash/standalone/static/assets/chunks/tasks-list-352a3222d878de0f.js +0 -1
  416. package/dist/dash/standalone/static/assets/chunks/versions-list-21cb854e6a7108a7.js +0 -1
  417. package/dist/dash/standalone/static/assets/connect-a550b6f3a8c00186.css +0 -1
  418. package/dist/dash/standalone/static/assets/create-param-id-da3f7e20689fe51a.css +0 -1
  419. package/dist/dash/standalone/static/assets/dash-param-org-account-9471bec93c444232.css +0 -1
  420. package/dist/dash/standalone/static/assets/dash-param-org-agents-64500e78caae32df.css +0 -1
  421. package/dist/dash/standalone/static/assets/dash-param-org-agents-new-c067c22928a2d7cc.css +0 -1
  422. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-9dec87710e04f949.css +0 -1
  423. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-edit-779c474301e04440.css +0 -1
  424. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-platforms-c7d594b5232630c2.css +0 -1
  425. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-settings-a80e62570716fdb9.css +0 -1
  426. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-tasks-ce278252012297b9.css +0 -1
  427. package/dist/dash/standalone/static/assets/dash-param-org-agents-param-slug-usage-d3b6d701eb8e1403.css +0 -1
  428. package/dist/dash/standalone/static/assets/dash-param-org-bcfa3de29341d5ba.css +0 -1
  429. package/dist/dash/standalone/static/assets/dash-param-org-operator-b7bc6447cc27c9ce.css +0 -1
  430. package/dist/dash/standalone/static/assets/dash-param-org-settings-6d6902345d88a687.css +0 -1
  431. package/dist/dash/standalone/static/assets/dash-param-org-settings-param-tab-85c7af9a89eef06e.css +0 -1
  432. package/dist/dash/standalone/static/assets/dash-param-org-setup-173efecd7b990c2e.css +0 -1
  433. package/dist/dash/standalone/static/assets/dash-param-org-tasks-ae0bc03f468e63cc.css +0 -1
  434. package/dist/dash/standalone/static/assets/dash-param-org-tasks-param-id-7325d8cff5be3592.css +0 -1
  435. package/dist/dash/standalone/static/assets/dash-param-org-usage-517b2a7ae462ac57.css +0 -1
  436. package/dist/dash/standalone/static/assets/global-87e1762113874559.css +0 -1
  437. package/dist/dash/standalone/static/assets/pnext-client-05df74b071ddb0b3.js +0 -1
  438. package/dist/dash/standalone/static/assets/pnext-client-2c19cca257f78ae6.js +0 -1
  439. package/dist/dash/standalone/static/assets/pnext-client-2db05dfa62642a65.js +0 -1
  440. package/dist/dash/standalone/static/assets/pnext-client-36b0d6085a073880.js +0 -1
  441. package/dist/dash/standalone/static/assets/pnext-client-576c06599e241231.js +0 -1
  442. package/dist/dash/standalone/static/assets/pnext-client-6aa0f19a30d58d63.js +0 -1
  443. package/dist/dash/standalone/static/assets/pnext-client-6b30b71f452f2f07.js +0 -1
  444. package/dist/dash/standalone/static/assets/pnext-client-6ccb4d4fff812db3.js +0 -1
  445. package/dist/dash/standalone/static/assets/pnext-client-74eb465defba421e.js +0 -1
  446. package/dist/dash/standalone/static/assets/pnext-client-8c692d12b2fd90d6.js +0 -1
  447. package/dist/dash/standalone/static/assets/pnext-client-92e17d39063a9ced.js +0 -1
  448. package/dist/dash/standalone/static/assets/pnext-client-93246aea268c2682.js +0 -1
  449. package/dist/dash/standalone/static/assets/pnext-client-9954dcbc0c579e0d.js +0 -1
  450. package/dist/dash/standalone/static/assets/pnext-client-c0dfa1cdde9a9855.js +0 -1
  451. package/dist/dash/standalone/static/assets/pnext-client-c28d38d4aafd4af6.js +0 -1
  452. package/dist/dash/standalone/static/assets/pnext-client-c2c30dcb6dc31d60.js +0 -1
  453. package/dist/dash/standalone/static/assets/pnext-client-dbf741073e11eac0.js +0 -1
  454. package/dist/dash/standalone/static/assets/pnext-client-e29194a27280333f.js +0 -1
  455. package/dist/dash/standalone/static/assets/pnext-client-f8a7e692b27caad9.js +0 -1
  456. package/dist/dash/standalone/static/assets/pnext-client-fc5b8cfcba2a9f63.js +0 -1
  457. package/dist/discover-CPZdprlQ.js +0 -1
  458. package/dist/dist-node-Bv1kCqyi.js +0 -20
  459. package/dist/docs-x-l7gjFE.js +0 -2
  460. package/dist/drive-Y-ZlgiUW.js +0 -1
  461. package/dist/env-B9JG6gwo.js +0 -1
  462. package/dist/errors-XBA-Ls4n.js +0 -10
  463. package/dist/exec-iFssTO5V.js +0 -3
  464. package/dist/executor-Dt2FFT-y.js +0 -11
  465. package/dist/http-BZfjbiov.js +0 -1
  466. package/dist/integrations-DyInAa5g.js +0 -2
  467. package/dist/load-zhcrwSRF.js +0 -2
  468. package/dist/local-D55UkW93.js +0 -5
  469. package/dist/log-view-CL3_S0IQ.js +0 -3
  470. package/dist/maintenance-BfxcatXH.js +0 -1
  471. package/dist/match-Bq4sDuCy.js +0 -1
  472. package/dist/mcp-Bta09QCU.js +0 -13
  473. package/dist/mcp-CUITALl1.js +0 -1
  474. package/dist/models-C1O2DrXx.js +0 -1
  475. package/dist/output-D95NoAA9.js +0 -16
  476. package/dist/prompt-onpyIyXK.js +0 -8
  477. package/dist/prompts-B8pKhMcu.js +0 -4
  478. package/dist/refresh-D-0K9fo3.js +0 -1
  479. package/dist/remote-CDm0YUU3.js +0 -3
  480. package/dist/runner-CTFTuaz_.js +0 -1
  481. package/dist/runners-CYTicTb7.js +0 -36
  482. package/dist/serve-Bzs_lEg-.js +0 -1
  483. package/dist/serve-CWtLyyTz.js +0 -12
  484. package/dist/serve-DE6A-rBk.js +0 -4
  485. package/dist/slack-Bo5l13Rs.js +0 -5
  486. package/dist/task-BU1JEK9X.js +0 -7
  487. package/dist/task-CPzBITsp.js +0 -1
  488. package/dist/tools-BMaKWTa6.js +0 -1
  489. package/dist/tools-CM4UCsId.js +0 -1
  490. package/dist/turn-DMvPfhb5.js +0 -3
  491. package/dist/types-D_xnfP7m.js +0 -1
  492. package/dist/views-DEdKqLm_.js +0 -5
  493. package/dist/wire-JMNPv8f6.js +0 -1
  494. package/dist/worker-BuP_Lem1.js +0 -9
  495. package/dist/worker-C1tuzq5n.js +0 -1
  496. package/dist/zod-BoqHoRCH.js +0 -1
  497. package/docs/mcp.md +0 -54
  498. /package/dist/dash/standalone/server/modules-server-server-react-server/src/core/{errors.0a735590a5412ea6.js → errors.200335e62a9d9564.js} +0 -0
  499. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.061f6006f2685f5e.css.pnext-asset.js → page.abe7a6d16eb15c41.css.pnext-asset.js} +0 -0
  500. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.c811938ae8a8f1df.css.pnext-asset.js → page.1c7947d6f79d6447.css.pnext-asset.js} +0 -0
  501. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{settings/agent-settings-form.ca926c58d15044aa.css.pnext-asset.js → platforms/platform-step.a722e3b8539a0f85.css.pnext-asset.js} +0 -0
  502. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/hero.1bef5dca89b5942c.css.pnext-asset.js → [slug]/(tabs)/settings/agent-settings-form.bf5430862c505c55.css.pnext-asset.js} +0 -0
  503. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{agent/instructions.446bccc375f30eeb.css.pnext-asset.js → [slug]/platforms/[app]/@/app/dash/[org]/agents/[slug]/(tabs)/platforms/page.db05694ed4113dab.css.pnext-asset.js} +0 -0
  504. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/{editor/editor.c496247a81ed832c.css.pnext-asset.js → [slug]/platforms/[app]/app-cards.d2f5c8d620066e05.css.pnext-asset.js} +0 -0
  505. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.a4efa8d807fe5416.css.pnext-asset.js → agents/agent/hero.243d85cac1f22df2.css.pnext-asset.js} +0 -0
  506. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/@/app/dash/[org]/setup/outcome.3ad5f7ec67e5238d.css.pnext-asset.js → agents/agent/instructions.4c31196fcbf9846c.css.pnext-asset.js} +0 -0
  507. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/connections-list.46786fe36b121a43.css.pnext-asset.js → agents/editor/editor.6b9a1d5c0a490153.css.pnext-asset.js} +0 -0
  508. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{settings/[tab]/credentials-list.f7c27f170ec1e868.css.pnext-asset.js → layout.52abe52dcfa736d7.css.pnext-asset.js} +0 -0
  509. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.9927d602ebe9e7fc.css.pnext-asset.js → advanced-list.819e410e4178b328.css.pnext-asset.js} +0 -0
  510. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.8cbee173a5aff98d.css.pnext-asset.js → connections-list.87962937438296f1.css.pnext-asset.js} +0 -0
  511. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.53c7ea80b6fb734c.css.pnext-asset.js → credentials-list.973f91751525bcb6.css.pnext-asset.js} +0 -0
  512. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/[id]/task-view.57990cfd2bdf5c11.css.pnext-asset.js → settings/[tab]/list.69d1b62c4066015b.css.pnext-asset.js} +0 -0
  513. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/composer.5b8687662e1629fa.css.pnext-asset.js → settings/[tab]/models-list.efd3f5781314c1d9.css.pnext-asset.js} +0 -0
  514. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{tasks/list/tasks-list.abbbc9ace4d866e5.css.pnext-asset.js → settings/[tab]/runners-list.df35d33aba0c8b07.css.pnext-asset.js} +0 -0
  515. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{globals.c8fd2b8b01e7077b.css.pnext-asset.js → dash/[org]/settings/model-pick.74fababc0cc0bba7.css.pnext-asset.js} +0 -0
  516. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/{responsive.ebc5f7d77b4b86a0.css.pnext-asset.js → dash/[org]/tasks/[id]/task-view.aae9fa481b9015d1.css.pnext-asset.js} +0 -0
  517. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/page-head.364ec93a8e7857b3.css.pnext-asset.js → app/dash/[org]/tasks/composer.33d49ad218253703.css.pnext-asset.js} +0 -0
  518. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/frame/task-toasts.d13d9f628e530552.css.pnext-asset.js → app/dash/[org]/tasks/list/pending-approvals.07e59a9cae7ccf29.css.pnext-asset.js} +0 -0
  519. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/badge.0cb1513f8b077560.css.pnext-asset.js → app/dash/[org]/tasks/list/tasks-list.f3737549b4696cc8.css.pnext-asset.js} +0 -0
  520. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/button.d7f4433f4e7faa80.css.pnext-asset.js → app/globals.3b53a3feaa1d72e1.css.pnext-asset.js} +0 -0
  521. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/{comps/ui/card.f80288cc42f9bcae.css.pnext-asset.js → app/responsive.2979ffa0161a5afd.css.pnext-asset.js} +0 -0
  522. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/filter.b53f21acc3e2cfef.css.pnext-asset.js → frame/page-head.9fcc49ddf7119d75.css.pnext-asset.js} +0 -0
  523. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/{ui/menu.25b184f68cba7b46.css.pnext-asset.js → frame/task-toasts.682322f6f729b33e.css.pnext-asset.js} +0 -0
  524. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{modal.9db07d368dcf5981.css.pnext-asset.js → badge.8e2a9842b28f44a6.css.pnext-asset.js} +0 -0
  525. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{segmented.0bd8652fdbc05eb0.css.pnext-asset.js → button.2b18ba19ae01e2bb.css.pnext-asset.js} +0 -0
  526. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{sentinel.1e3ec9bd6008d811.css.pnext-asset.js → card.4ab7ad42a0770726.css.pnext-asset.js} +0 -0
  527. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{tabs.ca13e40ff54128d0.css.pnext-asset.js → filter.6fdff1e7355aaa0e.css.pnext-asset.js} +0 -0
  528. /package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/ui/{toolbar.19e1ce5224a23acf.css.pnext-asset.js → menu.cd96fa0495fe0fde.css.pnext-asset.js} +0 -0
@@ -0,0 +1,12 @@
1
+ import{A as e,Ea as t,Wi as n,g as r,ha as i,j as a,k as o,la as s,ma as c,pa as l,pn as u}from"./args-CJsHYWbt.js";import{t as d}from"./errors-DK_trCff.js";import{$ as f,G as p,J as m,M as h,N as g,P as _,T as v,V as y,Z as b,_ as x,_t as S,bt as C,ct as w,ft as T,g as E,gt as D,k as O,mt as k,o as A,ot as j,st as M,tt as N,v as ee,vt as te}from"./state-Br-Fuaxg.js";import{C as ne,I as re,K as P,M as ie,N as F,P as ae,R as oe,S as se,T as ce,Y as le,Z as ue,a as de,i as fe,k as pe,l as me,m as he,o as ge,p as _e,t as ve,w as ye}from"./config-D_RuO6gX.js";import{g as I}from"./connections-Cswv7r8Z.js";import{_ as be,a as xe,c as Se,d as Ce,f as we,l as L,s as Te,u as Ee,v as R}from"./app-server-BTpa5GBV.js";import{a as De}from"./http-615JJgHo.js";import{a as Oe,r as ke,t as Ae}from"./sessions-DIz9fyRN.js";import{i as je,n as Me,r as z,t as Ne}from"./update-check-UyRob3yy.js";import{S as Pe,b as Fe}from"./approvals-CRwkc9vB.js";import B from"node:path";import V from"node:process";import{fileURLToPath as Ie}from"node:url";import H from"node:fs";import{execFileSync as Le,spawn as Re,spawnSync as U}from"node:child_process";import W from"node:os";import ze from"node:readline";import{createHash as Be,randomUUID as G}from"node:crypto";import{setImmediate as Ve}from"node:timers/promises";function He(e,t){let n=`${e}.${G()}.tmp`;H.writeFileSync(n,JSON.stringify(t),{flag:`wx`}),H.renameSync(n,e)}function Ue(e,t){let n=H.mkdtempSync(B.join(W.tmpdir(),e)),r=new Map,i=!1,a=()=>{try{for(let e of H.readdirSync(n)){if(!e.endsWith(`.request.json`))continue;let a=e.slice(0,-13),o=B.join(n,e),s=B.join(n,`${a}.response.json`);if(H.existsSync(s)){H.rmSync(o,{force:!0});continue}if(r.has(a))continue;let c=`${o}.processing`;H.renameSync(o,c);let l=(async()=>{let e;try{let n=JSON.parse(H.readFileSync(c,`utf8`));if(n.id!==a)throw Error(`Invalid control request id.`);e={id:a,result:await t(n,i)}}catch(t){let n=t;e={id:a,error:{message:n.message,retryable:n.retryable===!0,rpcCode:n.rpcCode}}}He(s,e),H.rmSync(c,{force:!0})})();r.set(a,l),l.finally(()=>r.delete(a)).catch(()=>{})}}catch{}},o=te(n,a),s=setInterval(a,3e4);return s.unref(),{endpoint:`file:${n}`,async close(){if(i)return;i=!0,clearInterval(s);let e=Date.now()+3e3;try{for(;a(),await Promise.allSettled([...r.values()]),await Ve(),!(!H.existsSync(n)||!H.readdirSync(n).some(e=>e.endsWith(`.reader`))||Date.now()>=e);)await o.wait(e-Date.now())}finally{o.close(),H.rmSync(n,{recursive:!0,force:!0})}}}}async function We(e,t,n,r){if(!e)return{ok:!1,retryable:!0,detail:`${r} endpoint is not ready.`};if(!e.startsWith(`file:`)||e.length===5)return{ok:!1,retryable:!1,detail:`Unsupported ${r} endpoint: ${e}`};let i=e.slice(5),a=te(i),o=B.join(i,`${G()}.reader`),s=!1;try{H.writeFileSync(o,``);let e=B.join(i,`${t.id}.response.json`);H.existsSync(e)||He(B.join(i,`${t.id}.request.json`),t),s=!0;let c=Date.now()+n;await Ve();let l=await a.until(()=>{try{let n=JSON.parse(H.readFileSync(e,`utf8`));if((!t.command||n?.error?.retryable)&&H.rmSync(e,{force:!0}),n?.id!==t.id)throw Error(`Malformed ${r} response id.`);if(n.error)return{ok:!1,retryable:n.error.retryable===!0,detail:String(n.error.message)};if(!(`result`in n))throw Error(`Malformed ${r} response.`);return{ok:!0,retryable:!1,result:n.result,detail:`${r} accepted control.`}}catch(e){if(e.code!==`ENOENT`)throw e;if(!H.existsSync(i))throw Error(`${r} endpoint closed after control publication; acceptance is unknown.`)}},Math.max(0,c-Date.now()));if(l)return l;throw Error(`Timed out waiting for ${r} acknowledgement.`)}catch(e){return{ok:!1,retryable:!s&&e.code===`ENOENT`,detail:e instanceof Error?e.message:String(e)}}finally{a.close(),H.rmSync(o,{force:!0})}}const Ge=/^([a-f0-9-]{36})\.(?:req|applying)\.json$/,Ke=2**40;function qe(e,t){let n=Be(`sha256`).update(t).digest();return{task:e,generation:0,seq:Ke+n.readUInt32BE(0)}}function Je(e){if(!e)return G();if(!e.task||!Number.isInteger(e.generation)||e.generation<0||!Number.isInteger(e.seq)||e.seq<0)throw Error(`Invalid command key`);let t=Be(`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 Ye=[`hint`,`taskId`,`payload`,`approval`,`result`,`runId`,`status`];function Xe(e,t){let n=`${e}.${G()}.tmp`;H.writeFileSync(n,JSON.stringify(t),{encoding:`utf8`,flag:`wx`}),H.renameSync(n,e)}async function Ze(e,t,n){let{dir:r}=n,i=n.id??G(),a=B.join(r,`${i}.res.json`);H.existsSync(a)||Xe(B.join(r,`${i}.req.json`),{kind:e,payload:t});let o=Date.now();for(;!H.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(H.readFileSync(a,`utf8`));if(n.keepReply||H.rmSync(a,{force:!0}),c){let{code:e,message:t,...n}=c;throw new d(e,t,n)}return s}function Qe(e,t){H.mkdirSync(e,{recursive:!0});let n=new Set,r=async(r,i)=>{let a;try{let n=B.join(e,r);if(!H.lstatSync(n).isFile())throw Error(`mailbox request is not a regular file`);let{kind:o,payload:s}=JSON.parse(H.readFileSync(n,`utf8`)),c=B.join(e,`${i}.applying.json`);H.existsSync(c)||Xe(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 d?e:void 0;a={error:{code:t?.code??`invalid-option`,message:e instanceof Error?e.message:String(e),...Object.fromEntries(Ye.flatMap(e=>t?.[e]===void 0?[]:[[e,t[e]]]))}}}try{Xe(B.join(e,`${i}.res.json`),a),H.rmSync(B.join(e,`${i}.req.json`),{force:!0}),H.rmSync(B.join(e,`${i}.applying.json`),{force:!0}),n.delete(i)}catch{}},i=setInterval(()=>{let t=[];try{t=H.readdirSync(e)}catch{return}for(let i of t){let t=Ge.exec(i)?.[1];if(t){if(H.existsSync(B.join(e,`${t}.res.json`))){H.rmSync(B.join(e,i),{force:!0});continue}n.has(t)||(n.add(t),r(i,t))}}},100);return()=>clearInterval(i)}function $e(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 K(e,t,n){return Object.assign(Error(e),{retryable:t,...n===void 0?{}:{rpcCode:n}})}function et(e,t,n,r){if(!e||e.id!==t||e.method!==`turn/steer`&&e.method!==`turn/interrupt`)throw K(`Invalid Codex control request.`,!1);let i=e.params;if(!i||typeof i!=`object`||i.threadId!==n)throw K(`Codex control request does not match its owning thread.`,!1);if(e.method===`turn/interrupt`){if(i.turnId!==r)throw K(`Codex turn/interrupt request does not match its owning active turn.`,!1);return{method:e.method,params:i}}if(i.expectedTurnId!==r)throw K(`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 K(`Invalid Codex turn/steer input schema.`,!1);return{method:e.method,params:i}}async function tt(e,{threadId:t,turnId:n}){return Ue(`coder-codex-control-`,async(r,i)=>{if(i)throw K(`Codex owner endpoint is shutting down.`,!0);let a=et(r,r.id,t,n);try{let n=await e.request(a.method,a.params);return a.method===`turn/interrupt`&&await e.request(`thread/backgroundTerminals/clean`,{threadId:t}),n}catch(e){throw K(e instanceof Error?e.message:String(e),$e(e),e.rpcCode)}})}function nt(e){if(e?.startsWith(`file:`)&&e.length>5){let t=B.resolve(e.slice(5)),n=B.resolve(W.tmpdir());B.dirname(t)===n&&B.basename(t).startsWith(`coder-codex-control-`)&&H.rmSync(t,{recursive:!0,force:!0})}}async function rt(e,t,n,r=3e3,i){return We(e,{id:Je(i),method:t,params:n,command:i},r,`Codex control`)}const it=`Coder Task`;function at(e,t=72){let n=String(e??``).trim().replace(/\s+/g,` `);return n?n.length<=t?n:`${n.slice(0,t-3)}...`:``}function ot(e){let t=at(e,56);return t?`${it}: ${t}`:it}function st(e){return e?.params?.threadId??null}function ct(e){return e?.params?.turnId?e.params.turnId:e?.params?.turn?.id?e.params.turn.id:null}function lt(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 ut(e){try{let t=H.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 dt(e,t,n){let r=typeof e.kind==`string`?e.kind:e.kind?.type??`change`,i=e.path||`(unknown path)`,a=lt(e.diff??``,r),o=a.length||r!==`add`||!t?a:ut(i),s=typeof e.kind==`object`&&e.kind?.move_path?` -> ${n?S(n,e.kind.move_path):e.kind.move_path}`:``;return`${r} ${n?S(n,i):i}${s}${o.length?` ${o.join(`, `)}`:``}`}function ft(e,t=!1,n){return(e.changes??[]).map(e=>dt(e,t,n)).join(`; `)}function pt(e){let t=e.trim().split(` `)[0]??``;return t===`/dev/null`?``:t.replace(/^[ab]\//,``)}function mt(e,t){let n=new Map,r=``,i=``;for(let t of e.split(/\r?\n/)){if(t.startsWith(`--- `)){r=pt(t.slice(4));continue}if(t.startsWith(`+++ `)){i=pt(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?S(t,e):e} ${n.join(`, `)}`).join(`; `)}function ht(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 gt(e){if(e.tokenUsageByThread.size===0)return null;let t={input:0,cachedInput:0,output:0,total:0};for(let[n,r]of e.tokenUsageByThread){let i=e.tokenUsageBaselineByThread.get(n);t.input+=Math.max(0,r.input-(i?.input??0)),t.cachedInput+=Math.max(0,r.cachedInput-(i?.cachedInput??0)),t.output+=Math.max(0,r.output-(i?.output??0)),t.total+=Math.max(0,r.total-(i?.total??0))}return t}function _t(e){return String(e??``).replace(/\s+/g,` `).trim()}function q(e){if(!e)return[];if(typeof e==`string`){let t=_t(e);return t?[t]:[]}if(Array.isArray(e))return e.flatMap(e=>q(e));if(typeof e==`object`){let t=e;if(typeof t.text==`string`)return q(t.text);if(`summary`in t)return q(t.summary);if(`content`in t)return q(t.content);if(`parts`in t)return q(t.parts)}return[]}function vt(e,t){let n=[];for(let r of[...e,...t]){let e=_t(r);!e||n.includes(e)||n.push(e)}return n}function J(e,t,n=null,r={}){!e||t==null||e({message:t,phase:n,...r})}function yt(e,t){t&&J(e,t.message,t.phase??null,t.extra??{})}function bt(e){return e.replace(/^\/(?:usr\/)?bin\/\w*sh\s+-l?c\s+/,``)}function xt(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 Y(e){return e==null?``:typeof e==`string`?e:JSON.stringify(e)}function St(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?Y(n):``;return{message:r?`${t} ${r}`:t,phase:`investigating`,extra:{kind:`tool`,tool:t}}}function Ct(e,t){switch(e.type){case`commandExecution`:return{message:bt(String(e.command??``).trim())||`command`,phase:`running`,extra:{kind:`tool`,tool:`command`}};case`fileChange`:return{message:ft(e,!1,t)||`edit`,phase:`editing`,extra:{kind:`tool`,tool:`edit`}};case`mcpToolCall`:return{message:[`${e.server}/${e.tool}`,Y(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(`/`),Y(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()||Y(t);return{message:r?`search: ${r}`:`search`,phase:`investigating`,extra:{kind:`tool`,tool:`search`}}}case`agentMessage`:case`reasoning`:case`userMessage`:return null;default:return St(e)}}function wt(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=q(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:ft(e,!0,t)||`(details unavailable)`,phase:`editing`,extra:{kind:`tool-result`,tool:`edit`,isError:e.status!==`completed`}};case`mcpToolCall`:return{message:Y(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:Y(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:Y(e.error??e.result??e.results??e.output??e.action??e),phase:`investigating`,extra:{kind:`tool-result`,tool:Ct(e,t)?.extra?.tool,durationMs:e.durationMs,isError:e.status===`failed`||e.status===`declined`||e.success===!1||e.error!=null}}}}function Tt(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,tokenUsageBaselineByThread:new Map,lastDiffSummary:``,loggedTokens:0,reportedChanges:new Set,cwd:t.cwd??``,itemIndex:new Map,onProgress:t.onProgress??null,onHeartbeat:t.onHeartbeat??null}}function Et(e){e.completionTimer&&=(clearTimeout(e.completionTimer),null)}function Dt(e,t=null){e.completed||(Et(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 Ot(e){e.completed||e.finalTurn||!e.finalAnswerSeen||e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||(Et(e),e.completionTimer=setTimeout(()=>{e.completionTimer=null,!(e.completed||e.finalTurn||!e.finalAnswerSeen)&&(e.pendingCollaborations.size>0||e.activeSubagentTurns.size>0||Dt(e,null))},250),e.completionTimer.unref?.())}function kt(e,t){let n=st(t);if(!n||!e.threadIds.has(n))return!1;let r=e.threadTurnIds.get(n)??null,i=ct(t);return r===null||i===null||i===r}function At(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),Ot(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,Ot(e)));return}if(t.type===`reasoning`&&n===`completed`){e.reasoningSummary=vt(e.reasoningSummary,q(t.summary));return}if(t.type===`fileChange`&&n===`completed`){e.fileChanges.push(t);return}t.type===`commandExecution`&&n===`completed`&&e.commandExecutions.push(t)}function jt(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),J(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()),At(e,t.params.item,`started`,t.params.threadId??null),yt(e.onProgress,xt(Ct(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(At(e,n,`completed`,t.params.threadId??null),n?.type===`fileChange`)for(let t of n.changes??[])t.path&&e.reportedChanges.add(S(e.cwd,t.path));let r=xt(wt(n,e.cwd),n);if(r?.extra?.kind===`tool-result`){let t=Ct(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()))})}yt(e.onProgress,r);break}case`thread/tokenUsage/updated`:{let n=ht(t.params?.tokenUsage?.last),r=st(t);r===e.threadId&&t.params?.tokenUsage?.last&&(e.contextTokens=n?.total);let i=ht(t.params?.tokenUsage?.total??t.params?.tokenUsage);if(i&&r){n&&!e.tokenUsageByThread.has(r)&&e.tokenUsageBaselineByThread.set(r,{input:Math.max(0,i.input-n.input),cachedInput:Math.max(0,i.cachedInput-n.cachedInput),output:Math.max(0,i.output-n.output),total:Math.max(0,i.total-n.total)}),e.tokenUsageByThread.set(r,i);let t=gt(e);t&&(!e.loggedTokens||t.total-e.loggedTokens>=1e3)&&(e.loggedTokens=t.total,e.onProgress?.({kind:`usage`,tokens:t,context:e.contextTokens??null}))}break}case`turn/diff/updated`:{let n=mt(String(t.params?.diff??``),e.cwd).split(`; `).filter(t=>!e.reportedChanges.has(t.split(` `)[0]??``)).join(`; `);n&&n!==e.lastDiffSummary&&(e.lastDiffSummary=n,J(e.onProgress,`changed: ${n}`,`editing`,{kind:`status`}));break}case`item/autoApprovalReview/completed`:{let n=t.params?.review??{},r=t.params?.action??{},i=bt(String(r.command??r.type??``).trim());J(e.onProgress,`Auto-review ${n.status}. ${at(i,48)}${n.rationale?`. ${at(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,J(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),Ot(e);break}J(e.onProgress,`Turn ${t.params.turn.status}.`,`finalizing`,{kind:`status`}),Dt(e,t.params.turn)}}async function Mt(e,t,n,r={}){let i=Tt(t,r),a=e.notificationHandler;e.setNotificationHandler(e=>{if(!i.turnId){i.bufferedNotifications.push(e);return}if(e.method===`thread/started`){jt(i,e);return}if(!kt(i,e)){a?.(e);return}jt(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)kt(i,e)?jt(i,e):a?.(e);i.bufferedNotifications.length=0,t.turn?.status&&t.turn.status!==`inProgress`&&Dt(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{Et(i),e.setNotificationHandler(a??null),e.setServerRequestHandler(null)}}function Nt(e,t,n=[]){return e===`read-only`?t?{type:`readOnly`,networkAccess:t}:null:e!==`workspace-write`||!n.length?null:{type:`workspaceWrite`,writableRoots:n,networkAccess:t??!1,excludeTmpdirEnvVar:!0,excludeSlashTmp:!0}}function Pt(e=[],t=[],n=!1){let r=Object.fromEntries((n?[]:t).map(e=>[e,{enabled:!1}])),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[e]={...n.url?{url:n.url,...n.headers?{http_headers:n.headers}:{}}:{command:n.command,args:n.args??[],...n.env?{env:n.env}:{}},default_tools_approval_mode:`approve`}}return Object.keys(r).length?{mcp_servers:r}:{}}function Ft({developerInstructions:e,mcpServers:t=[]}){return[e,...t.flatMap(({alwaysLoad:e,instructions:t,name:n})=>e&&t?[`<mcp-instructions server="${n}">\n${t}\n</mcp-instructions>`]:[])].filter(Boolean).join(`
4
+
5
+ `)||void 0}function It(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(`
6
+ `)}function Lt(){throw Error(`The Codex app-server has no custom-model bridge; restart the Coder broker.`)}async function Rt(e,t,n,r){let i=process.env.CODER_MACHINE_SANDBOX===`1`&&(r.sandbox??`read-only`)!==`read-only`?`danger-full-access`:r.sandbox,a={sandbox:i??`read-only`},o=r.approvalsReviewer??((r.approvalPolicy??`never`)===`never`?null:`user`),s=r.configOverrides&&Object.keys(r.configOverrides).length?r.configOverrides:null,c=Nt(i,r.networkAccess,r.writableRoots),l=null,u;R(`codex.config.start`);let d=await e.request(`config/read`,{cwd:t,includeLayers:!1});R(`codex.config.done`);let f=r.customModel?F(r.customModel.alias,r.customModel.entry,e.bridgeUrl??Lt()):null,p=r.customModel?.entry.model??r.model??null,m={...f?{}:{model_reasoning_summary:`auto`},...f?.configOverrides,...s,...Pt(r.mcpServers,Object.keys(d.config?.mcp_servers??{}),r.nativeMcp),...r.nativeMcp?{}:{"features.apps":!1,"features.plugins":!1},"features.shell_snapshot":!1},h=Ft(r),g=h?{developerInstructions:h}:{},_;if(r.resumeThreadId&&(J(r.onProgress,`Resuming thread ${r.resumeThreadId}.`,`starting`,{kind:`status`}),ke(r.resumeThreadId)&&await Oe(r.resumeThreadId),_=await e.request(`thread/resume`,{threadId:r.resumeThreadId,cwd:t,model:p,modelProvider:f?.modelProvider??null,config:m,approvalPolicy:r.approvalPolicy??`never`,...a,...o?{approvalsReviewer:o}:{},...g}).catch(e=>{J(r.onProgress,w,`starting`,{kind:`warning`,detail:String(e?.message??e)})})),_)u=_.thread.id;else if(J(r.onProgress,`Starting Codex task thread.`,`starting`,{kind:`status`}),R(`codex.thread.start`),u=(await e.request(`thread/start`,{cwd:t,model:p,modelProvider:f?.modelProvider??null,config:m,approvalPolicy:r.approvalPolicy??`never`,...a,...o?{approvalsReviewer:o}:{},...g,serviceName:`coder_runtime`,ephemeral:r.ephemeral??!1})).thread.id,!(r.ephemeral??!1))try{await e.request(`thread/name/set`,{threadId:u,name:ot(n)})}catch(e){let t=String(e?.message??e??``);if(!t.includes(`unknown variant`)&&!t.includes(`unknown method`))throw e}R(`codex.thread.ready`),J(r.onProgress,`Thread ready (${u}).`,`starting`,{kind:`status`,threadId:u});let v,y=null,b=()=>{y&&e.request(`turn/interrupt`,{threadId:u,turnId:y}).catch(()=>{})};r.signal?.addEventListener(`abort`,b,{once:!0});try{v=await Mt(e,u,()=>e.request(`turn/start`,{threadId:u,input:[{type:`text`,text:n,text_elements:[]}],model:p,effort:r.effort??null,outputSchema:r.outputSchema??null,approvalPolicy:r.approvalPolicy??`never`,...o?{approvalsReviewer:o}:{},...c?{sandboxPolicy:c}:{}}),{cwd:t,onProgress:r.onProgress,onHeartbeat:r.onHeartbeat,onApprovalRequest:r.onApprovalRequest,onTurnStarted:async t=>{y=t,r.signal?.aborted&&b(),r.onControlReady&&(l=await tt(e,{threadId:u,turnId:t}),r.onControlReady(l.endpoint,u,t))}}),R(`codex.result`),r.onResult?.({status:v.finalTurn?.status===`completed`?0:1,threadId:u,turnId:v.turnId,finalMessage:v.lastAgentMessage,error:v.error??v.finalTurn?.error??null})}finally{r.signal?.removeEventListener(`abort`,b),await l?.close()}return{status:v.finalTurn?.status===`completed`?0:1,threadId:u,turnId:v.turnId,finalMessage:v.lastAgentMessage,reasoningSummary:v.reasoningSummary,turn:v.finalTurn,error:v.error??v.finalTurn?.error??null,stderr:It(e.stderr),fileChanges:v.fileChanges,tokens:gt(v),contextTokens:v.contextTokens,model:r.customModel?.alias??r.model??null,commandExecutions:v.commandExecutions}}function X(e){let t=process.env.CODEX_AUTH_JSON;if(t){let e=B.join(W.homedir(),`.codex`),n=B.join(e,`auth.json`);if(!H.existsSync(n)){H.mkdirSync(e,{recursive:!0,mode:448});try{H.writeFileSync(n,t,{encoding:`utf8`,flag:`wx`,mode:384})}catch(e){if(e.code!==`EEXIST`)throw e}}}let n=be(`codex`,[`--version`],{cwd:e,env:I()});if(!n.available)return n;let r=be(`codex`,[`app-server`,`--help`],{cwd:e,env:I()});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 zt(e){let t=X(e);if(!t.available)return{available:!1,loggedIn:!1,detail:t.detail};let n=null;try{n=await xe.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=U(`codex`,[`login`,`status`],{encoding:`utf8`,env:I()}),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 Bt(e,{endpoint:t,threadId:n,turnId:r}){if(!n||!r)return{interrupted:!1,detail:`missing threadId or turnId`};let i=await rt(t,`turn/interrupt`,{threadId:n,turnId:r});return i.ok?{interrupted:!0,detail:`Interrupted ${r} on ${n}.`}:{interrupted:!1,detail:i.detail}}async function Vt(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 rt(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 Ht(e,t={},n={}){if(!t.availabilityChecked){let t=X(e);if(!t.available)throw Error(`Codex CLI is not available: ${t.detail}`)}let r=t.prompt?.trim();if(!r)throw Error(`A prompt is required.`);let i=async n=>{n.setNoticeHandler?.(e=>J(t.onProgress,e,`starting`,{kind:`status`}));try{let i=await Rt(n,e,r,t);return L(i.error?.message)&&await Ce(n),i}catch(e){throw L(Se(e))&&await Ce(n),e}},a=()=>we(e,i,{...n,networkAccess:t.networkAccess,nativeMcp:t.nativeMcp}),o=!1,s=()=>(o=!0,J(t.onProgress,`Codex login changed; restarted the Codex app-server and retrying the turn once.`,`starting`,{kind:`status`}),a());try{let e=await a().catch(e=>{if(!L(Se(e)))throw e;return s()}),n=!e.fileChanges?.length&&!e.commandExecutions.length;!o&&n&&L(e.error?.message)&&(e=await s());let r=Te(e.error?.message,t.model);return r?{...e,error:{...e.error,message:r}}:e}catch(e){let n=Te(Se(e),t.model);throw n?Error(n):e}}var Ut=t({ensureCodexInstalled:()=>Xt,ensureCodexUpToDate:()=>tn,modelVersionWarning:()=>en,parseVersion:()=>$t,setupHost:()=>an,setupHostCore:()=>nn,upgradeCore:()=>rn});function Wt(e){U(`claude`,[`plugin`,`marketplace`,`remove`,`coder-plugins`],{encoding:`utf8`});let t=U(`claude`,[`plugin`,`marketplace`,`add`,e],{encoding:`utf8`}),n=U(`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 Gt(){return B.join(W.homedir(),`.agents`,`skills`,`coder`)}function Kt(){try{let e=H.readFileSync(B.join(Gt(),`SKILL.md`),`utf8`);return/^\s*version:\s*(\S+)/m.exec(e)?.[1]??null}catch{return null}}function qt(e){let t=Gt();try{let n=B.join(e,`plugins`,`agents`,`skills`,`coder`);H.rmSync(t,{recursive:!0,force:!0}),H.mkdirSync(t,{recursive:!0}),H.cpSync(n,t,{recursive:!0});let r=B.join(t,`SKILL.md`),i=H.readFileSync(r,`utf8`).replace(`
7
+ ---
8
+ `,`\nmetadata:\n version: ${c()}\n---\n`);return H.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 Jt(){let e=`codex`;if(U(`codex`,[`mcp`,`get`,`coder`],{encoding:`utf8`}).status===0)return{marketplace:e,installed:!0,note:`Coder MCP server already registered with Codex.`};let t=U(`codex`,[`mcp`,`add`,`coder`,`--`,`coder`,`mcp`],{encoding:`utf8`});return{marketplace:e,installed:t.status===0,note:t.status===0?`Coder MCP server registered with Codex; restart running sessions to load it.`:`MCP registration failed; run: codex mcp add coder -- coder mcp`}}function Yt(){let e=B.join(W.homedir(),`.cursor`,`mcp.json`);try{let t=H.existsSync(e)?JSON.parse(H.readFileSync(e,`utf8`)):{},n=e=>typeof e==`object`&&!!e&&!Array.isArray(e);if(!n(t)||t.mcpServers!==void 0&&!n(t.mcpServers))throw Error(`Invalid MCP configuration`);let r=t.mcpServers??{};return Object.hasOwn(r,`coder`)?{marketplace:e,installed:!0,note:`Coder MCP server already registered with Cursor.`}:(H.mkdirSync(B.dirname(e),{recursive:!0}),H.writeFileSync(e,JSON.stringify({...t,mcpServers:{...r,coder:{type:`stdio`,command:`coder`,args:[`mcp`]}}},null,2)+`
9
+ `,{mode:384}),{marketplace:e,installed:!0,note:`Coder MCP server registered in ~/.cursor/mcp.json; restart running sessions to load it.`})}catch{return{marketplace:e,installed:!1,note:`MCP registration failed; merge a coder entry with command "coder" and args ["mcp"] into ~/.cursor/mcp.json.`}}}function Xt(e){if(e.available)return null;let t=U(`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 Zt=`0.159.1`,Qt={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 $t(e){let t=/(\d+\.\d+\.\d+)/.exec(String(e??``));return t?t[1]:null}function en(e,t,n){let r=t?Qt[e][t]:void 0,i=$t(n.detail);return!r||!i||z(i,r)>=0?null:`${e} ${i} predates ${t} (needs ${r}), so it may fail or run another model. Run: ${e} update`}function tn(e){if(!e.available)return null;let t=$t(e.detail);if(!t||z(t,Zt)>=0)return null;let n=U(`codex`,[`update`],{encoding:`utf8`});return n.status!==0&&(n=U(`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 >= ${Zt}); auto-update failed: ${(n.stderr||`codex/npm not found`).trim()}. Run: codex update`}}async function nn(e,t={},n){let r=t.hosts??[],a=r.find(e=>![`claude`,`agents`,`codex`,`cursor`].includes(e));if(a)throw new d(`invalid-option`,`Unknown host "${a}". Use claude, agents, codex or cursor.`,{hint:`Codex, Pi, OpenCode, and other Agent Skills hosts: coder setup-host agents`});let o=e=>r.includes(e);n?.();let s=X(e),c=tn(s);c?.updated&&(s=X(e));let l=s.available?await zt(e):{loggedIn:!1,detail:s.detail},u=Q(),f=u.available?Mn():{loggedIn:!1,detail:u.detail},p=ae();if(!H.existsSync(p)){let e=!s.available&&u.available?[`claude/opus`,`codex/sol`]:[`codex/sol`,`claude/opus`];P({...M,chain:e})}let m=i(),h=o(`claude`)?Wt(m):null,g=o(`agents`)||o(`codex`)||o(`cursor`)?qt(m):null,_=[];(o(`codex`)||s.available&&(o(`agents`)||!r.length))&&_.push(Jt()),(o(`cursor`)||!r.length&&H.existsSync(B.join(W.homedir(),`.cursor`)))&&_.push(Yt()),h&&_.push({...h,note:h.installed?`Coder MCP server is declared by the Claude Code plugin.`:`Install the Claude Code plugin to register its Coder MCP server.`});let v=ye(e),y=s.available&&l.loggedIn||u.available&&f.loggedIn;return{codex:{available:s.available,detail:s.detail,auth:l.detail,loggedIn:l.loggedIn},...c?{codexUpdate:c}:{},claude:{available:u.available,detail:u.detail,auth:f.detail,loggedIn:f.loggedIn},configFile:p,runtime:Ie(new URL(`../bin/coder.mjs`,import.meta.url)),...h?{claudePlugin:h}:{},...g?{agentsSkill:g}:{},mcp:_,config:v,ready:y}}async function rn(e={},t){let n=!e.pluginsOnly,r=!e.cliOnly,a=i(),o=B.join(a,`plugins/claude/.claude-plugin/plugin.json`),u={cli:c(),claude:l(o)},f={};if(n){let n=je(s),[r,...i]=e.pm&&Ne[e.pm]||n.command,a=e.pm??n.pm;t?.(`via ${a}`);let o=U(r,i,{encoding:`utf8`});if(o.error?.code===`ENOENT`)throw new d(`invalid-option`,`${a} not found on PATH. Re-run with --pm <npm|pnpm|yarn|bun>, or update manually: ${r} ${i.join(` `)}`);if(o.status!==0){let e=(o.stderr||o.stdout||``).trim();throw new d(`invalid-option`,`CLI update failed (${a}).${e?`\n${e}`:``}\nRun manually: ${r} ${i.join(` `)}`)}Me();let l=c();f.cli={pm:a,from:u.cli,to:l,changed:l!==u.cli}}if(r){if(e.claude||!e.codex&&Q().available){let e=Wt(a);f.claudePlugin={installed:e.installed,note:e.note,from:u.claude,to:l(o)}}if(H.existsSync(Gt())){let e=Kt(),t=qt(a);f.agentsSkill={installed:t.installed,note:t.note,from:e,to:Kt()}}}return f}function an(e=[],t={}){return nn(B.resolve(t.cwd??`.`),{hosts:e})}function on(){let e=process.env.CLAUDE_CONFIG_DIR||B.join(W.homedir(),`.claude`);return B.join(e,`projects`)}async function sn(e,t,n){if(!/^[a-zA-Z0-9_-]+$/.test(e))return null;let r=n?B.join(n,`projects`):on(),i=null;for(let n of await H.promises.readdir(r).catch(()=>[])){let a=B.join(r,n,`${e}.jsonl`);if(!H.existsSync(a))continue;let o=H.createReadStream(a,{encoding:`utf8`}),s=ze.createInterface({input:o,crlfDelay:1/0});try{for await(let e of s){let n;try{n=JSON.parse(e)}catch{continue}n.type===`assistant`&&!n.isSidechain&&Date.parse(n.timestamp)>=t&&(i=n.message?.usage??null)}}finally{s.close(),o.destroy()}}return i}function cn(e){if(!e)return!1;let t=on(),n=!1;try{for(let r of H.readdirSync(t)){let i=B.join(t,r,`${e}.jsonl`);H.existsSync(i)&&(H.rmSync(i,{force:!0}),n=!0)}}catch{}return n}const ln=/^[A-Za-z0-9-]{1,128}$/;function un(e){return[...new Set([...e.previousThreadIds??[],...e.threadId?[e.threadId]:[]])]}async function dn(e,t){if(!/^[a-zA-Z0-9_-]+$/.test(t))return[];let n=e.engine===`claude`,r=n?on():Ae(),i=e.id?B.join(y(e.cwd??``,e.id),`history-files.json`):void 0,a=JSON.stringify([e.engine,r,t]),o=i?D(i)??{}:{},s=o[a];if(s?.length&&s.every(e=>e.startsWith(`${r}${B.sep}`)&&H.existsSync(e)))return s;let c=[],l=async(e,r)=>{for(let i of await H.promises.readdir(e,{withFileTypes:!0}).catch(()=>[])){let a=B.join(e,i.name);i.isDirectory()&&r?await l(a,r-1):i.isFile()&&(n?i.name===`${t}.jsonl`:i.name.endsWith(`-${t}.jsonl`))&&c.push(a)}};return n?await l(r,1):(await l(B.join(r,`sessions`),3),await l(B.join(r,`archived_sessions`),0)),i&&c.length&&C(i,{...o,[a]:c}),c}function fn(e,t){let n=t?e.message:e.type===`response_item`?e.payload:void 0;if(!n||!t&&n.type===`reasoning`)return;let r=n.content,i=Array.isArray(r)?r:[],a=n.role??(n.type?.endsWith(`_output`)?`tool`:`assistant`),o=i.some(e=>e.type===`tool_use`)||[`function_call`,`custom_tool_call`].includes(n.type),s=i.some(e=>e.type===`tool_result`)||[`function_call_output`,`custom_tool_call_output`].includes(n.type),c=typeof r==`string`?r:i.length?i.map(e=>typeof e.text==`string`?e.text:JSON.stringify(e)).join(`
10
+ `):JSON.stringify(n);return{speaker:s&&!o?`tool`:a,time:String(e.timestamp??``),text:c,tooling:o||s}}async function*pn(e,t){for(let n of await dn(e,t)){let t=H.createReadStream(n,{encoding:`utf8`}),r=ze.createInterface({input:t,crlfDelay:1/0});try{for await(let t of r){let n;try{n=JSON.parse(t)}catch{continue}let r=fn(n,e.engine===`claude`);r&&(yield r)}}finally{r.close(),t.destroy()}}}async function mn(e,{query:t,from:n=0,limit:r=10,role:i=`all`}={}){if(i!==`all`&&i!==`conversation`)throw Error(`role is all or conversation`);if(t!==void 0&&(typeof t!=`string`||!t.length||t.length>500))throw Error(`Provide a query of 1 to 500 characters`);if(!Number.isSafeInteger(n)||n<0)throw Error(`Provide from as a nonnegative message index`);if(!Number.isInteger(r)||r<1||r>20)throw Error(`Provide a limit of 1 to 20 messages`);let a=[],o=t?.toLowerCase(),s=0;for(let t of un(e))for await(let c of pn(e,t)){if(i===`conversation`&&c.tooling)continue;let e=s++;if(e<n)continue;let t=o===void 0?0:c.text.toLowerCase().indexOf(o);if(t<0)continue;if(a.length===r)return{messages:a,next:a[a.length-1].index+1};let l=Math.max(0,t-200);a.push({index:e,speaker:c.speaker,time:c.time,text:c.text.slice(l,l+1200)})}return{messages:a}}const hn=`coder-mcp-status`;function gn(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 _n(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 vn(e,t,n=!1){if(!t)return[];let r;try{r=H.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=_n(r.slice(0,e))+1,s=Math.max(1,_n(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 yn(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 bn(e,t,n){let r=String(t.file_path??t.notebook_path??t.path??``),i=r?B.isAbsolute(r)?r:B.resolve(n,r):``,a=r?S(n,i)||r:`(unknown path)`,o=t.path?` in ${S(n,String(t.path))}`:``;if(e===`Write`){let e=_n(String(t.content??``));return`Write ${a} ${e?`L1-L${e}`:`(empty file)`}`}if(e===`Edit`){let e=vn(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=>vn(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)}: `:``}${yn(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}=${yn(t)}`).join(` `);return s?`${e} ${s}`:e}function Z(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 xn(e,t){return Object.assign(Error(e),{retryable:t})}function Sn(e,t){let n=t&&Je(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 Cn(e){let t=!0;return{sendInitial(t,n){return new Promise((r,i)=>{e(`${JSON.stringify(Sn(t,n))}\n`,e=>{e?i(e):r()})})},sendSteer(n,r){return t?new Promise((t,i)=>{e(`${JSON.stringify(Sn(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(xn(`Failed to write Claude live steer: ${e.message}`,r))})}):Promise.reject(xn(`Claude turn is no longer accepting live input.`,!0))},stopAccepting(){t=!1}}}async function wn(e){return Ue(`coder-claude-steer-`,async(t,n)=>{if(n)throw xn(`Claude turn is no longer accepting live input.`,!0);let r=typeof t?.params?.text==`string`?t.params.text.trim():``;if(t.method!==`turn/steer`||!r)throw xn(`Invalid Claude steer request.`,!1);return await e(r,t.command),{accepted:!0}})}async function Tn(e,t){let n=t.resumeSessionId??G(),r=Fn(e,t),i=Object.keys(r).length>0&&V.platform!==`win32`,a=i&&V.platform===`linux`?H.mkdtempSync(B.join(W.tmpdir(),`coder-mcp-`)):void 0,o=a&&B.join(a,`config`);o&&Le(`mkfifo`,[`-m`,`600`,o]);let s=Object.keys(r).length&&!i?B.join(t.taskRoot??e,`.claude-mcp-${G()}.json`):void 0,c=t.systemPrompt?B.join(t.taskRoot??e,`.claude-system-${G()}.md`):void 0,l=(t.mcpServers??[]).filter(e=>e.readOnly),u=l.length?B.join(t.taskRoot??e,`.claude-read-only-${G()}.json`):void 0;for(let[e,n]of[[s,`${JSON.stringify({mcpServers:r})}\n`],[c,t.systemPrompt],[u,JSON.stringify(l)]])e&&(H.mkdirSync(B.dirname(e),{recursive:!0}),H.writeFileSync(e,n,{encoding:`utf8`,flag:`wx`,mode:384}));R(`claude.prepare`,{resume:!!t.resumeSessionId});let d=I({CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH:`16384`,...V.env,...t.env}),f=jn(t.executable??`claude`,d,e),p=In(e,t,n,i?o??`/dev/fd/3`:s,f,c,u),m=(e=!0)=>{for(let t of[s,c,...e?[u]:[]])if(t)try{H.unlinkSync(t)}catch{}};return t.onProgress?.({kind:`status`,message:`claude turn started (session ${n})`,threadId:n}),new Promise((s,c)=>{let l=Date.now();R(`claude.spawn`);let u=Re(t.executable??`claude`,p,{cwd:e,stdio:[`pipe`,`pipe`,`pipe`,`pipe`],env:d}),f=u.stdio[3];f.on(`error`,()=>{});let h=`${JSON.stringify({mcpServers:r})}\n`;f.end(i&&!o?h:void 0),o&&(H.promises.writeFile(o,h).catch(()=>{}).finally(()=>H.rmSync(a,{recursive:!0,force:!0})),u.once(`exit`,()=>{try{H.closeSync(H.openSync(o,H.constants.O_RDONLY|H.constants.O_NONBLOCK))}catch{}}));let g=``,_=``,v=[],y=null,b=n,x=null,S=!1,C=Cn((e,t)=>u.stdin.write(e,t)),w=Date.now(),T=new Map,E=0,D=0,O=null,k,A=0,j=n=>{if(!(!n||typeof n!=`object`)){if(m(!1),t.onHeartbeat?.(),n.type===`system`&&n.subtype===`init`&&n.session_id)b=n.session_id,n.mcp_servers?.some(e=>e.status===`failed`)&&u.stdin.write(`${JSON.stringify({type:`control_request`,request_id:hn,request:{subtype:`mcp_status`}})}\n`);else if(n.type===`control_response`&&n.response?.request_id===hn)for(let e of n.response.response?.mcpServers??[])e.status===`failed`&&t.onProgress?.({kind:`error`,message:`MCP server ${e.name} failed to start. ${e.error??``}`.trim()});else if(n.type===`stream_event`&&!n.parent_tool_use_id){let e=n.event;e?.type===`message_start`?(k=e.message?.id,O=e.message?.usage):e?.type===`message_delta`&&(O={...O,...e.usage});let t=Z(O);D=t?t.input+t.cachedInput:0}else if(n.type===`assistant`||n.type===`user`){let r=n.type===`assistant`?Z(n.message?.usage):null;if(n.type===`assistant`&&!n.parent_tool_use_id){(!k||k!==n.message?.id)&&(O=null),k=n.message?.id,(!O||r&&r.input+r.cachedInput>0)&&(O=n.message?.usage);let e=Z(O);D=e?e.input+e.cachedInput:0}if(r){E+=r.output;let e=r.input+r.cachedInput+E;(!A||e-A>=1e3)&&(A=e,t.onProgress?.({kind:`usage`,tokens:{...r,output:E,total:e},context:D,threadId:b}))}for(let r of n.message?.content??[])if(r?.type===`tool_use`||r?.type?.endsWith(`_tool_use`)){let n=String(r.name??`Tool`);r.id&&T.set(String(r.id),{name:n,at:Date.now()}),t.onProgress?.({kind:`tool`,tool:n,...r.id?{callId:String(r.id)}:{},message:bn(n,r.input??{},e),threadId:b})}else if(r?.type===`tool_result`||r?.type?.endsWith(`_tool_result`)){let e=gn(r.content).trim(),n=r.is_error===!0||r.content?.type?.endsWith(`_error`)===!0,i=r.tool_use_id?T.get(String(r.tool_use_id)):void 0;r.tool_use_id&&T.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:b})}else n.type===`assistant`&&r?.type===`text`&&typeof r.text==`string`&&r.text.trim()?t.onProgress?.({kind:`assistant`,message:r.text.trim(),threadId:b}):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()-w),threadId:b})}else n.type===`result`&&(R(`claude.result`),y=n,t.onResult?.({status:n.is_error||v.length?1:0,threadId:n.session_id??b,finalMessage:n.structured_output===void 0?String(n.result??``).trim():JSON.stringify(n.structured_output),error:n.is_error||v.length?{message:v[0]||String(n.result??``)}:null}),n.session_id&&(b=n.session_id),C.stopAccepting(),u.stdin.end());w=Date.now()}};u.stdout.on(`data`,e=>{g+=e;let t;for(;(t=g.indexOf(`
11
+ `))>=0;){let e=g.slice(0,t).trim();if(g=g.slice(t+1),e)try{j(JSON.parse(e))}catch(e){v.push(`Invalid Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}}}),u.stderr.on(`data`,e=>{_+=e});let M=()=>{C.stopAccepting(),u.kill(`SIGTERM`),m();let e=x?.endpoint;e?.startsWith(`file:`)&&H.rmSync(e.slice(5),{recursive:!0,force:!0}),V.exit(143)};V.on(`SIGTERM`,M);let N=()=>{C.stopAccepting(),u.kill(`SIGTERM`)};t.signal?.aborted?N():t.signal?.addEventListener(`abort`,N,{once:!0}),(async()=>{t.onSteerReady&&(x=await wn((e,t)=>C.sendSteer(e,t))),await C.sendInitial(t.prompt,t.command),x&&t.onSteerReady?.(x.endpoint)})().catch(e=>{S||(S=!0,C.stopAccepting(),u.kill(`SIGTERM`),m(),V.removeListener(`SIGTERM`,M),x?.close(),c(e))}),u.on(`error`,e=>{S||(S=!0,C.stopAccepting(),V.removeListener(`SIGTERM`,M),m(),x?.close(),c(Error(`claude spawn failed: ${e.message}`)))}),u.on(`close`,async e=>{if(S)return;S=!0,C.stopAccepting(),V.removeListener(`SIGTERM`,M),m(),R(`claude.exit`),await x?.close(),R(`claude.teardown.done`);let n=g.trim();if(n)try{j(JSON.parse(n))}catch(e){v.push(`Invalid trailing Claude stream-json output: ${e instanceof Error?e.message:String(e)}`)}let r=y?.structured_output===void 0?(y?.result??``).trim():JSON.stringify(y.structured_output),i=e!==0||y?.is_error===!0||y==null||v.length>0;R(`claude.usage.start`);let a=Z(y?.usage);if(!D&&y){let e=Z(await sn(b,l,d.CLAUDE_CONFIG_DIR).catch(()=>null)),t=e&&e.input+e.cachedInput>0?e:a;D=t?t.input+t.cachedInput:0}R(`claude.usage.done`),s({status:+!!i,threadId:y?.session_id??b,turnId:null,finalMessage:r,tokens:a,contextTokens:D,model:y?.modelUsage&&Object.keys(y.modelUsage).join(`+`)||t.model||null,error:i?{message:v[0]||r||_.trim()||`claude exited ${e}`}:null})})})}var En=t({buildClaudeMcpConfig:()=>Fn,buildClaudeTurnArgs:()=>In,claudeToolName:()=>$,claudeVersion:()=>jn,claudeVersionEnvironment:()=>An,describeClaudeToolUse:()=>bn,getClaudeAuthStatus:()=>Mn,getClaudeAvailability:()=>Q,runClaudeTurn:()=>Rn,steerClaudeTurn:()=>Ln});const Dn=new Map,On=`CODER_CLAUDE_VERSION`;function kn(e,t,n){let r=V.platform===`win32`?t[Object.keys(t).sort().find(e=>e.toLowerCase()===`path`)??`PATH`]??V.env.PATH??``:t.PATH??`/usr/bin:/bin`,i=/[\\/]/.test(e)?[``]:[...V.platform===`win32`?[n]:[],...r.split(B.delimiter)],a=V.platform===`win32`&&!B.extname(e)?[``,...(t.PATHEXT??`.EXE;.COM`).split(`;`)]:[``];for(let t of i)for(let r of a){let i=B.resolve(n,t,e+r);try{if(H.accessSync(i,H.constants.X_OK),H.statSync(i).isFile())return H.realpathSync(i)}catch{}}return B.resolve(n,e)}function An(e,t){let n=kn(`claude`,I(e),t),r=Dn.get(n);return{[On]:r===void 0?void 0:JSON.stringify({executable:n,detail:r})}}function jn(e,t,n){let r=kn(e,t,n),i=Dn.get(r);if(i!==void 0)return i;try{let e=JSON.parse(t[On]??`null`);if(e?.executable===r&&typeof e.detail==`string`)return Dn.set(r,e.detail),e.detail}catch{}return Q(e,t,n).detail}function Q(e=`claude`,t=V.env,n=V.cwd()){t=I(t);let r=kn(e,t,n),i=U(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 Dn.set(r,o),{available:a,detail:o}}function Mn(){if(V.env.CLAUDE_CODE_OAUTH_TOKEN)return{loggedIn:!0,detail:`CLAUDE_CODE_OAUTH_TOKEN configured`};if(V.env.ANTHROPIC_API_KEY)return{loggedIn:!0,detail:`ANTHROPIC_API_KEY configured`};let e=U(`claude`,[`auth`,`status`,`--json`],{encoding:`utf8`,env:I()});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`}}}const $=(e,t)=>[`mcp`,e,...t===void 0?[]:[t]].map(e=>e.replace(/[^A-Za-z0-9_-]/g,`_`)).join(`__`),Nn=e=>`'${e.replaceAll(`'`,`'\\''`)}'`,Pn=`coder-approval`;function Fn(e,t){let n=t.access??`auto`,r=t.mcpServers??[],i={};n===`auto`&&t.approvalTaskId&&(i[Pn]={type:`stdio`,command:V.execPath,args:[s,`task`,`mcp`,t.approvalTaskId,`--cwd`,e],env:{[Vn]:`1`}});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}:{}},...e.alwaysLoad?{alwaysLoad:!0}:{}};return i}function In(e,t,n,r,i,a,o){let c=[`-p`,`--input-format`,`stream-json`,`--output-format`,`stream-json`,`--verbose`,`--replay-user-messages`],l=$t(i);if(l&&z(l,`2.1.94`)>=0&&c.push(`--thinking-display`,`summarized`),c.push(t.resumeSessionId?`--resume`:`--session-id`,n),t.model&&c.push(`--model`,t.model),t.effort&&c.push(`--effort`,t.effort),t.systemPrompt&&c.push(`--append-system-prompt-file`,a??B.join(t.taskRoot??e,`.claude-system.md`)),t.systemPrompt&&l&&z(l,`2.1.267`)>=0&&c.push(`--system-prompt-snapshot`,`off`),t.excludeDynamicSections&&c.push(`--exclude-dynamic-system-prompt-sections`),t.settingSources&&c.push(`--setting-sources`,t.settingSources),t.outputSchema){let{$schema:e,...n}=t.outputSchema;c.push(`--json-schema`,JSON.stringify(n))}let u=t.access??`auto`,d=t.additionalDirectories??[],f=u===`read-only`?t.readOnlyAllowedTools??[]:[],p=t.mcpServers??[],m=Fn(e,t),h=u===`auto`&&t.approvalTaskId,g=p.flatMap(e=>e.tools?.length?e.tools.map(t=>$(e.name,t)):[$(e.name)]),_=Object.keys(m).length?[`--mcp-config`,r??B.join(t.taskRoot??e,`.claude-mcp.json`)]:t.nativeMcp?[]:[`--mcp-config`,`{"mcpServers":{}}`];t.nativeMcp||c.push(`--strict-mcp-config`,`--no-chrome`),h?(c.push(...fe.auto,..._,`--permission-prompt-tool`,$(Pn,`approval_prompt`)),g.length&&c.push(`--allowedTools`,...g)):f.length?c.push(...ge.filter(e=>V.env.CODER_MACHINE_SANDBOX!==`1`||e!==`Bash`),..._,`--allowedTools`,...f,...g):(c.push(...fe[u]??fe.auto,..._),g.length&&c.push(`--allowedTools`,...g)),h&&c.push(`--disallowedTools`,$(Pn,`approval_prompt`));for(let e of d)c.push(`--add-dir`,e);let v=p.filter(e=>e.readOnly),y=t.approvalTaskId?[V.execPath,s,`task`,`hook`,t.approvalTaskId,...v.length?[`--servers`,o??B.join(t.taskRoot??e,`.claude-read-only.json`)]:[],`--cwd`,e].map(Nn).join(` `):void 0,b=he(u,e,t.allowedNetworkHosts??[],d,V.env[me]!==`1`,t.scratch,t.local??!0,y,[De()].filter(e=>e!==void 0)),x=b?JSON.parse(b):{},S=y?v.map(e=>({matcher:`${$(e.name)}__.*`,hooks:[{type:`command`,command:y}]})):[],C={...x,...S.length?{hooks:{PreToolUse:[...x.hooks?.PreToolUse??[],...S]}}:{},...t.nativeMcp?{}:{disableClaudeAiConnectors:!0},...t.promptCacheTtl&&l&&z(l,`2.1.242`)>=0?{promptCacheTtl:t.promptCacheTtl}:{}};return Object.keys(C).length&&c.push(`--settings`,JSON.stringify(C)),c}async function Ln(e,t,n=3e3,r){if(!t.trim())return{steered:!1,retryable:!1,detail:`empty follow-up`};let i=await We(e,{id:Je(r),method:`turn/steer`,params:{text:t.trim()},command:r},n,`Claude live steer`);return{steered:i.ok&&i.result?.accepted===!0,retryable:i.retryable,detail:i.detail}}async function Rn(e,t){let n=await Tn(e,t);return!t.resumeSessionId||!n.error?.message?.includes(`No conversation found with session ID`)?n:(t.onProgress?.({kind:`warning`,message:w}),Tn(e,{...t,resumeSessionId:null}))}const zn=/usage|quota|rate.?limit|429|401|unauthorized|not authenticated|login|insufficient|exhausted|not available|\bat capacity\b|ENOENT/i;function Bn(e){return zn.test(e)&&!Ee(e)}const Vn=`CODER_WORKER`;var Hn=class extends Error{engine;detail;constructor(e,t){super(t),this.engine=e,this.detail=t}};function Un(e,t){try{return!!pe(e,t)}catch{return!1}}function Wn(e,t){let n=e=>new d(`invalid-option`,e instanceof Error?e.message:String(e)),r=e.engine;if(r!==void 0&&r!==`codex`&&r!==`claude`&&r!==`custom`){let e=se(r)||r in(t.models??{})?` "${r}" is a model; use --model ${r}.`:``;throw new d(`invalid-option`,`Invalid engine "${r}". Use --model <model> or --model <engine/model>.${e}`)}let i=e.model?r&&!String(e.model).includes(`/`)?`${r}/${e.model}`:e.model:r??t.chain.find(e=>Un(e,t))??t.chain[0],a,o;try{o=oe(i),a=pe(i,t)}catch(e){throw n(e)}let s=a.engine,c=a.model,l=o.effort??e.effort??a.effort,u=e=>{let n=e?t.models?.[e]:void 0;return ne(n)?n:void 0},f=e.access??`auto`;try{_e(t,c)}catch(e){throw n(e)}if(s===`custom`){let e=Object.entries(t.models??{}).filter(([,e])=>ne(e)).map(([e])=>e);if(!c&&e.length===1&&(c=e[0]),!c||!u(c))throw new d(`invalid-option`,c?`No custom model named "${c}". Configured: ${e.join(`, `)||`none`}.`:`No custom model to run: pass --model <name> or list custom/<name> in chain.`,{hint:`Use --model <name> or --model custom/<name>. Add one: coder model add <name> --base-url <url> --model <id>`})}if(!(f in ve))throw new d(`invalid-option`,`Invalid --access "${f}". Use one of: ${Object.keys(ve).join(`, `)}`);return{engine:s,model:c,effort:l,access:f}}const{connection:Gn,description:Kn,...qn}=ce.shape,Jn=e({name:a().check(u(1)),...qn}).check(o(e=>!!e.command!=!!e.url,`one of command or url`)),Yn=r(Jn);function Xn(e,t={}){let n=e.trim();return/^[\[{]/.test(n)?Qn(n):(n===`all`?Object.keys(t):n.split(`,`).map(e=>e.trim()).filter(Boolean)).map(e=>{let n=t[e];if(!n)throw new d(`invalid-option`,`Unknown MCP server "${e}".`,{hint:`configured: ${Object.keys(t).join(`, `)||`none`}; or pass a JSON array`});return{name:e,...n}})}function Zn(e,t={},n={},r={}){typeof e==`string`&&!e.trim()&&(e=void 0);let i=typeof e==`string`?Xn(e,{...t,...n}):e??Object.entries(n).map(([e,t])=>({name:e,...t})),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(...ue(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 Qn(e){let t;try{t=JSON.parse(e)}catch(e){throw new d(`invalid-option`,`Invalid --mcp JSON: ${e instanceof Error?e.message:String(e)}`)}let r=Yn.safeParse(t);if(!r.success)throw new d(`invalid-option`,`Invalid --mcp value: ${n(r.error)}`,{hint:`--mcp '[{"name":"docs","command":"npx","args":["-y","docs-mcp"],"tools":["search"]}]'`});return r.data}function $n(e,t=V.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=>V.stderr.write(`coder: ${e}\n`));return(e??[]).flatMap(e=>{let r=e.repository&&!e.resolved;if(r){for(let t of ue(e.name,e))o(t);if(!i&&!le(e))return o(`MCP server "${e.name}" skipped pending local approval. Run coder connection approve ${e.name} in its repository.`),[]}let s=new Set,c=new Set,l=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?(c.add(n),``):Object.hasOwn(a,n)?a[n]:(s.add(n),``):t[n]??o??``),u=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,l(t)])),f=r&&!!e.url,p={...e,...e.command?{command:l(e.command)}:{},...e.args?{args:e.args.map(l)}:{},...e.url?{url:f?e.url:l(e.url)}:{},...e.env?{env:u(e.env)}:{},...e.headers?{headers:f?e.headers:u(e.headers)}:{}};if(c.size)return o(`MCP server "${e.name}" skipped because connection variables ${[...c].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(B.sep)?[B.resolve(n,p.command)]:(p.env?.PATH??t.PATH??`/usr/bin:/bin`).split(B.delimiter).map(e=>B.resolve(n,e,p.command))).find(e=>{try{return H.accessSync(e,H.constants.X_OK),H.statSync(e).isFile()}catch{return!1}});if(!m)throw new d(`invalid-option`,`MCP server "${e.name}" command cannot be resolved.`);return p.command=H.realpathSync(m),p.args=p.args?.map(e=>{if(e.startsWith(`-`)||B.isAbsolute(e))return e;let t=B.resolve(n,e),r=H.existsSync(t)&&H.statSync(t).isFile();return!r&&!e.startsWith(`./`)&&!e.startsWith(`../`)?e:r?H.realpathSync(t):t}),[p]})}function er(e,t=[]){let n=[...new Set(t.map(t=>B.resolve(e,t)))];for(let e of n)if(!H.statSync(e,{throwIfNoEntry:!1})?.isDirectory())throw new d(`invalid-option`,`--add-dir ${e} is not a directory.`);return n}function tr(e){return e===`local`||e===`http`?void 0:`--add-dir ignored: this task runs on a ${e} machine`}function nr(e,t){return e===`read-only`&&de.test(t??``)}function rr(e,t,n={},r=!1){let i=y(e,t),a=H.openSync(B.join(i,`worker.log`),`a`),o={...V.env,...n},c=v(e,t);R(`worker.spawn`,{taskId:t});let l;try{l=Re(V.execPath,[s,`task`,`worker`,t,`--cwd`,e],{cwd:e,detached:!0,stdio:[`ignore`,a,a,`ipc`],env:{...o,...An(o,e),[Vn]:`1`,CODER_ENGINE_CHECKED:r?`1`:void 0}})}finally{H.closeSync(a)}let u=n=>{let r=v(e,t);if(!r||r.dispatchId!==c?.dispatchId||r.resumedAt!==c?.resumedAt||r.pid!==(l.pid??null)||!j.includes(r.status)&&!(r.status===`completed`&&ee(e,t)))return;let i=`Task worker exited without finishing: ${n}`;N(e,t,{status:`failed`,error:i,completedAt:new Date().toISOString(),steerClosed:!0,resumeOwner:void 0}),A(e,t,{kind:`error`,message:i})};return l.on(`error`,e=>u(e.message)),l.on(`exit`,(e,t)=>u(t?`signal ${t}`:`exit ${e}`)),l.unref(),l.channel?.unref?.(),N(e,t,{pid:l.pid??null}),l}async function ir(e,t,n,r,i){let a=n.cwd,o=n.availability?.[t.engine===`custom`?`codex`:t.engine]??(t.engine===`claude`?Q(`claude`,{...V.env,...n.connectionEnv,...n.credentialEnv},a):X(a)),s=t.model?e.models?.[t.model]:void 0;if(!o.available&&s&&ne(s)){let e=Xt(o);n.onNote?.(e.note),o=X(a)}if(!o.available)throw new Hn(t.engine,o.detail);let c=s?null:t.engine===`claude`?en(`claude`,t.model,o):en(`codex`,ie(t.model),o);c&&n.onNote?.(c);let l=n.addDirs??[],u=n.taskId??x(),m=n.resume?.engine===t.engine?n.resume:void 0,_=p(u);H.mkdirSync(_,{recursive:!0}),Pe(y(a,u),n.approvals??[]);let b=N(a,u,{status:`queued`,...n.taskId?{dispatchId:G()}:{},name:r.name??null,appendSystem:n.appendSystem??null,promptParts:{cwd:a,...n.agentPrompt,appendSystem:n.appendSystem??void 0,conversation:n.conversation,local:V.env.CODER_MCP_MODE!==`cloud`,scratch:_,writes:t.access!==`read-only`,...n.structured||n.outputSchema?{structured:!0}:{}},engine:t.engine,prompt:n.prompt,...n.outputSchema?{outputSchema:n.outputSchema}:{},model:t.model,effort:t.effort,access:t.access,resumeThreadId:m?.threadId??null,...m?{threadId:m.threadId,...m.previousThreadIds?{previousThreadIds:m.previousThreadIds}:{}}:{},cwd:a,...n.flowRunId?{flowRunId:n.flowRunId}:{},...n.agentId?{agentId:n.agentId}:{},...n.conversation?{conversation:!0}:{},...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,...l.length?{addDirs:l}:{}});for(let e of new Set(n.mcpWarnings??[]))A(a,u,{kind:`warning`,message:e});n.resume&&!m&&A(a,u,{kind:`warning`,message:w});let S=B.join(y(a,u),`log.jsonl`),C=H.existsSync(S)?H.statSync(S).size:0,E=rr(a,u,{...n.connectionEnv,...n.credentialEnv},!0);if(n.onWorker?.(u,E),!i)return{taskId:u,task:v(a,u)??b,engine:t.engine,startupCheck:`pending`};let O=f(a,u,E),j=k(S,C),M=!1,ee=!1,te=()=>{let e=j().map(e=>{try{return JSON.parse(e)}catch{return{kind:`unknown`}}});return ee||=e.some(e=>e.kind===`tool`||e.kind===`reply`),e.some(e=>e.phase!==`starting`&&![`status`,`usage`].includes(e.kind??``))},re=Date.now()+15e3,P,F=b;try{for(;Date.now()<(P===void 0?re:P+5e3)&&(F=v(a,u)??F,!(T.includes(F.status)||g(a,u).at(-1)?.status===0||Fe(y(a,u)).length||(M=te()||M,F.threadId&&(P??=Date.now(),M))));)await O.wait(Math.min(3e4,(P===void 0?re:P+5e3)-Date.now()))}finally{O.close()}if(F.status===`failed`){te();let e=B.join(y(a,u),`result.json`),n=D(e),r=n?.error?.message??``,i=h(a,u,5).map(e=>e.message??``).join(`
12
+ `),o=r||i;throw nr(t.access,o)?new d(`read-only-unavailable`,o):Bn(o)&&!lr(n,ee)?new Hn(t.engine,o):new d(`startup-failed`,o,{taskId:u})}return{taskId:u,task:F,engine:t.engine,startupCheck:F.threadId?`passed`:`pending`}}function ar(e,t,n,r,i){return{error:`${e} failed to start: ${t}`,fallback:{action:`run-native-subagent`,reason:`no-engine-available`,access: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.access is "read-only", append: "Investigate and report without modifying anything." 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 access.`,...r?{appendSystem:r}:{},task:i}}}async function or(e,t={}){if(V.env.CODER_WORKER)throw new d(`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 d(`invalid-option`,`outputSchema must be an object.`);if(!e.prompt.trim())throw new d(`invalid-option`,`Missing task text.`,{hint:[`Usage: coder run "<task text>"`,`Help: coder task run --help`]});e={...e,addDirs:er(e.cwd,e.addDirs)};let n=t.config??ye(e.cwd),r=Zn(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=t.models??sr(n,Wn({engine:e.engine,model:e.model,effort:e.effort,access:e.access},n)),o=a[0],s={name:e.name};for(;;)try{return await ir(n,o,i,s,t.waitForStartup!==!1)}catch(t){if(!(t instanceof Hn))throw t;let n=cr(a,o);if(!n){let n=ar(t.engine,t.detail,o.access,e.appendSystem,e.prompt);throw new d(`chain-exhausted`,n.error,{payload:n})}e.onFallback?.({model:E(o),detail:t.detail,next:E(n)}),o=n,s={name:void 0}}}function sr(e,t){let n=[t];for(let r of e.chain)try{let i=Wn({model:r,access:t.access},e);n.some(e=>re(e,i))||n.push(i)}catch{}return n}function cr(e,t){return e[Math.max(0,e.findIndex(e=>re(e,t)))+1]}function lr(e,t=!1){return!!(t||e?.fileChanges?.length||e?.commandExecutions?.length)}function ur(e,t){if(t.status!==`failed`)return!1;let n=t.result;if(!n||!Bn(n.error?.message??``))return!1;let r=Date.parse(t.turns.at(-2)?.at??t.task.resumedAt??t.task.createdAt);return!lr(n,h(e,t.taskId,2**53-1).some(e=>(e.kind===`tool`||e.kind===`reply`)&&(!e.at||Date.parse(e.at)>=r)))&&!t.turns.at(-1)?.lastReply}function dr(e,t,n){if(ur(e,t))return cr(n,{engine:t.task.engine,model:t.task.model??null})??null}function fr(e,t,n){return n&&(j.includes(n.status)||n.status===`failed`&&n.error)?null:D(B.join(y(e,t),`result.json`))}function pr(e,t,n=0){if(n===0)return[];let r=h(e,t,2**53-1);return n===`all`?r:m(r,n)}function mr(e,t,n={}){let r=n.task??v(e,t);if(!r)throw Error(`No task found for "${t}".`);return{taskId:t,status:r.status,result:fr(e,t,r),steps:pr(e,t,n.tail),turns:g(e,t),task:r}}async function hr(e,t,n={}){let r=v(e,t);if(!r)throw Error(`No task found for "${t}".`);let i=await gr(e,r,1e3,n);if(i.reason===`approval`){let e=i.approval;throw new d(`approval-pending`,`Approval needed for task ${t}: ${e.reason}`,{taskId:t,approval:e})}n.onSettle?.();let a=i.task;return{taskId:t,status:a.status,result:fr(e,t,a),steps:pr(e,t,n.tail),turns:g(e,t),task:a}}async function gr(e,t,n=1e3,{turn:r,worker:i,signal:a,seen:o=[]}={}){let s=t,c=f(e,t.id,i);try{let t=O();for(;;){a?.throwIfAborted(),s=v(e,s.id)??s;let i=r===void 0?void 0:g(e,s.id)[r];s=i?{...s,status:i.status===0?`completed`:`failed`}:_(e,s,t);let l=Fe(y(e,s.id)).find(e=>!o.includes(e.id));if(l)return{task:s,reason:`approval`,approval:{id:l.id,reason:l.reason,actions:l.actions}};if(T.includes(s.status)&&(r!==void 0||!b(e,s)))return{task:s,reason:`terminal`};await c.wait(n,a)}}finally{c.close()}}export{an as A,Qe as B,on as C,dn as D,mn as E,Vt as F,nt as I,Ze as L,X as M,Bt as N,Xt as O,Ht as P,Je as R,ln as S,cn as T,hr as _,nr as a,Rn as b,mr as c,Wn as d,Zn as f,gr as g,ur as h,tr as i,rn as j,Ut as k,er as l,dr as m,ar as n,sr as o,rr as p,or as r,fr as s,Vn as t,$n as u,En as v,un as w,Ln as x,Q as y,qe as z};