@wular/coder 0.4.10 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/dist/actions-Cwe3IDVs.js +2 -0
  2. package/dist/{adapter-BeezVK-B.js → adapter-Bi768A94.js} +1 -1
  3. package/dist/{adapter-ChaISKgI.js → adapter-CkL4PqXE.js} +1 -1
  4. package/dist/{adapter-MD6ahqPR.js → adapter-DYxjaefw.js} +1 -1
  5. package/dist/{add-Bk8drM-8.js → add-B6vPKZEr.js} +1 -1
  6. package/dist/{add-CD_L-WW8.js → add-n6c9OINP.js} +2 -2
  7. package/dist/{add-BbXuvqj1.js → add-v1Pv00HX.js} +1 -1
  8. package/dist/{add-B26QSwPY.js → add-wC8ByRgM.js} +1 -1
  9. package/dist/{agent-B8ItyuHN.js → agent-6GooVMsq.js} +2 -2
  10. package/dist/{agent-DHpMqHVi.js → agent-BkxXgha0.js} +1 -1
  11. package/dist/{alias-CScCzXhS.js → alias-A8ObWElH.js} +1 -1
  12. package/dist/{app-wHQJHu6N.js → app-CaxTL1H3.js} +1 -1
  13. package/dist/{approvals-BIGQBbCM.js → approvals-h5lytkey.js} +2 -2
  14. package/dist/{approve-DFSy7Z72.js → approve-BNhg0MLi.js} +2 -2
  15. package/dist/{approve-BnZ3v-3c.js → approve-BiHM8kSo.js} +1 -1
  16. package/dist/apps-BNe86LfS.js +367 -0
  17. package/dist/{archive-CU0nhUeJ.js → archive-CMHRsVYf.js} +2 -2
  18. package/dist/{archive-CY2lvp_c.js → archive-H2B7Me8E.js} +2 -2
  19. package/dist/{args-BekfmD9t.js → args-CURX44CA.js} +1 -1
  20. package/dist/{ask-CLDgHB_Y.js → ask-D8TIVhPl.js} +2 -2
  21. package/dist/{auth-C3KrIUf1.js → auth-BSMPjhnz.js} +1 -1
  22. package/dist/auth-D3quZAKT.js +1 -0
  23. package/dist/{chat-AbW-LOHo.js → chat-3AvUDOwf.js} +1 -1
  24. package/dist/{chat-bridge-WK-pKNfw.js → chat-bridge-BmqYsASZ.js} +1 -1
  25. package/dist/{cli-Fp28pM4Y.js → cli-BBlH53hA.js} +4 -4
  26. package/dist/cli.js +1 -1
  27. package/dist/{client-DzwzCsue.js → client-sqXb-y09.js} +1 -1
  28. package/dist/{config-DoVedq6T.js → config-K6Rrjsee.js} +1 -1
  29. package/dist/{connection-Cb0TK201.js → connection-B-IB8tlP.js} +1 -1
  30. package/dist/{connection-5V8doFL7.js → connection-BXBDeoax.js} +1 -1
  31. package/dist/{create-CrjRdQip.js → create-CP_JmJnh.js} +1 -1
  32. package/dist/{credentials-DoL9w8D1.js → credentials-BRFajC0d.js} +1 -1
  33. package/dist/dash/standalone/server/build-index.json +1 -1
  34. package/dist/dash/standalone/server/manifest.json +1273 -1273
  35. package/dist/dash/standalone/server/modules-server-server-react-server/src/client/{index.843431e3538fd9a4.js → index.0de14cb4e30bd70d.js} +1 -5
  36. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/api/{load.7ae462ef36271be8.js → load.be791a5eaf328738.js} +1 -1
  37. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/connect/{page.806027fde54ab723.js → page.0fbfdba5254f7ae5.js} +1 -1
  38. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/create/[id]/{page.bd04d2d3eba00676.js → page.70913bd4075da914.js} +2 -2
  39. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{notify.857748e260c691e3.js → notify.61aab176baeefebd.js} +1 -1
  40. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{page.25153459858542f9.js → page.815371ed0d5dd4fa.js} +3 -3
  41. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/account/{sign-out.ff98573f362d76f3.js → sign-out.1d6af804f9ec043d.js} +1 -1
  42. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{agents-grid.8efd14bc39281da9.js → agents-grid.f43bcc1148ce3650.js} +1 -1
  43. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{connect-apps.d1e67db29b12dc0a.js → connect-apps.f3af8cc8540719d7.js} +2 -2
  44. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/(list)/{page.0f7d5e3e42462870.js → page.5f88059c03cf82b4.js} +7 -7
  45. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{layout.05210ffa6038791f.js → layout.b7392d534ce0410e.js} +7 -7
  46. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{page.19fe116c0f802cb1.js → page.5aae24bbfd90c434.js} +7 -7
  47. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{page.f87fd8eb66f73af0.js → page.91c992fdd3b4a493.js} +12 -16
  48. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/platforms/{platform-actions.b6c3d3184e167d0b.js → platform-actions.8e7ca54dd1821e98.js} +3 -3
  49. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{agent-settings-form.28220621573033d7.js → agent-settings-form.eb707a9e32718374.js} +3 -3
  50. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/settings/{page.2f7467868f599ebc.js → page.9ec1ec08ba05da59.js} +6 -6
  51. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{loading.ec94096015346f2c.js → loading.dd9088a4581b1d65.js} +1 -1
  52. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/tasks/{page.a92a36a8ce21088c.js → page.71dc042821133e82.js} +1 -1
  53. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/usage/{page.8935a5fe5c08bcf1.js → page.45e18b6dc3019af4.js} +3 -3
  54. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/(tabs)/{versions-list.5b97ab6d40e2e639.js → versions-list.c8d76988c734dda2.js} +1 -1
  55. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{loading.bedcc1aba372fbce.js → loading.b1367e864b4fb406.js} +1 -1
  56. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/[slug]/edit/{page.14760e9eedd6ff8e.js → page.e3179ddf20a7e55d.js} +6 -6
  57. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{agent-toggle.a6ee8bd882178e29.js → agent-toggle.1579dc8acbaacf92.js} +2 -2
  58. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/agent/{hero.8be1dd4ea3ed6e17.js → hero.ad5cc342db794e5d.js} +1 -1
  59. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{connect-repositories.59d89152fe845af2.js → connect-repositories.43b4b28f194ea842.js} +1 -1
  60. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{editor.77f68d431408745b.js → editor.62cb8207218e6437.js} +5 -5
  61. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/editor/{import-picker.a7b01817a821819a.js → import-picker.eafa5b41a2ed571f.js} +3 -3
  62. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/agents/new/{page.c4570fd80bdda68c.js → page.dffb05f2d256d81a.js} +4 -4
  63. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{layout.19006c2d7dc8d114.js → layout.393cf7429eea189e.js} +3 -3
  64. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{operator-apps.d350a52d27f69fa6.js → operator-apps.a244f3199e7cf09c.js} +4 -4
  65. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/operator/{page.4a652f5080c2b863.js → page.980adfb7c5714752.js} +4 -4
  66. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/{page.d39f7a1719f50c6d.js → page.24a1987405ed7b17.js} +1 -1
  67. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{connections-list.ff7e1dadcd4df17f.js → connections-list.21ec9dc73ce68656.js} +3 -3
  68. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials-list.87a1f8ab71eb4bed.js → credentials-list.683476f62a9ecde7.js} +3 -3
  69. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{credentials.a535c9c6dd8b4cdf.js → credentials.b43dd3d97c536c2a.js} +8 -8
  70. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{engines-list.29fffd07c1c3b771.js → engines-list.9e116751bd34e2cc.js} +1 -1
  71. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{list.0c87d55cf4ef382c.js → list.083f5c665df04b1b.js} +2 -2
  72. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{models-list.6fea9faddb8300bb.js → models-list.537f63f8e5dd085d.js} +3 -3
  73. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{page.295245052b93af90.js → page.dfed4ae6ffc74434.js} +12 -12
  74. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{runners-list.a4a38e54d834a1ec.js → runners-list.3afa989490bbe77c.js} +4 -4
  75. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/[tab]/{secrets-list.50f487766f87383c.js → secrets-list.0d175ee815b22cd7.js} +3 -3
  76. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{layout.c42e0ab39cb2c0e0.js → layout.3e8289f888fa444c.js} +1 -1
  77. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/settings/{page.6997506eaa1a4824.js → page.06feaa5fbb06f1e6.js} +1 -1
  78. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{create-link.9458b49dc99bbaaa.js → create-link.ff95e4b6977d0474.js} +3 -3
  79. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/setup/{page.77e402bb6e8e7f7e.js → page.f06fda0df59beeb5.js} +4 -4
  80. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{activity.fcda6f18c8207c99.js → activity.3c79cf14feff12bf.js} +1 -1
  81. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{page.d0f039221a27b8ef.js → page.25b29e72df84806b.js} +4 -4
  82. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-actions.f5f2016d2dc7f422.js → task-actions.587da79d68ab8d14.js} +3 -3
  83. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/[id]/{task-view.a292baa2410cdf64.js → task-view.f2e902c8208b2e78.js} +6 -6
  84. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{composer.2d4122eb33addbdd.js → composer.b0bb1faaac8e0b6c.js} +4 -4
  85. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-list.021bdc2f3d90af2d.js → tasks-list.b52a49fb5faeefd0.js} +7 -7
  86. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/list/{tasks-section.13f64b0836ae406b.js → tasks-section.80f9c9a42ecae854.js} +4 -4
  87. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/tasks/{page.b78f0df100410db0.js → page.20b5c22658eae312.js} +2 -2
  88. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/app/dash/[org]/usage/{page.93c2306069c03c68.js → page.fb21ebe90d49dac1.js} +2 -2
  89. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{stream.95a2468086aceb84.js → stream.e2915852cf82c86b.js} +1 -1
  90. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/comps/frame/{task-toasts.e1a484113e1df660.js → task-toasts.0ed8ccaae81b9d53.js} +2 -2
  91. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{action.968bcab0f5e3665d.js → action.b9a5c37272250e82.js} +1 -1
  92. package/dist/dash/standalone/server/modules-server-server-react-server/src/server/dash/utils/{client.189224c16057d7a1.js → client.a3928fa2dcd27b75.js} +1 -1
  93. package/dist/dash/standalone/static/assets/chunks/action-fc8716cda7527d8c.js +1 -0
  94. package/dist/dash/standalone/static/assets/chunks/{agent-pills-0c0b8d40b9bfc78f.js → agent-pills-bd32cb89331aff7e.js} +1 -1
  95. package/dist/dash/standalone/static/assets/chunks/{agent-settings-form-5a2601316e2ab283.js → agent-settings-form-f5576a2c50fce094.js} +1 -1
  96. package/dist/dash/standalone/static/assets/chunks/{agent-toggle-5ede0c449e88cb9d.js → agent-toggle-a45b95908d62f926.js} +1 -1
  97. package/dist/dash/standalone/static/assets/chunks/{agents-grid-ffb18df48e951ecb.js → agents-grid-9f79b5074899c8be.js} +1 -1
  98. package/dist/dash/standalone/static/assets/chunks/{back-602db2cfdccf2e7f.js → back-b0cd2b85c9d8403e.js} +1 -1
  99. package/dist/dash/standalone/static/assets/chunks/{combo-df2685e277db02c0.js → combo-1050768988cd0347.js} +1 -1
  100. package/dist/dash/standalone/static/assets/chunks/{composer-e1cefed81ea89b7e.js → composer-87f138e21d68370d.js} +1 -1
  101. package/dist/dash/standalone/static/assets/chunks/composer-8f0e8b1d07e74aad.js +1 -0
  102. package/dist/dash/standalone/static/assets/chunks/{confirm-d163e6865d66dfab.js → confirm-01d5814b1c5f7721.js} +1 -1
  103. package/dist/dash/standalone/static/assets/chunks/connect-apps-857dc9fa3f6f5bbc.js +1 -0
  104. package/dist/dash/standalone/static/assets/chunks/{connect-repositories-0aa9abc77b9c3d48.js → connect-repositories-49098298b3a82647.js} +1 -1
  105. package/dist/dash/standalone/static/assets/chunks/{connections-list-6eddeb8583ded10f.js → connections-list-46d48443d8fc8a0d.js} +1 -1
  106. package/dist/dash/standalone/static/assets/chunks/{copy-0cc00656953531be.js → copy-5db9d328f8f65d82.js} +1 -1
  107. package/dist/dash/standalone/static/assets/chunks/create-link-6b6e9eeac436c4af.js +1 -0
  108. package/dist/dash/standalone/static/assets/chunks/{credentials-list-1b6a81e9b4934dc8.js → credentials-list-3cccc85ef335cb22.js} +1 -1
  109. package/dist/dash/standalone/static/assets/chunks/{custom-range-cae5567874db83ca.js → custom-range-fdf1946aac09cfc3.js} +1 -1
  110. package/dist/dash/standalone/static/assets/chunks/{editor-d55d247a1d7de5f0.js → editor-d2460c315bb1fd32.js} +1 -1
  111. package/dist/dash/standalone/static/assets/chunks/{engines-list-288559344de4d4b9.js → engines-list-0159c8baa0b3e711.js} +1 -1
  112. package/dist/dash/standalone/static/assets/chunks/{field-693bb870ad0bdee8.js → field-c530e261587d94df.js} +1 -1
  113. package/dist/dash/standalone/static/assets/chunks/{instructions-a3d7688e421f2a08.js → instructions-3ea5afeea1992bf2.js} +1 -1
  114. package/dist/dash/standalone/static/assets/chunks/instructions-d8884576a18e6cdb.js +1 -0
  115. package/dist/dash/standalone/static/assets/chunks/{list-2a59237cb7cb0a7c.js → list-b67ce61483dd6acb.js} +1 -1
  116. package/dist/dash/standalone/static/assets/chunks/{models-list-5ed9ee02f9b66d98.js → models-list-98c956ba00913a73.js} +1 -1
  117. package/dist/dash/standalone/static/assets/chunks/{notice-7d84ffab32ff24ca.js → notice-8939183c8a889bae.js} +1 -1
  118. package/dist/dash/standalone/static/assets/chunks/{outcome-dialog-3cffe3507ea92af2.js → outcome-dialog-6323cb5300b6d3c9.js} +1 -1
  119. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-be3fbe8c4b43d180.js +1 -0
  120. package/dist/dash/standalone/static/assets/chunks/{platform-actions-4dc31567d00c4cb2.js → platform-actions-aafbf038008de64f.js} +1 -1
  121. package/dist/dash/standalone/static/assets/chunks/platform-actions-ed27388f722b4a4c.js +1 -0
  122. package/dist/dash/standalone/static/assets/chunks/{runners-list-984246a8f9450da1.js → runners-list-a13d0f8f6583c6d2.js} +1 -1
  123. package/dist/dash/standalone/static/assets/chunks/{runtime-6e12333f12903a62-1.js → runtime-71b727f8f5906f08-1.js} +1 -1
  124. package/dist/dash/standalone/static/assets/chunks/{secrets-list-88f8b30abbab52f0.js → secrets-list-53a0c079492199c9.js} +1 -1
  125. package/dist/dash/standalone/static/assets/chunks/{segmented-79c9c69b702e0b90.js → segmented-a3642b8169857fb1.js} +1 -1
  126. package/dist/dash/standalone/static/assets/chunks/shared-init-6cad28f8cc696d91.js +2 -0
  127. package/dist/dash/standalone/static/assets/chunks/shared-init-71b727f8f5906f08-2.js +1 -0
  128. package/dist/dash/standalone/static/assets/chunks/shared-init-94883db7bc70a5a8.js +5 -0
  129. package/dist/dash/standalone/static/assets/chunks/side-toggle-a2f67a8671a0309b.js +1 -0
  130. package/dist/dash/standalone/static/assets/chunks/{tail-99e29a541a072002.js → tail-81b69d49bfebfd4c.js} +1 -1
  131. package/dist/dash/standalone/static/assets/chunks/{task-actions-1cdca1e8d3eee490.js → task-actions-25c70b47b5a53cd2.js} +1 -1
  132. package/dist/dash/standalone/static/assets/chunks/{task-view-fdcde0e31f63b737.js → task-view-e5ee0ada38552918.js} +1 -1
  133. package/dist/dash/standalone/static/assets/chunks/{tasks-list-3ad1c93deff4fb2e.js → tasks-list-d58f3063ae31d9d2.js} +1 -1
  134. package/dist/dash/standalone/static/assets/chunks/{versions-list-60ac4d8f715bf5f7.js → versions-list-fbeed95c0b4e5f0f.js} +1 -1
  135. package/dist/dash/standalone/static/assets/chunks/{wular-pnext-6e12333f12903a62-0.js → wular-pnext-71b727f8f5906f08-0.js} +1 -1
  136. package/dist/dash/standalone/static/assets/pnext-client-037852a9f274c8c8.js +1 -0
  137. package/dist/dash/standalone/static/assets/pnext-client-10eac8df53f62104.js +1 -0
  138. package/dist/dash/standalone/static/assets/pnext-client-12635905e9754177.js +1 -0
  139. package/dist/dash/standalone/static/assets/pnext-client-12955733c71cc641.js +1 -0
  140. package/dist/dash/standalone/static/assets/pnext-client-26999113ea61d5b9.js +1 -0
  141. package/dist/dash/standalone/static/assets/pnext-client-27b6e4b7d1697094.js +1 -0
  142. package/dist/dash/standalone/static/assets/pnext-client-34fec171024dd082.js +1 -0
  143. package/dist/dash/standalone/static/assets/pnext-client-44eb6d4096f7e875.js +1 -0
  144. package/dist/dash/standalone/static/assets/pnext-client-4c558a168b95d9b1.js +1 -0
  145. package/dist/dash/standalone/static/assets/pnext-client-5d21f3dd3f4407af.js +1 -0
  146. package/dist/dash/standalone/static/assets/pnext-client-5fe04a4e1dff28a3.js +1 -0
  147. package/dist/dash/standalone/static/assets/pnext-client-88bbc009041aa776.js +1 -0
  148. package/dist/dash/standalone/static/assets/pnext-client-b36106c6b8a6cd35.js +1 -0
  149. package/dist/dash/standalone/static/assets/pnext-client-b47dda1cd4cfac04.js +1 -0
  150. package/dist/dash/standalone/static/assets/pnext-client-b556f5611fdcf545.js +1 -0
  151. package/dist/dash/standalone/static/assets/pnext-client-b8485144ca29d436.js +1 -0
  152. package/dist/dash/standalone/static/assets/pnext-client-c5c3c90b3518c5a8.js +1 -0
  153. package/dist/dash/standalone/static/assets/{pnext-client-ab36b406301fd2a4.js → pnext-client-e4c659a371f4cd79.js} +1 -1
  154. package/dist/dash/standalone/static/assets/pnext-client-f139547dc55d7d76.js +1 -0
  155. package/dist/dash/standalone/static/assets/pnext-client-fd280710b31af681.js +1 -0
  156. package/dist/{default-tTTSBdXq.js → default-Ojx5oFuw.js} +1 -1
  157. package/dist/{delete-DM2sA12f.js → delete-D1hEPpsk.js} +2 -2
  158. package/dist/{delete-DR37NTr1.js → delete-UyzcQPoG.js} +2 -2
  159. package/dist/{disable-Dz_zLPX5.js → disable-Dml_Slph.js} +1 -1
  160. package/dist/{discover-CqabH4Fx.js → discover-CyIfIBGD.js} +2 -2
  161. package/dist/dispatch-CFZ9Crvg.js +8 -0
  162. package/dist/{docs-b2mAKC8Z.js → docs-BUHKbQjM.js} +1 -1
  163. package/dist/{docs-BV9SC67g.js → docs-CvjWiada.js} +1 -1
  164. package/dist/drive-BqunNi9n.js +1 -0
  165. package/dist/{enable-Cfeki-ne.js → enable-xye-Nanc.js} +1 -1
  166. package/dist/{env-DSddo-fz.js → env-BgE9ipvN.js} +1 -1
  167. package/dist/exec-Cprez703.js +3 -0
  168. package/dist/{executor-LkokKTTd.js → executor-3QMa-XRY.js} +5 -5
  169. package/dist/flow/builtin/review.d.ts +1 -1
  170. package/dist/flow/builtin/review.js +1 -1
  171. package/dist/flow/index.d.ts +1 -1
  172. package/dist/flow/index.js +1 -1
  173. package/dist/{flow-BQcdyrVK.js → flow-CtillCQY.js} +1 -1
  174. package/dist/{history-D_A5odLI.js → history-C53URBjs.js} +1 -1
  175. package/dist/{http-CXaW1e7x.js → http-CDZKt5ln.js} +1 -1
  176. package/dist/hub-B0WCXtsP.js +2 -0
  177. package/dist/{init-DU_S43NG.js → init-HdSVUozH.js} +1 -1
  178. package/dist/integrations-BdLs4W6o.js +1 -0
  179. package/dist/{integrations-DPxWtNnS.js → integrations-IGnXBrPw.js} +2 -2
  180. package/dist/lib/broker.js +2 -2
  181. package/dist/{list-_EH6c041.js → list-1IMeVNg3.js} +1 -1
  182. package/dist/{list-CIS-GYO1.js → list-BTjIMvNs.js} +1 -1
  183. package/dist/{list-BJ0j5eP9.js → list-BlOB32n6.js} +2 -2
  184. package/dist/{list-CR0_Emod2.js → list-CZGTVKcS.js} +2 -2
  185. package/dist/{list-CnHZriYt.js → list-CquHtsmW.js} +1 -1
  186. package/dist/{list-i2r3Nlyz.js → list-CxjPT0Il.js} +1 -1
  187. package/dist/{list-7yd9K7d8.js → list-DvFVuGT_.js} +1 -1
  188. package/dist/{list-Boaz5b5n.js → list-gFnOS9Hk.js} +2 -2
  189. package/dist/load-Q9fL4VC6.js +2 -0
  190. package/dist/{local-Fs-dx_dP.js → local-Bzdmzc1o.js} +1 -1
  191. package/dist/{login-DISw6--d.js → login-C723kHh6.js} +1 -1
  192. package/dist/{login-CzD2EMD_.js → login-Dq3r6gh6.js} +1 -1
  193. package/dist/{logout-DMnc5yri.js → logout-DEg0aTmq.js} +1 -1
  194. package/dist/{maintenance-BVDuG9Hg.js → maintenance-DYOstY6V.js} +1 -1
  195. package/dist/{match-BfjPZ7gJ.js → match-BwcxeAZF.js} +1 -1
  196. package/dist/{mcp-CbN-QcpF.js → mcp-CKqinFkk.js} +1 -1
  197. package/dist/mcp-Dsl3Xdd3.js +13 -0
  198. package/dist/mcp-server-BlP9lACI.js +1 -0
  199. package/dist/{model-Ckyoyji3.js → model-Bs27g5EX.js} +1 -1
  200. package/dist/{models-VaiIYlOW.js → models-Cb0ZTKZ7.js} +1 -1
  201. package/dist/{prompt-DQyPCLUo.js → prompt-PEgcMJO7.js} +1 -1
  202. package/dist/prompts-Bj4Fbd_n.js +78 -0
  203. package/dist/{push-BNomfHJ3.js → push-DpEW4XbQ.js} +1 -1
  204. package/dist/{reconnect-Bd_jna1M.js → reconnect-BmP_XXDv.js} +1 -1
  205. package/dist/refresh-SHNJq9Cx.js +1 -0
  206. package/dist/{remote-f-uny3XZ.js → remote-D3JZ4MMQ.js} +1 -1
  207. package/dist/{remove-DdcQ-6by.js → remove-BZZgJq8Z.js} +1 -1
  208. package/dist/{remove-VtavIuGm.js → remove-CId1EwPg.js} +1 -1
  209. package/dist/{remove-DMTz_c25.js → remove-Ci87WQq0.js} +1 -1
  210. package/dist/{remove-CCYHc1FN.js → remove-DxCv9BB4.js} +1 -1
  211. package/dist/{rename-CKMyelWN.js → rename-DJaf5SwH.js} +1 -1
  212. package/dist/{result-CH3_tVXO.js → result-BesDQ-b1.js} +2 -2
  213. package/dist/{result-DvOqIwhh.js → result-D0dpv2O_.js} +4 -4
  214. package/dist/{resume-6j3RUpqa.js → resume-2Y0uC5MM.js} +2 -2
  215. package/dist/{review-B4ETH5ki.js → review-DIm9oK_W.js} +2 -2
  216. package/dist/{review-DDYD3Yvq.d.ts → review-Dxs-idTn.d.ts} +1 -1
  217. package/dist/{rotate-key-Byk_wI73.js → rotate-key-CS1G6ReH.js} +1 -1
  218. package/dist/{run-LCE1XiyU.js → run-BKUd6B8S.js} +1 -1
  219. package/dist/{run-DkYzyUnp.js → run-DjTTb8oA.js} +2 -2
  220. package/dist/{run-DKJW7qwy.js → run-UPW-7pKo.js} +2 -2
  221. package/dist/runner-BLS_ReEw.js +1 -0
  222. package/dist/{runner-CxtzTgVq.js → runner-BM_98EQl.js} +1 -1
  223. package/dist/runner.json +1 -1
  224. package/dist/runner.tgz +0 -0
  225. package/dist/{runners-vsoGeyuc.js → runners-DyLnqHKy.js} +2 -2
  226. package/dist/{schema-Brm7WIKd.js → schema-CjHmulYJ.js} +1 -1
  227. package/dist/schema.d.ts +1 -1
  228. package/dist/schema.js +1 -1
  229. package/dist/{sdk-CKTCrtGe.d.ts → sdk-B4Cl0Hbw.d.ts} +18 -122
  230. package/dist/sdk.d.ts +3 -3
  231. package/dist/sdk.js +1 -1
  232. package/dist/{serve-D8J-sEqm.js → serve-BApfeXk8.js} +2 -2
  233. package/dist/{serve-CCxSxXgv.js → serve-DE1cKoGa.js} +1 -1
  234. package/dist/{serve-C6tsUF0D.js → serve-lF97RlpX.js} +2 -2
  235. package/dist/{serve-C1zag2nr.js → serve-mXTjboT1.js} +1 -1
  236. package/dist/{server-B4SRYM2L.js → server-CUsxAflx.js} +1 -1
  237. package/dist/{setup-host-EaP4GPKB.js → setup-host-tlsilI6C.js} +1 -1
  238. package/dist/{show-xdsqD6de.js → show-Dn7zTz-9.js} +1 -1
  239. package/dist/{show-CjUG_aIp.js → show-uyUpeqa9.js} +1 -1
  240. package/dist/{slack-Kpj-G9FE.js → slack-DhPhLuWb.js} +4 -4
  241. package/dist/{status-BxV_ITeF.js → status-D_1VGn9F.js} +1 -1
  242. package/dist/{steer-DZ3nkHfC.js → steer-CMp-a7v2.js} +2 -2
  243. package/dist/{stop-qDw_DjOB.js → stop-C7YjN2sB.js} +1 -1
  244. package/dist/{stop-DGTUYxd6.js → stop-D8G7AtdY.js} +2 -2
  245. package/dist/{task-C506SkPR.js → task-DJ6nruuA.js} +1 -1
  246. package/dist/task-DeFLNmQH.js +1 -0
  247. package/dist/task-bkoi8_NN.js +7 -0
  248. package/dist/{test-DF_qVK6S.js → test-BD9rvefN.js} +1 -1
  249. package/dist/tools-CdWkwI1g.js +1 -0
  250. package/dist/{types-8zO5Tc9c.d.ts → types-C6NAqGqn.d.ts} +20 -31
  251. package/dist/{unalias-CklkAN1B.js → unalias-bL5t8Isc.js} +1 -1
  252. package/dist/{update-CZaFjwOJ.js → update-DIYW08ME.js} +1 -1
  253. package/dist/{upgrade-CUhFmPhl.js → upgrade-3fH6dGJw.js} +2 -2
  254. package/dist/{usage-DTAlb2rC.js → usage-Dr8F0xt0.js} +1 -1
  255. package/dist/{views-LmbLfqpu.js → views-CE2d9x6T.js} +1 -1
  256. package/dist/{watch-CJruitc6.js → watch-BiyN4NxE.js} +3 -3
  257. package/dist/{watch-p0j69fVA.js → watch-DJXu13jK.js} +5 -5
  258. package/dist/{wire-DshFMRsS.js → wire-nJ7sEi-M.js} +1 -1
  259. package/dist/worker-CHD_OiQS.js +1 -0
  260. package/dist/worker-KfrTK_Dk.js +2 -0
  261. package/dist/{workflow-CJJUiSfv.js → workflow-C21qQ4rT.js} +1 -1
  262. package/docs/agents/index.md +2 -2
  263. package/docs/agents/prompt.md +19 -8
  264. package/docs/mcp.md +1 -1
  265. package/package.json +1 -1
  266. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  267. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  268. package/dist/actions-C3Mgpl9J.js +0 -2
  269. package/dist/apps-6BgpUsFh.js +0 -372
  270. package/dist/auth-CGeSfgNb.js +0 -1
  271. package/dist/dash/standalone/static/assets/chunks/action-410bdc82c416bc01.js +0 -1
  272. package/dist/dash/standalone/static/assets/chunks/composer-08e49d49c0c3ee94.js +0 -1
  273. package/dist/dash/standalone/static/assets/chunks/connect-apps-ce3c9d049ebad459.js +0 -1
  274. package/dist/dash/standalone/static/assets/chunks/create-link-bc365f8dfe88e6b3.js +0 -1
  275. package/dist/dash/standalone/static/assets/chunks/instructions-3f18e035338b0d0b.js +0 -1
  276. package/dist/dash/standalone/static/assets/chunks/outcome-dialog-f6fb8c69efa66508.js +0 -1
  277. package/dist/dash/standalone/static/assets/chunks/platform-actions-ecd7200f7749c258.js +0 -1
  278. package/dist/dash/standalone/static/assets/chunks/shared-init-6e12333f12903a62-2.js +0 -1
  279. package/dist/dash/standalone/static/assets/chunks/shared-init-962398d15ee67c92.js +0 -5
  280. package/dist/dash/standalone/static/assets/chunks/shared-init-ae95a674d381c095.js +0 -2
  281. package/dist/dash/standalone/static/assets/chunks/side-toggle-7ada95cc7601eb49.js +0 -1
  282. package/dist/dash/standalone/static/assets/pnext-client-0b3b70f1aefb9947.js +0 -1
  283. package/dist/dash/standalone/static/assets/pnext-client-0d90849808b6eb05.js +0 -1
  284. package/dist/dash/standalone/static/assets/pnext-client-12faa1754e3ef3be.js +0 -1
  285. package/dist/dash/standalone/static/assets/pnext-client-23384b239b81a761.js +0 -1
  286. package/dist/dash/standalone/static/assets/pnext-client-23e200dd9b7a79c0.js +0 -1
  287. package/dist/dash/standalone/static/assets/pnext-client-2562299eef46e62c.js +0 -1
  288. package/dist/dash/standalone/static/assets/pnext-client-3a4ada64991e6a40.js +0 -1
  289. package/dist/dash/standalone/static/assets/pnext-client-71e7ecdfcf86be84.js +0 -1
  290. package/dist/dash/standalone/static/assets/pnext-client-726c29bbb81054c0.js +0 -1
  291. package/dist/dash/standalone/static/assets/pnext-client-825e9f5b63950ef4.js +0 -1
  292. package/dist/dash/standalone/static/assets/pnext-client-894cff70289fb7a3.js +0 -1
  293. package/dist/dash/standalone/static/assets/pnext-client-8f96a4b8a00ff460.js +0 -1
  294. package/dist/dash/standalone/static/assets/pnext-client-9bc9b14c08020649.js +0 -1
  295. package/dist/dash/standalone/static/assets/pnext-client-b8c585cae8da7778.js +0 -1
  296. package/dist/dash/standalone/static/assets/pnext-client-bab4305b41abb15a.js +0 -1
  297. package/dist/dash/standalone/static/assets/pnext-client-bd80926822b3993d.js +0 -1
  298. package/dist/dash/standalone/static/assets/pnext-client-cd4c7b4318fa1846.js +0 -1
  299. package/dist/dash/standalone/static/assets/pnext-client-db55344d00b7888f.js +0 -1
  300. package/dist/dash/standalone/static/assets/pnext-client-eddcd5df2b28120f.js +0 -1
  301. package/dist/dispatch-BJZqI7sj.js +0 -8
  302. package/dist/drive-CU2HOCfR.js +0 -1
  303. package/dist/exec-DcWxZar6.js +0 -3
  304. package/dist/integrations-Dwvxl7i2.js +0 -1
  305. package/dist/load-C-GZnuok.js +0 -2
  306. package/dist/mcp-B-hy3eM-.js +0 -11
  307. package/dist/mcp-server-DQqSgD3P.js +0 -1
  308. package/dist/prompts-CEf7z4i_.js +0 -77
  309. package/dist/refresh-D-broYEx.js +0 -1
  310. package/dist/runner-Dnu1Vx_i.js +0 -1
  311. package/dist/task-CQmx_2SI.js +0 -7
  312. package/dist/task-Ls_-kcSx.js +0 -1
  313. package/dist/tools-S3eRQOVm.js +0 -1
  314. package/dist/worker-BHXjDzRp.js +0 -1
  315. package/dist/worker-nyRZuq4g.js +0 -2
@@ -1,5 +1,5 @@
1
- import{ar as e,nn as t,qt as n,ur as r}from"./prompts-CEf7z4i_.js";import{i}from"./cli-Fp28pM4Y.js";import{_ as a,a as o,b as s,c,h as l,l as u,n as d,p as f,s as p,u as m,v as h,y as g}from"./output-BKeyLbvt.js";import{t as _,u as v}from"./args-BekfmD9t.js";import y from"node:path";import b from"node:process";import x from"node:fs";const S=i({name:`flow watch`,help:{usage:`coder flow watch [run-id] [--tail <n|all>] [--json]`,summary:`Watch a flow run live: replay its progress lines from the start, then keep
1
+ import{dr as e,nn as t,or as n,qt as r}from"./prompts-Bj4Fbd_n.js";import{i}from"./cli-BBlH53hA.js";import{_ as a,a as o,b as s,c,h as l,l as u,n as d,p as f,s as p,u as m,v as h,y as g}from"./output-BKeyLbvt.js";import{t as _,u as v}from"./args-CURX44CA.js";import y from"node:path";import b from"node:process";import x from"node:fs";const S=i({name:`flow watch`,help:{usage:`coder flow watch [run-id] [--tail <n|all>] [--json]`,summary:`Watch a flow run live: replay its progress lines from the start, then keep
2
2
  following while it runs (Ctrl-C detaches; it keeps running). Blocks until it
3
3
  finishes; exits 0 on success, 1 otherwise. Defaults to the most recent run.
4
- For the result alone, prefer \`coder flow result\`. Alias: stream.`,flags:[[`--tail <n|all>`,`replay only the last n events first (default: all)`]],examples:[[`coder flow watch`,`follow the most recent run to completion`]]},options:{..._,tail:v},args:1,run:async({options:e,args:[t]})=>{let{watchRun:n}=await import(`./executor-LkokKTTd.js`).then(e=>e.S);return R(n(t,{tail:e.tail}),{json:e.json,stream:!0})}}),C=[`⣾`,`⣽`,`⣻`,`⢿`,`⡿`,`⣟`,`⣯`,`⣷`];function w(e,t=!1){let n=f;return t?d(`[${E(e)}]`,10):e===`completed`?n.bold(n.green(`✔`)):e===`failed`||e===`cancelled`||e===`stopped`?n.bold(n.red(`✘`)):e===`running`?n.bold(n.cyan(`●`)):n.dim(`○`)}function T(){return d(`[start]`,10)}function E(e){return e===`completed`?`done`:e===`cancelled`?`failed`:e}function D(e,t){return e??t.replace(/\s+/g,` `).trim().slice(0,60)}function O(e,t,n,r,i,a){let o=f,s=d(t??n,32);return[`${e} ${a?o.bold(s):s}`,o.dim(d(n,24)),o.light(d(i??``,20)),r?o.light(`${u(r.total)} tok`):``].join(` `).trimEnd()}function k(e,t=!1){let n=f;return`${w(e.ok?`completed`:`failed`,t)} ${n.dim(`gate`)} ${n.light(e.cmd)}${e.ok?``:n.dim(` · exit ${e.code}`)}`}function A(e,t,n){let r=f,i=n!==void 0&&n>=1e3?r.dim(` · ${o(n)}`):``;return`${t} ${r.dim(`gate`)} ${r.light(e)}${i}`}function j(e,t=!1){return f.dim(`${`│ `.repeat(e)}${t?`└─`:`├─`}`)}function M(e){return f.dim(`${`│ `.repeat(e)}│ `)}function N(e){return`${` `.repeat(e.depth)}${e.log?`${d(`[log]`,10)} `:``}${e.body}`}function P(e,t,n=!1){return n?N(e):`${e.log?M(e.depth):j(e.depth,t)} ${e.body}`}function F(e){return f.dim(`${`│ `.repeat(Math.max(0,e))}│`)}var I=class{stream;names=new Map;active=new Map;activeGates=new Map;pending;previews=new Map;tails=new Map;previewWatchers=new Map;frame=0;hasCommitted=!1;timer;tty;region;constructor(e=b.stdout){this.stream=e,this.tty=!!e.isTTY,this.region=new a(e)}emit(e){let n=f;switch(e.kind){case`task-start`:{let n={name:D(e.name,e.prompt),engine:e.engine,depth:e.depth??0};if(this.names.set(e.taskId,n),!this.tty){this.final(n.depth,O(T(),n.name,e.taskId,null,n.engine));return}this.active.set(e.taskId,n),this.previewWatchers.get(e.taskId)?.close(),this.previewWatchers.set(e.taskId,r(t(b.cwd(),e.taskId),t=>{t&&t!==`log.jsonl`||(this.refreshPreviews(e.taskId),this.repaint())})),this.refreshPreviews(e.taskId),this.spin(!0),this.repaint();return}case`task-end`:{this.active.delete(e.taskId),this.previews.delete(e.taskId),this.tails.delete(e.taskId),this.previewWatchers.get(e.taskId)?.close(),this.previewWatchers.delete(e.taskId),this.idle();let t=this.names.get(e.taskId);this.final(t?.depth??0,O(w(e.status,!this.tty),t?.name??null,e.taskId,e.tokens,t?.engine));return}case`gate-start`:{let t={cmd:e.cmd,depth:e.depth??0,startedAt:Date.now()};if(!this.tty){this.final(t.depth,A(t.cmd,T()));return}this.activeGates.set(e.gateId,t),this.spin(!0),this.repaint();return}case`gate`:e.gateId&&this.activeGates.delete(e.gateId),this.idle(),this.final(e.depth??0,k(e,!this.tty));return;case`log`:for(let t of e.message.split(`
5
- `))this.final(e.depth??0,n.light(t),!0);return;case`flow-start`:this.final(e.depth-1,n.bold(`flow ${e.name}`));return;case`replay`:this.final(0,n.dim(`replayed ${e.count} steps from journal`),!0)}}done(){this.spin(!1);for(let e of this.previewWatchers.values())e.close();this.previewWatchers.clear(),this.flush(0),this.tty&&this.repaint(),this.region.done()}flush(e){this.pending&&=(this.region.commit(`${P(this.pending,e<this.pending.depth,!this.tty)}\n`),this.hasCommitted=!0,void 0)}final(e,t,n=!1){if(!this.tty){this.region.commit(`${N({depth:e,body:t,log:n})}\n`),this.hasCommitted=!0;return}this.flush(e),this.pending={depth:e,body:t,log:n},this.tty&&this.repaint()}repaint(){let e=[],t=[];if(this.pending){let n=P(this.pending,!1);e.push(n),t.push(n)}let n=this.timer?f.bold(f.cyan(C[this.frame%C.length])):w(`running`);for(let[r,i]of this.active){let a=`${j(i.depth??0)} ${O(n,i.name,r,null,i.engine,!0)}`;(e.length||this.hasCommitted)&&e.push(F(i.depth??0)),e.push(a),t.push(a);let o=this.previews.get(r);o&&e.push(`${M(i.depth??0)} ${f.dim(o)}`)}for(let r of this.activeGates.values()){let i=`${j(r.depth)} ${A(r.cmd,n,Date.now()-r.startedAt)}`;(e.length||this.hasCommitted)&&e.push(F(r.depth)),e.push(i),t.push(i)}let r=(s(this.stream)??1/0)-1,i=e.length<=r?e:t;if(i.length>r){let e=Math.max(0,r-1);i=[f.dim(`… +${i.length-e} more running`),...i.slice(-e)]}this.region.set(i)}refreshPreviews(r){try{let i=this.tails.get(r),a;if(!i){let o=y.join(t(b.cwd(),r),`log.jsonl`),s=x.existsSync(o)?x.statSync(o).size:0;a=n(b.cwd(),r,1)[0],i=e(o,s),this.tails.set(r,i)}for(let e of i())try{a=JSON.parse(e)}catch{a={message:e}}let o=a?.message?.replace(/\s+/g,` `).trim();if(!o)return;let s=(g(this.stream)??120)-8;this.previews.set(r,o.length>s?`${o.slice(0,s-1)}…`:o)}catch{}}idle(){!this.active.size&&!this.activeGates.size&&this.spin(!1)}spin(e){e&&!this.timer?this.timer=setInterval(()=>{this.frame++,this.repaint()},120).unref():!e&&this.timer&&(clearInterval(this.timer),this.timer=void 0)}};function L(e,t){if(t){l(e);return}let n=!b.stdout.isTTY,r=n?``:`${f.dim(`└─`)} `;b.stdout.write(`${r}${w(`completed`,n)} run ${f.cyan(e.runId)} completed ${f.dim(`(${e.taskCount} tasks)`)}\n`),b.stdout.write(`\n${c(e.result)}\n`),z(e.tokens)}async function R(e,t){let{runId:n}=e.record,r=!!(t.stream&&t.json);!t.json&&e.record.status===`running`&&b.stderr.write(`${f.dim(`[flow]`)} Run ${f.cyan(n)} started and is waiting to finish. Press Ctrl-C to detach. It keeps running.\n\n`);let i=t.json?()=>{}:h(),a=()=>{i(),r||(b.stderr.write(`\n${f.dim(`[flow] Detached. The run is still going.`)}\n`),b.stderr.write(`\n${p([`Result: coder flow result ${n}`,`Stop it: coder flow stop ${n}`],f)}\n`)),b.exit(130)};b.on(`SIGINT`,a);let o=new I;for await(let n of e.events)r?b.stdout.write(`${JSON.stringify(n)}\n`):t.json||o.emit(n);o.done(),i(),b.off(`SIGINT`,a);let s=e.final();r&&(b.stdout.write(`${JSON.stringify(B(s))}\n`),b.exit(s.status===`completed`?0:1)),s.status===`completed`&&(L({runId:n,name:s.name,status:`completed`,result:s.result,tokens:s.ledger,taskCount:s.taskCount},t.json),b.exit(0)),s.status===`stopped`&&(t.json?l({runId:n,name:s.name,status:`stopped`,taskCount:s.taskCount}):b.stdout.write(`\n${f.dim(`[flow] Run ${n} stopped.`)}\n\n${p([`Resume: coder flow resume ${n}`],f)}\n`),b.exit(1)),b.stdout.write(`\n${f.red(`error:`)} ${s.error??`unknown error`}\n`),b.stdout.write(`\n${p([`Resume: coder flow resume ${n}`],f)}\n`),b.exit(1)}function z(e){let t=Object.keys(e);if(t.length){b.stdout.write(`\n${f.bold(`Tokens:`)}\n`);for(let n of t)b.stdout.write(` ${f.dim(m(e[n],n))}\n`)}}function B(e){let{steps:t,events:n,...r}=e;return r}export{I as FlowStepRenderer,S as commandWatch,k as gateLine,A as gateRunningLine,N as paintPlain,R as printFollow,z as printLedger,L as printRunSummary,B as resultJson,w as stepSymbol,D as taskLabel,O as taskLine};
4
+ For the result alone, prefer \`coder flow result\`. Alias: stream.`,flags:[[`--tail <n|all>`,`replay only the last n events first (default: all)`]],examples:[[`coder flow watch`,`follow the most recent run to completion`]]},options:{..._,tail:v},args:1,run:async({options:e,args:[t]})=>{let{watchRun:n}=await import(`./executor-3QMa-XRY.js`).then(e=>e.S);return R(n(t,{tail:e.tail}),{json:e.json,stream:!0})}}),C=[`⣾`,`⣽`,`⣻`,`⢿`,`⡿`,`⣟`,`⣯`,`⣷`];function w(e,t=!1){let n=f;return t?d(`[${E(e)}]`,10):e===`completed`?n.bold(n.green(`✔`)):e===`failed`||e===`cancelled`||e===`stopped`?n.bold(n.red(`✘`)):e===`running`?n.bold(n.cyan(`●`)):n.dim(`○`)}function T(){return d(`[start]`,10)}function E(e){return e===`completed`?`done`:e===`cancelled`?`failed`:e}function D(e,t){return e??t.replace(/\s+/g,` `).trim().slice(0,60)}function O(e,t,n,r,i,a){let o=f,s=d(t??n,32);return[`${e} ${a?o.bold(s):s}`,o.dim(d(n,24)),o.light(d(i??``,20)),r?o.light(`${u(r.total)} tok`):``].join(` `).trimEnd()}function k(e,t=!1){let n=f;return`${w(e.ok?`completed`:`failed`,t)} ${n.dim(`gate`)} ${n.light(e.cmd)}${e.ok?``:n.dim(` · exit ${e.code}`)}`}function A(e,t,n){let r=f,i=n!==void 0&&n>=1e3?r.dim(` · ${o(n)}`):``;return`${t} ${r.dim(`gate`)} ${r.light(e)}${i}`}function j(e,t=!1){return f.dim(`${`│ `.repeat(e)}${t?`└─`:`├─`}`)}function M(e){return f.dim(`${`│ `.repeat(e)}│ `)}function N(e){return`${` `.repeat(e.depth)}${e.log?`${d(`[log]`,10)} `:``}${e.body}`}function P(e,t,n=!1){return n?N(e):`${e.log?M(e.depth):j(e.depth,t)} ${e.body}`}function F(e){return f.dim(`${`│ `.repeat(Math.max(0,e))}│`)}var I=class{stream;names=new Map;active=new Map;activeGates=new Map;pending;previews=new Map;tails=new Map;previewWatchers=new Map;frame=0;hasCommitted=!1;timer;tty;region;constructor(e=b.stdout){this.stream=e,this.tty=!!e.isTTY,this.region=new a(e)}emit(n){let r=f;switch(n.kind){case`task-start`:{let r={name:D(n.name,n.prompt),engine:n.engine,depth:n.depth??0};if(this.names.set(n.taskId,r),!this.tty){this.final(r.depth,O(T(),r.name,n.taskId,null,r.engine));return}this.active.set(n.taskId,r),this.previewWatchers.get(n.taskId)?.close(),this.previewWatchers.set(n.taskId,e(t(b.cwd(),n.taskId),e=>{e&&e!==`log.jsonl`||(this.refreshPreviews(n.taskId),this.repaint())})),this.refreshPreviews(n.taskId),this.spin(!0),this.repaint();return}case`task-end`:{this.active.delete(n.taskId),this.previews.delete(n.taskId),this.tails.delete(n.taskId),this.previewWatchers.get(n.taskId)?.close(),this.previewWatchers.delete(n.taskId),this.idle();let e=this.names.get(n.taskId);this.final(e?.depth??0,O(w(n.status,!this.tty),e?.name??null,n.taskId,n.tokens,e?.engine));return}case`gate-start`:{let e={cmd:n.cmd,depth:n.depth??0,startedAt:Date.now()};if(!this.tty){this.final(e.depth,A(e.cmd,T()));return}this.activeGates.set(n.gateId,e),this.spin(!0),this.repaint();return}case`gate`:n.gateId&&this.activeGates.delete(n.gateId),this.idle(),this.final(n.depth??0,k(n,!this.tty));return;case`log`:for(let e of n.message.split(`
5
+ `))this.final(n.depth??0,r.light(e),!0);return;case`flow-start`:this.final(n.depth-1,r.bold(`flow ${n.name}`));return;case`replay`:this.final(0,r.dim(`replayed ${n.count} steps from journal`),!0)}}done(){this.spin(!1);for(let e of this.previewWatchers.values())e.close();this.previewWatchers.clear(),this.flush(0),this.tty&&this.repaint(),this.region.done()}flush(e){this.pending&&=(this.region.commit(`${P(this.pending,e<this.pending.depth,!this.tty)}\n`),this.hasCommitted=!0,void 0)}final(e,t,n=!1){if(!this.tty){this.region.commit(`${N({depth:e,body:t,log:n})}\n`),this.hasCommitted=!0;return}this.flush(e),this.pending={depth:e,body:t,log:n},this.tty&&this.repaint()}repaint(){let e=[],t=[];if(this.pending){let n=P(this.pending,!1);e.push(n),t.push(n)}let n=this.timer?f.bold(f.cyan(C[this.frame%C.length])):w(`running`);for(let[r,i]of this.active){let a=`${j(i.depth??0)} ${O(n,i.name,r,null,i.engine,!0)}`;(e.length||this.hasCommitted)&&e.push(F(i.depth??0)),e.push(a),t.push(a);let o=this.previews.get(r);o&&e.push(`${M(i.depth??0)} ${f.dim(o)}`)}for(let r of this.activeGates.values()){let i=`${j(r.depth)} ${A(r.cmd,n,Date.now()-r.startedAt)}`;(e.length||this.hasCommitted)&&e.push(F(r.depth)),e.push(i),t.push(i)}let r=(s(this.stream)??1/0)-1,i=e.length<=r?e:t;if(i.length>r){let e=Math.max(0,r-1);i=[f.dim(`… +${i.length-e} more running`),...i.slice(-e)]}this.region.set(i)}refreshPreviews(e){try{let i=this.tails.get(e),a;if(!i){let o=y.join(t(b.cwd(),e),`log.jsonl`),s=x.existsSync(o)?x.statSync(o).size:0;a=r(b.cwd(),e,1)[0],i=n(o,s),this.tails.set(e,i)}for(let e of i())try{a=JSON.parse(e)}catch{a={message:e}}let o=a?.message?.replace(/\s+/g,` `).trim();if(!o)return;let s=(g(this.stream)??120)-8;this.previews.set(e,o.length>s?`${o.slice(0,s-1)}…`:o)}catch{}}idle(){!this.active.size&&!this.activeGates.size&&this.spin(!1)}spin(e){e&&!this.timer?this.timer=setInterval(()=>{this.frame++,this.repaint()},120).unref():!e&&this.timer&&(clearInterval(this.timer),this.timer=void 0)}};function L(e,t){if(t){l(e);return}let n=!b.stdout.isTTY,r=n?``:`${f.dim(`└─`)} `;b.stdout.write(`${r}${w(`completed`,n)} run ${f.cyan(e.runId)} completed ${f.dim(`(${e.taskCount} tasks)`)}\n`),b.stdout.write(`\n${c(e.result)}\n`),z(e.tokens)}async function R(e,t){let{runId:n}=e.record,r=!!(t.stream&&t.json);!t.json&&e.record.status===`running`&&b.stderr.write(`${f.dim(`[flow]`)} Run ${f.cyan(n)} started and is waiting to finish. Press Ctrl-C to detach. It keeps running.\n\n`);let i=t.json?()=>{}:h(),a=()=>{i(),r||(b.stderr.write(`\n${f.dim(`[flow] Detached. The run is still going.`)}\n`),b.stderr.write(`\n${p([`Result: coder flow result ${n}`,`Stop it: coder flow stop ${n}`],f)}\n`)),b.exit(130)};b.on(`SIGINT`,a);let o=new I;for await(let n of e.events)r?b.stdout.write(`${JSON.stringify(n)}\n`):t.json||o.emit(n);o.done(),i(),b.off(`SIGINT`,a);let s=e.final();r&&(b.stdout.write(`${JSON.stringify(B(s))}\n`),b.exit(s.status===`completed`?0:1)),s.status===`completed`&&(L({runId:n,name:s.name,status:`completed`,result:s.result,tokens:s.ledger,taskCount:s.taskCount},t.json),b.exit(0)),s.status===`stopped`&&(t.json?l({runId:n,name:s.name,status:`stopped`,taskCount:s.taskCount}):b.stdout.write(`\n${f.dim(`[flow] Run ${n} stopped.`)}\n\n${p([`Resume: coder flow resume ${n}`],f)}\n`),b.exit(1)),b.stdout.write(`\n${f.red(`error:`)} ${s.error??`unknown error`}\n`),b.stdout.write(`\n${p([`Resume: coder flow resume ${n}`],f)}\n`),b.exit(1)}function z(e){let t=Object.keys(e);if(t.length){b.stdout.write(`\n${f.bold(`Tokens:`)}\n`);for(let n of t)b.stdout.write(` ${f.dim(m(e[n],n))}\n`)}}function B(e){let{steps:t,events:n,...r}=e;return r}export{I as FlowStepRenderer,S as commandWatch,k as gateLine,A as gateRunningLine,N as paintPlain,R as printFollow,z as printLedger,L as printRunSummary,B as resultJson,w as stepSymbol,D as taskLabel,O as taskLine};
@@ -1,9 +1,9 @@
1
- import{Zt as e}from"./core-DwsAMCnL.js";import{Ar as t,Cr as n,lr as r,pn as i,pr as a,vr as o,yr as s}from"./prompts-CEf7z4i_.js";import{i as c,r as l}from"./cli-Fp28pM4Y.js";import{p as u,y as d}from"./output-BKeyLbvt.js";import{s as f,t as p,u as m}from"./args-BekfmD9t.js";import{a as h,c as g,i as _,l as v,n as y,t as b,u as x}from"./result-DvOqIwhh.js";import S from"node:process";function C(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;S.stdout.write(`${n}\n`)}async function w(e,t,n){let a=n.trim===void 0?500:n.trim===`none`?1/0:n.trim;if(`attempts`in e.task){let{logEntry:r}=await import(`./log-view-CL3_S0IQ.js`).then(e=>e.r),i=await b.create({cwd:e.task.task.cwd??t,startedAt:e.task.startedAt??e.task.createdAt,trim:a,explicitTrim:n.trim!==void 0,width:d()});for await(let t of e.events){let e=t;if(n.json){S.stdout.write(`${JSON.stringify(e,null,2)}\n`);continue}let a=e.entry??r(e.line);if(!a){C(e,u);continue}let o=i.render({...a,at:a.at??new Date(e.at).toISOString()});o.length&&S.stdout.write(`${o.join(`
2
- `)}\n`)}let o=await e.final();n.json||_(o,u),S.exit(0)}let o=e.task,s=await b.create({cwd:o.cwd??t,startedAt:Date.parse(o.createdAt??``)||void 0,trim:a,explicitTrim:n.trim!==void 0,width:d()});if(!n.json){let e=[...g(o,{status:o.status}),...i.includes(o.status)?[u.dim(`Watching. Press Ctrl-C to stop.`)]:[],...o.prompt?h(o.prompt,u,{truncate:!1}):[],``];S.stdout.write(`${e.join(`
1
+ import{Zt as e}from"./core-DwsAMCnL.js";import{br as t,jr as n,mr as r,pn as i,ur as a,wr as o,yr as s}from"./prompts-Bj4Fbd_n.js";import{i as c,r as l}from"./cli-BBlH53hA.js";import{p as u,y as d}from"./output-BKeyLbvt.js";import{s as f,t as p,u as m}from"./args-CURX44CA.js";import{a as h,c as g,i as _,l as v,n as y,t as b,u as x}from"./result-D0dpv2O_.js";import S from"node:process";function C(e,t){let n=e.level===`sys`?t.dim(`· ${e.line}`):e.level===`err`?t.light(e.line):e.line;S.stdout.write(`${n}\n`)}async function w(e,t,n){let r=n.trim===void 0?500:n.trim===`none`?1/0:n.trim;if(`attempts`in e.task){let{logEntry:i}=await import(`./log-view-CL3_S0IQ.js`).then(e=>e.r),a=await b.create({cwd:e.task.task.cwd??t,startedAt:e.task.startedAt??e.task.createdAt,trim:r,explicitTrim:n.trim!==void 0,width:d()});for await(let t of e.events){let e=t;if(n.json){S.stdout.write(`${JSON.stringify(e,null,2)}\n`);continue}let r=e.entry??i(e.line);if(!r){C(e,u);continue}let o=a.render({...r,at:r.at??new Date(e.at).toISOString()});o.length&&S.stdout.write(`${o.join(`
2
+ `)}\n`)}let o=await e.final();n.json||_(o,u),S.exit(0)}let o=e.task,s=await b.create({cwd:o.cwd??t,startedAt:Date.parse(o.createdAt??``)||void 0,trim:r,explicitTrim:n.trim!==void 0,width:d()});if(!n.json){let e=[...g(o,{status:o.status}),...i.includes(o.status)?[u.dim(`Watching. Press Ctrl-C to stop.`)]:[],...o.prompt?h(o.prompt,u,{truncate:!1}):[],``];S.stdout.write(`${e.join(`
3
3
  `)}\n`)}let c=null,l=null,f=e=>{let t=s.render(e);t.length&&S.stdout.write(`${t.join(`
4
- `)}\n`)};for await(let t of e.events){let e=t;if(e.kind===`usage`&&e.tokens&&(c=e.tokens),n.json){let t=e.kind===`steer`?1/0:a,n=e.message?{...e,message:x(e.message,t,{plain:!0})}:e;S.stdout.write(`${JSON.stringify(n)}\n`);continue}e.kind!==`usage`&&(l&&=(f(l),null),e.kind===`assistant`?l=e:f(e))}let{status:p,result:m,task:w}=await e.final();if(n.json)S.stdout.write(`${JSON.stringify({taskId:o.id,status:p,result:m},null,2)}\n`);else{let e=p===`completed`?`(no final message)`:`(task ${p})`,n=v(w,{tokens:m?.tokens??c,tokenModel:m?.model,files:m?.touchedFiles?.map(e=>r(o.cwd??t,e)),statusChanged:p!==o.status});n.length&&S.stderr.write(`\n${n.join(`
5
- `)}\n`);let i=y(m,w.error,e),a=l?String(l.message??``):``;S.stdout.write(`\n${i.trim()?i:a}\n`)}S.exit(p===`completed`?0:1)}const T=c({name:`task watch`,help:{usage:`coder task watch [task-id] [--server [url]]`,summary:`Stream a running task's transcript live (for you/debugging), then print its
4
+ `)}\n`)};for await(let t of e.events){let e=t;if(e.kind===`usage`&&e.tokens&&(c=e.tokens),n.json){let t=e.kind===`steer`?1/0:r,n=e.message?{...e,message:x(e.message,t,{plain:!0})}:e;S.stdout.write(`${JSON.stringify(n)}\n`);continue}e.kind!==`usage`&&(l&&=(f(l),null),e.kind===`assistant`?l=e:f(e))}let{status:p,result:m,task:w}=await e.final();if(n.json)S.stdout.write(`${JSON.stringify({taskId:o.id,status:p,result:m},null,2)}\n`);else{let e=p===`completed`?`(no final message)`:`(task ${p})`,n=v(w,{tokens:m?.tokens??c,tokenModel:m?.model,files:m?.touchedFiles?.map(e=>a(o.cwd??t,e)),statusChanged:p!==o.status});n.length&&S.stderr.write(`\n${n.join(`
5
+ `)}\n`);let r=y(m,w.error,e),i=l?String(l.message??``):``;S.stdout.write(`\n${r.trim()?r:i}\n`)}S.exit(p===`completed`?0:1)}const T=c({name:`task watch`,help:{usage:`coder task watch [task-id] [--server [url]]`,summary:`Stream a running task's transcript live (for you/debugging), then print its
6
6
  final answer. Replays the last line first so the current step is visible;
7
7
  --tail <n> replays the last n lines (--tail all for the whole transcript).
8
8
  Blocks until it finishes; exits 0 on success, 1 otherwise. For the answer
9
- alone, prefer \`coder result\`. Alias: stream.`,flags:[[`--tail <n|all>`,`replay the last n log lines first (default: 1)`],[`--trim <n|none>`,`budget for tool output and thinking (default: 1200 chars, 12 lines)`],l],examples:[[`coder task watch`,`follow the most recent task to completion`]]},options:{...p,tail:m,trim:n(t([s(`none`),a().check(o(),e())],{error:`expected a positive integer or "none"`})),...f},args:1,async run({options:e,args:[t],cwd:n}){let{tasks:r}=await import(`./task-C506SkPR.js`).then(e=>e.t);await w(await r.watch(t,{...e,organization:e.workspace}),n,e)}});export{T as commandWatch,C as printLine};
9
+ alone, prefer \`coder result\`. Alias: stream.`,flags:[[`--tail <n|all>`,`replay the last n log lines first (default: 1)`],[`--trim <n|none>`,`budget for tool output and thinking (default: 1200 chars, 12 lines)`],l],examples:[[`coder task watch`,`follow the most recent task to completion`]]},options:{...p,tail:m,trim:o(n([t(`none`),r().check(s(),e())],{error:`expected a positive integer or "none"`})),...f},args:1,async run({options:e,args:[t],cwd:n}){let{tasks:r}=await import(`./task-DJ6nruuA.js`).then(e=>e.t);await w(await r.watch(t,{...e,organization:e.workspace}),n,e)}});export{T as commandWatch,C as printLine};
@@ -1 +1 @@
1
- import{B as e}from"./prompts-CEf7z4i_.js";import t from"node:process";async function n(n,r,i){let a=n.envKey?t.env[n.envKey]:void 0,o=!1;for(let t of e(n.baseUrl,r))try{let e=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(i),signal:AbortSignal.timeout(5e3)});if(o=!0,e.status!==404&&e.status!==405&&e.status!==501)return{baseUrl:t.slice(0,-(r.length+1))}}catch{}return{reachable:o}}async function r(e){let t=await n(e,`responses`,{model:e.model,input:[],stream:!1});if(`baseUrl`in t)return{wireApi:`responses`,baseUrl:t.baseUrl};let r=await n(e,`chat/completions`,{model:e.model,messages:[],stream:!1});return`baseUrl`in r?{wireApi:`chat`,baseUrl:r.baseUrl}:t.reachable||r.reachable?{wireApi:`chat`}:null}export{r as t};
1
+ import{B as e}from"./prompts-Bj4Fbd_n.js";import t from"node:process";async function n(n,r,i){let a=n.envKey?t.env[n.envKey]:void 0,o=!1;for(let t of e(n.baseUrl,r))try{let e=await fetch(t,{method:`POST`,headers:{"content-type":`application/json`,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(i),signal:AbortSignal.timeout(5e3)});if(o=!0,e.status!==404&&e.status!==405&&e.status!==501)return{baseUrl:t.slice(0,-(r.length+1))}}catch{}return{reachable:o}}async function r(e){let t=await n(e,`responses`,{model:e.model,input:[],stream:!1});if(`baseUrl`in t)return{wireApi:`responses`,baseUrl:t.baseUrl};let r=await n(e,`chat/completions`,{model:e.model,messages:[],stream:!1});return`baseUrl`in r?{wireApi:`chat`,baseUrl:r.baseUrl}:t.reachable||r.reachable?{wireApi:`chat`}:null}export{r as t};
@@ -0,0 +1 @@
1
+ import{Vt as e}from"./prompts-Bj4Fbd_n.js";import{i as t}from"./cli-BBlH53hA.js";import{i as n}from"./output-BKeyLbvt.js";import{c as r}from"./args-CURX44CA.js";const i=t({name:`task worker`,options:{cwd:r},args:1,async run({args:[t],cwd:r}){let{startAgentMailbox:i}=await import(`./exec-Cprez703.js`).then(e=>e.i),{runWorker:a}=await import(`./worker-KfrTK_Dk.js`),o=e(r,t);o||n(`Worker: task ${t} not found.`),await a(r,o,i)}});export{i as commandWorker};
@@ -0,0 +1,2 @@
1
+ import{$n as e,Dn as t,J as n,Ot as r,P as i,Q as a,U as o,Vt as s,W as c,X as l,Yn as u,Z as d,an as f,bt as p,cn as m,dn as h,fn as g,g as _,nn as v,or as y,pr as b,r as x,wt as S}from"./prompts-Bj4Fbd_n.js";import{F as C,I as w,M as T,S as E,b as D,h as O,s as k}from"./dispatch-CFZ9Crvg.js";import{t as A}from"./chat-bridge-BmqYsASZ.js";import{i as j}from"./history-C53URBjs.js";import{n as M,t as N}from"./log-view-CL3_S0IQ.js";import{c as P,r as F,t as I}from"./mcp-Dsl3Xdd3.js";import{t as L}from"./wire-nJ7sEi-M.js";import R from"node:path";import z from"node:process";import B from"node:fs";const V={claude:{CLAUDE_CODE_DISABLE_AUTO_MEMORY:`1`},codex:{"features.memories":!1}};function H(e){let t=e.currentPrompt??e.prompt??``;return e.resumeThreadId||!e.pendingRollover?t:_(e.pendingRollover,t)}async function U(n,r,i,a){let o=!!r.pendingRollover;g(n,r.id,{status:`running`,steerEndpoint:null,turnId:null,turnUsage:r.turnUsage??[]});let c=v(n,r.id),l=R.join(c,`log.jsonl`),u=y(l,B.existsSync(l)?B.statSync(l).size:0),d=o?{...r,resumeThreadId:null}:r,f,m=e=>{let i=u().flatMap(e=>{let t=M(e);return t?[t]:[]}),a=i.flatMap(e=>e.message?.startsWith(`Steer accepted live:
2
+ `)?[e.message.slice(p.length)]:[]),o=i.filter(e=>e.kind===`reply`).at(-1)?.message;return t(`worker.record.start`,{taskId:r.id,finalized:!1}),J(n,r,e,{steers:a,lastReply:o})},h;try{h=await a(d,{privateTurn:!1,steerable:!o,onResult:e=>{!f&&e.status===0&&!e.error&&(f=m(e))}})}catch(e){throw o&&g(n,r.id,{threadId:r.threadId,resumeThreadId:r.threadId,steerEndpoint:null}),e}h.status!==0&&o&&(h={...h,threadId:r.threadId??null});let _=[...r.previousThreadIds??[]];h.status===0&&r.threadId&&h.threadId&&r.threadId!==h.threadId&&!_.includes(r.threadId)&&_.push(r.threadId);let C=h.status===0&&!!h.threadId&&Number(h.contextTokens)>i,w=new Date().toISOString();t(`worker.engine.closed`,{taskId:r.id}),f??=m(h),b(R.join(c,`result.json`),JSON.parse(e(h))),t(`worker.record.start`,{taskId:r.id,finalized:!0});let T=g(n,r.id,{turnUsage:[...s(n,r.id)?.turnUsage??[],{at:f,tokens:h.tokens,model:h.model}],status:h.status===0?`completed`:`failed`,completedAt:w,rollingOver:C,...C?{pid:z.pid}:{},threadId:h.threadId,resumeThreadId:h.threadId,previousThreadIds:_,...h.status===0?{pendingRollover:void 0}:{},steerEndpoint:null,turnId:h.turnId??null});if(t(`worker.result.recorded`,{taskId:r.id,finalized:!0}),o&&h.status===0&&S(n,r.id,{kind:`status`,message:`Context rolled over: summary plus the last ${r.pendingRollover.exchanges} exchanges`}),!C)return h;try{let t=await j(T),i=await a({...T,currentPrompt:x,outputSchema:void 0},{privateTurn:!0});if(!s(n,r.id))return h;if(i.tokens){let t=new Date(Math.max(Date.now(),Date.parse(f)+1)).toISOString();g(n,r.id,{turnUsage:[...s(n,r.id)?.turnUsage??[],{at:t,tokens:i.tokens,model:i.model}]}),h={...h,tokens:N(h.tokens??null,i.tokens)},b(R.join(c,`result.json`),JSON.parse(e(h)))}if(i.status!==0||!i.finalMessage?.trim())throw Error(i.error?.message??`Summary turn returned no summary`);if(Buffer.byteLength(i.finalMessage)>64e3)throw Error(`Summary exceeded the context budget`);if(s(n,r.id)?.status===`cancelled`)return h;g(n,r.id,{pendingRollover:{summary:i.finalMessage,recent:t.text,exchanges:t.exchanges}})}catch(e){S(n,r.id,{kind:`warning`,message:`Context rollover deferred: ${e instanceof Error?e.message:String(e)}`})}finally{s(n,r.id)&&g(n,r.id,{rollingOver:!1})}return h}function W(e,t){let n=0;return()=>{Date.now()-n>=1e4&&(n=Date.now(),m(e,t))}}function G(t,n,{echo:r}){let i=i=>{let a=JSON.parse(e(typeof i==`string`?{message:i}:i));S(t,n,a),r&&a.message&&z.stderr.write(`[coder] ${a.message}\n`)};for(let e of Object.keys(u()))z.env[e]!==void 0&&i({kind:`warning`,message:`${e} is temporarily unavailable; skipped for this task.`});return i}async function K(e,t,{echo:r,env:s={},privateTurn:u=!1,steerable:p=!u,onResult:m}){let h=f(e),_=v(e,t.id),y=c(e),b=G(e,t.id,{echo:r}),x=i[t.permissions??`auto`]??i.auto,E=x.approvalPolicy===`never`?void 0:O({workspaceRoot:h,taskDir:_,mode:x.approvalMode,escalationTimeoutMs:y.approvals.escalationTimeoutMs,allowedNetworkHosts:y.approvals.allowedNetworkHosts,onEvent:e=>b(e)}),D=t.model?y.models?.[t.model]:void 0,j=D&&o(D)?D:void 0;if(j&&!j.wireApi&&t.model){let r=await L(j);r&&(j={...j,...r},y.models[t.model]=j,n(e,t.model,r),S(e,t.id,{kind:`info`,message:`detected wire api for ${t.model}: ${r.wireApi} @ ${j.baseUrl}`}))}if(j?.envKey&&!z.env[j.envKey])throw Error(`Missing environment variable: \`${j.envKey}\`.`);let M=j?await A(j,j.wireApi??`chat`):null,N=a(y,t.model,M??void 0),I=w(e,t);try{return await T(e,{availabilityChecked:z.env.CODER_ENGINE_CHECKED===`1`,prompt:H(t),developerInstructions:t.systemPrompt,outputSchema:t.outputSchema,model:N?.model??l(t.model),modelProvider:N?.modelProvider??null,configOverrides:{...N?.configOverrides,...I||Object.keys(s).length?{"shell_environment_policy.set":{...s,...I?{[C]:I}:{}}}:{},...t.agentId?V.codex:{}},effort:t.effort,sandbox:x.sandbox,approvalPolicy:x.approvalPolicy,networkAccess:d(t.permissions??`auto`,y.engines.codex?.network),approvalsReviewer:x.approvalMode===`auto`?`auto_review`:null,mcpServers:F(e,t.id,P(t,_,k(t.mcp,z.env,void 0,{onWarning:e=>b({kind:`warning`,message:e})}))),nativeMcp:t.nativeMcp??!1,writableRoots:[...x.sandbox===`read-only`?[]:t.addDirs??[],...I?[I]:[]],onApprovalRequest:E,onHeartbeat:W(e,t.id),onResult:m,resumeThreadId:t.resumeThreadId??null,onControlReady:p?(n,r,i)=>{g(e,t.id,{status:`running`,steerEndpoint:n,threadId:r,turnId:i})}:void 0,onProgress:n=>{if(u||(b(n),!p))return;let r=typeof n==`object`?n.threadId:null,i=typeof n==`object`?n.turnId:null;(r||i)&&g(e,t.id,{status:`running`,...r?{threadId:r}:{},...i?{turnId:i}:{}})}})}finally{g(e,t.id,{steerEndpoint:null}),await M?.close()}}async function q(e,t,{echo:n,env:r={},privateTurn:a=!1,steerable:o=!a,onResult:s}){let l=v(e,t.id),u=c(e),d=G(e,t.id,{echo:n}),f=i[t.permissions??`auto`]??i.auto,p=w(e,t);try{return await E(e,{env:{...r,...p?{[C]:p}:{},...t.agentId?V.claude:{}},prompt:H(t),systemPrompt:t.systemPrompt,excludeDynamicSections:t.conversation,settingSources:t.agentId&&t.source&&![`cli`,`dashboard`,`schedule`].includes(t.source)?`project,local`:void 0,outputSchema:t.outputSchema,model:t.model,effort:t.effort,permissions:t.permissions,approvalTaskId:f.approvalMode===`auto`?t.id:null,allowedNetworkHosts:u.approvals.allowedNetworkHosts,additionalDirectories:t.addDirs,...p?{writableDirectories:[p]}:{},mcpServers:P(t,l,k(t.mcp,z.env,void 0,{onWarning:e=>d({kind:`warning`,message:e})})),nativeMcp:t.nativeMcp??!1,promptCacheTtl:t.conversation&&(r.ANTHROPIC_API_KEY||z.env.ANTHROPIC_API_KEY)?`1h`:void 0,taskRoot:l,resumeSessionId:t.resumeThreadId??null,onHeartbeat:W(e,t.id),onResult:s,onSteerReady:o?n=>{g(e,t.id,{status:`running`,steerEndpoint:n})}:void 0,onProgress:n=>{a||(d(n),o&&n.threadId&&g(e,t.id,{status:`running`,threadId:n.threadId}))}})}finally{g(e,t.id,{steerEndpoint:null})}}function J(n,r,i,a={}){let{steers:o=[],lastReply:s}=a,c=r.turnUsage?.at(-1)?.at,l=v(n,r.id);b(R.join(l,`result.json`),JSON.parse(e(i)));let u={at:new Date(Math.max(Date.now(),c?Date.parse(c)+1:0)).toISOString(),prompt:r.currentPrompt??r.prompt??null,...o.length?{steers:o}:{},...s?{lastReply:s}:{},...i};return B.appendFileSync(R.join(l,`results.jsonl`),`${e(u)}\n`,`utf8`),t(`worker.result.recorded`,{taskId:r.id,finalized:!1}),z.connected&&z.send?.(`result`),u.at}function Y(e){return async(e,t,n)=>{let r=await I(k(t.mcp,z.env,void 0,{onWarning:()=>{}}));try{let i=t.engine===`claude`?q:K;return await U(e,t,t.conversation?c(e).conversationCompactTokens:1/0,(t,a)=>i(e,t,{...n,...a,env:r.env}))}finally{await r.close()}}}async function X(e,t){for(;;){let n=await h(e,t,()=>{let n=s(e,t);if(!n)return[];let i=n.status===`failed`||n.status===`cancelled`?[]:r(e,t);return i.length||(g(e,t,{steerClosed:!0,steerEndpoint:null}),z.connected&&z.send?.(`settled`)),i});if(!n.length)return;for(let r of n){let n=g(e,t,{status:`running`,currentPrompt:r,resumeThreadId:s(e,t)?.threadId??null});S(e,t,{message:`Running steered follow-up.`});try{await Y(n)(e,n,{echo:!1})}catch(n){let r=n instanceof Error?n.message:String(n);g(e,t,{status:`failed`,error:r}),S(e,t,{kind:`error`,message:r});return}}}}async function Z(e,t,n){if(t.dispatchId&&!t.resumedAt)try{B.writeFileSync(R.join(v(e,t.id),`start-${t.dispatchId}`),``,{flag:`wx`})}catch(e){if(e.code===`EEXIST`)return;throw e}g(e,t.id,{status:`running`,pid:z.pid,steerClosed:!1});let r=()=>{},i;try{if(r=n(e,t),t.name?.startsWith(`agent:`)){let{startInboxControl:n,applyTaskMessage:r}=await import(`./task-bkoi8_NN.js`).then(e=>e.d);i=n(v(e,t.id),t.name.slice(6),n=>r(e,s(e,t.id)??t,n))}if(t.simulateApproval){let n=await D(v(e,t.id),{onEvent:n=>S(e,t.id,n)});if(S(e,t.id,{message:`simulated approval: ${n}`}),n===`decline`){g(e,t.id,{status:`cancelled`,completedAt:new Date().toISOString(),error:`simulated approval denied`});return}}await Y(t)(e,t,{echo:!1}),await X(e,t.id)}catch(n){let r=n instanceof Error?n.message:String(n);throw g(e,t.id,{status:`failed`,error:r}),S(e,t.id,{kind:`error`,message:r}),n}finally{await h(e,t.id,()=>{s(e,t.id)?.pid===z.pid&&(g(e,t.id,{steerClosed:!0,steerEndpoint:null}),z.connected&&z.send?.(`settled`))}),r(),await i?.close()}}export{Z as runWorker};
@@ -1 +1 @@
1
- import{i as e}from"./cli-Fp28pM4Y.js";import t from"node:process";const n=e({name:`server workflow`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder server workflow`,summary:`Print the workflow the github-actions runner dispatches. Save it as .github/workflows/coder-agent.yml in every repo the agent runs on, and set RUNNER=github-actions on the server.`,examples:[[`coder server workflow > .github/workflows/coder-agent.yml`,`add it to a repo`]]},options:{},run:async()=>{let{actionsWorkflow:e}=await import(`./runners-vsoGeyuc.js`).then(e=>e.y);return e()},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
1
+ import{i as e}from"./cli-BBlH53hA.js";import t from"node:process";const n=e({name:`server workflow`,globalFlags:{json:!1,cwd:!1},help:{usage:`coder server workflow`,summary:`Print the workflow the github-actions runner dispatches. Save it as .github/workflows/coder-agent.yml in every repo the agent runs on, and set RUNNER=github-actions on the server.`,examples:[[`coder server workflow > .github/workflows/coder-agent.yml`,`add it to a repo`]]},options:{},run:async()=>{let{actionsWorkflow:e}=await import(`./runners-DyLnqHKy.js`).then(e=>e.y);return e()},print:e=>t.stdout.write(e)});export{n as commandServerWorkflow};
@@ -2,7 +2,7 @@
2
2
 
3
3
  An agent is a reusable teammate. Its `system.md` holds the standing instructions every task starts from: who it is, what it knows, how it answers. Its definition adds engine, model, effort and permissions defaults, the MCP servers it attaches and the [flows](../flows.md) it may run. Run it from the CLI with `coder task run --agent <id> "…"`, where flags override the defaults, from the [dashboard](../dash.md), or from platform events like a Slack DM or a GitHub pull request. [Prompt](prompt.md) shows everything its engine gets, per task kind.
4
4
 
5
- Connected to a platform, an agent listens for the events it names. Each event runs as a task with a fresh checkout, the agent's instructions, the event as its request, and only the platform tools the agent declared; the reply goes back to the thread. Later messages in that conversation, from anyone, steer its task while it runs and resume it once it has finished. A bigger task can run a flow instead, with the event as its `args`.
5
+ Connected to a platform, an agent listens for the events it names. Each event runs as a task with the agent's instructions, the event as its request, and the platform tools of every installation of the agent's apps; a GitHub event also checks out its repository, and any task can clone the agent's GitHub repositories. The reply goes back to the thread. Later messages in that conversation, from anyone, steer its task while it runs and resume it once it has finished. A bigger task can run a flow instead, with the event as its `args`.
6
6
 
7
7
  On each platform an agent is its own app, a GitHub App or a Slack app for example, so it has its own handle and permissions and runs only where it is installed. Agents run on a Coder server: the hosted one, [your own](../self-host.md), or this machine's [dashboard](../dash.md).
8
8
 
@@ -111,7 +111,7 @@ Disable or Enable any agent, built-in ones included, in its Settings › Manage
111
111
  An integration gives an agent two things:
112
112
 
113
113
  1. **Chat.** The agent's own app on the platform. Its events start tasks, and the reply goes back to the same thread. Linked workspace members can address an agent, and so can anyone the platform lets write there (on GitHub, write access to the repository); they get the workspace's connections only.
114
- 2. **Platform tools.** Actions beyond replying, through the platform's MCP server. They run outside the agent's sandbox, with a token narrowed to the task, and the token never reaches the agent. Read-only exposes only tools the platform server marks read-only; Read-write exposes all its tools. Replies, reactions and history work in both modes.
114
+ 2. **Platform tools.** Actions beyond replying, through each platform's MCP server, one per installation of the agent's apps. They run outside the agent's sandbox, with a token for that installation in the agent's access mode, and the token never reaches the agent. Read-only exposes only tools the platform server marks read-only; Read-write exposes all its tools. The prompt lists the servers; the engine loads a server's tools when it needs them. Replies, reactions and history work in both modes.
115
115
 
116
116
  | Platform | App | Events | Tools |
117
117
  | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
@@ -17,9 +17,9 @@ A platform event's task: a Slack thread or DM, a GitHub pull request or issue, a
17
17
  <instructions>
18
18
  {system.md, then the agent's other .md files}
19
19
  </instructions>
20
- <repository-instructions repo="{config repo}">
21
- {.coder/{agent}.md from the config repo}
22
- </repository-instructions>
20
+ <notes>
21
+ {notes the receiver adds, such as a missing account connection}
22
+ </notes>
23
23
  </developer-instructions>
24
24
  <!-- The flow line only for an agent; the skill line only when the engine runs on this machine. -->
25
25
  <runtime>
@@ -63,7 +63,7 @@ A platform event's task: a Slack thread or DM, a GitHub pull request or issue, a
63
63
  Read, and reply in this conversation. Nothing else changes.
64
64
  </read-only>
65
65
  </access-modes>
66
- <!-- The events the agent subscribes to, its access mode and its conversation tools. -->
66
+ <!-- The events the agent subscribes to, its access mode, its conversation tools and its MCP servers: one line each, never their tools. -->
67
67
  <settings>
68
68
  <events>
69
69
  {events}
@@ -74,9 +74,15 @@ A platform event's task: a Slack thread or DM, a GitHub pull request or issue, a
74
74
  <tools>
75
75
  reply; react; history
76
76
  </tools>
77
+ <servers>
78
+ {name}: {what it reaches}; read-write
79
+ Their tools load on demand through tool search.
80
+ </servers>
77
81
  </settings>
78
82
  ```
79
83
 
84
+ On Codex, and custom models through it, the last line of `<servers>` reads: `Their tools load on demand: find_tools(server, query) lists the matching tools of a server with their schemas, call_tool(server, tool, args) runs one.`
85
+
80
86
  ### Messages
81
87
 
82
88
  Each turn is one event. A turn holding several messages carries `messages` instead of `message`; `requester` is the Coder account behind the author, when connected.
@@ -123,8 +129,9 @@ The new engine conversation's first turn then carries it:
123
129
  ### Tools
124
130
 
125
131
  - The engine's own tools (Claude Code's or Codex's), limited by `permissions`: `read-only` cannot edit.
126
- - Each platform the agent declared, by its access mode. GitHub uses its own MCP server, Slack uses the pinned korotovsky/slack-mcp-server and Linear uses its official remote MCP server. Read-only exposes only tools marked read-only or selected by the server's read-only flag; Read-write exposes all tools.
132
+ - Every installation of the agent's apps on each platform it declared, by its access mode: one server per installation, the task's own as `github`, every other as `github-{account}`. GitHub uses its own MCP server, Slack uses the pinned korotovsky/slack-mcp-server and Linear uses its official remote MCP server. Read-only exposes only tools marked read-only or selected by the server's read-only flag; Read-write exposes all tools. A GitHub server also lets `git` clone that account's repositories.
127
133
  - MCP servers the agent definition declares, and workspace connections bound to the task.
134
+ - Tools load on demand: Claude Code through its tool search, Codex through one `coder` server whose `find_tools(server, query)` lists a server's matching tools with their schemas and `call_tool(server, tool, args)` runs one. A server starts on its first use.
128
135
  - Under `permissions: auto`, the approval tool Coder answers itself.
129
136
  - This machine's own MCP servers only with `mcp: "all"`.
130
137
  - `reply`, `react` and `history`, on every platform whatever the preset:
@@ -147,9 +154,9 @@ Every other task: `coder task run` with or without `--agent`, flow steps, dashbo
147
154
  <instructions>
148
155
  {system.md, then the agent's other .md files}
149
156
  </instructions>
150
- <repository-instructions repo="{config repo}">
151
- {.coder/{agent}.md from the config repo}
152
- </repository-instructions>
157
+ <notes>
158
+ {notes the receiver adds, such as a missing account connection}
159
+ </notes>
153
160
  </developer-instructions>
154
161
  <!-- Only with an agent. -->
155
162
  <access-modes>
@@ -167,6 +174,10 @@ Every other task: `coder task run` with or without `--agent`, flow steps, dashbo
167
174
  <current-access-mode>
168
175
  read-write
169
176
  </current-access-mode>
177
+ <servers>
178
+ {name}: {what it reaches}; read-write
179
+ Their tools load on demand through tool search.
180
+ </servers>
170
181
  </settings>
171
182
  <!-- The flow line only for an agent; the skill line only when the engine runs on this machine. -->
172
183
  <runtime>
package/docs/mcp.md CHANGED
@@ -51,4 +51,4 @@ coder run --mcp all "..."
51
51
  coder run --mcp '[{"name":"tmp","command":"node","args":["server.js"]}]' "..."
52
52
  ```
53
53
 
54
- Claude gets the servers through `--mcp-config` with the allowlist as `mcp__<name>__<tool>`; Codex gets them as `mcp_servers.<name>` overrides with `enabled_tools`. Agents attach their integration tools the same way, so an agent never needs an entry here.
54
+ Claude gets the servers through `--mcp-config` with the allowlist as `mcp__<name>__<tool>`, and finds their tools with its tool search. Codex gets one `coder` server whose `find_tools` and `call_tool` reach every server on demand; a server starts on its first use. Agents attach their integration tools the same way, so an agent never needs an entry here.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wular/coder",
3
- "version": "0.4.10",
3
+ "version": "0.4.11",
4
4
  "description": "Delegating coding-agent runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coder",
3
- "version": "0.4.8",
3
+ "version": "0.4.11",
4
4
  "description": "Delegate coding tasks to supervised Coder subagents running on Codex, Claude, or any OpenAI-compatible model. Your main context stays clean.",
5
5
  "author": {
6
6
  "name": "muzam1l"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "coder",
3
3
  "displayName": "Coder",
4
- "version": "0.4.8",
4
+ "version": "0.4.11",
5
5
  "description": "Delegate coding tasks to supervised Coder subagents running on Codex, Claude, or any OpenAI-compatible model. Your main context stays clean.",
6
6
  "author": {
7
7
  "name": "muzam1l"
@@ -1,2 +0,0 @@
1
- import{Bn as e,Bt as t,Et as n,Gt as r,It as i,Q as a,Tt as o,U as s,Ut as c,Vt as l,W as u,Wt as d,X as f,Xn as p,Xt as m,Yt as h,_n as g,_t as _,an as v,ar as ee,bt as y,dn as b,fn as x,gt as S,hn as C,jt as w,ln as T,nn as E,o as te,on as ne,pn as D,un as O,w as k,wt as A,zt as j}from"./prompts-CEf7z4i_.js";import{C as M,M as N,N as P,P as F,S as I,U as L,j as R,l as z,s as B,u as V,y as H,z as U}from"./dispatch-BJZqI7sj.js";import{t as W}from"./chat-bridge-WK-pKNfw.js";import{n as G}from"./history-D_A5odLI.js";import K from"node:path";import q from"node:process";import J from"node:fs";import{randomUUID as Y}from"node:crypto";function X(t,n,r=e=>e){return async i=>({...e(Object.fromEntries(B(t,q.env,n).flatMap(e=>{let t=e.connection??e.name;return i.includes(t)?[[t,r(e)]]:[]}))),warnings:[]})}async function Z(e,t,n,r,i={}){if(t.status!==`running`)return null;let a=t.engine===`claude`?await(i.claude??M)(t.steerEndpoint,n,void 0,r):await(i.codex??P)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId,text:n,command:r});if(a.steered)return A(e,t.id,{kind:`steer`,message:`${y}${n}`}),{taskId:t.id,steered:`live`};if(!a.retryable)throw A(e,t.id,{kind:`error`,message:`Live steer failed: ${a.detail}`}),Error(`Could not steer running task ${t.id}: ${a.detail}`);return null}function re(e,t,n){w(e,t,n),A(e,t,{kind:`steer`,message:`Steer queued for the next turn:\n${n}`})}async function ie(e,t,n,r={},i={}){let a=l(e,t.id)??t;if(t=a.rollingOver?h(e,a):a,!t.threadId)throw new L(`invalid-option`,`Task ${t.id} has no thread to steer yet (status: ${t.status}).`,{hint:`Wait for it to start: coder task watch ${t.id}`});let o=await Z(e,t,n,r.command,i);if(o){let n=l(e,t.id)??t;return n.archived&&T(e,n),o}return{taskId:t.id,steered:await oe(e,t,n,r)}}function ae(e){let t=J.mkdtempSync(`${e}-`),n=`${q.pid}-${c(q.pid)??0}-${Y()}`;J.mkdirSync(K.join(t,n));try{for(let n=0;n<2;n++){try{return J.renameSync(t,e),!0}catch(e){if(![`EEXIST`,`ENOTEMPTY`,`ENOTDIR`].includes(e.code??``))throw e}try{if(J.statSync(e).isFile()){if(Date.now()-J.statSync(e).mtimeMs<6e4)return!1;J.unlinkSync(e);continue}for(let t of J.readdirSync(e)){let n=t.split(`-`),r=Number(n[0]),i=Number(n[1]),a=!1;if(Number.isInteger(r)&&r>0)try{q.kill(r,0),a=!0}catch(e){a=e.code===`EPERM`}let o=a?c(r):null;if(a&&(!i||o===null||o===i))return!1;J.rmdirSync(K.join(e,t))}J.rmdirSync(e)}catch(e){if(![`ENOENT`,`ENOTEMPTY`].includes(e.code??``))throw e}}return!1}finally{J.rmSync(t,{recursive:!0,force:!0})}}async function oe(e,t,n,r){if(t.connectionSource===`server`&&!r.resolveConnections)throw Error(`Server connection resolver is required to resume this task`);let a=await b(e,t.id,()=>{let r=l(e,t.id)??t,a=[r?.completedAt,r?.resumedAt].map(e=>Date.parse(e??``)||0),o=K.join(E(e,t.id),`resume-${a.join(`-`)}`);if(r&&!r.steerClosed&&(D.includes(r.status)||r.rollingOver&&h(e,r).rollingOver||r.status===`completed`&&r.steerClosed===!1&&i(r.pid))||!ae(o)){r.archived&&T(e,r),re(e,t.id,n);return}return{fresh:r,claim:o}});if(!a)return`queued`;let{fresh:o,claim:s}=a;t=o??t;let c=!1;try{for(let n of J.readdirSync(E(e,t.id)))/^resume-\d+-\d+$/.test(n)&&n!==K.basename(s)&&J.rmSync(K.join(E(e,t.id),n),{recursive:!0,force:!0});let i=r.resolveConnections?await r.resolveConnections(t.connections??[]):await p(void 0,t.connections??[],void 0,t.agentId?await(await import(`./exec-DcWxZar6.js`).then(e=>e.i)).localAgentAccess(e,t.agentId):void 0),a=t.mcp?.map(e=>{let n=e.connection??(e.resolved&&t.connections?.includes(e.name)?e.name:void 0);return n?{...e,connection:n,resolved:!1}:e})??[],o=t.mcpBindings??a.filter(e=>e.connection).map(({name:e,connection:t,tools:n})=>({name:e,connection:t,...n?{tools:n}:{}})),l=new Set(o.map(e=>e.connection)),u=z([...o,...a.filter(e=>!l.has(e.connection))],{},{},i.mcp);t.archived&&T(e,t),x(e,t.id,{mcp:u.mcp,mcpBindings:o,status:`queued`,pid:null,steerClosed:!1,resumedAt:new Date().toISOString(),currentPrompt:n,...r.outputSchema?{outputSchema:r.outputSchema}:{},resumeThreadId:t.threadId,steerEndpoint:null,model:r.model??t.model??null,effort:r.effort??t.effort??null,permissions:r.permissions??t.permissions,error:void 0}),c=!0,A(e,t.id,{kind:`steer`,message:`Resuming with steer:\n${n}`});for(let n of[...i.warnings,...u.warnings??[]])A(e,t.id,{kind:`status`,message:n});let d=V(t.cwd??e,t.id,i.env);r.onWorker?.(d)}catch(n){throw c&&x(e,t.id,{status:o?.status??t.status,resumedAt:o?.resumedAt,currentPrompt:o?.currentPrompt??null,resumeThreadId:o?.resumeThreadId??null,error:o?.error}),J.rmSync(K.join(E(e,t.id),K.basename(s)),{recursive:!0,force:!0}),n}return`resumed`}const se=[`Read`,`Glob`,`Grep`];function Q(e,t,n,r){return{prompt:n,model:r.model??e.model,effort:r.effort,permissions:`read-only`,additionalDirectories:[t],taskRoot:t,readOnlyAllowedTools:se}}async function ce(e,t,n,r={}){let i=E(e,t.id),o=te(t,i,n,r.command?U(r.command):void 0),c=r.command?e=>{let t=K.join(i,`inbox-control`);J.mkdirSync(t,{recursive:!0}),J.appendFileSync(K.join(t,`${U(r.command)}.transcript.jsonl`),JSON.stringify({command:r.command,result:e.finalMessage??e.error?.message??``})+`
2
- `)}:void 0,l=r.effort??t.effort??null;if(t.engine===`claude`)return I(t.cwd??e,{...Q(t,i,o,{model:r.model,effort:l}),command:r.command,onResult:c});let d=u(e),p=r.model??t.model,m=p?d.models?.[p]:void 0,h=m&&s(m)?m:void 0;if(h?.envKey&&!q.env[h.envKey])throw Error(`Missing environment variable: \`${h.envKey}\`.`);let g=h?await W(h,h.wireApi??`chat`):null,_=a(d,p,g??void 0);try{return await N(t.cwd??e,{prompt:o,model:_?.model??f(p??null),modelProvider:_?.modelProvider??null,configOverrides:_?.configOverrides??null,effort:l,sandbox:`read-only`,approvalPolicy:`never`,ephemeral:!0,onResult:c})}finally{await g?.close()}}function le(e){return t(e).filter(e=>D.includes(e.status)).flatMap(t=>H(E(e,t.id)).filter(e=>!e.response).map(e=>({taskId:t.id,id:e.id,summary:String(e.summary??``),createdAt:e.createdAt?String(e.createdAt):void 0})))}function $(e){return t(e).filter(t=>!C.includes(t.status)||!o(Date.parse(t.completedAt??t.updatedAt??t.createdAt??``))||(n(e,t,{auto:!0}),!1))}function ue(e,t={}){let n=t.limit===`all`?void 0:t.limit,i=e=>C.includes(e.status),a=r(e),o=new Set(a.map(e=>e.id)),s=e=>e.filter(e=>!o.has(e.id)),c=[...s($(e)),...a.filter(e=>!e.archived)];if(t.archived?c=[...s(j(e)),...a.filter(e=>e.archived)]:t.running?c=c.filter(e=>D.includes(e.status)):t.stopped&&(c=c.filter(i)),t.dir){let e=v(K.resolve(String(t.dir))),n=new Map;c=c.filter(t=>t.cwd?(n.has(t.cwd)||n.set(t.cwd,v(t.cwd)),n.get(t.cwd)===e):!1)}let l=e=>({rank:_(e.status),createdAt:Date.parse(e.createdAt??``)||0,id:e.id});c=[...c].sort((e,t)=>S(l(e),l(t)));let u=n===void 0?0:Math.max(0,c.length-n);return n!==void 0&&(c=c.slice(0,n)),{tasks:c,clipped:u}}async function*de(e,t,n={}){let r=O(e,t);try{let i=d(),a=l(e,t);if(!a)throw Error(`No task found for "${t}".`);let o=n.tail??1,s=ee(K.join(E(e,t),`log.jsonl`)),c=!0,u=()=>{let e=s().map(e=>{try{return JSON.parse(e)}catch{return{message:e}}});return c?(c=!1,o===`all`?e:ne(e,o)):e};for(yield*u();a=h(e,l(e,t)??a,i),!C.includes(a.status);)await r.wait(1e3),yield*u();yield*u()}finally{r.close()}}async function fe(e,t,n={}){let r=t.engine===`claude`?{detail:`claude worker terminated`}:await(n.interrupt??R)(e,{endpoint:t.steerEndpoint,threadId:t.threadId,turnId:t.turnId});if(t.engine!==`claude`&&F(t.steerEndpoint),t.pid&&t.status===`running`)try{q.kill(t.pid,`SIGTERM`)}catch{}return x(e,t.id,{status:`cancelled`,steerEndpoint:null,completedAt:new Date().toISOString()}),{taskId:t.id,status:`cancelled`,interrupt:r.detail}}function pe(e,t){for(let n of G(t))t.engine===`claude`?k(n):g(e,n);return m(e,t.id)}export{X as a,fe as c,pe as i,de as l,le as n,$ as o,ue as r,ie as s,ce as t};